@kithinji/orca 1.0.13 → 1.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../node_modules/reflect-metadata/Reflect.js", "../../node_modules/boolbase/index.js", "../../node_modules/cssom/lib/StyleSheet.js", "../../node_modules/cssom/lib/CSSRule.js", "../../node_modules/cssom/lib/CSSStyleRule.js", "../../node_modules/cssom/lib/CSSStyleSheet.js", "../../node_modules/cssom/lib/MediaList.js", "../../node_modules/cssom/lib/CSSImportRule.js", "../../node_modules/cssom/lib/CSSGroupingRule.js", "../../node_modules/cssom/lib/CSSConditionRule.js", "../../node_modules/cssom/lib/CSSMediaRule.js", "../../node_modules/cssom/lib/CSSSupportsRule.js", "../../node_modules/cssom/lib/CSSFontFaceRule.js", "../../node_modules/cssom/lib/CSSHostRule.js", "../../node_modules/cssom/lib/CSSKeyframeRule.js", "../../node_modules/cssom/lib/CSSKeyframesRule.js", "../../node_modules/cssom/lib/CSSValue.js", "../../node_modules/cssom/lib/CSSValueExpression.js", "../../node_modules/cssom/lib/MatcherList.js", "../../node_modules/cssom/lib/CSSDocumentRule.js", "../../node_modules/cssom/lib/parse.js", "../../node_modules/cssom/lib/CSSStyleDeclaration.js", "../../node_modules/cssom/lib/clone.js", "../../node_modules/cssom/lib/index.js", "../../node_modules/linkedom/commonjs/canvas-shim.cjs", "../../node_modules/linkedom/commonjs/canvas.cjs", "../../src/index.browser.ts", "../../src/shared/index.ts", "../../src/shared/store.ts", "../../src/shared/symbols.ts", "../../src/shared/types.ts", "../../src/shared/decorators.ts", "../../src/shared/module/node.ts", "../../src/shared/module/compiler.ts", "../../src/shared/module/injector.ts", "../../src/shared/module/context.ts", "../../node_modules/uuid/dist/stringify.js", "../../node_modules/uuid/dist/rng.js", "../../node_modules/uuid/dist/native.js", "../../node_modules/uuid/dist/v4.js", "../../src/shared/jsx/jsx-runtime.ts", "../../src/shared/renderers/string.ts", "../../node_modules/linkedom/esm/shared/symbols.js", "../../node_modules/htmlparser2/src/index.ts", "../../node_modules/entities/src/generated/decode-data-html.ts", "../../node_modules/entities/src/generated/decode-data-xml.ts", "../../node_modules/entities/src/decode-codepoint.ts", "../../node_modules/entities/src/decode.ts", "../../node_modules/htmlparser2/src/Tokenizer.ts", "../../node_modules/htmlparser2/src/Parser.ts", "../../node_modules/domelementtype/lib/esm/index.js", "../../node_modules/domhandler/lib/esm/node.js", "../../node_modules/domhandler/lib/esm/index.js", "../../node_modules/domutils/lib/esm/index.ts", "../../node_modules/dom-serializer/node_modules/entities/lib/esm/generated/generated/decode-data-html.ts", "../../node_modules/dom-serializer/node_modules/entities/lib/esm/generated/generated/decode-data-xml.ts", "../../node_modules/dom-serializer/node_modules/entities/lib/esm/decode_codepoint.ts", "../../node_modules/dom-serializer/node_modules/entities/lib/esm/decode.ts", "../../node_modules/dom-serializer/node_modules/entities/lib/esm/generated/generated/encode-html.ts", "../../node_modules/dom-serializer/node_modules/entities/lib/esm/escape.ts", "../../node_modules/dom-serializer/node_modules/entities/lib/esm/index.ts", "../../node_modules/dom-serializer/lib/esm/foreignNames.js", "../../node_modules/dom-serializer/lib/esm/index.js", "../../node_modules/domutils/lib/esm/stringify.ts", "../../node_modules/domutils/lib/esm/traversal.ts", "../../node_modules/domutils/lib/esm/manipulation.ts", "../../node_modules/domutils/lib/esm/querying.ts", "../../node_modules/domutils/lib/esm/legacy.ts", "../../node_modules/domutils/lib/esm/helpers.ts", "../../node_modules/domutils/lib/esm/feeds.ts", "../../node_modules/linkedom/esm/shared/constants.js", "../../node_modules/linkedom/esm/shared/object.js", "../../node_modules/linkedom/esm/shared/utils.js", "../../node_modules/linkedom/esm/shared/shadow-roots.js", "../../node_modules/linkedom/esm/interface/custom-element-registry.js", "../../node_modules/linkedom/esm/shared/parse-from-string.js", "../../node_modules/linkedom/esm/shared/register-html-class.js", "../../node_modules/linkedom/esm/shared/jsdon.js", "../../node_modules/linkedom/esm/interface/mutation-observer.js", "../../node_modules/linkedom/esm/shared/attributes.js", "../../node_modules/linkedom/esm/interface/event-target.js", "../../node_modules/linkedom/esm/interface/node-list.js", "../../node_modules/linkedom/esm/interface/node.js", "../../node_modules/linkedom/esm/shared/text-escaper.js", "../../node_modules/linkedom/esm/interface/attr.js", "../../node_modules/linkedom/esm/shared/node.js", "../../node_modules/linkedom/esm/mixin/non-document-type-child-node.js", "../../node_modules/linkedom/esm/mixin/child-node.js", "../../node_modules/linkedom/esm/interface/character-data.js", "../../node_modules/linkedom/esm/interface/cdata-section.js", "../../node_modules/linkedom/esm/interface/comment.js", "../../node_modules/css-select/lib/esm/index.ts", "../../node_modules/css-what/lib/es/types.js", "../../node_modules/css-what/lib/es/parse.js", "../../node_modules/css-select/lib/esm/compile.ts", "../../node_modules/css-select/lib/esm/sort.ts", "../../node_modules/css-select/lib/esm/attributes.ts", "../../node_modules/nth-check/lib/esm/parse.ts", "../../node_modules/nth-check/lib/esm/compile.ts", "../../node_modules/nth-check/lib/esm/index.ts", "../../node_modules/css-select/lib/esm/pseudo-selectors/pseudo-selectors/filters.ts", "../../node_modules/css-select/lib/esm/pseudo-selectors/pseudo-selectors/pseudos.ts", "../../node_modules/css-select/lib/esm/pseudo-selectors/pseudo-selectors/aliases.ts", "../../node_modules/css-select/lib/esm/pseudo-selectors/pseudo-selectors/subselects.ts", "../../node_modules/css-select/lib/esm/pseudo-selectors/pseudo-selectors/index.ts", "../../node_modules/css-select/lib/esm/general.ts", "../../node_modules/linkedom/esm/shared/matches.js", "../../node_modules/linkedom/esm/interface/text.js", "../../node_modules/linkedom/esm/mixin/parent-node.js", "../../node_modules/linkedom/esm/mixin/non-element-parent-node.js", "../../node_modules/linkedom/esm/interface/document-fragment.js", "../../node_modules/linkedom/esm/interface/document-type.js", "../../node_modules/linkedom/esm/mixin/inner-html.js", "../../node_modules/uhyphen/esm/index.js", "../../node_modules/linkedom/esm/dom/string-map.js", "../../node_modules/linkedom/esm/dom/token-list.js", "../../node_modules/linkedom/esm/interface/css-style-declaration.js", "../../node_modules/linkedom/esm/interface/event.js", "../../node_modules/linkedom/esm/interface/named-node-map.js", "../../node_modules/linkedom/esm/interface/shadow-root.js", "../../node_modules/linkedom/esm/interface/element.js", "../../node_modules/linkedom/esm/svg/element.js", "../../node_modules/linkedom/esm/shared/facades.js", "../../node_modules/linkedom/esm/html/element.js", "../../node_modules/linkedom/esm/html/template-element.js", "../../node_modules/linkedom/esm/html/html-element.js", "../../node_modules/linkedom/esm/html/text-element.js", "../../node_modules/linkedom/esm/html/script-element.js", "../../node_modules/linkedom/esm/html/frame-element.js", "../../node_modules/linkedom/esm/html/i-frame-element.js", "../../node_modules/linkedom/esm/html/object-element.js", "../../node_modules/linkedom/esm/html/head-element.js", "../../node_modules/linkedom/esm/html/body-element.js", "../../node_modules/linkedom/esm/html/style-element.js", "../../node_modules/linkedom/esm/html/time-element.js", "../../node_modules/linkedom/esm/html/field-set-element.js", "../../node_modules/linkedom/esm/html/embed-element.js", "../../node_modules/linkedom/esm/html/hr-element.js", "../../node_modules/linkedom/esm/html/progress-element.js", "../../node_modules/linkedom/esm/html/paragraph-element.js", "../../node_modules/linkedom/esm/html/table-element.js", "../../node_modules/linkedom/esm/html/frame-set-element.js", "../../node_modules/linkedom/esm/html/li-element.js", "../../node_modules/linkedom/esm/html/base-element.js", "../../node_modules/linkedom/esm/html/data-list-element.js", "../../node_modules/linkedom/esm/html/input-element.js", "../../node_modules/linkedom/esm/html/param-element.js", "../../node_modules/linkedom/esm/html/media-element.js", "../../node_modules/linkedom/esm/html/audio-element.js", "../../node_modules/linkedom/esm/html/heading-element.js", "../../node_modules/linkedom/esm/html/directory-element.js", "../../node_modules/linkedom/esm/html/quote-element.js", "../../node_modules/linkedom/esm/html/canvas-element.js", "../../node_modules/linkedom/esm/html/legend-element.js", "../../node_modules/linkedom/esm/html/option-element.js", "../../node_modules/linkedom/esm/html/span-element.js", "../../node_modules/linkedom/esm/html/meter-element.js", "../../node_modules/linkedom/esm/html/video-element.js", "../../node_modules/linkedom/esm/html/table-cell-element.js", "../../node_modules/linkedom/esm/html/title-element.js", "../../node_modules/linkedom/esm/html/output-element.js", "../../node_modules/linkedom/esm/html/table-row-element.js", "../../node_modules/linkedom/esm/html/data-element.js", "../../node_modules/linkedom/esm/html/menu-element.js", "../../node_modules/linkedom/esm/html/select-element.js", "../../node_modules/linkedom/esm/html/br-element.js", "../../node_modules/linkedom/esm/html/button-element.js", "../../node_modules/linkedom/esm/html/map-element.js", "../../node_modules/linkedom/esm/html/opt-group-element.js", "../../node_modules/linkedom/esm/html/d-list-element.js", "../../node_modules/linkedom/esm/html/text-area-element.js", "../../node_modules/linkedom/esm/html/font-element.js", "../../node_modules/linkedom/esm/html/div-element.js", "../../node_modules/linkedom/esm/html/link-element.js", "../../node_modules/linkedom/esm/html/slot-element.js", "../../node_modules/linkedom/esm/html/form-element.js", "../../node_modules/linkedom/esm/html/image-element.js", "../../node_modules/linkedom/esm/html/pre-element.js", "../../node_modules/linkedom/esm/html/u-list-element.js", "../../node_modules/linkedom/esm/html/meta-element.js", "../../node_modules/linkedom/esm/html/picture-element.js", "../../node_modules/linkedom/esm/html/area-element.js", "../../node_modules/linkedom/esm/html/o-list-element.js", "../../node_modules/linkedom/esm/html/table-caption-element.js", "../../node_modules/linkedom/esm/html/anchor-element.js", "../../node_modules/linkedom/esm/html/label-element.js", "../../node_modules/linkedom/esm/html/unknown-element.js", "../../node_modules/linkedom/esm/html/mod-element.js", "../../node_modules/linkedom/esm/html/details-element.js", "../../node_modules/linkedom/esm/html/source-element.js", "../../node_modules/linkedom/esm/html/track-element.js", "../../node_modules/linkedom/esm/html/marquee-element.js", "../../node_modules/linkedom/esm/shared/html-classes.js", "../../node_modules/linkedom/esm/shared/mime.js", "../../node_modules/linkedom/esm/interface/custom-event.js", "../../node_modules/linkedom/esm/interface/input-event.js", "../../node_modules/linkedom/esm/interface/image.js", "../../node_modules/linkedom/esm/interface/range.js", "../../node_modules/linkedom/esm/interface/tree-walker.js", "../../node_modules/linkedom/esm/interface/document.js", "../../node_modules/linkedom/esm/html/document.js", "../../node_modules/linkedom/esm/svg/document.js", "../../node_modules/linkedom/esm/xml/document.js", "../../node_modules/linkedom/esm/dom/parser.js", "../../node_modules/linkedom/esm/shared/parse-json.js", "../../node_modules/linkedom/esm/index.js", "../../src/shared/renderers/stream.ts", "../../src/shared/renderers/vnode.ts", "../../src/shared/json.ts", "../../src/shared/signal/signal.ts", "../../src/shared/observable/observable.ts", "../../src/shared/component.ts", "../../src/shared/module_libs/router_module/navigate.ts", "../../src/shared/module_libs/router_module/outlet.ts", "../../src/shared/module_libs/router_module/module.ts", "../../src/shared/module_libs/http_client/module.ts", "../../src/shared/dom/osc.ts", "../../src/shared/macros/index.ts", "../../src/browser/index.ts", "../../src/browser/factory.ts", "../../src/browser/dom/dom.ts"],
4
- "sourcesContent": ["/*! *****************************************************************************\nCopyright (C) Microsoft. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\nvar Reflect;\n(function (Reflect) {\n // Metadata Proposal\n // https://rbuckton.github.io/reflect-metadata/\n (function (factory) {\n var root = typeof globalThis === \"object\" ? globalThis :\n typeof global === \"object\" ? global :\n typeof self === \"object\" ? self :\n typeof this === \"object\" ? this :\n sloppyModeThis();\n var exporter = makeExporter(Reflect);\n if (typeof root.Reflect !== \"undefined\") {\n exporter = makeExporter(root.Reflect, exporter);\n }\n factory(exporter, root);\n if (typeof root.Reflect === \"undefined\") {\n root.Reflect = Reflect;\n }\n function makeExporter(target, previous) {\n return function (key, value) {\n Object.defineProperty(target, key, { configurable: true, writable: true, value: value });\n if (previous)\n previous(key, value);\n };\n }\n function functionThis() {\n try {\n return Function(\"return this;\")();\n }\n catch (_) { }\n }\n function indirectEvalThis() {\n try {\n return (void 0, eval)(\"(function() { return this; })()\");\n }\n catch (_) { }\n }\n function sloppyModeThis() {\n return functionThis() || indirectEvalThis();\n }\n })(function (exporter, root) {\n var hasOwn = Object.prototype.hasOwnProperty;\n // feature test for Symbol support\n var supportsSymbol = typeof Symbol === \"function\";\n var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== \"undefined\" ? Symbol.toPrimitive : \"@@toPrimitive\";\n var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== \"undefined\" ? Symbol.iterator : \"@@iterator\";\n var supportsCreate = typeof Object.create === \"function\"; // feature test for Object.create support\n var supportsProto = { __proto__: [] } instanceof Array; // feature test for __proto__ support\n var downLevel = !supportsCreate && !supportsProto;\n var HashMap = {\n // create an object in dictionary mode (a.k.a. \"slow\" mode in v8)\n create: supportsCreate\n ? function () { return MakeDictionary(Object.create(null)); }\n : supportsProto\n ? function () { return MakeDictionary({ __proto__: null }); }\n : function () { return MakeDictionary({}); },\n has: downLevel\n ? function (map, key) { return hasOwn.call(map, key); }\n : function (map, key) { return key in map; },\n get: downLevel\n ? function (map, key) { return hasOwn.call(map, key) ? map[key] : undefined; }\n : function (map, key) { return map[key]; },\n };\n // Load global or shim versions of Map, Set, and WeakMap\n var functionPrototype = Object.getPrototypeOf(Function);\n var _Map = typeof Map === \"function\" && typeof Map.prototype.entries === \"function\" ? Map : CreateMapPolyfill();\n var _Set = typeof Set === \"function\" && typeof Set.prototype.entries === \"function\" ? Set : CreateSetPolyfill();\n var _WeakMap = typeof WeakMap === \"function\" ? WeakMap : CreateWeakMapPolyfill();\n var registrySymbol = supportsSymbol ? Symbol.for(\"@reflect-metadata:registry\") : undefined;\n var metadataRegistry = GetOrCreateMetadataRegistry();\n var metadataProvider = CreateMetadataProvider(metadataRegistry);\n /**\n * Applies a set of decorators to a property of a target object.\n * @param decorators An array of decorators.\n * @param target The target object.\n * @param propertyKey (Optional) The property key to decorate.\n * @param attributes (Optional) The property descriptor for the target key.\n * @remarks Decorators are applied in reverse order.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Example = Reflect.decorate(decoratorsArray, Example);\n *\n * // property (on constructor)\n * Reflect.decorate(decoratorsArray, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.decorate(decoratorsArray, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Object.defineProperty(Example, \"staticMethod\",\n * Reflect.decorate(decoratorsArray, Example, \"staticMethod\",\n * Object.getOwnPropertyDescriptor(Example, \"staticMethod\")));\n *\n * // method (on prototype)\n * Object.defineProperty(Example.prototype, \"method\",\n * Reflect.decorate(decoratorsArray, Example.prototype, \"method\",\n * Object.getOwnPropertyDescriptor(Example.prototype, \"method\")));\n *\n */\n function decorate(decorators, target, propertyKey, attributes) {\n if (!IsUndefined(propertyKey)) {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsObject(target))\n throw new TypeError();\n if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes))\n throw new TypeError();\n if (IsNull(attributes))\n attributes = undefined;\n propertyKey = ToPropertyKey(propertyKey);\n return DecorateProperty(decorators, target, propertyKey, attributes);\n }\n else {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsConstructor(target))\n throw new TypeError();\n return DecorateConstructor(decorators, target);\n }\n }\n exporter(\"decorate\", decorate);\n // 4.1.2 Reflect.metadata(metadataKey, metadataValue)\n // https://rbuckton.github.io/reflect-metadata/#reflect.metadata\n /**\n * A default metadata decorator factory that can be used on a class, class member, or parameter.\n * @param metadataKey The key for the metadata entry.\n * @param metadataValue The value for the metadata entry.\n * @returns A decorator function.\n * @remarks\n * If `metadataKey` is already defined for the target and target key, the\n * metadataValue for that key will be overwritten.\n * @example\n *\n * // constructor\n * @Reflect.metadata(key, value)\n * class Example {\n * }\n *\n * // property (on constructor, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticProperty;\n * }\n *\n * // property (on prototype, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * property;\n * }\n *\n * // method (on constructor)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticMethod() { }\n * }\n *\n * // method (on prototype)\n * class Example {\n * @Reflect.metadata(key, value)\n * method() { }\n * }\n *\n */\n function metadata(metadataKey, metadataValue) {\n function decorator(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey))\n throw new TypeError();\n OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n return decorator;\n }\n exporter(\"metadata\", metadata);\n /**\n * Define a unique metadata entry on the target.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param metadataValue A value that contains attached metadata.\n * @param target The target object on which to define metadata.\n * @param propertyKey (Optional) The property key for the target.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Reflect.defineMetadata(\"custom:annotation\", options, Example);\n *\n * // property (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticMethod\");\n *\n * // method (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"method\");\n *\n * // decorator factory as metadata-producing annotation.\n * function MyAnnotation(options): Decorator {\n * return (target, key?) => Reflect.defineMetadata(\"custom:annotation\", options, target, key);\n * }\n *\n */\n function defineMetadata(metadataKey, metadataValue, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n exporter(\"defineMetadata\", defineMetadata);\n /**\n * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasMetadata\", hasMetadata);\n /**\n * Gets a value indicating whether the target object has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasOwnMetadata\", hasOwnMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object or its prototype chain.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getMetadata\", getMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getOwnMetadata\", getOwnMetadata);\n /**\n * Gets the metadata keys defined on the target object or its prototype chain.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryMetadataKeys(target, propertyKey);\n }\n exporter(\"getMetadataKeys\", getMetadataKeys);\n /**\n * Gets the unique metadata keys defined on the target object.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getOwnMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryOwnMetadataKeys(target, propertyKey);\n }\n exporter(\"getOwnMetadataKeys\", getOwnMetadataKeys);\n /**\n * Deletes the metadata entry from the target object with the provided key.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata entry was found and deleted; otherwise, false.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function deleteMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n var provider = GetMetadataProvider(target, propertyKey, /*Create*/ false);\n if (IsUndefined(provider))\n return false;\n return provider.OrdinaryDeleteMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"deleteMetadata\", deleteMetadata);\n function DecorateConstructor(decorators, target) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsConstructor(decorated))\n throw new TypeError();\n target = decorated;\n }\n }\n return target;\n }\n function DecorateProperty(decorators, target, propertyKey, descriptor) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target, propertyKey, descriptor);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsObject(decorated))\n throw new TypeError();\n descriptor = decorated;\n }\n }\n return descriptor;\n }\n // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata\n function OrdinaryHasMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return true;\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryHasMetadata(MetadataKey, parent, P);\n return false;\n }\n // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata\n function OrdinaryHasOwnMetadata(MetadataKey, O, P) {\n var provider = GetMetadataProvider(O, P, /*Create*/ false);\n if (IsUndefined(provider))\n return false;\n return ToBoolean(provider.OrdinaryHasOwnMetadata(MetadataKey, O, P));\n }\n // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata\n function OrdinaryGetMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return OrdinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryGetMetadata(MetadataKey, parent, P);\n return undefined;\n }\n // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata\n function OrdinaryGetOwnMetadata(MetadataKey, O, P) {\n var provider = GetMetadataProvider(O, P, /*Create*/ false);\n if (IsUndefined(provider))\n return;\n return provider.OrdinaryGetOwnMetadata(MetadataKey, O, P);\n }\n // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata\n function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {\n var provider = GetMetadataProvider(O, P, /*Create*/ true);\n provider.OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P);\n }\n // 3.1.6.1 OrdinaryMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys\n function OrdinaryMetadataKeys(O, P) {\n var ownKeys = OrdinaryOwnMetadataKeys(O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (parent === null)\n return ownKeys;\n var parentKeys = OrdinaryMetadataKeys(parent, P);\n if (parentKeys.length <= 0)\n return ownKeys;\n if (ownKeys.length <= 0)\n return parentKeys;\n var set = new _Set();\n var keys = [];\n for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {\n var key = ownKeys_1[_i];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {\n var key = parentKeys_1[_a];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n return keys;\n }\n // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys\n function OrdinaryOwnMetadataKeys(O, P) {\n var provider = GetMetadataProvider(O, P, /*create*/ false);\n if (!provider) {\n return [];\n }\n return provider.OrdinaryOwnMetadataKeys(O, P);\n }\n // 6 ECMAScript Data Types and Values\n // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values\n function Type(x) {\n if (x === null)\n return 1 /* Null */;\n switch (typeof x) {\n case \"undefined\": return 0 /* Undefined */;\n case \"boolean\": return 2 /* Boolean */;\n case \"string\": return 3 /* String */;\n case \"symbol\": return 4 /* Symbol */;\n case \"number\": return 5 /* Number */;\n case \"object\": return x === null ? 1 /* Null */ : 6 /* Object */;\n default: return 6 /* Object */;\n }\n }\n // 6.1.1 The Undefined Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type\n function IsUndefined(x) {\n return x === undefined;\n }\n // 6.1.2 The Null Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type\n function IsNull(x) {\n return x === null;\n }\n // 6.1.5 The Symbol Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type\n function IsSymbol(x) {\n return typeof x === \"symbol\";\n }\n // 6.1.7 The Object Type\n // https://tc39.github.io/ecma262/#sec-object-type\n function IsObject(x) {\n return typeof x === \"object\" ? x !== null : typeof x === \"function\";\n }\n // 7.1 Type Conversion\n // https://tc39.github.io/ecma262/#sec-type-conversion\n // 7.1.1 ToPrimitive(input [, PreferredType])\n // https://tc39.github.io/ecma262/#sec-toprimitive\n function ToPrimitive(input, PreferredType) {\n switch (Type(input)) {\n case 0 /* Undefined */: return input;\n case 1 /* Null */: return input;\n case 2 /* Boolean */: return input;\n case 3 /* String */: return input;\n case 4 /* Symbol */: return input;\n case 5 /* Number */: return input;\n }\n var hint = PreferredType === 3 /* String */ ? \"string\" : PreferredType === 5 /* Number */ ? \"number\" : \"default\";\n var exoticToPrim = GetMethod(input, toPrimitiveSymbol);\n if (exoticToPrim !== undefined) {\n var result = exoticToPrim.call(input, hint);\n if (IsObject(result))\n throw new TypeError();\n return result;\n }\n return OrdinaryToPrimitive(input, hint === \"default\" ? \"number\" : hint);\n }\n // 7.1.1.1 OrdinaryToPrimitive(O, hint)\n // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive\n function OrdinaryToPrimitive(O, hint) {\n if (hint === \"string\") {\n var toString_1 = O.toString;\n if (IsCallable(toString_1)) {\n var result = toString_1.call(O);\n if (!IsObject(result))\n return result;\n }\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n else {\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n var toString_2 = O.toString;\n if (IsCallable(toString_2)) {\n var result = toString_2.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n throw new TypeError();\n }\n // 7.1.2 ToBoolean(argument)\n // https://tc39.github.io/ecma262/2016/#sec-toboolean\n function ToBoolean(argument) {\n return !!argument;\n }\n // 7.1.12 ToString(argument)\n // https://tc39.github.io/ecma262/#sec-tostring\n function ToString(argument) {\n return \"\" + argument;\n }\n // 7.1.14 ToPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-topropertykey\n function ToPropertyKey(argument) {\n var key = ToPrimitive(argument, 3 /* String */);\n if (IsSymbol(key))\n return key;\n return ToString(key);\n }\n // 7.2 Testing and Comparison Operations\n // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations\n // 7.2.2 IsArray(argument)\n // https://tc39.github.io/ecma262/#sec-isarray\n function IsArray(argument) {\n return Array.isArray\n ? Array.isArray(argument)\n : argument instanceof Object\n ? argument instanceof Array\n : Object.prototype.toString.call(argument) === \"[object Array]\";\n }\n // 7.2.3 IsCallable(argument)\n // https://tc39.github.io/ecma262/#sec-iscallable\n function IsCallable(argument) {\n // NOTE: This is an approximation as we cannot check for [[Call]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.4 IsConstructor(argument)\n // https://tc39.github.io/ecma262/#sec-isconstructor\n function IsConstructor(argument) {\n // NOTE: This is an approximation as we cannot check for [[Construct]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.7 IsPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-ispropertykey\n function IsPropertyKey(argument) {\n switch (Type(argument)) {\n case 3 /* String */: return true;\n case 4 /* Symbol */: return true;\n default: return false;\n }\n }\n function SameValueZero(x, y) {\n return x === y || x !== x && y !== y;\n }\n // 7.3 Operations on Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-objects\n // 7.3.9 GetMethod(V, P)\n // https://tc39.github.io/ecma262/#sec-getmethod\n function GetMethod(V, P) {\n var func = V[P];\n if (func === undefined || func === null)\n return undefined;\n if (!IsCallable(func))\n throw new TypeError();\n return func;\n }\n // 7.4 Operations on Iterator Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects\n function GetIterator(obj) {\n var method = GetMethod(obj, iteratorSymbol);\n if (!IsCallable(method))\n throw new TypeError(); // from Call\n var iterator = method.call(obj);\n if (!IsObject(iterator))\n throw new TypeError();\n return iterator;\n }\n // 7.4.4 IteratorValue(iterResult)\n // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue\n function IteratorValue(iterResult) {\n return iterResult.value;\n }\n // 7.4.5 IteratorStep(iterator)\n // https://tc39.github.io/ecma262/#sec-iteratorstep\n function IteratorStep(iterator) {\n var result = iterator.next();\n return result.done ? false : result;\n }\n // 7.4.6 IteratorClose(iterator, completion)\n // https://tc39.github.io/ecma262/#sec-iteratorclose\n function IteratorClose(iterator) {\n var f = iterator[\"return\"];\n if (f)\n f.call(iterator);\n }\n // 9.1 Ordinary Object Internal Methods and Internal Slots\n // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots\n // 9.1.1.1 OrdinaryGetPrototypeOf(O)\n // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof\n function OrdinaryGetPrototypeOf(O) {\n var proto = Object.getPrototypeOf(O);\n if (typeof O !== \"function\" || O === functionPrototype)\n return proto;\n // TypeScript doesn't set __proto__ in ES5, as it's non-standard.\n // Try to determine the superclass constructor. Compatible implementations\n // must either set __proto__ on a subclass constructor to the superclass constructor,\n // or ensure each class has a valid `constructor` property on its prototype that\n // points back to the constructor.\n // If this is not the same as Function.[[Prototype]], then this is definately inherited.\n // This is the case when in ES6 or when using __proto__ in a compatible browser.\n if (proto !== functionPrototype)\n return proto;\n // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage.\n var prototype = O.prototype;\n var prototypeProto = prototype && Object.getPrototypeOf(prototype);\n if (prototypeProto == null || prototypeProto === Object.prototype)\n return proto;\n // If the constructor was not a function, then we cannot determine the heritage.\n var constructor = prototypeProto.constructor;\n if (typeof constructor !== \"function\")\n return proto;\n // If we have some kind of self-reference, then we cannot determine the heritage.\n if (constructor === O)\n return proto;\n // we have a pretty good guess at the heritage.\n return constructor;\n }\n // Global metadata registry\n // - Allows `import \"reflect-metadata\"` and `import \"reflect-metadata/no-conflict\"` to interoperate.\n // - Uses isolated metadata if `Reflect` is frozen before the registry can be installed.\n /**\n * Creates a registry used to allow multiple `reflect-metadata` providers.\n */\n function CreateMetadataRegistry() {\n var fallback;\n if (!IsUndefined(registrySymbol) &&\n typeof root.Reflect !== \"undefined\" &&\n !(registrySymbol in root.Reflect) &&\n typeof root.Reflect.defineMetadata === \"function\") {\n // interoperate with older version of `reflect-metadata` that did not support a registry.\n fallback = CreateFallbackProvider(root.Reflect);\n }\n var first;\n var second;\n var rest;\n var targetProviderMap = new _WeakMap();\n var registry = {\n registerProvider: registerProvider,\n getProvider: getProvider,\n setProvider: setProvider,\n };\n return registry;\n function registerProvider(provider) {\n if (!Object.isExtensible(registry)) {\n throw new Error(\"Cannot add provider to a frozen registry.\");\n }\n switch (true) {\n case fallback === provider: break;\n case IsUndefined(first):\n first = provider;\n break;\n case first === provider: break;\n case IsUndefined(second):\n second = provider;\n break;\n case second === provider: break;\n default:\n if (rest === undefined)\n rest = new _Set();\n rest.add(provider);\n break;\n }\n }\n function getProviderNoCache(O, P) {\n if (!IsUndefined(first)) {\n if (first.isProviderFor(O, P))\n return first;\n if (!IsUndefined(second)) {\n if (second.isProviderFor(O, P))\n return first;\n if (!IsUndefined(rest)) {\n var iterator = GetIterator(rest);\n while (true) {\n var next = IteratorStep(iterator);\n if (!next) {\n return undefined;\n }\n var provider = IteratorValue(next);\n if (provider.isProviderFor(O, P)) {\n IteratorClose(iterator);\n return provider;\n }\n }\n }\n }\n }\n if (!IsUndefined(fallback) && fallback.isProviderFor(O, P)) {\n return fallback;\n }\n return undefined;\n }\n function getProvider(O, P) {\n var providerMap = targetProviderMap.get(O);\n var provider;\n if (!IsUndefined(providerMap)) {\n provider = providerMap.get(P);\n }\n if (!IsUndefined(provider)) {\n return provider;\n }\n provider = getProviderNoCache(O, P);\n if (!IsUndefined(provider)) {\n if (IsUndefined(providerMap)) {\n providerMap = new _Map();\n targetProviderMap.set(O, providerMap);\n }\n providerMap.set(P, provider);\n }\n return provider;\n }\n function hasProvider(provider) {\n if (IsUndefined(provider))\n throw new TypeError();\n return first === provider || second === provider || !IsUndefined(rest) && rest.has(provider);\n }\n function setProvider(O, P, provider) {\n if (!hasProvider(provider)) {\n throw new Error(\"Metadata provider not registered.\");\n }\n var existingProvider = getProvider(O, P);\n if (existingProvider !== provider) {\n if (!IsUndefined(existingProvider)) {\n return false;\n }\n var providerMap = targetProviderMap.get(O);\n if (IsUndefined(providerMap)) {\n providerMap = new _Map();\n targetProviderMap.set(O, providerMap);\n }\n providerMap.set(P, provider);\n }\n return true;\n }\n }\n /**\n * Gets or creates the shared registry of metadata providers.\n */\n function GetOrCreateMetadataRegistry() {\n var metadataRegistry;\n if (!IsUndefined(registrySymbol) && IsObject(root.Reflect) && Object.isExtensible(root.Reflect)) {\n metadataRegistry = root.Reflect[registrySymbol];\n }\n if (IsUndefined(metadataRegistry)) {\n metadataRegistry = CreateMetadataRegistry();\n }\n if (!IsUndefined(registrySymbol) && IsObject(root.Reflect) && Object.isExtensible(root.Reflect)) {\n Object.defineProperty(root.Reflect, registrySymbol, {\n enumerable: false,\n configurable: false,\n writable: false,\n value: metadataRegistry\n });\n }\n return metadataRegistry;\n }\n function CreateMetadataProvider(registry) {\n // [[Metadata]] internal slot\n // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots\n var metadata = new _WeakMap();\n var provider = {\n isProviderFor: function (O, P) {\n var targetMetadata = metadata.get(O);\n if (IsUndefined(targetMetadata))\n return false;\n return targetMetadata.has(P);\n },\n OrdinaryDefineOwnMetadata: OrdinaryDefineOwnMetadata,\n OrdinaryHasOwnMetadata: OrdinaryHasOwnMetadata,\n OrdinaryGetOwnMetadata: OrdinaryGetOwnMetadata,\n OrdinaryOwnMetadataKeys: OrdinaryOwnMetadataKeys,\n OrdinaryDeleteMetadata: OrdinaryDeleteMetadata,\n };\n metadataRegistry.registerProvider(provider);\n return provider;\n function GetOrCreateMetadataMap(O, P, Create) {\n var targetMetadata = metadata.get(O);\n var createdTargetMetadata = false;\n if (IsUndefined(targetMetadata)) {\n if (!Create)\n return undefined;\n targetMetadata = new _Map();\n metadata.set(O, targetMetadata);\n createdTargetMetadata = true;\n }\n var metadataMap = targetMetadata.get(P);\n if (IsUndefined(metadataMap)) {\n if (!Create)\n return undefined;\n metadataMap = new _Map();\n targetMetadata.set(P, metadataMap);\n if (!registry.setProvider(O, P, provider)) {\n targetMetadata.delete(P);\n if (createdTargetMetadata) {\n metadata.delete(O);\n }\n throw new Error(\"Wrong provider for target.\");\n }\n }\n return metadataMap;\n }\n // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata\n function OrdinaryHasOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n return ToBoolean(metadataMap.has(MetadataKey));\n }\n // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata\n function OrdinaryGetOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return undefined;\n return metadataMap.get(MetadataKey);\n }\n // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata\n function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true);\n metadataMap.set(MetadataKey, MetadataValue);\n }\n // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys\n function OrdinaryOwnMetadataKeys(O, P) {\n var keys = [];\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return keys;\n var keysObj = metadataMap.keys();\n var iterator = GetIterator(keysObj);\n var k = 0;\n while (true) {\n var next = IteratorStep(iterator);\n if (!next) {\n keys.length = k;\n return keys;\n }\n var nextValue = IteratorValue(next);\n try {\n keys[k] = nextValue;\n }\n catch (e) {\n try {\n IteratorClose(iterator);\n }\n finally {\n throw e;\n }\n }\n k++;\n }\n }\n function OrdinaryDeleteMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n if (!metadataMap.delete(MetadataKey))\n return false;\n if (metadataMap.size === 0) {\n var targetMetadata = metadata.get(O);\n if (!IsUndefined(targetMetadata)) {\n targetMetadata.delete(P);\n if (targetMetadata.size === 0) {\n metadata.delete(targetMetadata);\n }\n }\n }\n return true;\n }\n }\n function CreateFallbackProvider(reflect) {\n var defineMetadata = reflect.defineMetadata, hasOwnMetadata = reflect.hasOwnMetadata, getOwnMetadata = reflect.getOwnMetadata, getOwnMetadataKeys = reflect.getOwnMetadataKeys, deleteMetadata = reflect.deleteMetadata;\n var metadataOwner = new _WeakMap();\n var provider = {\n isProviderFor: function (O, P) {\n var metadataPropertySet = metadataOwner.get(O);\n if (!IsUndefined(metadataPropertySet) && metadataPropertySet.has(P)) {\n return true;\n }\n if (getOwnMetadataKeys(O, P).length) {\n if (IsUndefined(metadataPropertySet)) {\n metadataPropertySet = new _Set();\n metadataOwner.set(O, metadataPropertySet);\n }\n metadataPropertySet.add(P);\n return true;\n }\n return false;\n },\n OrdinaryDefineOwnMetadata: defineMetadata,\n OrdinaryHasOwnMetadata: hasOwnMetadata,\n OrdinaryGetOwnMetadata: getOwnMetadata,\n OrdinaryOwnMetadataKeys: getOwnMetadataKeys,\n OrdinaryDeleteMetadata: deleteMetadata,\n };\n return provider;\n }\n /**\n * Gets the metadata provider for an object. If the object has no metadata provider and this is for a create operation,\n * then this module's metadata provider is assigned to the object.\n */\n function GetMetadataProvider(O, P, Create) {\n var registeredProvider = metadataRegistry.getProvider(O, P);\n if (!IsUndefined(registeredProvider)) {\n return registeredProvider;\n }\n if (Create) {\n if (metadataRegistry.setProvider(O, P, metadataProvider)) {\n return metadataProvider;\n }\n throw new Error(\"Illegal state.\");\n }\n return undefined;\n }\n // naive Map shim\n function CreateMapPolyfill() {\n var cacheSentinel = {};\n var arraySentinel = [];\n var MapIterator = /** @class */ (function () {\n function MapIterator(keys, values, selector) {\n this._index = 0;\n this._keys = keys;\n this._values = values;\n this._selector = selector;\n }\n MapIterator.prototype[\"@@iterator\"] = function () { return this; };\n MapIterator.prototype[iteratorSymbol] = function () { return this; };\n MapIterator.prototype.next = function () {\n var index = this._index;\n if (index >= 0 && index < this._keys.length) {\n var result = this._selector(this._keys[index], this._values[index]);\n if (index + 1 >= this._keys.length) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n else {\n this._index++;\n }\n return { value: result, done: false };\n }\n return { value: undefined, done: true };\n };\n MapIterator.prototype.throw = function (error) {\n if (this._index >= 0) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n throw error;\n };\n MapIterator.prototype.return = function (value) {\n if (this._index >= 0) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n return { value: value, done: true };\n };\n return MapIterator;\n }());\n var Map = /** @class */ (function () {\n function Map() {\n this._keys = [];\n this._values = [];\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n }\n Object.defineProperty(Map.prototype, \"size\", {\n get: function () { return this._keys.length; },\n enumerable: true,\n configurable: true\n });\n Map.prototype.has = function (key) { return this._find(key, /*insert*/ false) >= 0; };\n Map.prototype.get = function (key) {\n var index = this._find(key, /*insert*/ false);\n return index >= 0 ? this._values[index] : undefined;\n };\n Map.prototype.set = function (key, value) {\n var index = this._find(key, /*insert*/ true);\n this._values[index] = value;\n return this;\n };\n Map.prototype.delete = function (key) {\n var index = this._find(key, /*insert*/ false);\n if (index >= 0) {\n var size = this._keys.length;\n for (var i = index + 1; i < size; i++) {\n this._keys[i - 1] = this._keys[i];\n this._values[i - 1] = this._values[i];\n }\n this._keys.length--;\n this._values.length--;\n if (SameValueZero(key, this._cacheKey)) {\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n }\n return true;\n }\n return false;\n };\n Map.prototype.clear = function () {\n this._keys.length = 0;\n this._values.length = 0;\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n };\n Map.prototype.keys = function () { return new MapIterator(this._keys, this._values, getKey); };\n Map.prototype.values = function () { return new MapIterator(this._keys, this._values, getValue); };\n Map.prototype.entries = function () { return new MapIterator(this._keys, this._values, getEntry); };\n Map.prototype[\"@@iterator\"] = function () { return this.entries(); };\n Map.prototype[iteratorSymbol] = function () { return this.entries(); };\n Map.prototype._find = function (key, insert) {\n if (!SameValueZero(this._cacheKey, key)) {\n this._cacheIndex = -1;\n for (var i = 0; i < this._keys.length; i++) {\n if (SameValueZero(this._keys[i], key)) {\n this._cacheIndex = i;\n break;\n }\n }\n }\n if (this._cacheIndex < 0 && insert) {\n this._cacheIndex = this._keys.length;\n this._keys.push(key);\n this._values.push(undefined);\n }\n return this._cacheIndex;\n };\n return Map;\n }());\n return Map;\n function getKey(key, _) {\n return key;\n }\n function getValue(_, value) {\n return value;\n }\n function getEntry(key, value) {\n return [key, value];\n }\n }\n // naive Set shim\n function CreateSetPolyfill() {\n var Set = /** @class */ (function () {\n function Set() {\n this._map = new _Map();\n }\n Object.defineProperty(Set.prototype, \"size\", {\n get: function () { return this._map.size; },\n enumerable: true,\n configurable: true\n });\n Set.prototype.has = function (value) { return this._map.has(value); };\n Set.prototype.add = function (value) { return this._map.set(value, value), this; };\n Set.prototype.delete = function (value) { return this._map.delete(value); };\n Set.prototype.clear = function () { this._map.clear(); };\n Set.prototype.keys = function () { return this._map.keys(); };\n Set.prototype.values = function () { return this._map.keys(); };\n Set.prototype.entries = function () { return this._map.entries(); };\n Set.prototype[\"@@iterator\"] = function () { return this.keys(); };\n Set.prototype[iteratorSymbol] = function () { return this.keys(); };\n return Set;\n }());\n return Set;\n }\n // naive WeakMap shim\n function CreateWeakMapPolyfill() {\n var UUID_SIZE = 16;\n var keys = HashMap.create();\n var rootKey = CreateUniqueKey();\n return /** @class */ (function () {\n function WeakMap() {\n this._key = CreateUniqueKey();\n }\n WeakMap.prototype.has = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.has(table, this._key) : false;\n };\n WeakMap.prototype.get = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.get(table, this._key) : undefined;\n };\n WeakMap.prototype.set = function (target, value) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ true);\n table[this._key] = value;\n return this;\n };\n WeakMap.prototype.delete = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? delete table[this._key] : false;\n };\n WeakMap.prototype.clear = function () {\n // NOTE: not a real clear, just makes the previous data unreachable\n this._key = CreateUniqueKey();\n };\n return WeakMap;\n }());\n function CreateUniqueKey() {\n var key;\n do\n key = \"@@WeakMap@@\" + CreateUUID();\n while (HashMap.has(keys, key));\n keys[key] = true;\n return key;\n }\n function GetOrCreateWeakMapTable(target, create) {\n if (!hasOwn.call(target, rootKey)) {\n if (!create)\n return undefined;\n Object.defineProperty(target, rootKey, { value: HashMap.create() });\n }\n return target[rootKey];\n }\n function FillRandomBytes(buffer, size) {\n for (var i = 0; i < size; ++i)\n buffer[i] = Math.random() * 0xff | 0;\n return buffer;\n }\n function GenRandomBytes(size) {\n if (typeof Uint8Array === \"function\") {\n var array = new Uint8Array(size);\n if (typeof crypto !== \"undefined\") {\n crypto.getRandomValues(array);\n }\n else if (typeof msCrypto !== \"undefined\") {\n msCrypto.getRandomValues(array);\n }\n else {\n FillRandomBytes(array, size);\n }\n return array;\n }\n return FillRandomBytes(new Array(size), size);\n }\n function CreateUUID() {\n var data = GenRandomBytes(UUID_SIZE);\n // mark as random - RFC 4122 \u00A7 4.4\n data[6] = data[6] & 0x4f | 0x40;\n data[8] = data[8] & 0xbf | 0x80;\n var result = \"\";\n for (var offset = 0; offset < UUID_SIZE; ++offset) {\n var byte = data[offset];\n if (offset === 4 || offset === 6 || offset === 8)\n result += \"-\";\n if (byte < 16)\n result += \"0\";\n result += byte.toString(16).toLowerCase();\n }\n return result;\n }\n }\n // uses a heuristic used by v8 and chakra to force an object into dictionary mode.\n function MakeDictionary(obj) {\n obj.__ = undefined;\n delete obj.__;\n return obj;\n }\n });\n})(Reflect || (Reflect = {}));\n", "module.exports = {\n\ttrueFunc: function trueFunc(){\n\t\treturn true;\n\t},\n\tfalseFunc: function falseFunc(){\n\t\treturn false;\n\t}\n};", "//.CommonJS\nvar CSSOM = {};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://dev.w3.org/csswg/cssom/#the-stylesheet-interface\n */\nCSSOM.StyleSheet = function StyleSheet() {\n\tthis.parentStyleSheet = null;\n};\n\n\n//.CommonJS\nexports.StyleSheet = CSSOM.StyleSheet;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://dev.w3.org/csswg/cssom/#the-cssrule-interface\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRule\n */\nCSSOM.CSSRule = function CSSRule() {\n\tthis.parentRule = null;\n\tthis.parentStyleSheet = null;\n};\n\nCSSOM.CSSRule.UNKNOWN_RULE = 0; // obsolete\nCSSOM.CSSRule.STYLE_RULE = 1;\nCSSOM.CSSRule.CHARSET_RULE = 2; // obsolete\nCSSOM.CSSRule.IMPORT_RULE = 3;\nCSSOM.CSSRule.MEDIA_RULE = 4;\nCSSOM.CSSRule.FONT_FACE_RULE = 5;\nCSSOM.CSSRule.PAGE_RULE = 6;\nCSSOM.CSSRule.KEYFRAMES_RULE = 7;\nCSSOM.CSSRule.KEYFRAME_RULE = 8;\nCSSOM.CSSRule.MARGIN_RULE = 9;\nCSSOM.CSSRule.NAMESPACE_RULE = 10;\nCSSOM.CSSRule.COUNTER_STYLE_RULE = 11;\nCSSOM.CSSRule.SUPPORTS_RULE = 12;\nCSSOM.CSSRule.DOCUMENT_RULE = 13;\nCSSOM.CSSRule.FONT_FEATURE_VALUES_RULE = 14;\nCSSOM.CSSRule.VIEWPORT_RULE = 15;\nCSSOM.CSSRule.REGION_STYLE_RULE = 16;\n\n\nCSSOM.CSSRule.prototype = {\n\tconstructor: CSSOM.CSSRule\n\t//FIXME\n};\n\n\n//.CommonJS\nexports.CSSRule = CSSOM.CSSRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n\tCSSStyleDeclaration: require(\"./CSSStyleDeclaration\").CSSStyleDeclaration,\n\tCSSRule: require(\"./CSSRule\").CSSRule\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://dev.w3.org/csswg/cssom/#cssstylerule\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleRule\n */\nCSSOM.CSSStyleRule = function CSSStyleRule() {\n\tCSSOM.CSSRule.call(this);\n\tthis.selectorText = \"\";\n\tthis.style = new CSSOM.CSSStyleDeclaration();\n\tthis.style.parentRule = this;\n};\n\nCSSOM.CSSStyleRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSStyleRule.prototype.constructor = CSSOM.CSSStyleRule;\nCSSOM.CSSStyleRule.prototype.type = 1;\n\nObject.defineProperty(CSSOM.CSSStyleRule.prototype, \"cssText\", {\n\tget: function() {\n\t\tvar text;\n\t\tif (this.selectorText) {\n\t\t\ttext = this.selectorText + \" {\" + this.style.cssText + \"}\";\n\t\t} else {\n\t\t\ttext = \"\";\n\t\t}\n\t\treturn text;\n\t},\n\tset: function(cssText) {\n\t\tvar rule = CSSOM.CSSStyleRule.parse(cssText);\n\t\tthis.style = rule.style;\n\t\tthis.selectorText = rule.selectorText;\n\t}\n});\n\n\n/**\n * NON-STANDARD\n * lightweight version of parse.js.\n * @param {string} ruleText\n * @return CSSStyleRule\n */\nCSSOM.CSSStyleRule.parse = function(ruleText) {\n\tvar i = 0;\n\tvar state = \"selector\";\n\tvar index;\n\tvar j = i;\n\tvar buffer = \"\";\n\n\tvar SIGNIFICANT_WHITESPACE = {\n\t\t\"selector\": true,\n\t\t\"value\": true\n\t};\n\n\tvar styleRule = new CSSOM.CSSStyleRule();\n\tvar name, priority=\"\";\n\n\tfor (var character; (character = ruleText.charAt(i)); i++) {\n\n\t\tswitch (character) {\n\n\t\tcase \" \":\n\t\tcase \"\\t\":\n\t\tcase \"\\r\":\n\t\tcase \"\\n\":\n\t\tcase \"\\f\":\n\t\t\tif (SIGNIFICANT_WHITESPACE[state]) {\n\t\t\t\t// Squash 2 or more white-spaces in the row into 1\n\t\t\t\tswitch (ruleText.charAt(i - 1)) {\n\t\t\t\t\tcase \" \":\n\t\t\t\t\tcase \"\\t\":\n\t\t\t\t\tcase \"\\r\":\n\t\t\t\t\tcase \"\\n\":\n\t\t\t\t\tcase \"\\f\":\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbuffer += \" \";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\n\t\t// String\n\t\tcase '\"':\n\t\t\tj = i + 1;\n\t\t\tindex = ruleText.indexOf('\"', j) + 1;\n\t\t\tif (!index) {\n\t\t\t\tthrow '\" is missing';\n\t\t\t}\n\t\t\tbuffer += ruleText.slice(i, index);\n\t\t\ti = index - 1;\n\t\t\tbreak;\n\n\t\tcase \"'\":\n\t\t\tj = i + 1;\n\t\t\tindex = ruleText.indexOf(\"'\", j) + 1;\n\t\t\tif (!index) {\n\t\t\t\tthrow \"' is missing\";\n\t\t\t}\n\t\t\tbuffer += ruleText.slice(i, index);\n\t\t\ti = index - 1;\n\t\t\tbreak;\n\n\t\t// Comment\n\t\tcase \"/\":\n\t\t\tif (ruleText.charAt(i + 1) === \"*\") {\n\t\t\t\ti += 2;\n\t\t\t\tindex = ruleText.indexOf(\"*/\", i);\n\t\t\t\tif (index === -1) {\n\t\t\t\t\tthrow new SyntaxError(\"Missing */\");\n\t\t\t\t} else {\n\t\t\t\t\ti = index + 1;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"{\":\n\t\t\tif (state === \"selector\") {\n\t\t\t\tstyleRule.selectorText = buffer.trim();\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"name\";\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \":\":\n\t\t\tif (state === \"name\") {\n\t\t\t\tname = buffer.trim();\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"value\";\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"!\":\n\t\t\tif (state === \"value\" && ruleText.indexOf(\"!important\", i) === i) {\n\t\t\t\tpriority = \"important\";\n\t\t\t\ti += \"important\".length;\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \";\":\n\t\t\tif (state === \"value\") {\n\t\t\t\tstyleRule.style.setProperty(name, buffer.trim(), priority);\n\t\t\t\tpriority = \"\";\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"name\";\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"}\":\n\t\t\tif (state === \"value\") {\n\t\t\t\tstyleRule.style.setProperty(name, buffer.trim(), priority);\n\t\t\t\tpriority = \"\";\n\t\t\t\tbuffer = \"\";\n\t\t\t} else if (state === \"name\") {\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tstate = \"selector\";\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tbuffer += character;\n\t\t\tbreak;\n\n\t\t}\n\t}\n\n\treturn styleRule;\n\n};\n\n\n//.CommonJS\nexports.CSSStyleRule = CSSOM.CSSStyleRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n\tStyleSheet: require(\"./StyleSheet\").StyleSheet,\n\tCSSStyleRule: require(\"./CSSStyleRule\").CSSStyleRule\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet\n */\nCSSOM.CSSStyleSheet = function CSSStyleSheet() {\n\tCSSOM.StyleSheet.call(this);\n\tthis.cssRules = [];\n};\n\n\nCSSOM.CSSStyleSheet.prototype = new CSSOM.StyleSheet();\nCSSOM.CSSStyleSheet.prototype.constructor = CSSOM.CSSStyleSheet;\n\n\n/**\n * Used to insert a new rule into the style sheet. The new rule now becomes part of the cascade.\n *\n * sheet = new Sheet(\"body {margin: 0}\")\n * sheet.toString()\n * -> \"body{margin:0;}\"\n * sheet.insertRule(\"img {border: none}\", 0)\n * -> 0\n * sheet.toString()\n * -> \"img{border:none;}body{margin:0;}\"\n *\n * @param {string} rule\n * @param {number} index\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet-insertRule\n * @return {number} The index within the style sheet's rule collection of the newly inserted rule.\n */\nCSSOM.CSSStyleSheet.prototype.insertRule = function(rule, index) {\n\tif (index < 0 || index > this.cssRules.length) {\n\t\tthrow new RangeError(\"INDEX_SIZE_ERR\");\n\t}\n\tvar cssRule = CSSOM.parse(rule).cssRules[0];\n\tcssRule.parentStyleSheet = this;\n\tthis.cssRules.splice(index, 0, cssRule);\n\treturn index;\n};\n\n\n/**\n * Used to delete a rule from the style sheet.\n *\n * sheet = new Sheet(\"img{border:none} body{margin:0}\")\n * sheet.toString()\n * -> \"img{border:none;}body{margin:0;}\"\n * sheet.deleteRule(0)\n * sheet.toString()\n * -> \"body{margin:0;}\"\n *\n * @param {number} index within the style sheet's rule list of the rule to remove.\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet-deleteRule\n */\nCSSOM.CSSStyleSheet.prototype.deleteRule = function(index) {\n\tif (index < 0 || index >= this.cssRules.length) {\n\t\tthrow new RangeError(\"INDEX_SIZE_ERR\");\n\t}\n\tthis.cssRules.splice(index, 1);\n};\n\n\n/**\n * NON-STANDARD\n * @return {string} serialize stylesheet\n */\nCSSOM.CSSStyleSheet.prototype.toString = function() {\n\tvar result = \"\";\n\tvar rules = this.cssRules;\n\tfor (var i=0; i<rules.length; i++) {\n\t\tresult += rules[i].cssText + \"\\n\";\n\t}\n\treturn result;\n};\n\n\n//.CommonJS\nexports.CSSStyleSheet = CSSOM.CSSStyleSheet;\nCSSOM.parse = require('./parse').parse; // Cannot be included sooner due to the mutual dependency between parse.js and CSSStyleSheet.js\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://dev.w3.org/csswg/cssom/#the-medialist-interface\n */\nCSSOM.MediaList = function MediaList(){\n\tthis.length = 0;\n};\n\nCSSOM.MediaList.prototype = {\n\n\tconstructor: CSSOM.MediaList,\n\n\t/**\n\t * @return {string}\n\t */\n\tget mediaText() {\n\t\treturn Array.prototype.join.call(this, \", \");\n\t},\n\n\t/**\n\t * @param {string} value\n\t */\n\tset mediaText(value) {\n\t\tvar values = value.split(\",\");\n\t\tvar length = this.length = values.length;\n\t\tfor (var i=0; i<length; i++) {\n\t\t\tthis[i] = values[i].trim();\n\t\t}\n\t},\n\n\t/**\n\t * @param {string} medium\n\t */\n\tappendMedium: function(medium) {\n\t\tif (Array.prototype.indexOf.call(this, medium) === -1) {\n\t\t\tthis[this.length] = medium;\n\t\t\tthis.length++;\n\t\t}\n\t},\n\n\t/**\n\t * @param {string} medium\n\t */\n\tdeleteMedium: function(medium) {\n\t\tvar index = Array.prototype.indexOf.call(this, medium);\n\t\tif (index !== -1) {\n\t\t\tArray.prototype.splice.call(this, index, 1);\n\t\t}\n\t}\n\n};\n\n\n//.CommonJS\nexports.MediaList = CSSOM.MediaList;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n\tCSSRule: require(\"./CSSRule\").CSSRule,\n\tCSSStyleSheet: require(\"./CSSStyleSheet\").CSSStyleSheet,\n\tMediaList: require(\"./MediaList\").MediaList\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://dev.w3.org/csswg/cssom/#cssimportrule\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSImportRule\n */\nCSSOM.CSSImportRule = function CSSImportRule() {\n\tCSSOM.CSSRule.call(this);\n\tthis.href = \"\";\n\tthis.media = new CSSOM.MediaList();\n\tthis.styleSheet = new CSSOM.CSSStyleSheet();\n};\n\nCSSOM.CSSImportRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSImportRule.prototype.constructor = CSSOM.CSSImportRule;\nCSSOM.CSSImportRule.prototype.type = 3;\n\nObject.defineProperty(CSSOM.CSSImportRule.prototype, \"cssText\", {\n get: function() {\n var mediaText = this.media.mediaText;\n return \"@import url(\" + this.href + \")\" + (mediaText ? \" \" + mediaText : \"\") + \";\";\n },\n set: function(cssText) {\n var i = 0;\n\n /**\n * @import url(partial.css) screen, handheld;\n * || |\n * after-import media\n * |\n * url\n */\n var state = '';\n\n var buffer = '';\n var index;\n for (var character; (character = cssText.charAt(i)); i++) {\n\n switch (character) {\n case ' ':\n case '\\t':\n case '\\r':\n case '\\n':\n case '\\f':\n if (state === 'after-import') {\n state = 'url';\n } else {\n buffer += character;\n }\n break;\n\n case '@':\n if (!state && cssText.indexOf('@import', i) === i) {\n state = 'after-import';\n i += 'import'.length;\n buffer = '';\n }\n break;\n\n case 'u':\n if (state === 'url' && cssText.indexOf('url(', i) === i) {\n index = cssText.indexOf(')', i + 1);\n if (index === -1) {\n throw i + ': \")\" not found';\n }\n i += 'url('.length;\n var url = cssText.slice(i, index);\n if (url[0] === url[url.length - 1]) {\n if (url[0] === '\"' || url[0] === \"'\") {\n url = url.slice(1, -1);\n }\n }\n this.href = url;\n i = index;\n state = 'media';\n }\n break;\n\n case '\"':\n if (state === 'url') {\n index = cssText.indexOf('\"', i + 1);\n if (!index) {\n throw i + \": '\\\"' not found\";\n }\n this.href = cssText.slice(i + 1, index);\n i = index;\n state = 'media';\n }\n break;\n\n case \"'\":\n if (state === 'url') {\n index = cssText.indexOf(\"'\", i + 1);\n if (!index) {\n throw i + ': \"\\'\" not found';\n }\n this.href = cssText.slice(i + 1, index);\n i = index;\n state = 'media';\n }\n break;\n\n case ';':\n if (state === 'media') {\n if (buffer) {\n this.media.mediaText = buffer.trim();\n }\n }\n break;\n\n default:\n if (state === 'media') {\n buffer += character;\n }\n break;\n }\n }\n }\n});\n\n\n//.CommonJS\nexports.CSSImportRule = CSSOM.CSSImportRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n\tCSSRule: require(\"./CSSRule\").CSSRule\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see https://drafts.csswg.org/cssom/#the-cssgroupingrule-interface\n */\nCSSOM.CSSGroupingRule = function CSSGroupingRule() {\n\tCSSOM.CSSRule.call(this);\n\tthis.cssRules = [];\n};\n\nCSSOM.CSSGroupingRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSGroupingRule.prototype.constructor = CSSOM.CSSGroupingRule;\n\n\n/**\n * Used to insert a new CSS rule to a list of CSS rules.\n *\n * @example\n * cssGroupingRule.cssText\n * -> \"body{margin:0;}\"\n * cssGroupingRule.insertRule(\"img{border:none;}\", 1)\n * -> 1\n * cssGroupingRule.cssText\n * -> \"body{margin:0;}img{border:none;}\"\n *\n * @param {string} rule\n * @param {number} [index]\n * @see https://www.w3.org/TR/cssom-1/#dom-cssgroupingrule-insertrule\n * @return {number} The index within the grouping rule's collection of the newly inserted rule.\n */\n CSSOM.CSSGroupingRule.prototype.insertRule = function insertRule(rule, index) {\n\tif (index < 0 || index > this.cssRules.length) {\n\t\tthrow new RangeError(\"INDEX_SIZE_ERR\");\n\t}\n\tvar cssRule = CSSOM.parse(rule).cssRules[0];\n\tcssRule.parentRule = this;\n\tthis.cssRules.splice(index, 0, cssRule);\n\treturn index;\n};\n\n/**\n * Used to delete a rule from the grouping rule.\n *\n * cssGroupingRule.cssText\n * -> \"img{border:none;}body{margin:0;}\"\n * cssGroupingRule.deleteRule(0)\n * cssGroupingRule.cssText\n * -> \"body{margin:0;}\"\n *\n * @param {number} index within the grouping rule's rule list of the rule to remove.\n * @see https://www.w3.org/TR/cssom-1/#dom-cssgroupingrule-deleterule\n */\n CSSOM.CSSGroupingRule.prototype.deleteRule = function deleteRule(index) {\n\tif (index < 0 || index >= this.cssRules.length) {\n\t\tthrow new RangeError(\"INDEX_SIZE_ERR\");\n\t}\n\tthis.cssRules.splice(index, 1)[0].parentRule = null;\n};\n\n//.CommonJS\nexports.CSSGroupingRule = CSSOM.CSSGroupingRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n CSSRule: require(\"./CSSRule\").CSSRule,\n CSSGroupingRule: require(\"./CSSGroupingRule\").CSSGroupingRule\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see https://www.w3.org/TR/css-conditional-3/#the-cssconditionrule-interface\n */\nCSSOM.CSSConditionRule = function CSSConditionRule() {\n CSSOM.CSSGroupingRule.call(this);\n this.cssRules = [];\n};\n\nCSSOM.CSSConditionRule.prototype = new CSSOM.CSSGroupingRule();\nCSSOM.CSSConditionRule.prototype.constructor = CSSOM.CSSConditionRule;\nCSSOM.CSSConditionRule.prototype.conditionText = ''\nCSSOM.CSSConditionRule.prototype.cssText = ''\n\n//.CommonJS\nexports.CSSConditionRule = CSSOM.CSSConditionRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n\tCSSRule: require(\"./CSSRule\").CSSRule,\n\tCSSGroupingRule: require(\"./CSSGroupingRule\").CSSGroupingRule,\n\tCSSConditionRule: require(\"./CSSConditionRule\").CSSConditionRule,\n\tMediaList: require(\"./MediaList\").MediaList\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://dev.w3.org/csswg/cssom/#cssmediarule\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSMediaRule\n */\nCSSOM.CSSMediaRule = function CSSMediaRule() {\n\tCSSOM.CSSConditionRule.call(this);\n\tthis.media = new CSSOM.MediaList();\n};\n\nCSSOM.CSSMediaRule.prototype = new CSSOM.CSSConditionRule();\nCSSOM.CSSMediaRule.prototype.constructor = CSSOM.CSSMediaRule;\nCSSOM.CSSMediaRule.prototype.type = 4;\n\n// https://opensource.apple.com/source/WebCore/WebCore-7611.1.21.161.3/css/CSSMediaRule.cpp\nObject.defineProperties(CSSOM.CSSMediaRule.prototype, {\n \"conditionText\": {\n get: function() {\n return this.media.mediaText;\n },\n set: function(value) {\n this.media.mediaText = value;\n },\n configurable: true,\n enumerable: true\n },\n \"cssText\": {\n get: function() {\n var cssTexts = [];\n for (var i=0, length=this.cssRules.length; i < length; i++) {\n cssTexts.push(this.cssRules[i].cssText);\n }\n return \"@media \" + this.media.mediaText + \" {\" + cssTexts.join(\"\") + \"}\";\n },\n configurable: true,\n enumerable: true\n }\n});\n\n\n//.CommonJS\nexports.CSSMediaRule = CSSOM.CSSMediaRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n CSSRule: require(\"./CSSRule\").CSSRule,\n CSSGroupingRule: require(\"./CSSGroupingRule\").CSSGroupingRule,\n CSSConditionRule: require(\"./CSSConditionRule\").CSSConditionRule\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see https://drafts.csswg.org/css-conditional-3/#the-csssupportsrule-interface\n */\nCSSOM.CSSSupportsRule = function CSSSupportsRule() {\n CSSOM.CSSConditionRule.call(this);\n};\n\nCSSOM.CSSSupportsRule.prototype = new CSSOM.CSSConditionRule();\nCSSOM.CSSSupportsRule.prototype.constructor = CSSOM.CSSSupportsRule;\nCSSOM.CSSSupportsRule.prototype.type = 12;\n\nObject.defineProperty(CSSOM.CSSSupportsRule.prototype, \"cssText\", {\n get: function() {\n var cssTexts = [];\n\n for (var i = 0, length = this.cssRules.length; i < length; i++) {\n cssTexts.push(this.cssRules[i].cssText);\n }\n\n return \"@supports \" + this.conditionText + \" {\" + cssTexts.join(\"\") + \"}\";\n }\n});\n\n//.CommonJS\nexports.CSSSupportsRule = CSSOM.CSSSupportsRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n\tCSSStyleDeclaration: require(\"./CSSStyleDeclaration\").CSSStyleDeclaration,\n\tCSSRule: require(\"./CSSRule\").CSSRule\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://dev.w3.org/csswg/cssom/#css-font-face-rule\n */\nCSSOM.CSSFontFaceRule = function CSSFontFaceRule() {\n\tCSSOM.CSSRule.call(this);\n\tthis.style = new CSSOM.CSSStyleDeclaration();\n\tthis.style.parentRule = this;\n};\n\nCSSOM.CSSFontFaceRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSFontFaceRule.prototype.constructor = CSSOM.CSSFontFaceRule;\nCSSOM.CSSFontFaceRule.prototype.type = 5;\n//FIXME\n//CSSOM.CSSFontFaceRule.prototype.insertRule = CSSStyleSheet.prototype.insertRule;\n//CSSOM.CSSFontFaceRule.prototype.deleteRule = CSSStyleSheet.prototype.deleteRule;\n\n// http://www.opensource.apple.com/source/WebCore/WebCore-955.66.1/css/WebKitCSSFontFaceRule.cpp\nObject.defineProperty(CSSOM.CSSFontFaceRule.prototype, \"cssText\", {\n get: function() {\n return \"@font-face {\" + this.style.cssText + \"}\";\n }\n});\n\n\n//.CommonJS\nexports.CSSFontFaceRule = CSSOM.CSSFontFaceRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n\tCSSRule: require(\"./CSSRule\").CSSRule\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://www.w3.org/TR/shadow-dom/#host-at-rule\n */\nCSSOM.CSSHostRule = function CSSHostRule() {\n\tCSSOM.CSSRule.call(this);\n\tthis.cssRules = [];\n};\n\nCSSOM.CSSHostRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSHostRule.prototype.constructor = CSSOM.CSSHostRule;\nCSSOM.CSSHostRule.prototype.type = 1001;\n//FIXME\n//CSSOM.CSSHostRule.prototype.insertRule = CSSStyleSheet.prototype.insertRule;\n//CSSOM.CSSHostRule.prototype.deleteRule = CSSStyleSheet.prototype.deleteRule;\n\nObject.defineProperty(CSSOM.CSSHostRule.prototype, \"cssText\", {\n\tget: function() {\n\t\tvar cssTexts = [];\n\t\tfor (var i=0, length=this.cssRules.length; i < length; i++) {\n\t\t\tcssTexts.push(this.cssRules[i].cssText);\n\t\t}\n\t\treturn \"@host {\" + cssTexts.join(\"\") + \"}\";\n\t}\n});\n\n\n//.CommonJS\nexports.CSSHostRule = CSSOM.CSSHostRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n\tCSSRule: require(\"./CSSRule\").CSSRule,\n\tCSSStyleDeclaration: require('./CSSStyleDeclaration').CSSStyleDeclaration\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://www.w3.org/TR/css3-animations/#DOM-CSSKeyframeRule\n */\nCSSOM.CSSKeyframeRule = function CSSKeyframeRule() {\n\tCSSOM.CSSRule.call(this);\n\tthis.keyText = '';\n\tthis.style = new CSSOM.CSSStyleDeclaration();\n\tthis.style.parentRule = this;\n};\n\nCSSOM.CSSKeyframeRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSKeyframeRule.prototype.constructor = CSSOM.CSSKeyframeRule;\nCSSOM.CSSKeyframeRule.prototype.type = 8;\n//FIXME\n//CSSOM.CSSKeyframeRule.prototype.insertRule = CSSStyleSheet.prototype.insertRule;\n//CSSOM.CSSKeyframeRule.prototype.deleteRule = CSSStyleSheet.prototype.deleteRule;\n\n// http://www.opensource.apple.com/source/WebCore/WebCore-955.66.1/css/WebKitCSSKeyframeRule.cpp\nObject.defineProperty(CSSOM.CSSKeyframeRule.prototype, \"cssText\", {\n get: function() {\n return this.keyText + \" {\" + this.style.cssText + \"} \";\n }\n});\n\n\n//.CommonJS\nexports.CSSKeyframeRule = CSSOM.CSSKeyframeRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n\tCSSRule: require(\"./CSSRule\").CSSRule\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://www.w3.org/TR/css3-animations/#DOM-CSSKeyframesRule\n */\nCSSOM.CSSKeyframesRule = function CSSKeyframesRule() {\n\tCSSOM.CSSRule.call(this);\n\tthis.name = '';\n\tthis.cssRules = [];\n};\n\nCSSOM.CSSKeyframesRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSKeyframesRule.prototype.constructor = CSSOM.CSSKeyframesRule;\nCSSOM.CSSKeyframesRule.prototype.type = 7;\n//FIXME\n//CSSOM.CSSKeyframesRule.prototype.insertRule = CSSStyleSheet.prototype.insertRule;\n//CSSOM.CSSKeyframesRule.prototype.deleteRule = CSSStyleSheet.prototype.deleteRule;\n\n// http://www.opensource.apple.com/source/WebCore/WebCore-955.66.1/css/WebKitCSSKeyframesRule.cpp\nObject.defineProperty(CSSOM.CSSKeyframesRule.prototype, \"cssText\", {\n get: function() {\n var cssTexts = [];\n for (var i=0, length=this.cssRules.length; i < length; i++) {\n cssTexts.push(\" \" + this.cssRules[i].cssText);\n }\n return \"@\" + (this._vendorPrefix || '') + \"keyframes \" + this.name + \" { \\n\" + cssTexts.join(\"\\n\") + \"\\n}\";\n }\n});\n\n\n//.CommonJS\nexports.CSSKeyframesRule = CSSOM.CSSKeyframesRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSValue\n *\n * TODO: add if needed\n */\nCSSOM.CSSValue = function CSSValue() {\n};\n\nCSSOM.CSSValue.prototype = {\n\tconstructor: CSSOM.CSSValue,\n\n\t// @see: http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSValue\n\tset cssText(text) {\n\t\tvar name = this._getConstructorName();\n\n\t\tthrow new Error('DOMException: property \"cssText\" of \"' + name + '\" is readonly and can not be replaced with \"' + text + '\"!');\n\t},\n\n\tget cssText() {\n\t\tvar name = this._getConstructorName();\n\n\t\tthrow new Error('getter \"cssText\" of \"' + name + '\" is not implemented!');\n\t},\n\n\t_getConstructorName: function() {\n\t\tvar s = this.constructor.toString(),\n\t\t\t\tc = s.match(/function\\s([^\\(]+)/),\n\t\t\t\tname = c[1];\n\n\t\treturn name;\n\t}\n};\n\n\n//.CommonJS\nexports.CSSValue = CSSOM.CSSValue;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n\tCSSValue: require('./CSSValue').CSSValue\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://msdn.microsoft.com/en-us/library/ms537634(v=vs.85).aspx\n *\n */\nCSSOM.CSSValueExpression = function CSSValueExpression(token, idx) {\n\tthis._token = token;\n\tthis._idx = idx;\n};\n\nCSSOM.CSSValueExpression.prototype = new CSSOM.CSSValue();\nCSSOM.CSSValueExpression.prototype.constructor = CSSOM.CSSValueExpression;\n\n/**\n * parse css expression() value\n *\n * @return {Object}\n * - error:\n * or\n * - idx:\n * - expression:\n *\n * Example:\n *\n * .selector {\n *\t\tzoom: expression(documentElement.clientWidth > 1000 ? '1000px' : 'auto');\n * }\n */\nCSSOM.CSSValueExpression.prototype.parse = function() {\n\tvar token = this._token,\n\t\t\tidx = this._idx;\n\n\tvar character = '',\n\t\t\texpression = '',\n\t\t\terror = '',\n\t\t\tinfo,\n\t\t\tparen = [];\n\n\n\tfor (; ; ++idx) {\n\t\tcharacter = token.charAt(idx);\n\n\t\t// end of token\n\t\tif (character === '') {\n\t\t\terror = 'css expression error: unfinished expression!';\n\t\t\tbreak;\n\t\t}\n\n\t\tswitch(character) {\n\t\t\tcase '(':\n\t\t\t\tparen.push(character);\n\t\t\t\texpression += character;\n\t\t\t\tbreak;\n\n\t\t\tcase ')':\n\t\t\t\tparen.pop(character);\n\t\t\t\texpression += character;\n\t\t\t\tbreak;\n\n\t\t\tcase '/':\n\t\t\t\tif ((info = this._parseJSComment(token, idx))) { // comment?\n\t\t\t\t\tif (info.error) {\n\t\t\t\t\t\terror = 'css expression error: unfinished comment in expression!';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tidx = info.idx;\n\t\t\t\t\t\t// ignore the comment\n\t\t\t\t\t}\n\t\t\t\t} else if ((info = this._parseJSRexExp(token, idx))) { // regexp\n\t\t\t\t\tidx = info.idx;\n\t\t\t\t\texpression += info.text;\n\t\t\t\t} else { // other\n\t\t\t\t\texpression += character;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase \"'\":\n\t\t\tcase '\"':\n\t\t\t\tinfo = this._parseJSString(token, idx, character);\n\t\t\t\tif (info) { // string\n\t\t\t\t\tidx = info.idx;\n\t\t\t\t\texpression += info.text;\n\t\t\t\t} else {\n\t\t\t\t\texpression += character;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\texpression += character;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif (error) {\n\t\t\tbreak;\n\t\t}\n\n\t\t// end of expression\n\t\tif (paren.length === 0) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tvar ret;\n\tif (error) {\n\t\tret = {\n\t\t\terror: error\n\t\t};\n\t} else {\n\t\tret = {\n\t\t\tidx: idx,\n\t\t\texpression: expression\n\t\t};\n\t}\n\n\treturn ret;\n};\n\n\n/**\n *\n * @return {Object|false}\n * - idx:\n * - text:\n * or\n * - error:\n * or\n * false\n *\n */\nCSSOM.CSSValueExpression.prototype._parseJSComment = function(token, idx) {\n\tvar nextChar = token.charAt(idx + 1),\n\t\t\ttext;\n\n\tif (nextChar === '/' || nextChar === '*') {\n\t\tvar startIdx = idx,\n\t\t\t\tendIdx,\n\t\t\t\tcommentEndChar;\n\n\t\tif (nextChar === '/') { // line comment\n\t\t\tcommentEndChar = '\\n';\n\t\t} else if (nextChar === '*') { // block comment\n\t\t\tcommentEndChar = '*/';\n\t\t}\n\n\t\tendIdx = token.indexOf(commentEndChar, startIdx + 1 + 1);\n\t\tif (endIdx !== -1) {\n\t\t\tendIdx = endIdx + commentEndChar.length - 1;\n\t\t\ttext = token.substring(idx, endIdx + 1);\n\t\t\treturn {\n\t\t\t\tidx: endIdx,\n\t\t\t\ttext: text\n\t\t\t};\n\t\t} else {\n\t\t\tvar error = 'css expression error: unfinished comment in expression!';\n\t\t\treturn {\n\t\t\t\terror: error\n\t\t\t};\n\t\t}\n\t} else {\n\t\treturn false;\n\t}\n};\n\n\n/**\n *\n * @return {Object|false}\n *\t\t\t\t\t- idx:\n *\t\t\t\t\t- text:\n *\t\t\t\t\tor \n *\t\t\t\t\tfalse\n *\n */\nCSSOM.CSSValueExpression.prototype._parseJSString = function(token, idx, sep) {\n\tvar endIdx = this._findMatchedIdx(token, idx, sep),\n\t\t\ttext;\n\n\tif (endIdx === -1) {\n\t\treturn false;\n\t} else {\n\t\ttext = token.substring(idx, endIdx + sep.length);\n\n\t\treturn {\n\t\t\tidx: endIdx,\n\t\t\ttext: text\n\t\t};\n\t}\n};\n\n\n/**\n * parse regexp in css expression\n *\n * @return {Object|false}\n *\t\t\t\t- idx:\n *\t\t\t\t- regExp:\n *\t\t\t\tor \n *\t\t\t\tfalse\n */\n\n/*\n\nall legal RegExp\n \n/a/\n(/a/)\n[/a/]\n[12, /a/]\n\n!/a/\n\n+/a/\n-/a/\n* /a/\n/ /a/\n%/a/\n\n===/a/\n!==/a/\n==/a/\n!=/a/\n>/a/\n>=/a/\n</a/\n<=/a/\n\n&/a/\n|/a/\n^/a/\n~/a/\n<</a/\n>>/a/\n>>>/a/\n\n&&/a/\n||/a/\n?/a/\n=/a/\n,/a/\n\n\t\tdelete /a/\n\t\t\t\tin /a/\ninstanceof /a/\n\t\t\t\tnew /a/\n\t\ttypeof /a/\n\t\t\tvoid /a/\n\n*/\nCSSOM.CSSValueExpression.prototype._parseJSRexExp = function(token, idx) {\n\tvar before = token.substring(0, idx).replace(/\\s+$/, \"\"),\n\t\t\tlegalRegx = [\n\t\t\t\t/^$/,\n\t\t\t\t/\\($/,\n\t\t\t\t/\\[$/,\n\t\t\t\t/\\!$/,\n\t\t\t\t/\\+$/,\n\t\t\t\t/\\-$/,\n\t\t\t\t/\\*$/,\n\t\t\t\t/\\/\\s+/,\n\t\t\t\t/\\%$/,\n\t\t\t\t/\\=$/,\n\t\t\t\t/\\>$/,\n\t\t\t\t/<$/,\n\t\t\t\t/\\&$/,\n\t\t\t\t/\\|$/,\n\t\t\t\t/\\^$/,\n\t\t\t\t/\\~$/,\n\t\t\t\t/\\?$/,\n\t\t\t\t/\\,$/,\n\t\t\t\t/delete$/,\n\t\t\t\t/in$/,\n\t\t\t\t/instanceof$/,\n\t\t\t\t/new$/,\n\t\t\t\t/typeof$/,\n\t\t\t\t/void$/\n\t\t\t];\n\n\tvar isLegal = legalRegx.some(function(reg) {\n\t\treturn reg.test(before);\n\t});\n\n\tif (!isLegal) {\n\t\treturn false;\n\t} else {\n\t\tvar sep = '/';\n\n\t\t// same logic as string\n\t\treturn this._parseJSString(token, idx, sep);\n\t}\n};\n\n\n/**\n *\n * find next sep(same line) index in `token`\n *\n * @return {Number}\n *\n */\nCSSOM.CSSValueExpression.prototype._findMatchedIdx = function(token, idx, sep) {\n\tvar startIdx = idx,\n\t\t\tendIdx;\n\n\tvar NOT_FOUND = -1;\n\n\twhile(true) {\n\t\tendIdx = token.indexOf(sep, startIdx + 1);\n\n\t\tif (endIdx === -1) { // not found\n\t\t\tendIdx = NOT_FOUND;\n\t\t\tbreak;\n\t\t} else {\n\t\t\tvar text = token.substring(idx + 1, endIdx),\n\t\t\t\t\tmatched = text.match(/\\\\+$/);\n\t\t\tif (!matched || matched[0] % 2 === 0) { // not escaped\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tstartIdx = endIdx;\n\t\t\t}\n\t\t}\n\t}\n\n\t// boundary must be in the same line(js sting or regexp)\n\tvar nextNewLineIdx = token.indexOf('\\n', idx + 1);\n\tif (nextNewLineIdx < endIdx) {\n\t\tendIdx = NOT_FOUND;\n\t}\n\n\n\treturn endIdx;\n};\n\n\n\n\n//.CommonJS\nexports.CSSValueExpression = CSSOM.CSSValueExpression;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {};\n///CommonJS\n\n\n/**\n * @constructor\n * @see https://developer.mozilla.org/en/CSS/@-moz-document\n */\nCSSOM.MatcherList = function MatcherList(){\n this.length = 0;\n};\n\nCSSOM.MatcherList.prototype = {\n\n constructor: CSSOM.MatcherList,\n\n /**\n * @return {string}\n */\n get matcherText() {\n return Array.prototype.join.call(this, \", \");\n },\n\n /**\n * @param {string} value\n */\n set matcherText(value) {\n // just a temporary solution, actually it may be wrong by just split the value with ',', because a url can include ','.\n var values = value.split(\",\");\n var length = this.length = values.length;\n for (var i=0; i<length; i++) {\n this[i] = values[i].trim();\n }\n },\n\n /**\n * @param {string} matcher\n */\n appendMatcher: function(matcher) {\n if (Array.prototype.indexOf.call(this, matcher) === -1) {\n this[this.length] = matcher;\n this.length++;\n }\n },\n\n /**\n * @param {string} matcher\n */\n deleteMatcher: function(matcher) {\n var index = Array.prototype.indexOf.call(this, matcher);\n if (index !== -1) {\n Array.prototype.splice.call(this, index, 1);\n }\n }\n\n};\n\n\n//.CommonJS\nexports.MatcherList = CSSOM.MatcherList;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n CSSRule: require(\"./CSSRule\").CSSRule,\n MatcherList: require(\"./MatcherList\").MatcherList\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see https://developer.mozilla.org/en/CSS/@-moz-document\n */\nCSSOM.CSSDocumentRule = function CSSDocumentRule() {\n CSSOM.CSSRule.call(this);\n this.matcher = new CSSOM.MatcherList();\n this.cssRules = [];\n};\n\nCSSOM.CSSDocumentRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSDocumentRule.prototype.constructor = CSSOM.CSSDocumentRule;\nCSSOM.CSSDocumentRule.prototype.type = 10;\n//FIXME\n//CSSOM.CSSDocumentRule.prototype.insertRule = CSSStyleSheet.prototype.insertRule;\n//CSSOM.CSSDocumentRule.prototype.deleteRule = CSSStyleSheet.prototype.deleteRule;\n\nObject.defineProperty(CSSOM.CSSDocumentRule.prototype, \"cssText\", {\n get: function() {\n var cssTexts = [];\n for (var i=0, length=this.cssRules.length; i < length; i++) {\n cssTexts.push(this.cssRules[i].cssText);\n }\n return \"@-moz-document \" + this.matcher.matcherText + \" {\" + cssTexts.join(\"\") + \"}\";\n }\n});\n\n\n//.CommonJS\nexports.CSSDocumentRule = CSSOM.CSSDocumentRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {};\n///CommonJS\n\n\n/**\n * @param {string} token\n */\nCSSOM.parse = function parse(token) {\n\n\tvar i = 0;\n\n\t/**\n\t\t\"before-selector\" or\n\t\t\"selector\" or\n\t\t\"atRule\" or\n\t\t\"atBlock\" or\n\t\t\"conditionBlock\" or\n\t\t\"before-name\" or\n\t\t\"name\" or\n\t\t\"before-value\" or\n\t\t\"value\"\n\t*/\n\tvar state = \"before-selector\";\n\n\tvar index;\n\tvar buffer = \"\";\n\tvar valueParenthesisDepth = 0;\n\n\tvar SIGNIFICANT_WHITESPACE = {\n\t\t\"selector\": true,\n\t\t\"value\": true,\n\t\t\"value-parenthesis\": true,\n\t\t\"atRule\": true,\n\t\t\"importRule-begin\": true,\n\t\t\"importRule\": true,\n\t\t\"atBlock\": true,\n\t\t\"conditionBlock\": true,\n\t\t'documentRule-begin': true\n\t};\n\n\tvar styleSheet = new CSSOM.CSSStyleSheet();\n\n\t// @type CSSStyleSheet|CSSMediaRule|CSSSupportsRule|CSSFontFaceRule|CSSKeyframesRule|CSSDocumentRule\n\tvar currentScope = styleSheet;\n\n\t// @type CSSMediaRule|CSSSupportsRule|CSSKeyframesRule|CSSDocumentRule\n\tvar parentRule;\n\n\tvar ancestorRules = [];\n\tvar hasAncestors = false;\n\tvar prevScope;\n\n\tvar name, priority=\"\", styleRule, mediaRule, supportsRule, importRule, fontFaceRule, keyframesRule, documentRule, hostRule;\n\n\tvar atKeyframesRegExp = /@(-(?:\\w+-)+)?keyframes/g;\n\n\tvar parseError = function(message) {\n\t\tvar lines = token.substring(0, i).split('\\n');\n\t\tvar lineCount = lines.length;\n\t\tvar charCount = lines.pop().length + 1;\n\t\tvar error = new Error(message + ' (line ' + lineCount + ', char ' + charCount + ')');\n\t\terror.line = lineCount;\n\t\t/* jshint sub : true */\n\t\terror['char'] = charCount;\n\t\terror.styleSheet = styleSheet;\n\t\tthrow error;\n\t};\n\n\tfor (var character; (character = token.charAt(i)); i++) {\n\n\t\tswitch (character) {\n\n\t\tcase \" \":\n\t\tcase \"\\t\":\n\t\tcase \"\\r\":\n\t\tcase \"\\n\":\n\t\tcase \"\\f\":\n\t\t\tif (SIGNIFICANT_WHITESPACE[state]) {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\t// String\n\t\tcase '\"':\n\t\t\tindex = i + 1;\n\t\t\tdo {\n\t\t\t\tindex = token.indexOf('\"', index) + 1;\n\t\t\t\tif (!index) {\n\t\t\t\t\tparseError('Unmatched \"');\n\t\t\t\t}\n\t\t\t} while (token[index - 2] === '\\\\');\n\t\t\tbuffer += token.slice(i, index);\n\t\t\ti = index - 1;\n\t\t\tswitch (state) {\n\t\t\t\tcase 'before-value':\n\t\t\t\t\tstate = 'value';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'importRule-begin':\n\t\t\t\t\tstate = 'importRule';\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"'\":\n\t\t\tindex = i + 1;\n\t\t\tdo {\n\t\t\t\tindex = token.indexOf(\"'\", index) + 1;\n\t\t\t\tif (!index) {\n\t\t\t\t\tparseError(\"Unmatched '\");\n\t\t\t\t}\n\t\t\t} while (token[index - 2] === '\\\\');\n\t\t\tbuffer += token.slice(i, index);\n\t\t\ti = index - 1;\n\t\t\tswitch (state) {\n\t\t\t\tcase 'before-value':\n\t\t\t\t\tstate = 'value';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'importRule-begin':\n\t\t\t\t\tstate = 'importRule';\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\n\t\t// Comment\n\t\tcase \"/\":\n\t\t\tif (token.charAt(i + 1) === \"*\") {\n\t\t\t\ti += 2;\n\t\t\t\tindex = token.indexOf(\"*/\", i);\n\t\t\t\tif (index === -1) {\n\t\t\t\t\tparseError(\"Missing */\");\n\t\t\t\t} else {\n\t\t\t\t\ti = index + 1;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tif (state === \"importRule-begin\") {\n\t\t\t\tbuffer += \" \";\n\t\t\t\tstate = \"importRule\";\n\t\t\t}\n\t\t\tbreak;\n\n\t\t// At-rule\n\t\tcase \"@\":\n\t\t\tif (token.indexOf(\"@-moz-document\", i) === i) {\n\t\t\t\tstate = \"documentRule-begin\";\n\t\t\t\tdocumentRule = new CSSOM.CSSDocumentRule();\n\t\t\t\tdocumentRule.__starts = i;\n\t\t\t\ti += \"-moz-document\".length;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tbreak;\n\t\t\t} else if (token.indexOf(\"@media\", i) === i) {\n\t\t\t\tstate = \"atBlock\";\n\t\t\t\tmediaRule = new CSSOM.CSSMediaRule();\n\t\t\t\tmediaRule.__starts = i;\n\t\t\t\ti += \"media\".length;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tbreak;\n\t\t\t} else if (token.indexOf(\"@supports\", i) === i) {\n\t\t\t\tstate = \"conditionBlock\";\n\t\t\t\tsupportsRule = new CSSOM.CSSSupportsRule();\n\t\t\t\tsupportsRule.__starts = i;\n\t\t\t\ti += \"supports\".length;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tbreak;\n\t\t\t} else if (token.indexOf(\"@host\", i) === i) {\n\t\t\t\tstate = \"hostRule-begin\";\n\t\t\t\ti += \"host\".length;\n\t\t\t\thostRule = new CSSOM.CSSHostRule();\n\t\t\t\thostRule.__starts = i;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tbreak;\n\t\t\t} else if (token.indexOf(\"@import\", i) === i) {\n\t\t\t\tstate = \"importRule-begin\";\n\t\t\t\ti += \"import\".length;\n\t\t\t\tbuffer += \"@import\";\n\t\t\t\tbreak;\n\t\t\t} else if (token.indexOf(\"@font-face\", i) === i) {\n\t\t\t\tstate = \"fontFaceRule-begin\";\n\t\t\t\ti += \"font-face\".length;\n\t\t\t\tfontFaceRule = new CSSOM.CSSFontFaceRule();\n\t\t\t\tfontFaceRule.__starts = i;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tatKeyframesRegExp.lastIndex = i;\n\t\t\t\tvar matchKeyframes = atKeyframesRegExp.exec(token);\n\t\t\t\tif (matchKeyframes && matchKeyframes.index === i) {\n\t\t\t\t\tstate = \"keyframesRule-begin\";\n\t\t\t\t\tkeyframesRule = new CSSOM.CSSKeyframesRule();\n\t\t\t\t\tkeyframesRule.__starts = i;\n\t\t\t\t\tkeyframesRule._vendorPrefix = matchKeyframes[1]; // Will come out as undefined if no prefix was found\n\t\t\t\t\ti += matchKeyframes[0].length - 1;\n\t\t\t\t\tbuffer = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (state === \"selector\") {\n\t\t\t\t\tstate = \"atRule\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuffer += character;\n\t\t\tbreak;\n\n\t\tcase \"{\":\n\t\t\tif (state === \"selector\" || state === \"atRule\") {\n\t\t\t\tstyleRule.selectorText = buffer.trim();\n\t\t\t\tstyleRule.style.__starts = i;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-name\";\n\t\t\t} else if (state === \"atBlock\") {\n\t\t\t\tmediaRule.media.mediaText = buffer.trim();\n\n\t\t\t\tif (parentRule) {\n\t\t\t\t\tancestorRules.push(parentRule);\n\t\t\t\t}\n\n\t\t\t\tcurrentScope = parentRule = mediaRule;\n\t\t\t\tmediaRule.parentStyleSheet = styleSheet;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-selector\";\n\t\t\t} else if (state === \"conditionBlock\") {\n\t\t\t\tsupportsRule.conditionText = buffer.trim();\n\n\t\t\t\tif (parentRule) {\n\t\t\t\t\tancestorRules.push(parentRule);\n\t\t\t\t}\n\n\t\t\t\tcurrentScope = parentRule = supportsRule;\n\t\t\t\tsupportsRule.parentStyleSheet = styleSheet;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-selector\";\n\t\t\t} else if (state === \"hostRule-begin\") {\n\t\t\t\tif (parentRule) {\n\t\t\t\t\tancestorRules.push(parentRule);\n\t\t\t\t}\n\n\t\t\t\tcurrentScope = parentRule = hostRule;\n\t\t\t\thostRule.parentStyleSheet = styleSheet;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-selector\";\n\t\t\t} else if (state === \"fontFaceRule-begin\") {\n\t\t\t\tif (parentRule) {\n\t\t\t\t\tfontFaceRule.parentRule = parentRule;\n\t\t\t\t}\n\t\t\t\tfontFaceRule.parentStyleSheet = styleSheet;\n\t\t\t\tstyleRule = fontFaceRule;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-name\";\n\t\t\t} else if (state === \"keyframesRule-begin\") {\n\t\t\t\tkeyframesRule.name = buffer.trim();\n\t\t\t\tif (parentRule) {\n\t\t\t\t\tancestorRules.push(parentRule);\n\t\t\t\t\tkeyframesRule.parentRule = parentRule;\n\t\t\t\t}\n\t\t\t\tkeyframesRule.parentStyleSheet = styleSheet;\n\t\t\t\tcurrentScope = parentRule = keyframesRule;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"keyframeRule-begin\";\n\t\t\t} else if (state === \"keyframeRule-begin\") {\n\t\t\t\tstyleRule = new CSSOM.CSSKeyframeRule();\n\t\t\t\tstyleRule.keyText = buffer.trim();\n\t\t\t\tstyleRule.__starts = i;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-name\";\n\t\t\t} else if (state === \"documentRule-begin\") {\n\t\t\t\t// FIXME: what if this '{' is in the url text of the match function?\n\t\t\t\tdocumentRule.matcher.matcherText = buffer.trim();\n\t\t\t\tif (parentRule) {\n\t\t\t\t\tancestorRules.push(parentRule);\n\t\t\t\t\tdocumentRule.parentRule = parentRule;\n\t\t\t\t}\n\t\t\t\tcurrentScope = parentRule = documentRule;\n\t\t\t\tdocumentRule.parentStyleSheet = styleSheet;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-selector\";\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \":\":\n\t\t\tif (state === \"name\") {\n\t\t\t\tname = buffer.trim();\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-value\";\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"(\":\n\t\t\tif (state === 'value') {\n\t\t\t\t// ie css expression mode\n\t\t\t\tif (buffer.trim() === 'expression') {\n\t\t\t\t\tvar info = (new CSSOM.CSSValueExpression(token, i)).parse();\n\n\t\t\t\t\tif (info.error) {\n\t\t\t\t\t\tparseError(info.error);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbuffer += info.expression;\n\t\t\t\t\t\ti = info.idx;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tstate = 'value-parenthesis';\n\t\t\t\t\t//always ensure this is reset to 1 on transition\n\t\t\t\t\t//from value to value-parenthesis\n\t\t\t\t\tvalueParenthesisDepth = 1;\n\t\t\t\t\tbuffer += character;\n\t\t\t\t}\n\t\t\t} else if (state === 'value-parenthesis') {\n\t\t\t\tvalueParenthesisDepth++;\n\t\t\t\tbuffer += character;\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \")\":\n\t\t\tif (state === 'value-parenthesis') {\n\t\t\t\tvalueParenthesisDepth--;\n\t\t\t\tif (valueParenthesisDepth === 0) state = 'value';\n\t\t\t}\n\t\t\tbuffer += character;\n\t\t\tbreak;\n\n\t\tcase \"!\":\n\t\t\tif (state === \"value\" && token.indexOf(\"!important\", i) === i) {\n\t\t\t\tpriority = \"important\";\n\t\t\t\ti += \"important\".length;\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \";\":\n\t\t\tswitch (state) {\n\t\t\t\tcase \"value\":\n\t\t\t\t\tstyleRule.style.setProperty(name, buffer.trim(), priority);\n\t\t\t\t\tpriority = \"\";\n\t\t\t\t\tbuffer = \"\";\n\t\t\t\t\tstate = \"before-name\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"atRule\":\n\t\t\t\t\tbuffer = \"\";\n\t\t\t\t\tstate = \"before-selector\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"importRule\":\n\t\t\t\t\timportRule = new CSSOM.CSSImportRule();\n\t\t\t\t\timportRule.parentStyleSheet = importRule.styleSheet.parentStyleSheet = styleSheet;\n\t\t\t\t\timportRule.cssText = buffer + character;\n\t\t\t\t\tstyleSheet.cssRules.push(importRule);\n\t\t\t\t\tbuffer = \"\";\n\t\t\t\t\tstate = \"before-selector\";\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbuffer += character;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"}\":\n\t\t\tswitch (state) {\n\t\t\t\tcase \"value\":\n\t\t\t\t\tstyleRule.style.setProperty(name, buffer.trim(), priority);\n\t\t\t\t\tpriority = \"\";\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase \"before-name\":\n\t\t\t\tcase \"name\":\n\t\t\t\t\tstyleRule.__ends = i + 1;\n\t\t\t\t\tif (parentRule) {\n\t\t\t\t\t\tstyleRule.parentRule = parentRule;\n\t\t\t\t\t}\n\t\t\t\t\tstyleRule.parentStyleSheet = styleSheet;\n\t\t\t\t\tcurrentScope.cssRules.push(styleRule);\n\t\t\t\t\tbuffer = \"\";\n\t\t\t\t\tif (currentScope.constructor === CSSOM.CSSKeyframesRule) {\n\t\t\t\t\t\tstate = \"keyframeRule-begin\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"before-selector\";\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"keyframeRule-begin\":\n\t\t\t\tcase \"before-selector\":\n\t\t\t\tcase \"selector\":\n\t\t\t\t\t// End of media/supports/document rule.\n\t\t\t\t\tif (!parentRule) {\n\t\t\t\t\t\tparseError(\"Unexpected }\");\n\t\t\t\t\t}\n\n\t\t\t\t\t// Handle rules nested in @media or @supports\n\t\t\t\t\thasAncestors = ancestorRules.length > 0;\n\n\t\t\t\t\twhile (ancestorRules.length > 0) {\n\t\t\t\t\t\tparentRule = ancestorRules.pop();\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tparentRule.constructor.name === \"CSSMediaRule\"\n\t\t\t\t\t\t\t|| parentRule.constructor.name === \"CSSSupportsRule\"\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tprevScope = currentScope;\n\t\t\t\t\t\t\tcurrentScope = parentRule;\n\t\t\t\t\t\t\tcurrentScope.cssRules.push(prevScope);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (ancestorRules.length === 0) {\n\t\t\t\t\t\t\thasAncestors = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (!hasAncestors) {\n\t\t\t\t\t\tcurrentScope.__ends = i + 1;\n\t\t\t\t\t\tstyleSheet.cssRules.push(currentScope);\n\t\t\t\t\t\tcurrentScope = styleSheet;\n\t\t\t\t\t\tparentRule = null;\n\t\t\t\t\t}\n\n\t\t\t\t\tbuffer = \"\";\n\t\t\t\t\tstate = \"before-selector\";\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tswitch (state) {\n\t\t\t\tcase \"before-selector\":\n\t\t\t\t\tstate = \"selector\";\n\t\t\t\t\tstyleRule = new CSSOM.CSSStyleRule();\n\t\t\t\t\tstyleRule.__starts = i;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"before-name\":\n\t\t\t\t\tstate = \"name\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"before-value\":\n\t\t\t\t\tstate = \"value\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"importRule-begin\":\n\t\t\t\t\tstate = \"importRule\";\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbuffer += character;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn styleSheet;\n};\n\n\n//.CommonJS\nexports.parse = CSSOM.parse;\n// The following modules cannot be included sooner due to the mutual dependency with parse.js\nCSSOM.CSSStyleSheet = require(\"./CSSStyleSheet\").CSSStyleSheet;\nCSSOM.CSSStyleRule = require(\"./CSSStyleRule\").CSSStyleRule;\nCSSOM.CSSImportRule = require(\"./CSSImportRule\").CSSImportRule;\nCSSOM.CSSGroupingRule = require(\"./CSSGroupingRule\").CSSGroupingRule;\nCSSOM.CSSMediaRule = require(\"./CSSMediaRule\").CSSMediaRule;\nCSSOM.CSSConditionRule = require(\"./CSSConditionRule\").CSSConditionRule;\nCSSOM.CSSSupportsRule = require(\"./CSSSupportsRule\").CSSSupportsRule;\nCSSOM.CSSFontFaceRule = require(\"./CSSFontFaceRule\").CSSFontFaceRule;\nCSSOM.CSSHostRule = require(\"./CSSHostRule\").CSSHostRule;\nCSSOM.CSSStyleDeclaration = require('./CSSStyleDeclaration').CSSStyleDeclaration;\nCSSOM.CSSKeyframeRule = require('./CSSKeyframeRule').CSSKeyframeRule;\nCSSOM.CSSKeyframesRule = require('./CSSKeyframesRule').CSSKeyframesRule;\nCSSOM.CSSValueExpression = require('./CSSValueExpression').CSSValueExpression;\nCSSOM.CSSDocumentRule = require('./CSSDocumentRule').CSSDocumentRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration\n */\nCSSOM.CSSStyleDeclaration = function CSSStyleDeclaration(){\n\tthis.length = 0;\n\tthis.parentRule = null;\n\n\t// NON-STANDARD\n\tthis._importants = {};\n};\n\n\nCSSOM.CSSStyleDeclaration.prototype = {\n\n\tconstructor: CSSOM.CSSStyleDeclaration,\n\n\t/**\n\t *\n\t * @param {string} name\n\t * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-getPropertyValue\n\t * @return {string} the value of the property if it has been explicitly set for this declaration block.\n\t * Returns the empty string if the property has not been set.\n\t */\n\tgetPropertyValue: function(name) {\n\t\treturn this[name] || \"\";\n\t},\n\n\t/**\n\t *\n\t * @param {string} name\n\t * @param {string} value\n\t * @param {string} [priority=null] \"important\" or null\n\t * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-setProperty\n\t */\n\tsetProperty: function(name, value, priority) {\n\t\tif (this[name]) {\n\t\t\t// Property already exist. Overwrite it.\n\t\t\tvar index = Array.prototype.indexOf.call(this, name);\n\t\t\tif (index < 0) {\n\t\t\t\tthis[this.length] = name;\n\t\t\t\tthis.length++;\n\t\t\t}\n\t\t} else {\n\t\t\t// New property.\n\t\t\tthis[this.length] = name;\n\t\t\tthis.length++;\n\t\t}\n\t\tthis[name] = value + \"\";\n\t\tthis._importants[name] = priority;\n\t},\n\n\t/**\n\t *\n\t * @param {string} name\n\t * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-removeProperty\n\t * @return {string} the value of the property if it has been explicitly set for this declaration block.\n\t * Returns the empty string if the property has not been set or the property name does not correspond to a known CSS property.\n\t */\n\tremoveProperty: function(name) {\n\t\tif (!(name in this)) {\n\t\t\treturn \"\";\n\t\t}\n\t\tvar index = Array.prototype.indexOf.call(this, name);\n\t\tif (index < 0) {\n\t\t\treturn \"\";\n\t\t}\n\t\tvar prevValue = this[name];\n\t\tthis[name] = \"\";\n\n\t\t// That's what WebKit and Opera do\n\t\tArray.prototype.splice.call(this, index, 1);\n\n\t\t// That's what Firefox does\n\t\t//this[index] = \"\"\n\n\t\treturn prevValue;\n\t},\n\n\tgetPropertyCSSValue: function() {\n\t\t//FIXME\n\t},\n\n\t/**\n\t *\n\t * @param {String} name\n\t */\n\tgetPropertyPriority: function(name) {\n\t\treturn this._importants[name] || \"\";\n\t},\n\n\n\t/**\n\t * element.style.overflow = \"auto\"\n\t * element.style.getPropertyShorthand(\"overflow-x\")\n\t * -> \"overflow\"\n\t */\n\tgetPropertyShorthand: function() {\n\t\t//FIXME\n\t},\n\n\tisPropertyImplicit: function() {\n\t\t//FIXME\n\t},\n\n\t// Doesn't work in IE < 9\n\tget cssText(){\n\t\tvar properties = [];\n\t\tfor (var i=0, length=this.length; i < length; ++i) {\n\t\t\tvar name = this[i];\n\t\t\tvar value = this.getPropertyValue(name);\n\t\t\tvar priority = this.getPropertyPriority(name);\n\t\t\tif (priority) {\n\t\t\t\tpriority = \" !\" + priority;\n\t\t\t}\n\t\t\tproperties[i] = name + \": \" + value + priority + \";\";\n\t\t}\n\t\treturn properties.join(\" \");\n\t},\n\n\tset cssText(text){\n\t\tvar i, name;\n\t\tfor (i = this.length; i--;) {\n\t\t\tname = this[i];\n\t\t\tthis[name] = \"\";\n\t\t}\n\t\tArray.prototype.splice.call(this, 0, this.length);\n\t\tthis._importants = {};\n\n\t\tvar dummyRule = CSSOM.parse('#bogus{' + text + '}').cssRules[0].style;\n\t\tvar length = dummyRule.length;\n\t\tfor (i = 0; i < length; ++i) {\n\t\t\tname = dummyRule[i];\n\t\t\tthis.setProperty(dummyRule[i], dummyRule.getPropertyValue(name), dummyRule.getPropertyPriority(name));\n\t\t}\n\t}\n};\n\n\n//.CommonJS\nexports.CSSStyleDeclaration = CSSOM.CSSStyleDeclaration;\nCSSOM.parse = require('./parse').parse; // Cannot be included sooner due to the mutual dependency between parse.js and CSSStyleDeclaration.js\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n\tCSSStyleSheet: require(\"./CSSStyleSheet\").CSSStyleSheet,\n\tCSSRule: require(\"./CSSRule\").CSSRule,\n\tCSSStyleRule: require(\"./CSSStyleRule\").CSSStyleRule,\n\tCSSGroupingRule: require(\"./CSSGroupingRule\").CSSGroupingRule,\n\tCSSConditionRule: require(\"./CSSConditionRule\").CSSConditionRule,\n\tCSSMediaRule: require(\"./CSSMediaRule\").CSSMediaRule,\n\tCSSSupportsRule: require(\"./CSSSupportsRule\").CSSSupportsRule,\n\tCSSStyleDeclaration: require(\"./CSSStyleDeclaration\").CSSStyleDeclaration,\n\tCSSKeyframeRule: require('./CSSKeyframeRule').CSSKeyframeRule,\n\tCSSKeyframesRule: require('./CSSKeyframesRule').CSSKeyframesRule\n};\n///CommonJS\n\n\n/**\n * Produces a deep copy of stylesheet \u2014 the instance variables of stylesheet are copied recursively.\n * @param {CSSStyleSheet|CSSOM.CSSStyleSheet} stylesheet\n * @nosideeffects\n * @return {CSSOM.CSSStyleSheet}\n */\nCSSOM.clone = function clone(stylesheet) {\n\n\tvar cloned = new CSSOM.CSSStyleSheet();\n\n\tvar rules = stylesheet.cssRules;\n\tif (!rules) {\n\t\treturn cloned;\n\t}\n\n\tfor (var i = 0, rulesLength = rules.length; i < rulesLength; i++) {\n\t\tvar rule = rules[i];\n\t\tvar ruleClone = cloned.cssRules[i] = new rule.constructor();\n\n\t\tvar style = rule.style;\n\t\tif (style) {\n\t\t\tvar styleClone = ruleClone.style = new CSSOM.CSSStyleDeclaration();\n\t\t\tfor (var j = 0, styleLength = style.length; j < styleLength; j++) {\n\t\t\t\tvar name = styleClone[j] = style[j];\n\t\t\t\tstyleClone[name] = style[name];\n\t\t\t\tstyleClone._importants[name] = style.getPropertyPriority(name);\n\t\t\t}\n\t\t\tstyleClone.length = style.length;\n\t\t}\n\n\t\tif (rule.hasOwnProperty('keyText')) {\n\t\t\truleClone.keyText = rule.keyText;\n\t\t}\n\n\t\tif (rule.hasOwnProperty('selectorText')) {\n\t\t\truleClone.selectorText = rule.selectorText;\n\t\t}\n\n\t\tif (rule.hasOwnProperty('mediaText')) {\n\t\t\truleClone.mediaText = rule.mediaText;\n\t\t}\n\n\t\tif (rule.hasOwnProperty('conditionText')) {\n\t\t\truleClone.conditionText = rule.conditionText;\n\t\t}\n\n\t\tif (rule.hasOwnProperty('cssRules')) {\n\t\t\truleClone.cssRules = clone(rule).cssRules;\n\t\t}\n\t}\n\n\treturn cloned;\n\n};\n\n//.CommonJS\nexports.clone = CSSOM.clone;\n///CommonJS\n", "'use strict';\n\nexports.CSSStyleDeclaration = require('./CSSStyleDeclaration').CSSStyleDeclaration;\nexports.CSSRule = require('./CSSRule').CSSRule;\nexports.CSSGroupingRule = require('./CSSGroupingRule').CSSGroupingRule;\nexports.CSSConditionRule = require('./CSSConditionRule').CSSConditionRule;\nexports.CSSStyleRule = require('./CSSStyleRule').CSSStyleRule;\nexports.MediaList = require('./MediaList').MediaList;\nexports.CSSMediaRule = require('./CSSMediaRule').CSSMediaRule;\nexports.CSSSupportsRule = require('./CSSSupportsRule').CSSSupportsRule;\nexports.CSSImportRule = require('./CSSImportRule').CSSImportRule;\nexports.CSSFontFaceRule = require('./CSSFontFaceRule').CSSFontFaceRule;\nexports.CSSHostRule = require('./CSSHostRule').CSSHostRule;\nexports.StyleSheet = require('./StyleSheet').StyleSheet;\nexports.CSSStyleSheet = require('./CSSStyleSheet').CSSStyleSheet;\nexports.CSSKeyframesRule = require('./CSSKeyframesRule').CSSKeyframesRule;\nexports.CSSKeyframeRule = require('./CSSKeyframeRule').CSSKeyframeRule;\nexports.MatcherList = require('./MatcherList').MatcherList;\nexports.CSSDocumentRule = require('./CSSDocumentRule').CSSDocumentRule;\nexports.CSSValue = require('./CSSValue').CSSValue;\nexports.CSSValueExpression = require('./CSSValueExpression').CSSValueExpression;\nexports.parse = require('./parse').parse;\nexports.clone = require('./clone').clone;\n", "class Canvas {\n constructor(width, height) {\n this.width = width;\n this.height = height;\n }\n getContext() {\n return null;\n }\n toDataURL() {\n return '';\n }\n}\n\nmodule.exports = {\n createCanvas: (width, height) => new Canvas(width, height),\n};\n", "/* c8 ignore start */\ntry {\n module.exports = require('canvas');\n} catch (fallback) {\n module.exports = require('./canvas-shim.cjs');\n}\n/* c8 ignore stop */\n", "import \"reflect-metadata\";\n\nimport * as shared from \"./shared\";\nexport { shared };\n\nexport * from \"./shared/types\";\nexport * from \"./shared/symbols\";\nexport * from \"./shared/decorators\";\nexport * from \"./shared/module\";\nexport * from \"./shared/jsx\";\nexport * from \"./shared/observable\";\nexport * from \"./shared/signal\";\nexport * from \"./shared/json\";\nexport * from \"./shared/component\";\nexport * from \"./shared/module_libs\";\nexport * from \"./shared/dom\";\nexport * from \"./shared/macros\";\n\nimport * as browser from \"./browser\";\nexport { browser };\n\nexport * from \"./browser/dom\";\nexport * from \"./browser/factory\";\n", "export * from \"./decorators\";\nexport * from \"./symbols\";\nexport * from \"./types\";\nexport * from \"./module\";\nexport * from \"./jsx\";\nexport * from \"./renderers\";\nexport * from \"./json\";\nexport * from \"./signal\";\nexport * from \"./observable\";\nexport * from \"./store\";\nexport * from \"./component\";\nexport * from \"./module_libs\";\nexport * from \"./dom\";\nexport * from \"./macros\";\n", "class Store {\n private namespace = new Map<string, unknown>();\n\n set<T>(name: string, value: T): void {\n this.namespace.set(name, value);\n }\n\n get<T>(name: string): T | undefined {\n return this.namespace.get(name) as T | undefined;\n }\n\n update<T>(name: string, updater: (current: T | undefined) => T): void {\n const current = this.get<T>(name);\n const next = updater(current);\n this.set(name, next);\n }\n}\n\nexport const store = new Store();\n", "export const DECLARATIONS_KEY = Symbol(\"orca:declarations\");\nexport const PROVIDERS_KEY = Symbol(\"orca:providers\");\nexport const CONTROLLERS_KEY = Symbol(\"orca:controllers\");\nexport const BOOTSTRAP = Symbol(\"orca:bootstrap\");\nexport const BOOTSTRAP_VNODE = Symbol(\"orca:bootstrap:vnode\");\nexport const IMPORTS_KEY = Symbol(\"orca:imports\");\nexport const EXPORTS_KEY = Symbol(\"orca:exports\");\nexport const INJECTABLE = Symbol(\"orca:injectable\");\nexport const COMPONENT = Symbol(\"orca:component\");\nexport const COMPONENT_PROVIDERS = Symbol(\"orca:component:providers\");\nexport const COMPONENT_DEPS = Symbol(\"orca:component:deps\");\nexport const INJECT_TOKENS_KEY = Symbol(\"orca:injectTokens\");\nexport const NODE = Symbol(\"orca:node\");\nexport const DESIGN_PARAMTYPES = \"design:paramtypes\";\nexport const CONTROLLER = Symbol(\"orca:controller\");\nexport const CONTROLLER_PREFIX_KEY = Symbol(\"orca:controllerPrefix\");\nexport const PARAMS_META_KEY = Symbol(\"orca:paramsMeta\");\nexport const HTTP_METHOD_KEY = Symbol(\"orca:method\");\nexport const PATH_KEY = Symbol(\"orca:path\");\nexport const EXPRESS_ADAPTER_HOST = Symbol(\"orca:express\");\nexport const SIGNATURE_METADATA_KEY = Symbol(\"orca:signature:schemas\");\n\n// over the wire symbols\nexport const ERROR_ELEMENT = Symbol.for(\"orca:error\");\nexport const ORCA_ELEMENT_TYPE = Symbol.for(\"orca:element\");\nexport const ORCA_FRAGMENT_TYPE = Symbol.for(\"orca:fragment\");\nexport const ORCA_CLIENT_COMPONENT = Symbol.for(\"orca.client.component\");\nexport const PENDING_REFERENCE_TYPE = Symbol.for(\"orca:pending_reference\");\n", "export type Constructor<T = any> = new (...args: any[]) => T;\n\nexport type Token<T> = Constructor<T> | string | symbol;\n\nexport type Scope = \"singleton\" | \"transient\";\n\nexport interface Provider<T = any> {\n provide: Token<T>;\n useClass?: Constructor<T>;\n useValue?: T;\n useFactory?: (...args: any[]) => T;\n scope?: Scope;\n useExisting?: Token<T>;\n deps?: Token<any>[];\n eager?: boolean;\n}\n\nexport interface DynamicModule {\n module: Constructor;\n providers?: (Provider | Constructor)[];\n controllers?: Constructor[];\n declarations?: Constructor[];\n imports?: IModule[];\n exports?: Token<any>[];\n}\n\nexport type IModule = Constructor | DynamicModule;\n\nexport interface ModuleParams {\n declarations?: Constructor[];\n controllers?: Constructor[];\n providers?: (Provider | Constructor)[];\n imports?: IModule[];\n exports?: Token<any>[];\n bootstrap?: Constructor;\n}\n\nexport interface ComponentParams {\n providers?: (Provider | Constructor)[];\n deps?: Constructor[];\n}\n\nexport interface InjectParams {\n maybe?: boolean;\n}\n\nexport interface InjectedToken<T> {\n token: Token<T>;\n maybe?: boolean;\n}\n\nexport enum HandlerParamType {\n ROUTE_PARAM = \"ROUTE_PARAM\",\n BODY = \"BODY\",\n}\n\nexport enum HttpMethod {\n GET = \"get\",\n POST = \"post\",\n}\n\nexport type MethodDecorator = <T>(\n target: Object,\n propertyKey: string | symbol,\n descriptor: TypedPropertyDescriptor<T>\n) => void | TypedPropertyDescriptor<T>;\n\nexport interface Signal<T> {\n get value(): T;\n set value(newValue: T);\n}\n\nexport type Subscriber = () => void;\n\nexport interface Observer<T> {\n next: (value: T) => void;\n error?: (err: any) => void;\n complete?: () => void;\n}\n\nexport type ValidatableSchema = {\n parse: (input: any) => any;\n};\n\nexport interface ControllerParams {\n providedIn?: string;\n}\n", "import { store } from \"./store\";\nimport { BOOTSTRAP, COMPONENT, COMPONENT_DEPS, COMPONENT_PROVIDERS, CONTROLLER, CONTROLLER_PREFIX_KEY, CONTROLLERS_KEY, DECLARATIONS_KEY, EXPORTS_KEY, HTTP_METHOD_KEY, IMPORTS_KEY, INJECT_TOKENS_KEY, INJECTABLE, PARAMS_META_KEY, PATH_KEY, PROVIDERS_KEY, SIGNATURE_METADATA_KEY, } from \"./symbols\";\nimport { HandlerParamType, HttpMethod, } from \"./types\";\nexport function Module(params = {}) {\n return function (target) {\n Reflect.defineMetadata(PROVIDERS_KEY, params.providers || [], target);\n Reflect.defineMetadata(DECLARATIONS_KEY, params.declarations || [], target);\n Reflect.defineMetadata(IMPORTS_KEY, params.imports || [], target);\n Reflect.defineMetadata(EXPORTS_KEY, params.exports || [], target);\n Reflect.defineMetadata(CONTROLLERS_KEY, params.controllers || [], target);\n Reflect.defineMetadata(BOOTSTRAP, params.bootstrap || [], target);\n };\n}\nexport function Injectable() {\n return function (target) {\n Reflect.defineMetadata(INJECTABLE, true, target);\n return target;\n };\n}\nexport function Component(params = {}) {\n return function (target) {\n store.update(\"components\", (current) => {\n const next = current ?? new Map();\n next.set(target.name, target);\n return next;\n });\n Reflect.defineMetadata(COMPONENT, true, target);\n Reflect.defineMetadata(COMPONENT_PROVIDERS, params.providers || [], target);\n Reflect.defineMetadata(COMPONENT_DEPS, params.deps || [], target);\n return target;\n };\n}\nexport function Inject(token, params = {}) {\n return function (target, _propertyKey, parameterIndex) {\n const existingTokens = Reflect.getOwnMetadata(INJECT_TOKENS_KEY, target) || new Map();\n existingTokens.set(parameterIndex, {\n token: token,\n ...params,\n });\n Reflect.defineMetadata(INJECT_TOKENS_KEY, existingTokens, target);\n };\n}\nexport function Controller(prefix, options = {}) {\n return function (target) {\n Injectable()(target);\n if (options.providedIn == \"root\") {\n store.update(\"root_controllers\", (current) => {\n const next = current ?? new Set();\n next.add(target);\n return next;\n });\n }\n Reflect.defineMetadata(CONTROLLER_PREFIX_KEY, prefix ?? \"/\", target);\n Reflect.defineMetadata(CONTROLLER, true, target);\n };\n}\nfunction getHandlerParamDecorator(type, key) {\n return function (target, methodName, index) {\n const paramsMeta = Reflect.getMetadata(PARAMS_META_KEY, target, methodName) ?? {};\n paramsMeta[index] = { key, type };\n Reflect.defineMetadata(PARAMS_META_KEY, paramsMeta, target, methodName);\n };\n}\nexport function Param(key) {\n return getHandlerParamDecorator(HandlerParamType.ROUTE_PARAM, key);\n}\nexport function Body(key) {\n return getHandlerParamDecorator(HandlerParamType.BODY, key);\n}\nfunction getRouteDecorator(httpMethod, path) {\n return function (target, key, descriptor) {\n Reflect.defineMetadata(HTTP_METHOD_KEY, httpMethod, target, key);\n Reflect.defineMetadata(PATH_KEY, path, target, key);\n };\n}\nexport function Get(path) {\n return getRouteDecorator(HttpMethod.GET, path ?? \"\");\n}\nexport function Post(path) {\n return getRouteDecorator(HttpMethod.POST, path ?? \"\");\n}\nexport function Signature(...schemas) {\n return function (target, propertyKey, descriptor) {\n Reflect.defineMetadata(SIGNATURE_METADATA_KEY, schemas, target, propertyKey);\n const originalMethod = descriptor.value;\n descriptor.value = async function (...args) {\n return originalMethod.apply(this, args);\n };\n return descriptor;\n };\n}\nexport function getSignatureMetadata(target, propertyKey) {\n return Reflect.getMetadata(SIGNATURE_METADATA_KEY, target, propertyKey);\n}\nexport function hasSignature(target, propertyKey) {\n return Reflect.hasMetadata(SIGNATURE_METADATA_KEY, target, propertyKey);\n}\nexport function parseSignatureSchemas(schemas, paramCount) {\n if (schemas.length === 0) {\n return { paramSchemas: [] };\n }\n if (schemas.length === 1) {\n return {\n paramSchemas: [],\n returnSchema: schemas[0],\n };\n }\n const paramSchemas = schemas.slice(0, -1);\n const returnSchema = schemas[schemas.length - 1];\n if (paramSchemas.length !== paramCount) {\n throw new Error(`@Signature decorator has ${paramSchemas.length} parameter schemas but method has ${paramCount} parameters. They must match.`);\n }\n return { paramSchemas, returnSchema };\n}\n", "import { Constructor, Provider, Token } from \"../types\";\n\nexport class ProviderNormalizer {\n static normalize(provider: Provider | Constructor): Provider {\n if (typeof provider === \"function\") {\n return { provide: provider, useClass: provider, scope: \"singleton\" };\n }\n return { scope: \"singleton\", ...provider };\n }\n}\n\nexport class Node {\n private children: Node[] = [];\n private tokens = new Map<Token<any>, Token<any>[]>();\n private exports: Set<Token<any>> = new Set();\n private providers = new Map<Token<any>, Provider>();\n\n constructor(public name: string) {}\n\n traverse(cb: (node: Node) => void) {\n cb(this);\n this.children.forEach((child) => child.traverse(cb));\n }\n\n addProviders(providers: (Provider | Constructor)[]) {\n providers.forEach((p) => {\n const normalized = ProviderNormalizer.normalize(p);\n this.providers.set(normalized.provide, normalized);\n });\n }\n\n getProviders(): Map<Token<any>, Provider> {\n return this.providers;\n }\n\n setChildren(children: Node[]) {\n this.children = children;\n }\n\n addToken(token: Token<any>, dependencies: Token<any>[]) {\n this.tokens.set(token, dependencies);\n }\n\n addExport(token: Token<any>) {\n this.exports.add(token);\n }\n\n getTokens(): Map<Token<any>, Token<any>[]> {\n return this.tokens;\n }\n\n getExports(): Set<Token<any>> {\n return this.exports;\n }\n\n getChildren(): Node[] {\n return this.children;\n }\n}\n", "import { COMPONENT, COMPONENT_DEPS, COMPONENT_PROVIDERS, CONTROLLERS_KEY, DECLARATIONS_KEY, DESIGN_PARAMTYPES, EXPORTS_KEY, IMPORTS_KEY, INJECT_TOKENS_KEY, PROVIDERS_KEY, } from \"../symbols\";\nimport { Node } from \"./node\";\nexport class Compiler {\n constructor() {\n this.nodes = new Map();\n }\n compile(rootModule) {\n return this.createNode(rootModule);\n }\n createNode(moduleOrDynamic) {\n const target = this.isDynamicModule(moduleOrDynamic)\n ? moduleOrDynamic.module\n : moduleOrDynamic;\n if (this.nodes.has(target.name))\n return this.nodes.get(target.name);\n const node = new Node(target.name);\n this.nodes.set(target.name, node);\n const imports = this.getImports(moduleOrDynamic);\n node.setChildren(imports.map((imp) => this.createNode(imp)));\n const providers = this.getProviders(moduleOrDynamic);\n const controllers = this.getControllers(moduleOrDynamic);\n const declarations = this.getDeclarations(moduleOrDynamic);\n [...providers, ...controllers].forEach((item) => {\n const token = this.getProviderToken(item);\n const deps = this.extractDependencies(item);\n node.addToken(token, deps);\n });\n node.addProviders(providers);\n declarations.forEach((dec) => {\n node.addProviders([{ provide: dec, useClass: dec, scope: \"transient\" }]);\n });\n controllers.forEach((ctrl) => {\n node.addProviders([\n { provide: ctrl, useClass: ctrl, scope: \"singleton\" },\n ]);\n });\n [...declarations, ...controllers].forEach((comp) => {\n if (Reflect.getMetadata(COMPONENT, comp)) {\n const constructorDeps = this.getConstructorDependencies(comp);\n node.addToken(comp, constructorDeps);\n const componentDeps = Reflect.getMetadata(COMPONENT_DEPS, comp) || [];\n const allDeps = [...constructorDeps, ...componentDeps];\n node.addToken(comp, allDeps);\n const localProviders = Reflect.getMetadata(COMPONENT_PROVIDERS, comp) || [];\n node.addProviders(localProviders);\n localProviders.forEach((lp) => {\n const token = this.getProviderToken(lp);\n const deps = this.extractDependencies(lp);\n node.addToken(token, deps);\n });\n }\n });\n this.getExports(moduleOrDynamic).forEach((exp) => node.addExport(exp));\n return node;\n }\n validate(rootNode) {\n const errors = [];\n const allNodes = new Map();\n this.collectAllNodes(rootNode, allNodes);\n const tokenName = (token) => typeof token === \"function\" ? token.name : String(token);\n allNodes.forEach((node) => {\n const moduleName = node.name;\n const providedTokens = node.getTokens();\n const exportedTokens = node.getExports();\n for (const exp of exportedTokens) {\n if (!providedTokens.has(exp)) {\n errors.push(`\u274C EXPORT ERROR in module \"${moduleName}\":\\n` +\n ` Exports token \"${tokenName(exp)}\" but this module does not provide it.\\n` +\n ` \u2192 Add it to providers/controllers/declarations, or remove from exports.`);\n }\n }\n const seen = new Set();\n for (const token of providedTokens.keys()) {\n if (seen.has(token)) {\n errors.push(`\u274C DUPLICATE PROVIDER in module \"${moduleName}\":\\n` +\n ` Token \"${tokenName(token)}\" is registered more than once.\\n` +\n ` \u2192 Remove duplicate entries.`);\n }\n seen.add(token);\n }\n for (const [token, deps] of providedTokens) {\n for (const dep of deps) {\n if (providedTokens.has(dep))\n continue;\n const providingModule = this.findProvidingModule(dep, node, allNodes, new Set());\n if (!providingModule) {\n const consumer = tokenName(token);\n const missing = tokenName(dep);\n const possibleProviders = Array.from(allNodes.values())\n .filter((n) => n.getTokens().has(dep))\n .map((n) => n.name);\n let suggestion = \"\";\n if (possibleProviders.length > 0) {\n suggestion =\n `\\n \u2192 \"${missing}\" IS provided in: ${possibleProviders.join(\", \")}\\n` +\n ` \u2192 Ensure one of those modules exports it AND \"${moduleName}\" imports that module.`;\n }\n else {\n suggestion = `\\n \u2192 \"${missing}\" is not provided anywhere. Add a provider for it.`;\n }\n errors.push(`\u274C UNRESOLVED DEPENDENCY in module \"${moduleName}\":\\n` +\n ` \"${consumer}\" requires \"${missing}\"${suggestion}`);\n }\n }\n }\n providedTokens.forEach((deps, token) => {\n if (typeof token === \"function\" &&\n Reflect.getMetadata(COMPONENT, token)) {\n const componentDeps = Reflect.getMetadata(COMPONENT_DEPS, token) || [];\n componentDeps.forEach((depComp) => {\n if (typeof depComp === \"function\" &&\n !Reflect.getMetadata(COMPONENT, depComp)) {\n errors.push(`\u274C COMPONENT DEPENDENCY ERROR in module \"${moduleName}\":\\n` +\n ` Component \"${tokenName(token)}\" lists \"${tokenName(depComp)}\" in deps\\n` +\n ` \u2192 \"${tokenName(depComp)}\" is not a component (missing @Component decorator)`);\n }\n if (!providedTokens.has(depComp)) {\n const providingMod = this.findProvidingModule(depComp, node, allNodes, new Set());\n if (!providingMod) {\n errors.push(`\u274C COMPONENT DEPENDENCY ERROR in module \"${moduleName}\":\\n` +\n ` Component \"${tokenName(token)}\" renders \"${tokenName(depComp)}\"\\n` +\n ` \u2192 \"${tokenName(depComp)}\" must be in declarations or imported`);\n }\n }\n });\n }\n });\n });\n return { valid: errors.length === 0, errors };\n }\n collectAllNodes(node, collected, visited = new Set()) {\n if (visited.has(node.name))\n return;\n visited.add(node.name);\n collected.set(node.name, node);\n node\n .getChildren()\n .forEach((child) => this.collectAllNodes(child, collected, visited));\n }\n findProvidingModule(token, fromNode, allNodes, visited = new Set()) {\n if (visited.has(fromNode.name))\n return null;\n visited.add(fromNode.name);\n for (const child of fromNode.getChildren()) {\n if (child.getTokens().has(token) && child.getExports().has(token)) {\n return child.name;\n }\n const found = this.findProvidingModule(token, child, allNodes, visited);\n if (found)\n return found;\n }\n return null;\n }\n getProviderToken(provider) {\n return typeof provider === \"function\" ? provider : provider.provide;\n }\n extractDependencies(item) {\n if (typeof item === \"object\" && \"deps\" in item && item.deps)\n return item.deps;\n if (typeof item === \"object\" && item.useClass)\n return this.getConstructorDependencies(item.useClass);\n if (typeof item === \"function\")\n return this.getConstructorDependencies(item);\n return [];\n }\n getConstructorDependencies(constructor) {\n const injectTokens = Reflect.getOwnMetadata(INJECT_TOKENS_KEY, constructor) || new Map();\n const paramTypes = Reflect.getMetadata(DESIGN_PARAMTYPES, constructor) || [];\n return paramTypes\n .map((type, index) => {\n const injected = injectTokens.get(index);\n if (injected?.maybe) {\n return null;\n }\n return injected?.token ?? type;\n })\n .filter((token) => Boolean(token));\n }\n isDynamicModule(m) {\n return typeof m === \"object\" && \"module\" in m;\n }\n getImports(m) {\n if (this.isDynamicModule(m))\n return m.imports || [];\n return Reflect.getMetadata(IMPORTS_KEY, m) || [];\n }\n getProviders(m) {\n if (this.isDynamicModule(m))\n return m.providers || [];\n return Reflect.getMetadata(PROVIDERS_KEY, m) || [];\n }\n getControllers(m) {\n if (this.isDynamicModule(m))\n return m.controllers || [];\n return Reflect.getMetadata(CONTROLLERS_KEY, m) || [];\n }\n getDeclarations(m) {\n if (this.isDynamicModule(m))\n return m.declarations || [];\n return Reflect.getMetadata(DECLARATIONS_KEY, m) || [];\n }\n getExports(m) {\n if (this.isDynamicModule(m))\n return m.exports || [];\n return Reflect.getMetadata(EXPORTS_KEY, m) || [];\n }\n printDAG(node, indent = \"\", visited = new Set()) {\n if (visited.has(node.name)) {\n console.log(`${indent}${node.name} (circular)`);\n return;\n }\n visited.add(node.name);\n console.log(`${indent}${node.name}`);\n const tokens = node.getTokens();\n if (tokens.size > 0) {\n console.log(`${indent}\u251C\u2500 Tokens:`);\n Array.from(tokens.entries()).forEach(([token, deps], i, arr) => {\n const prefix = i === arr.length - 1 ? \"\u2514\u2500\" : \"\u251C\u2500\";\n const tokenName = typeof token === \"function\" ? token.name : String(token);\n const depStr = deps.length\n ? ` \u2192 [${deps\n .map((d) => (typeof d === \"function\" ? d.name : String(d)))\n .join(\", \")}]`\n : \"\";\n console.log(`${indent}\u2502 ${prefix} ${tokenName}${depStr}`);\n });\n }\n const exports = node.getExports();\n if (exports.size > 0) {\n const names = Array.from(exports).map((t) => typeof t === \"function\" ? t.name : String(t));\n console.log(`${indent}\u251C\u2500 Exports: [${names.join(\", \")}]`);\n }\n const children = node.getChildren();\n if (children.length > 0) {\n console.log(`${indent}\u2514\u2500 Imports:`);\n children.forEach((child, i) => {\n const isLast = i === children.length - 1;\n const childIndent = indent + (isLast ? \" \" : \"\u2502 \");\n this.printDAG(child, childIndent, new Set(visited));\n });\n }\n }\n}\n", "import { DESIGN_PARAMTYPES, INJECT_TOKENS_KEY } from \"../symbols\";\nimport { Constructor, InjectedToken, Provider, Token } from \"../types\";\nimport { Node, ProviderNormalizer } from \"./node\";\n\nexport class Injector {\n private instanceCache = new Map<Token<any>, any>();\n private providerMap = new Map<Token<any>, Provider>();\n private parent?: Injector;\n\n constructor(providers: Provider[], parent?: Injector) {\n this.parent = parent;\n providers.forEach((p) => {\n const normalized = ProviderNormalizer.normalize(p);\n this.providerMap.set(normalized.provide, normalized);\n });\n }\n\n addProvider(provider: Provider | Constructor) {\n const normalized = ProviderNormalizer.normalize(provider);\n this.providerMap.set(normalized.provide, normalized);\n }\n\n resolve<T>(token: Token<T>): T {\n if (this.instanceCache.has(token)) {\n return this.instanceCache.get(token);\n }\n\n const provider = this.providerMap.get(token);\n\n if (!provider) {\n if (this.parent) {\n return this.parent.resolve(token);\n }\n throw new Error(\n `No provider for token: ${\n typeof token === \"function\" ? token.name : String(token)\n }`\n );\n }\n\n const instance = this.createInstance(provider);\n\n if (provider.scope !== \"transient\") {\n this.instanceCache.set(token, instance);\n }\n\n return instance as T;\n }\n\n private createInstance(provider: Provider): any {\n if (\"useValue\" in provider && provider.useValue !== undefined)\n return provider.useValue;\n if (provider.useExisting) return this.resolve(provider.useExisting);\n if (provider.useFactory) {\n const deps = (provider.deps || []).map((d) => this.resolve(d));\n return provider.useFactory(...deps);\n }\n\n const Ctor = provider.useClass || (provider.provide as Constructor);\n const deps = provider.deps || this.getConstructorDeps(Ctor);\n\n return new Ctor(...deps.map((d) => this.resolve(d)));\n }\n\n private getConstructorDeps(ctor: Constructor): Token<any>[] {\n const injectTokens: Map<\n number,\n InjectedToken<any>\n > = Reflect.getOwnMetadata(INJECT_TOKENS_KEY, ctor) || new Map();\n\n const paramTypes = Reflect.getMetadata(DESIGN_PARAMTYPES, ctor) || [];\n\n return paramTypes\n .map((type: any, index: number) => {\n const injected = injectTokens.get(index);\n return injected?.token ?? type;\n })\n .filter((token: any): token is Token<any> => Boolean(token));\n }\n}\n\nexport function collectAllProvidersFromNode(\n node: Node,\n collected = new Set<Provider>()\n): Provider[] {\n node.getProviders().forEach((p) => collected.add(p));\n node\n .getChildren()\n .forEach((child) => collectAllProvidersFromNode(child, collected));\n return Array.from(collected);\n}\n", "import { Injector } from \"./injector\";\n\nlet currentInjector: Injector | null = null;\n\nexport function setCurrentInjector(injector: Injector) {\n currentInjector = injector;\n}\n\nexport function getCurrentInjector(): Injector | null {\n return currentInjector;\n}\n", "import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n", "let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n", "const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n", "import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction _v4(options, buf, offset) {\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? rng();\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n return _v4(options, buf, offset);\n}\nexport default v4;\n", "import { v4 as uuidv4 } from \"uuid\";\n\nimport { ORCA_ELEMENT_TYPE, ORCA_FRAGMENT_TYPE } from \"../symbols\";\nimport { JSX } from \"./types\";\n\nexport { JSX };\n\nexport function jsx(type: any, config: any, maybeKey?: any): JSX.Element {\n const key = maybeKey !== undefined ? maybeKey : config?.key ?? null;\n\n const props: any = {};\n\n if (config) {\n for (const propName in config) {\n if (propName === \"key\") continue;\n\n if (propName === \"ref\") continue;\n\n props[propName] = config[propName];\n }\n }\n\n if (props.children !== undefined) {\n props.children = normalizeChildren(props.children);\n }\n\n if (typeof type === \"function\" && type.defaultProps) {\n for (const propName in type.defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = type.defaultProps[propName];\n }\n }\n }\n\n return createVNode(type, props, key);\n}\n\nexport const jsxs = jsx;\n\nexport function Fragment(props: any): JSX.Element {\n return {\n $$typeof: ORCA_ELEMENT_TYPE,\n type: ORCA_FRAGMENT_TYPE,\n id: \"00000000-0000-0000-0000-000000000000\",\n props,\n key: null,\n };\n}\n\nfunction createVNode(\n type: any,\n props: any,\n key: string | number | null\n): JSX.Element {\n return {\n $$typeof: ORCA_ELEMENT_TYPE,\n id: uuidv4(),\n type,\n props,\n key,\n };\n}\n\nfunction normalizeChildren(children: any): any {\n if (children === null || children === undefined) {\n return null;\n }\n\n if (!Array.isArray(children)) {\n return normalizeChild(children);\n }\n\n const normalized: any[] = [];\n\n for (let i = 0; i < children.length; i++) {\n const child = normalizeChild(children[i]);\n\n if (child === null) continue;\n\n if (Array.isArray(child)) {\n normalized.push(...child);\n } else {\n normalized.push(child);\n }\n }\n\n if (normalized.length === 0) return null;\n if (normalized.length === 1) return normalized[0];\n return normalized;\n}\n\nfunction normalizeChild(child: any): any {\n if (child === null || child === undefined || typeof child === \"boolean\") {\n return null;\n }\n\n if (typeof child === \"number\") {\n return String(child);\n }\n\n if (typeof child === \"string\" || child.$$typeof === ORCA_ELEMENT_TYPE) {\n return child;\n }\n\n if (Array.isArray(child)) {\n return child.map(normalizeChild).filter((c) => c !== null);\n }\n\n return String(child);\n}\n\nexport function isClassComponent(jsx: JSX.Element): boolean {\n return (\n typeof jsx.type === \"function\" &&\n jsx.type.prototype &&\n typeof jsx.type.prototype.build === \"function\"\n );\n}\n\nexport function isIntrinsicElement(jsx: JSX.Element): boolean {\n return typeof jsx.type === \"string\";\n}\n\nexport function isFragment(jsx: JSX.Element): boolean {\n return (\n typeof jsx.type === \"function\" && jsx.type()?.type == ORCA_FRAGMENT_TYPE\n );\n}\n", "import { JSX } from \"../jsx\";\nimport { Injector, ProviderNormalizer } from \"../module\";\nimport { COMPONENT, COMPONENT_PROVIDERS } from \"../symbols\";\nimport { Constructor, Provider } from \"../types\";\n\nexport class StringRenderer {\n constructor(private rootInjector: Injector) {}\n\n render(\n vnode: JSX.Element,\n parentInjector: Injector = this.rootInjector\n ): any {\n if (typeof vnode.type === \"function\") {\n const ComponentClass = vnode.type;\n const isComponent = Reflect.getMetadata(COMPONENT, ComponentClass);\n\n let componentInjector = parentInjector;\n\n if (isComponent) {\n const localProviders: (Provider | Constructor)[] =\n Reflect.getMetadata(COMPONENT_PROVIDERS, ComponentClass) || [];\n\n if (localProviders.length > 0) {\n componentInjector = new Injector(\n localProviders.map((p) => ProviderNormalizer.normalize(p)),\n parentInjector\n );\n }\n }\n\n const instance: any = componentInjector.resolve(ComponentClass);\n\n instance.props = vnode.props || {};\n\n const childVNode = instance.build();\n\n return this.render(childVNode, componentInjector);\n }\n\n if (typeof vnode.type === \"string\") {\n const { children, ...attrs } = vnode.props;\n\n const attrsStr = Object.entries(attrs)\n .map(([key, value]) => {\n if (value === true) return key;\n if (value === false || value === null || value === undefined)\n return \"\";\n return `${key}=\"${this.escapeHtml(String(value))}\"`;\n })\n .filter(Boolean)\n .join(\" \");\n\n const openTag = attrsStr\n ? `<${vnode.type} ${attrsStr}>`\n : `<${vnode.type}>`;\n\n const selfClosing = [\"img\", \"br\", \"hr\", \"input\", \"meta\", \"link\"];\n if (selfClosing.includes(vnode.type)) {\n return attrsStr ? `<${vnode.type} ${attrsStr} />` : `<${vnode.type} />`;\n }\n\n let childrenHtml = \"\";\n if (children !== undefined && children !== null) {\n if (Array.isArray(children)) {\n childrenHtml = children\n .map((child) => {\n if (typeof child === \"string\" || typeof child === \"number\") {\n return this.escapeHtml(String(child));\n }\n return this.render(child, parentInjector);\n })\n .join(\"\");\n } else if (typeof children === \"object\" && \"type\" in children) {\n childrenHtml = this.render(children, parentInjector);\n } else {\n childrenHtml = this.escapeHtml(String(children));\n }\n }\n\n return `${openTag}${childrenHtml}</${vnode.type}>`;\n }\n\n return \"\";\n }\n\n private escapeHtml(text: string): string {\n const map: Record<string, string> = {\n \"&\": \"&amp;\",\n \"<\": \"&lt;\",\n \">\": \"&gt;\",\n '\"': \"&quot;\",\n \"'\": \"&#039;\",\n };\n return text.replace(/[&<>\"']/g, (m) => map[m]);\n }\n}\n", "// used in Attr to signal changes\nexport const CHANGED = Symbol('changed');\n\n// used in Element to setup once classList\nexport const CLASS_LIST = Symbol('classList');\n\n// used in Document to attach once customElements\nexport const CUSTOM_ELEMENTS = Symbol('CustomElements');\n\n// used in HTMLTemplateElement\nexport const CONTENT = Symbol('content');\n\n// used in Element for data attributes\nexport const DATASET = Symbol('dataset');\n\n// used in Document to attach the DocType\nexport const DOCTYPE = Symbol('doctype');\n\n// used in parser and Document to attach once a DOMParser\nexport const DOM_PARSER = Symbol('DOMParser');\n\n// used to reference an end node\nexport const END = Symbol('end');\n\n// used in Document to make the globalThis an event target\nexport const EVENT_TARGET = Symbol('EventTarget');\n\n// used to augment a created document defaultView\nexport const GLOBALS = Symbol('globals');\n\n// used in both Canvas and Document to provide images\nexport const IMAGE = Symbol('image');\n\n// used to define Document mime type\nexport const MIME = Symbol('mime');\n\n// used in Document to attach once MutationObserver\nexport const MUTATION_OBSERVER = Symbol('MutationObserver');\n\n// used to define next node reference\nexport const NEXT = Symbol('next');\n\n// used to define Attr owner elements\nexport const OWNER_ELEMENT = Symbol('ownerElement');\n\n// used to define previous node reference\nexport const PREV = Symbol('prev');\n\n// used to define various \"private\" properties\nexport const PRIVATE = Symbol('private');\n\n// used to define the CSSStyleSheet.sheet\nexport const SHEET = Symbol('sheet');\n\n// used to define start node reference\nexport const START = Symbol('start');\n\n// used to define special CSS style attribute\nexport const STYLE = Symbol('style');\n\n// used to upgrade Custom Elements\nexport const UPGRADE = Symbol('upgrade');\n\n// used to define generic values\nexport const VALUE = Symbol('value');\n", "import { Parser, type ParserOptions } from \"./Parser.js\";\nexport type { Handler, ParserOptions } from \"./Parser.js\";\nexport { Parser } from \"./Parser.js\";\n\nimport {\n DomHandler,\n type DomHandlerOptions,\n type ChildNode,\n type Element,\n type Document,\n} from \"domhandler\";\n\nexport {\n DomHandler,\n // Old name for DomHandler\n DomHandler as DefaultHandler,\n type DomHandlerOptions,\n} from \"domhandler\";\n\nexport type Options = ParserOptions & DomHandlerOptions;\n\n// Helper methods\n\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM handler.\n */\nexport function parseDocument(data: string, options?: Options): Document {\n const handler = new DomHandler(undefined, options);\n new Parser(handler, options).end(data);\n return handler.root;\n}\n/**\n * Parses data, returns an array of the root nodes.\n *\n * Note that the root nodes still have a `Document` node as their parent.\n * Use `parseDocument` to get the `Document` node instead.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM handler.\n * @deprecated Use `parseDocument` instead.\n */\nexport function parseDOM(data: string, options?: Options): ChildNode[] {\n return parseDocument(data, options).children;\n}\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param callback A callback that will be called once parsing has been completed, with the resulting document.\n * @param options Optional options for the parser and DOM handler.\n * @param elementCallback An optional callback that will be called every time a tag has been completed inside of the DOM.\n */\nexport function createDocumentStream(\n callback: (error: Error | null, document: Document) => void,\n options?: Options,\n elementCallback?: (element: Element) => void,\n): Parser {\n const handler: DomHandler = new DomHandler(\n (error: Error | null) => callback(error, handler.root),\n options,\n elementCallback,\n );\n return new Parser(handler, options);\n}\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param callback A callback that will be called once parsing has been completed, with an array of root nodes.\n * @param options Optional options for the parser and DOM handler.\n * @param elementCallback An optional callback that will be called every time a tag has been completed inside of the DOM.\n * @deprecated Use `createDocumentStream` instead.\n */\nexport function createDomStream(\n callback: (error: Error | null, dom: ChildNode[]) => void,\n options?: Options,\n elementCallback?: (element: Element) => void,\n): Parser {\n const handler = new DomHandler(callback, options, elementCallback);\n return new Parser(handler, options);\n}\n\nexport {\n default as Tokenizer,\n type Callbacks as TokenizerCallbacks,\n QuoteType,\n} from \"./Tokenizer.js\";\n\n/*\n * All of the following exports exist for backwards-compatibility.\n * They should probably be removed eventually.\n */\nexport * as ElementType from \"domelementtype\";\n\nimport { getFeed, type Feed } from \"domutils\";\n\nexport { getFeed, type Feed } from \"domutils\";\n\nconst parseFeedDefaultOptions = { xmlMode: true };\n\n/**\n * Parse a feed.\n *\n * @param feed The feed that should be parsed, as a string.\n * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`.\n */\nexport function parseFeed(\n feed: string,\n options: Options = parseFeedDefaultOptions,\n): Feed | null {\n return getFeed(parseDOM(feed, options));\n}\n\nexport * as DomUtils from \"domutils\";\n", "// Generated using scripts/write-decode-map.ts\n\nexport const htmlDecodeTree: Uint16Array = /* #__PURE__ */ new Uint16Array(\n // prettier-ignore\n /* #__PURE__ */ \"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map((c) => c.charCodeAt(0)),\n);\n", "// Generated using scripts/write-decode-map.ts\n\nexport const xmlDecodeTree: Uint16Array = /* #__PURE__ */ new Uint16Array(\n // prettier-ignore\n /* #__PURE__ */ \"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map((c) => c.charCodeAt(0)),\n);\n", "// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\n\nconst decodeMap = new Map([\n [0, 65_533],\n // C1 Unicode control character reference replacements\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\n\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexport const fromCodePoint: (...codePoints: number[]) => string =\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins\n String.fromCodePoint ??\n function (codePoint: number): string {\n let output = \"\";\n\n if (codePoint > 0xff_ff) {\n codePoint -= 0x1_00_00;\n output += String.fromCharCode(\n ((codePoint >>> 10) & 0x3_ff) | 0xd8_00,\n );\n codePoint = 0xdc_00 | (codePoint & 0x3_ff);\n }\n\n output += String.fromCharCode(codePoint);\n return output;\n };\n\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nexport function replaceCodePoint(codePoint: number): number {\n if (\n (codePoint >= 0xd8_00 && codePoint <= 0xdf_ff) ||\n codePoint > 0x10_ff_ff\n ) {\n return 0xff_fd;\n }\n\n return decodeMap.get(codePoint) ?? codePoint;\n}\n\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nexport function decodeCodePoint(codePoint: number): string {\n return fromCodePoint(replaceCodePoint(codePoint));\n}\n", "import { htmlDecodeTree } from \"./generated/decode-data-html.js\";\nimport { xmlDecodeTree } from \"./generated/decode-data-xml.js\";\nimport { replaceCodePoint, fromCodePoint } from \"./decode-codepoint.js\";\n\nconst enum CharCodes {\n NUM = 35, // \"#\"\n SEMI = 59, // \";\"\n EQUALS = 61, // \"=\"\n ZERO = 48, // \"0\"\n NINE = 57, // \"9\"\n LOWER_A = 97, // \"a\"\n LOWER_F = 102, // \"f\"\n LOWER_X = 120, // \"x\"\n LOWER_Z = 122, // \"z\"\n UPPER_A = 65, // \"A\"\n UPPER_F = 70, // \"F\"\n UPPER_Z = 90, // \"Z\"\n}\n\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nconst TO_LOWER_BIT = 0b10_0000;\n\nexport enum BinTrieFlags {\n VALUE_LENGTH = 0b1100_0000_0000_0000,\n BRANCH_LENGTH = 0b0011_1111_1000_0000,\n JUMP_TABLE = 0b0000_0000_0111_1111,\n}\n\nfunction isNumber(code: number): boolean {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\n\nfunction isHexadecimalCharacter(code: number): boolean {\n return (\n (code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F)\n );\n}\n\nfunction isAsciiAlphaNumeric(code: number): boolean {\n return (\n (code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code)\n );\n}\n\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code: number): boolean {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\n\nconst enum EntityDecoderState {\n EntityStart,\n NumericStart,\n NumericDecimal,\n NumericHex,\n NamedEntity,\n}\n\nexport enum DecodingMode {\n /** Entities in text nodes that can end with any character. */\n Legacy = 0,\n /** Only allow entities terminated with a semicolon. */\n Strict = 1,\n /** Entities in attributes have limitations on ending characters. */\n Attribute = 2,\n}\n\n/**\n * Producers for character reference errors as defined in the HTML spec.\n */\nexport interface EntityErrorProducer {\n missingSemicolonAfterCharacterReference(): void;\n absenceOfDigitsInNumericCharacterReference(\n consumedCharacters: number,\n ): void;\n validateNumericCharacterReference(code: number): void;\n}\n\n/**\n * Token decoder with support of writing partial entities.\n */\nexport class EntityDecoder {\n constructor(\n /** The tree used to decode entities. */\n private readonly decodeTree: Uint16Array,\n /**\n * The function that is called when a codepoint is decoded.\n *\n * For multi-byte named entities, this will be called multiple times,\n * with the second codepoint, and the same `consumed` value.\n *\n * @param codepoint The decoded codepoint.\n * @param consumed The number of bytes consumed by the decoder.\n */\n private readonly emitCodePoint: (cp: number, consumed: number) => void,\n /** An object that is used to produce errors. */\n private readonly errors?: EntityErrorProducer | undefined,\n ) {}\n\n /** The current state of the decoder. */\n private state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n private consumed = 1;\n /**\n * The result of the entity.\n *\n * Either the result index of a numeric entity, or the codepoint of a\n * numeric entity.\n */\n private result = 0;\n\n /** The current index in the decode tree. */\n private treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n private excess = 1;\n /** The mode in which the decoder is operating. */\n private decodeMode = DecodingMode.Strict;\n\n /** Resets the instance to make it reusable. */\n startEntity(decodeMode: DecodingMode): void {\n this.decodeMode = decodeMode;\n this.state = EntityDecoderState.EntityStart;\n this.result = 0;\n this.treeIndex = 0;\n this.excess = 1;\n this.consumed = 1;\n }\n\n /**\n * Write an entity to the decoder. This can be called multiple times with partial entities.\n * If the entity is incomplete, the decoder will return -1.\n *\n * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n * entity is incomplete, and resume when the next string is written.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n write(input: string, offset: number): number {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (input.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(input, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(input, offset);\n }\n\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(input, offset);\n }\n\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(input, offset);\n }\n\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(input, offset);\n }\n\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(input, offset);\n }\n }\n }\n\n /**\n * Switches between the numeric decimal and hexadecimal states.\n *\n * Equivalent to the `Numeric character reference state` in the HTML spec.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n private stateNumericStart(input: string, offset: number): number {\n if (offset >= input.length) {\n return -1;\n }\n\n if ((input.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(input, offset + 1);\n }\n\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(input, offset);\n }\n\n private addToNumericResult(\n input: string,\n start: number,\n end: number,\n base: number,\n ): void {\n if (start !== end) {\n const digitCount = end - start;\n this.result =\n this.result * Math.pow(base, digitCount) +\n Number.parseInt(input.substr(start, digitCount), base);\n this.consumed += digitCount;\n }\n }\n\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n private stateNumericHex(input: string, offset: number): number {\n const startIndex = offset;\n\n while (offset < input.length) {\n const char = input.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n offset += 1;\n } else {\n this.addToNumericResult(input, startIndex, offset, 16);\n return this.emitNumericEntity(char, 3);\n }\n }\n\n this.addToNumericResult(input, startIndex, offset, 16);\n\n return -1;\n }\n\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n private stateNumericDecimal(input: string, offset: number): number {\n const startIndex = offset;\n\n while (offset < input.length) {\n const char = input.charCodeAt(offset);\n if (isNumber(char)) {\n offset += 1;\n } else {\n this.addToNumericResult(input, startIndex, offset, 10);\n return this.emitNumericEntity(char, 2);\n }\n }\n\n this.addToNumericResult(input, startIndex, offset, 10);\n\n return -1;\n }\n\n /**\n * Validate and emit a numeric entity.\n *\n * Implements the logic from the `Hexademical character reference start\n * state` and `Numeric character reference end state` in the HTML spec.\n *\n * @param lastCp The last code point of the entity. Used to see if the\n * entity was terminated with a semicolon.\n * @param expectedLength The minimum number of characters that should be\n * consumed. Used to validate that at least one digit\n * was consumed.\n * @returns The number of characters that were consumed.\n */\n private emitNumericEntity(lastCp: number, expectedLength: number): number {\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n this.errors?.absenceOfDigitsInNumericCharacterReference(\n this.consumed,\n );\n return 0;\n }\n\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n } else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n\n this.emitCodePoint(replaceCodePoint(this.result), this.consumed);\n\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n\n this.errors.validateNumericCharacterReference(this.result);\n }\n\n return this.consumed;\n }\n\n /**\n * Parses a named entity.\n *\n * Equivalent to the `Named character reference state` in the HTML spec.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n private stateNamedEntity(input: string, offset: number): number {\n const { decodeTree } = this;\n let current = decodeTree[this.treeIndex];\n // The mask is the number of bytes of the value, including the current byte.\n let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n\n for (; offset < input.length; offset++, this.excess++) {\n const char = input.charCodeAt(offset);\n\n this.treeIndex = determineBranch(\n decodeTree,\n current,\n this.treeIndex + Math.max(1, valueLength),\n char,\n );\n\n if (this.treeIndex < 0) {\n return this.result === 0 ||\n // If we are parsing an attribute\n (this.decodeMode === DecodingMode.Attribute &&\n // We shouldn't have consumed any characters after the entity,\n (valueLength === 0 ||\n // And there should be no invalid characters.\n isEntityInAttributeInvalidEnd(char)))\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n\n // If the branch is a value, store it and continue\n if (valueLength !== 0) {\n // If the entity is terminated by a semicolon, we are done.\n if (char === CharCodes.SEMI) {\n return this.emitNamedEntityData(\n this.treeIndex,\n valueLength,\n this.consumed + this.excess,\n );\n }\n\n // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n if (this.decodeMode !== DecodingMode.Strict) {\n this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\n }\n\n return -1;\n }\n\n /**\n * Emit a named entity that was not terminated with a semicolon.\n *\n * @returns The number of characters consumed.\n */\n private emitNotTerminatedNamedEntity(): number {\n const { result, decodeTree } = this;\n\n const valueLength =\n (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n\n this.emitNamedEntityData(result, valueLength, this.consumed);\n this.errors?.missingSemicolonAfterCharacterReference();\n\n return this.consumed;\n }\n\n /**\n * Emit a named entity.\n *\n * @param result The index of the entity in the decode tree.\n * @param valueLength The number of bytes in the entity.\n * @param consumed The number of characters consumed.\n *\n * @returns The number of characters consumed.\n */\n private emitNamedEntityData(\n result: number,\n valueLength: number,\n consumed: number,\n ): number {\n const { decodeTree } = this;\n\n this.emitCodePoint(\n valueLength === 1\n ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n : decodeTree[result + 1],\n consumed,\n );\n if (valueLength === 3) {\n // For multi-byte values, we need to emit the second byte.\n this.emitCodePoint(decodeTree[result + 2], consumed);\n }\n\n return consumed;\n }\n\n /**\n * Signal to the parser that the end of the input was reached.\n *\n * Remaining data will be emitted and relevant errors will be produced.\n *\n * @returns The number of characters consumed.\n */\n end(): number {\n switch (this.state) {\n case EntityDecoderState.NamedEntity: {\n // Emit a named entity if we have one.\n return this.result !== 0 &&\n (this.decodeMode !== DecodingMode.Attribute ||\n this.result === this.treeIndex)\n ? this.emitNotTerminatedNamedEntity()\n : 0;\n }\n // Otherwise, emit a numeric entity if we have one.\n case EntityDecoderState.NumericDecimal: {\n return this.emitNumericEntity(0, 2);\n }\n case EntityDecoderState.NumericHex: {\n return this.emitNumericEntity(0, 3);\n }\n case EntityDecoderState.NumericStart: {\n this.errors?.absenceOfDigitsInNumericCharacterReference(\n this.consumed,\n );\n return 0;\n }\n case EntityDecoderState.EntityStart: {\n // Return 0 if we have no entity.\n return 0;\n }\n }\n }\n}\n\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree: Uint16Array) {\n let returnValue = \"\";\n const decoder = new EntityDecoder(\n decodeTree,\n (data) => (returnValue += fromCodePoint(data)),\n );\n\n return function decodeWithTrie(\n input: string,\n decodeMode: DecodingMode,\n ): string {\n let lastIndex = 0;\n let offset = 0;\n\n while ((offset = input.indexOf(\"&\", offset)) >= 0) {\n returnValue += input.slice(lastIndex, offset);\n\n decoder.startEntity(decodeMode);\n\n const length = decoder.write(\n input,\n // Skip the \"&\"\n offset + 1,\n );\n\n if (length < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n\n lastIndex = offset + length;\n // If `length` is 0, skip the current `&` and continue.\n offset = length === 0 ? lastIndex + 1 : lastIndex;\n }\n\n const result = returnValue + input.slice(lastIndex);\n\n // Make sure we don't keep a reference to the final string.\n returnValue = \"\";\n\n return result;\n };\n}\n\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nexport function determineBranch(\n decodeTree: Uint16Array,\n current: number,\n nodeIndex: number,\n char: number,\n): number {\n const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n const jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIndex : -1;\n }\n\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n const value = char - jumpOffset;\n\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIndex + value] - 1;\n }\n\n // Case 3: Multiple branches encoded in dictionary\n\n // Binary search for the character.\n let lo = nodeIndex;\n let hi = lo + branchCount - 1;\n\n while (lo <= hi) {\n const mid = (lo + hi) >>> 1;\n const midValue = decodeTree[mid];\n\n if (midValue < char) {\n lo = mid + 1;\n } else if (midValue > char) {\n hi = mid - 1;\n } else {\n return decodeTree[mid + branchCount];\n }\n }\n\n return -1;\n}\n\nconst htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree);\nconst xmlDecoder = /* #__PURE__ */ getDecoder(xmlDecodeTree);\n\n/**\n * Decodes an HTML string.\n *\n * @param htmlString The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nexport function decodeHTML(\n htmlString: string,\n mode: DecodingMode = DecodingMode.Legacy,\n): string {\n return htmlDecoder(htmlString, mode);\n}\n\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param htmlAttribute The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLAttribute(htmlAttribute: string): string {\n return htmlDecoder(htmlAttribute, DecodingMode.Attribute);\n}\n\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param htmlString The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLStrict(htmlString: string): string {\n return htmlDecoder(htmlString, DecodingMode.Strict);\n}\n\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param xmlString The string to decode.\n * @returns The decoded string.\n */\nexport function decodeXML(xmlString: string): string {\n return xmlDecoder(xmlString, DecodingMode.Strict);\n}\n\n// Re-export for use by eg. htmlparser2\nexport { htmlDecodeTree } from \"./generated/decode-data-html.js\";\nexport { xmlDecodeTree } from \"./generated/decode-data-xml.js\";\n\nexport {\n decodeCodePoint,\n replaceCodePoint,\n fromCodePoint,\n} from \"./decode-codepoint.js\";\n", "import {\n EntityDecoder,\n DecodingMode,\n htmlDecodeTree,\n xmlDecodeTree,\n} from \"entities/decode\";\n\nconst enum CharCodes {\n Tab = 0x9, // \"\\t\"\n NewLine = 0xa, // \"\\n\"\n FormFeed = 0xc, // \"\\f\"\n CarriageReturn = 0xd, // \"\\r\"\n Space = 0x20, // \" \"\n ExclamationMark = 0x21, // \"!\"\n Number = 0x23, // \"#\"\n Amp = 0x26, // \"&\"\n SingleQuote = 0x27, // \"'\"\n DoubleQuote = 0x22, // '\"'\n Dash = 0x2d, // \"-\"\n Slash = 0x2f, // \"/\"\n Zero = 0x30, // \"0\"\n Nine = 0x39, // \"9\"\n Semi = 0x3b, // \";\"\n Lt = 0x3c, // \"<\"\n Eq = 0x3d, // \"=\"\n Gt = 0x3e, // \">\"\n Questionmark = 0x3f, // \"?\"\n UpperA = 0x41, // \"A\"\n LowerA = 0x61, // \"a\"\n UpperF = 0x46, // \"F\"\n LowerF = 0x66, // \"f\"\n UpperZ = 0x5a, // \"Z\"\n LowerZ = 0x7a, // \"z\"\n LowerX = 0x78, // \"x\"\n OpeningSquareBracket = 0x5b, // \"[\"\n}\n\n/** All the states the tokenizer can be in. */\nconst enum State {\n Text = 1,\n BeforeTagName, // After <\n InTagName,\n InSelfClosingTag,\n BeforeClosingTagName,\n InClosingTagName,\n AfterClosingTagName,\n\n // Attributes\n BeforeAttributeName,\n InAttributeName,\n AfterAttributeName,\n BeforeAttributeValue,\n InAttributeValueDq, // \"\n InAttributeValueSq, // '\n InAttributeValueNq,\n\n // Declarations\n BeforeDeclaration, // !\n InDeclaration,\n\n // Processing instructions\n InProcessingInstruction, // ?\n\n // Comments & CDATA\n BeforeComment,\n CDATASequence,\n InSpecialComment,\n InCommentLike,\n\n // Special tags\n BeforeSpecialS, // Decide if we deal with `<script` or `<style`\n BeforeSpecialT, // Decide if we deal with `<title` or `<textarea`\n SpecialStartSequence,\n InSpecialTag,\n\n InEntity,\n}\n\nfunction isWhitespace(c: number): boolean {\n return (\n c === CharCodes.Space ||\n c === CharCodes.NewLine ||\n c === CharCodes.Tab ||\n c === CharCodes.FormFeed ||\n c === CharCodes.CarriageReturn\n );\n}\n\nfunction isEndOfTagSection(c: number): boolean {\n return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace(c);\n}\n\nfunction isASCIIAlpha(c: number): boolean {\n return (\n (c >= CharCodes.LowerA && c <= CharCodes.LowerZ) ||\n (c >= CharCodes.UpperA && c <= CharCodes.UpperZ)\n );\n}\n\nexport enum QuoteType {\n NoValue = 0,\n Unquoted = 1,\n Single = 2,\n Double = 3,\n}\n\nexport interface Callbacks {\n onattribdata(start: number, endIndex: number): void;\n onattribentity(codepoint: number): void;\n onattribend(quote: QuoteType, endIndex: number): void;\n onattribname(start: number, endIndex: number): void;\n oncdata(start: number, endIndex: number, endOffset: number): void;\n onclosetag(start: number, endIndex: number): void;\n oncomment(start: number, endIndex: number, endOffset: number): void;\n ondeclaration(start: number, endIndex: number): void;\n onend(): void;\n onopentagend(endIndex: number): void;\n onopentagname(start: number, endIndex: number): void;\n onprocessinginstruction(start: number, endIndex: number): void;\n onselfclosingtag(endIndex: number): void;\n ontext(start: number, endIndex: number): void;\n ontextentity(codepoint: number, endIndex: number): void;\n}\n\n/**\n * Sequences used to match longer strings.\n *\n * We don't have `Script`, `Style`, or `Title` here. Instead, we re-use the *End\n * sequences with an increased offset.\n */\nconst Sequences = {\n Cdata: new Uint8Array([0x43, 0x44, 0x41, 0x54, 0x41, 0x5b]), // CDATA[\n CdataEnd: new Uint8Array([0x5d, 0x5d, 0x3e]), // ]]>\n CommentEnd: new Uint8Array([0x2d, 0x2d, 0x3e]), // `-->`\n ScriptEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74]), // `</script`\n StyleEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65]), // `</style`\n TitleEnd: new Uint8Array([0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65]), // `</title`\n TextareaEnd: new Uint8Array([\n 0x3c, 0x2f, 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61,\n ]), // `</textarea`\n XmpEnd: new Uint8Array([0x3c, 0x2f, 0x78, 0x6d, 0x70]), // `</xmp`\n};\n\nexport default class Tokenizer {\n /** The current state the tokenizer is in. */\n private state = State.Text;\n /** The read buffer. */\n private buffer = \"\";\n /** The beginning of the section that is currently being read. */\n private sectionStart = 0;\n /** The index within the buffer that we are currently looking at. */\n private index = 0;\n /** The start of the last entity. */\n private entityStart = 0;\n /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */\n private baseState = State.Text;\n /** For special parsing behavior inside of script and style tags. */\n private isSpecial = false;\n /** Indicates whether the tokenizer has been paused. */\n public running = true;\n /** The offset of the current buffer. */\n private offset = 0;\n\n private readonly xmlMode: boolean;\n private readonly decodeEntities: boolean;\n private readonly entityDecoder: EntityDecoder;\n\n constructor(\n {\n xmlMode = false,\n decodeEntities = true,\n }: { xmlMode?: boolean; decodeEntities?: boolean },\n private readonly cbs: Callbacks,\n ) {\n this.xmlMode = xmlMode;\n this.decodeEntities = decodeEntities;\n this.entityDecoder = new EntityDecoder(\n xmlMode ? xmlDecodeTree : htmlDecodeTree,\n (cp, consumed) => this.emitCodePoint(cp, consumed),\n );\n }\n\n public reset(): void {\n this.state = State.Text;\n this.buffer = \"\";\n this.sectionStart = 0;\n this.index = 0;\n this.baseState = State.Text;\n this.currentSequence = undefined!;\n this.running = true;\n this.offset = 0;\n }\n\n public write(chunk: string): void {\n this.offset += this.buffer.length;\n this.buffer = chunk;\n this.parse();\n }\n\n public end(): void {\n if (this.running) this.finish();\n }\n\n public pause(): void {\n this.running = false;\n }\n\n public resume(): void {\n this.running = true;\n if (this.index < this.buffer.length + this.offset) {\n this.parse();\n }\n }\n\n private stateText(c: number): void {\n if (\n c === CharCodes.Lt ||\n (!this.decodeEntities && this.fastForwardTo(CharCodes.Lt))\n ) {\n if (this.index > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, this.index);\n }\n this.state = State.BeforeTagName;\n this.sectionStart = this.index;\n } else if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n\n private currentSequence: Uint8Array = undefined!;\n private sequenceIndex = 0;\n private stateSpecialStartSequence(c: number): void {\n const isEnd = this.sequenceIndex === this.currentSequence.length;\n const isMatch = isEnd\n ? // If we are at the end of the sequence, make sure the tag name has ended\n isEndOfTagSection(c)\n : // Otherwise, do a case-insensitive comparison\n (c | 0x20) === this.currentSequence[this.sequenceIndex];\n\n if (!isMatch) {\n this.isSpecial = false;\n } else if (!isEnd) {\n this.sequenceIndex++;\n return;\n }\n\n this.sequenceIndex = 0;\n this.state = State.InTagName;\n this.stateInTagName(c);\n }\n\n /** Look for an end tag. For <title> tags, also decode entities. */\n private stateInSpecialTag(c: number): void {\n if (this.sequenceIndex === this.currentSequence.length) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n const endOfText = this.index - this.currentSequence.length;\n\n if (this.sectionStart < endOfText) {\n // Spoof the index so that reported locations match up.\n const actualIndex = this.index;\n this.index = endOfText;\n this.cbs.ontext(this.sectionStart, endOfText);\n this.index = actualIndex;\n }\n\n this.isSpecial = false;\n this.sectionStart = endOfText + 2; // Skip over the `</`\n this.stateInClosingTagName(c);\n return; // We are done; skip the rest of the function.\n }\n\n this.sequenceIndex = 0;\n }\n\n if ((c | 0x20) === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex += 1;\n } else if (this.sequenceIndex === 0) {\n if (this.currentSequence === Sequences.TitleEnd) {\n // We have to parse entities in <title> tags.\n if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n } else if (this.fastForwardTo(CharCodes.Lt)) {\n // Outside of <title> tags, we can fast-forward.\n this.sequenceIndex = 1;\n }\n } else {\n // If we see a `<`, set the sequence index to 1; useful for eg. `<</script>`.\n this.sequenceIndex = Number(c === CharCodes.Lt);\n }\n }\n\n private stateCDATASequence(c: number): void {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n } else {\n this.sequenceIndex = 0;\n this.state = State.InDeclaration;\n this.stateInDeclaration(c); // Reconsume the character\n }\n }\n\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n private fastForwardTo(c: number): boolean {\n while (++this.index < this.buffer.length + this.offset) {\n if (this.buffer.charCodeAt(this.index - this.offset) === c) {\n return true;\n }\n }\n\n /*\n * We increment the index at the end of the `parse` loop,\n * so set it to `buffer.length - 1` here.\n *\n * TODO: Refactor `parse` to increment index before calling states.\n */\n this.index = this.buffer.length + this.offset - 1;\n\n return false;\n }\n\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n private stateInCommentLike(c: number): void {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index, 2);\n } else {\n this.cbs.oncomment(this.sectionStart, this.index, 2);\n }\n\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = State.Text;\n }\n } else if (this.sequenceIndex === 0) {\n // Fast-forward to the first character of the sequence\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n } else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n // Allow long sequences, eg. --->, ]]]>\n this.sequenceIndex = 0;\n }\n }\n\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n */\n private isTagStartChar(c: number) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n }\n\n private startSpecial(sequence: Uint8Array, offset: number) {\n this.isSpecial = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n this.state = State.SpecialStartSequence;\n }\n\n private stateBeforeTagName(c: number): void {\n if (c === CharCodes.ExclamationMark) {\n this.state = State.BeforeDeclaration;\n this.sectionStart = this.index + 1;\n } else if (c === CharCodes.Questionmark) {\n this.state = State.InProcessingInstruction;\n this.sectionStart = this.index + 1;\n } else if (this.isTagStartChar(c)) {\n const lower = c | 0x20;\n this.sectionStart = this.index;\n if (this.xmlMode) {\n this.state = State.InTagName;\n } else if (lower === Sequences.ScriptEnd[2]) {\n this.state = State.BeforeSpecialS;\n } else if (\n lower === Sequences.TitleEnd[2] ||\n lower === Sequences.XmpEnd[2]\n ) {\n this.state = State.BeforeSpecialT;\n } else {\n this.state = State.InTagName;\n }\n } else if (c === CharCodes.Slash) {\n this.state = State.BeforeClosingTagName;\n } else {\n this.state = State.Text;\n this.stateText(c);\n }\n }\n private stateInTagName(c: number): void {\n if (isEndOfTagSection(c)) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n }\n private stateBeforeClosingTagName(c: number): void {\n if (isWhitespace(c)) {\n // Ignore\n } else if (c === CharCodes.Gt) {\n this.state = State.Text;\n } else {\n this.state = this.isTagStartChar(c)\n ? State.InClosingTagName\n : State.InSpecialComment;\n this.sectionStart = this.index;\n }\n }\n private stateInClosingTagName(c: number): void {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterClosingTagName;\n this.stateAfterClosingTagName(c);\n }\n }\n private stateAfterClosingTagName(c: number): void {\n // Skip everything until \">\"\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n private stateBeforeAttributeName(c: number): void {\n if (c === CharCodes.Gt) {\n this.cbs.onopentagend(this.index);\n if (this.isSpecial) {\n this.state = State.InSpecialTag;\n this.sequenceIndex = 0;\n } else {\n this.state = State.Text;\n }\n this.sectionStart = this.index + 1;\n } else if (c === CharCodes.Slash) {\n this.state = State.InSelfClosingTag;\n } else if (!isWhitespace(c)) {\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n }\n private stateInSelfClosingTag(c: number): void {\n if (c === CharCodes.Gt) {\n this.cbs.onselfclosingtag(this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n this.isSpecial = false; // Reset special state, in case of self-closing special tags\n } else if (!isWhitespace(c)) {\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n }\n private stateInAttributeName(c: number): void {\n if (c === CharCodes.Eq || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.sectionStart = this.index;\n this.state = State.AfterAttributeName;\n this.stateAfterAttributeName(c);\n }\n }\n private stateAfterAttributeName(c: number): void {\n if (c === CharCodes.Eq) {\n this.state = State.BeforeAttributeValue;\n } else if (c === CharCodes.Slash || c === CharCodes.Gt) {\n this.cbs.onattribend(QuoteType.NoValue, this.sectionStart);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n } else if (!isWhitespace(c)) {\n this.cbs.onattribend(QuoteType.NoValue, this.sectionStart);\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n }\n private stateBeforeAttributeValue(c: number): void {\n if (c === CharCodes.DoubleQuote) {\n this.state = State.InAttributeValueDq;\n this.sectionStart = this.index + 1;\n } else if (c === CharCodes.SingleQuote) {\n this.state = State.InAttributeValueSq;\n this.sectionStart = this.index + 1;\n } else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = State.InAttributeValueNq;\n this.stateInAttributeValueNoQuotes(c); // Reconsume token\n }\n }\n private handleInAttributeValue(c: number, quote: number) {\n if (\n c === quote ||\n (!this.decodeEntities && this.fastForwardTo(quote))\n ) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(\n quote === CharCodes.DoubleQuote\n ? QuoteType.Double\n : QuoteType.Single,\n this.index + 1,\n );\n this.state = State.BeforeAttributeName;\n } else if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n private stateInAttributeValueDoubleQuotes(c: number): void {\n this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n }\n private stateInAttributeValueSingleQuotes(c: number): void {\n this.handleInAttributeValue(c, CharCodes.SingleQuote);\n }\n private stateInAttributeValueNoQuotes(c: number): void {\n if (isWhitespace(c) || c === CharCodes.Gt) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(QuoteType.Unquoted, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n } else if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n private stateBeforeDeclaration(c: number): void {\n if (c === CharCodes.OpeningSquareBracket) {\n this.state = State.CDATASequence;\n this.sequenceIndex = 0;\n } else {\n this.state =\n c === CharCodes.Dash\n ? State.BeforeComment\n : State.InDeclaration;\n }\n }\n private stateInDeclaration(c: number): void {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.ondeclaration(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n private stateInProcessingInstruction(c: number): void {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n private stateBeforeComment(c: number): void {\n if (c === CharCodes.Dash) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CommentEnd;\n // Allow short comments (eg. <!-->)\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n } else {\n this.state = State.InDeclaration;\n }\n }\n private stateInSpecialComment(c: number): void {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.oncomment(this.sectionStart, this.index, 0);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n private stateBeforeSpecialS(c: number): void {\n const lower = c | 0x20;\n if (lower === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n } else if (lower === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n } else {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n }\n\n private stateBeforeSpecialT(c: number): void {\n const lower = c | 0x20;\n switch (lower) {\n case Sequences.TitleEnd[3]: {\n this.startSpecial(Sequences.TitleEnd, 4);\n\n break;\n }\n case Sequences.TextareaEnd[3]: {\n this.startSpecial(Sequences.TextareaEnd, 4);\n\n break;\n }\n case Sequences.XmpEnd[3]: {\n this.startSpecial(Sequences.XmpEnd, 4);\n\n break;\n }\n default: {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n }\n }\n\n private startEntity() {\n this.baseState = this.state;\n this.state = State.InEntity;\n this.entityStart = this.index;\n this.entityDecoder.startEntity(\n this.xmlMode\n ? DecodingMode.Strict\n : this.baseState === State.Text ||\n this.baseState === State.InSpecialTag\n ? DecodingMode.Legacy\n : DecodingMode.Attribute,\n );\n }\n\n private stateInEntity(): void {\n const length = this.entityDecoder.write(\n this.buffer,\n this.index - this.offset,\n );\n\n // If `length` is positive, we are done with the entity.\n if (length >= 0) {\n this.state = this.baseState;\n\n if (length === 0) {\n this.index = this.entityStart;\n }\n } else {\n // Mark buffer as consumed.\n this.index = this.offset + this.buffer.length - 1;\n }\n }\n\n /**\n * Remove data that has already been consumed from the buffer.\n */\n private cleanup() {\n // If we are inside of text or attributes, emit what we already have.\n if (this.running && this.sectionStart !== this.index) {\n if (\n this.state === State.Text ||\n (this.state === State.InSpecialTag && this.sequenceIndex === 0)\n ) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n } else if (\n this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueNq\n ) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n }\n\n private shouldContinue() {\n return this.index < this.buffer.length + this.offset && this.running;\n }\n\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n private parse() {\n while (this.shouldContinue()) {\n const c = this.buffer.charCodeAt(this.index - this.offset);\n switch (this.state) {\n case State.Text: {\n this.stateText(c);\n break;\n }\n case State.SpecialStartSequence: {\n this.stateSpecialStartSequence(c);\n break;\n }\n case State.InSpecialTag: {\n this.stateInSpecialTag(c);\n break;\n }\n case State.CDATASequence: {\n this.stateCDATASequence(c);\n break;\n }\n case State.InAttributeValueDq: {\n this.stateInAttributeValueDoubleQuotes(c);\n break;\n }\n case State.InAttributeName: {\n this.stateInAttributeName(c);\n break;\n }\n case State.InCommentLike: {\n this.stateInCommentLike(c);\n break;\n }\n case State.InSpecialComment: {\n this.stateInSpecialComment(c);\n break;\n }\n case State.BeforeAttributeName: {\n this.stateBeforeAttributeName(c);\n break;\n }\n case State.InTagName: {\n this.stateInTagName(c);\n break;\n }\n case State.InClosingTagName: {\n this.stateInClosingTagName(c);\n break;\n }\n case State.BeforeTagName: {\n this.stateBeforeTagName(c);\n break;\n }\n case State.AfterAttributeName: {\n this.stateAfterAttributeName(c);\n break;\n }\n case State.InAttributeValueSq: {\n this.stateInAttributeValueSingleQuotes(c);\n break;\n }\n case State.BeforeAttributeValue: {\n this.stateBeforeAttributeValue(c);\n break;\n }\n case State.BeforeClosingTagName: {\n this.stateBeforeClosingTagName(c);\n break;\n }\n case State.AfterClosingTagName: {\n this.stateAfterClosingTagName(c);\n break;\n }\n case State.BeforeSpecialS: {\n this.stateBeforeSpecialS(c);\n break;\n }\n case State.BeforeSpecialT: {\n this.stateBeforeSpecialT(c);\n break;\n }\n case State.InAttributeValueNq: {\n this.stateInAttributeValueNoQuotes(c);\n break;\n }\n case State.InSelfClosingTag: {\n this.stateInSelfClosingTag(c);\n break;\n }\n case State.InDeclaration: {\n this.stateInDeclaration(c);\n break;\n }\n case State.BeforeDeclaration: {\n this.stateBeforeDeclaration(c);\n break;\n }\n case State.BeforeComment: {\n this.stateBeforeComment(c);\n break;\n }\n case State.InProcessingInstruction: {\n this.stateInProcessingInstruction(c);\n break;\n }\n case State.InEntity: {\n this.stateInEntity();\n break;\n }\n }\n this.index++;\n }\n this.cleanup();\n }\n\n private finish() {\n if (this.state === State.InEntity) {\n this.entityDecoder.end();\n this.state = this.baseState;\n }\n\n this.handleTrailingData();\n\n this.cbs.onend();\n }\n\n /** Handle any trailing data. */\n private handleTrailingData() {\n const endIndex = this.buffer.length + this.offset;\n\n // If there is no remaining data, we are done.\n if (this.sectionStart >= endIndex) {\n return;\n }\n\n if (this.state === State.InCommentLike) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex, 0);\n } else {\n this.cbs.oncomment(this.sectionStart, endIndex, 0);\n }\n } else if (\n this.state === State.InTagName ||\n this.state === State.BeforeAttributeName ||\n this.state === State.BeforeAttributeValue ||\n this.state === State.AfterAttributeName ||\n this.state === State.InAttributeName ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueNq ||\n this.state === State.InClosingTagName\n ) {\n /*\n * If we are currently in an opening or closing tag, us not calling the\n * respective callback signals that the tag should be ignored.\n */\n } else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n }\n\n private emitCodePoint(cp: number, consumed: number): void {\n if (\n this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag\n ) {\n if (this.sectionStart < this.entityStart) {\n this.cbs.onattribdata(this.sectionStart, this.entityStart);\n }\n this.sectionStart = this.entityStart + consumed;\n this.index = this.sectionStart - 1;\n\n this.cbs.onattribentity(cp);\n } else {\n if (this.sectionStart < this.entityStart) {\n this.cbs.ontext(this.sectionStart, this.entityStart);\n }\n this.sectionStart = this.entityStart + consumed;\n this.index = this.sectionStart - 1;\n\n this.cbs.ontextentity(cp, this.sectionStart);\n }\n }\n}\n", "import Tokenizer, { type Callbacks, QuoteType } from \"./Tokenizer.js\";\nimport { fromCodePoint } from \"entities/decode\";\n\nconst formTags = new Set([\n \"input\",\n \"option\",\n \"optgroup\",\n \"select\",\n \"button\",\n \"datalist\",\n \"textarea\",\n]);\nconst pTag = new Set([\"p\"]);\nconst tableSectionTags = new Set([\"thead\", \"tbody\"]);\nconst ddtTags = new Set([\"dd\", \"dt\"]);\nconst rtpTags = new Set([\"rt\", \"rp\"]);\n\nconst openImpliesClose = new Map<string, Set<string>>([\n [\"tr\", new Set([\"tr\", \"th\", \"td\"])],\n [\"th\", new Set([\"th\"])],\n [\"td\", new Set([\"thead\", \"th\", \"td\"])],\n [\"body\", new Set([\"head\", \"link\", \"script\"])],\n [\"li\", new Set([\"li\"])],\n [\"p\", pTag],\n [\"h1\", pTag],\n [\"h2\", pTag],\n [\"h3\", pTag],\n [\"h4\", pTag],\n [\"h5\", pTag],\n [\"h6\", pTag],\n [\"select\", formTags],\n [\"input\", formTags],\n [\"output\", formTags],\n [\"button\", formTags],\n [\"datalist\", formTags],\n [\"textarea\", formTags],\n [\"option\", new Set([\"option\"])],\n [\"optgroup\", new Set([\"optgroup\", \"option\"])],\n [\"dd\", ddtTags],\n [\"dt\", ddtTags],\n [\"address\", pTag],\n [\"article\", pTag],\n [\"aside\", pTag],\n [\"blockquote\", pTag],\n [\"details\", pTag],\n [\"div\", pTag],\n [\"dl\", pTag],\n [\"fieldset\", pTag],\n [\"figcaption\", pTag],\n [\"figure\", pTag],\n [\"footer\", pTag],\n [\"form\", pTag],\n [\"header\", pTag],\n [\"hr\", pTag],\n [\"main\", pTag],\n [\"nav\", pTag],\n [\"ol\", pTag],\n [\"pre\", pTag],\n [\"section\", pTag],\n [\"table\", pTag],\n [\"ul\", pTag],\n [\"rt\", rtpTags],\n [\"rp\", rtpTags],\n [\"tbody\", tableSectionTags],\n [\"tfoot\", tableSectionTags],\n]);\n\nconst voidElements = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n\nconst foreignContextElements = new Set([\"math\", \"svg\"]);\n\nconst htmlIntegrationElements = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignobject\",\n \"desc\",\n \"title\",\n]);\n\nexport interface ParserOptions {\n /**\n * Indicates whether special tags (`<script>`, `<style>`, and `<title>`) should get special treatment\n * and if \"empty\" tags (eg. `<br>`) can have children. If `false`, the content of special tags\n * will be text only. For feeds and other XML content (documents that don't consist of HTML),\n * set this to `true`.\n *\n * @default false\n */\n xmlMode?: boolean;\n\n /**\n * Decode entities within the document.\n *\n * @default true\n */\n decodeEntities?: boolean;\n\n /**\n * If set to true, all tags will be lowercased.\n *\n * @default !xmlMode\n */\n lowerCaseTags?: boolean;\n\n /**\n * If set to `true`, all attribute names will be lowercased. This has noticeable impact on speed.\n *\n * @default !xmlMode\n */\n lowerCaseAttributeNames?: boolean;\n\n /**\n * If set to true, CDATA sections will be recognized as text even if the xmlMode option is not enabled.\n * NOTE: If xmlMode is set to `true` then CDATA sections will always be recognized as text.\n *\n * @default xmlMode\n */\n recognizeCDATA?: boolean;\n\n /**\n * If set to `true`, self-closing tags will trigger the onclosetag event even if xmlMode is not set to `true`.\n * NOTE: If xmlMode is set to `true` then self-closing tags will always be recognized.\n *\n * @default xmlMode\n */\n recognizeSelfClosing?: boolean;\n\n /**\n * Allows the default tokenizer to be overwritten.\n */\n Tokenizer?: typeof Tokenizer;\n}\n\nexport interface Handler {\n onparserinit(parser: Parser): void;\n\n /**\n * Resets the handler back to starting state\n */\n onreset(): void;\n\n /**\n * Signals the handler that parsing is done\n */\n onend(): void;\n onerror(error: Error): void;\n onclosetag(name: string, isImplied: boolean): void;\n onopentagname(name: string): void;\n /**\n *\n * @param name Name of the attribute\n * @param value Value of the attribute.\n * @param quote Quotes used around the attribute. `null` if the attribute has no quotes around the value, `undefined` if the attribute has no value.\n */\n onattribute(\n name: string,\n value: string,\n quote?: string | undefined | null,\n ): void;\n onopentag(\n name: string,\n attribs: { [s: string]: string },\n isImplied: boolean,\n ): void;\n ontext(data: string): void;\n oncomment(data: string): void;\n oncdatastart(): void;\n oncdataend(): void;\n oncommentend(): void;\n onprocessinginstruction(name: string, data: string): void;\n}\n\nconst reNameEnd = /\\s|\\//;\n\nexport class Parser implements Callbacks {\n /** The start index of the last event. */\n public startIndex = 0;\n /** The end index of the last event. */\n public endIndex = 0;\n /**\n * Store the start index of the current open tag,\n * so we can update the start index for attributes.\n */\n private openTagStart = 0;\n\n private tagname = \"\";\n private attribname = \"\";\n private attribvalue = \"\";\n private attribs: null | { [key: string]: string } = null;\n private readonly stack: string[] = [];\n /** Determines whether self-closing tags are recognized. */\n private readonly foreignContext: boolean[];\n private readonly cbs: Partial<Handler>;\n private readonly lowerCaseTagNames: boolean;\n private readonly lowerCaseAttributeNames: boolean;\n private readonly recognizeSelfClosing: boolean;\n /** We are parsing HTML. Inverse of the `xmlMode` option. */\n private readonly htmlMode: boolean;\n private readonly tokenizer: Tokenizer;\n\n private readonly buffers: string[] = [];\n private bufferOffset = 0;\n /** The index of the last written buffer. Used when resuming after a `pause()`. */\n private writeIndex = 0;\n /** Indicates whether the parser has finished running / `.end` has been called. */\n private ended = false;\n\n constructor(\n cbs?: Partial<Handler> | null,\n private readonly options: ParserOptions = {},\n ) {\n this.cbs = cbs ?? {};\n this.htmlMode = !this.options.xmlMode;\n this.lowerCaseTagNames = options.lowerCaseTags ?? this.htmlMode;\n this.lowerCaseAttributeNames =\n options.lowerCaseAttributeNames ?? this.htmlMode;\n this.recognizeSelfClosing =\n options.recognizeSelfClosing ?? !this.htmlMode;\n this.tokenizer = new (options.Tokenizer ?? Tokenizer)(\n this.options,\n this,\n );\n this.foreignContext = [!this.htmlMode];\n this.cbs.onparserinit?.(this);\n }\n\n // Tokenizer event handlers\n\n /** @internal */\n ontext(start: number, endIndex: number): void {\n const data = this.getSlice(start, endIndex);\n this.endIndex = endIndex - 1;\n this.cbs.ontext?.(data);\n this.startIndex = endIndex;\n }\n\n /** @internal */\n ontextentity(cp: number, endIndex: number): void {\n this.endIndex = endIndex - 1;\n this.cbs.ontext?.(fromCodePoint(cp));\n this.startIndex = endIndex;\n }\n\n /**\n * Checks if the current tag is a void element. Override this if you want\n * to specify your own additional void elements.\n */\n protected isVoidElement(name: string): boolean {\n return this.htmlMode && voidElements.has(name);\n }\n\n /** @internal */\n onopentagname(start: number, endIndex: number): void {\n this.endIndex = endIndex;\n\n let name = this.getSlice(start, endIndex);\n\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n\n this.emitOpenTag(name);\n }\n\n private emitOpenTag(name: string) {\n this.openTagStart = this.startIndex;\n this.tagname = name;\n\n const impliesClose = this.htmlMode && openImpliesClose.get(name);\n\n if (impliesClose) {\n while (this.stack.length > 0 && impliesClose.has(this.stack[0])) {\n const element = this.stack.shift()!;\n this.cbs.onclosetag?.(element, true);\n }\n }\n if (!this.isVoidElement(name)) {\n this.stack.unshift(name);\n\n if (this.htmlMode) {\n if (foreignContextElements.has(name)) {\n this.foreignContext.unshift(true);\n } else if (htmlIntegrationElements.has(name)) {\n this.foreignContext.unshift(false);\n }\n }\n }\n this.cbs.onopentagname?.(name);\n if (this.cbs.onopentag) this.attribs = {};\n }\n\n private endOpenTag(isImplied: boolean) {\n this.startIndex = this.openTagStart;\n\n if (this.attribs) {\n this.cbs.onopentag?.(this.tagname, this.attribs, isImplied);\n this.attribs = null;\n }\n if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {\n this.cbs.onclosetag(this.tagname, true);\n }\n\n this.tagname = \"\";\n }\n\n /** @internal */\n onopentagend(endIndex: number): void {\n this.endIndex = endIndex;\n this.endOpenTag(false);\n\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n\n /** @internal */\n onclosetag(start: number, endIndex: number): void {\n this.endIndex = endIndex;\n\n let name = this.getSlice(start, endIndex);\n\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n\n if (\n this.htmlMode &&\n (foreignContextElements.has(name) ||\n htmlIntegrationElements.has(name))\n ) {\n this.foreignContext.shift();\n }\n\n if (!this.isVoidElement(name)) {\n const pos = this.stack.indexOf(name);\n if (pos !== -1) {\n for (let index = 0; index <= pos; index++) {\n const element = this.stack.shift()!;\n // We know the stack has sufficient elements.\n this.cbs.onclosetag?.(element, index !== pos);\n }\n } else if (this.htmlMode && name === \"p\") {\n // Implicit open before close\n this.emitOpenTag(\"p\");\n this.closeCurrentTag(true);\n }\n } else if (this.htmlMode && name === \"br\") {\n // We can't use `emitOpenTag` for implicit open, as `br` would be implicitly closed.\n this.cbs.onopentagname?.(\"br\");\n this.cbs.onopentag?.(\"br\", {}, true);\n this.cbs.onclosetag?.(\"br\", false);\n }\n\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n\n /** @internal */\n onselfclosingtag(endIndex: number): void {\n this.endIndex = endIndex;\n if (this.recognizeSelfClosing || this.foreignContext[0]) {\n this.closeCurrentTag(false);\n\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n } else {\n // Ignore the fact that the tag is self-closing.\n this.onopentagend(endIndex);\n }\n }\n\n private closeCurrentTag(isOpenImplied: boolean) {\n const name = this.tagname;\n this.endOpenTag(isOpenImplied);\n\n // Self-closing tags will be on the top of the stack\n if (this.stack[0] === name) {\n // If the opening tag isn't implied, the closing tag has to be implied.\n this.cbs.onclosetag?.(name, !isOpenImplied);\n this.stack.shift();\n }\n }\n\n /** @internal */\n onattribname(start: number, endIndex: number): void {\n this.startIndex = start;\n const name = this.getSlice(start, endIndex);\n\n this.attribname = this.lowerCaseAttributeNames\n ? name.toLowerCase()\n : name;\n }\n\n /** @internal */\n onattribdata(start: number, endIndex: number): void {\n this.attribvalue += this.getSlice(start, endIndex);\n }\n\n /** @internal */\n onattribentity(cp: number): void {\n this.attribvalue += fromCodePoint(cp);\n }\n\n /** @internal */\n onattribend(quote: QuoteType, endIndex: number): void {\n this.endIndex = endIndex;\n\n this.cbs.onattribute?.(\n this.attribname,\n this.attribvalue,\n quote === QuoteType.Double\n ? '\"'\n : quote === QuoteType.Single\n ? \"'\"\n : quote === QuoteType.NoValue\n ? undefined\n : null,\n );\n\n if (\n this.attribs &&\n !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)\n ) {\n this.attribs[this.attribname] = this.attribvalue;\n }\n this.attribvalue = \"\";\n }\n\n private getInstructionName(value: string) {\n const index = value.search(reNameEnd);\n let name = index < 0 ? value : value.substr(0, index);\n\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n\n return name;\n }\n\n /** @internal */\n ondeclaration(start: number, endIndex: number): void {\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex);\n\n if (this.cbs.onprocessinginstruction) {\n const name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(`!${name}`, `!${value}`);\n }\n\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n\n /** @internal */\n onprocessinginstruction(start: number, endIndex: number): void {\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex);\n\n if (this.cbs.onprocessinginstruction) {\n const name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(`?${name}`, `?${value}`);\n }\n\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n\n /** @internal */\n oncomment(start: number, endIndex: number, offset: number): void {\n this.endIndex = endIndex;\n\n this.cbs.oncomment?.(this.getSlice(start, endIndex - offset));\n this.cbs.oncommentend?.();\n\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n\n /** @internal */\n oncdata(start: number, endIndex: number, offset: number): void {\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex - offset);\n\n if (!this.htmlMode || this.options.recognizeCDATA) {\n this.cbs.oncdatastart?.();\n this.cbs.ontext?.(value);\n this.cbs.oncdataend?.();\n } else {\n this.cbs.oncomment?.(`[CDATA[${value}]]`);\n this.cbs.oncommentend?.();\n }\n\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n\n /** @internal */\n onend(): void {\n if (this.cbs.onclosetag) {\n // Set the end index for all remaining tags\n this.endIndex = this.startIndex;\n for (let index = 0; index < this.stack.length; index++) {\n this.cbs.onclosetag(this.stack[index], true);\n }\n }\n this.cbs.onend?.();\n }\n\n /**\n * Resets the parser to a blank state, ready to parse a new HTML document\n */\n public reset(): void {\n this.cbs.onreset?.();\n this.tokenizer.reset();\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribs = null;\n this.stack.length = 0;\n this.startIndex = 0;\n this.endIndex = 0;\n this.cbs.onparserinit?.(this);\n this.buffers.length = 0;\n this.foreignContext.length = 0;\n this.foreignContext.unshift(!this.htmlMode);\n this.bufferOffset = 0;\n this.writeIndex = 0;\n this.ended = false;\n }\n\n /**\n * Resets the parser, then parses a complete document and\n * pushes it to the handler.\n *\n * @param data Document to parse.\n */\n public parseComplete(data: string): void {\n this.reset();\n this.end(data);\n }\n\n private getSlice(start: number, end: number) {\n while (start - this.bufferOffset >= this.buffers[0].length) {\n this.shiftBuffer();\n }\n\n let slice = this.buffers[0].slice(\n start - this.bufferOffset,\n end - this.bufferOffset,\n );\n\n while (end - this.bufferOffset > this.buffers[0].length) {\n this.shiftBuffer();\n slice += this.buffers[0].slice(0, end - this.bufferOffset);\n }\n\n return slice;\n }\n\n private shiftBuffer(): void {\n this.bufferOffset += this.buffers[0].length;\n this.writeIndex--;\n this.buffers.shift();\n }\n\n /**\n * Parses a chunk of data and calls the corresponding callbacks.\n *\n * @param chunk Chunk to parse.\n */\n public write(chunk: string): void {\n if (this.ended) {\n this.cbs.onerror?.(new Error(\".write() after done!\"));\n return;\n }\n\n this.buffers.push(chunk);\n if (this.tokenizer.running) {\n this.tokenizer.write(chunk);\n this.writeIndex++;\n }\n }\n\n /**\n * Parses the end of the buffer and clears the stack, calls onend.\n *\n * @param chunk Optional final chunk to parse.\n */\n public end(chunk?: string): void {\n if (this.ended) {\n this.cbs.onerror?.(new Error(\".end() after done!\"));\n return;\n }\n\n if (chunk) this.write(chunk);\n this.ended = true;\n this.tokenizer.end();\n }\n\n /**\n * Pauses parsing. The parser won't emit events until `resume` is called.\n */\n public pause(): void {\n this.tokenizer.pause();\n }\n\n /**\n * Resumes parsing after `pause` was called.\n */\n public resume(): void {\n this.tokenizer.resume();\n\n while (\n this.tokenizer.running &&\n this.writeIndex < this.buffers.length\n ) {\n this.tokenizer.write(this.buffers[this.writeIndex++]);\n }\n\n if (this.ended) this.tokenizer.end();\n }\n\n /**\n * Alias of `write`, for backwards compatibility.\n *\n * @param chunk Chunk to parse.\n * @deprecated\n */\n public parseChunk(chunk: string): void {\n this.write(chunk);\n }\n /**\n * Alias of `end`, for backwards compatibility.\n *\n * @param chunk Optional final chunk to parse.\n * @deprecated\n */\n public done(chunk?: string): void {\n this.end(chunk);\n }\n}\n", "/** Types of elements found in htmlparser2's DOM */\nexport var ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for <? ... ?> */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for <!-- ... --> */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for <script> tags */\n ElementType[\"Script\"] = \"script\";\n /** Type for <style> tags */\n ElementType[\"Style\"] = \"style\";\n /** Type for Any tag */\n ElementType[\"Tag\"] = \"tag\";\n /** Type for <![CDATA[ ... ]]> */\n ElementType[\"CDATA\"] = \"cdata\";\n /** Type for <!doctype ...> */\n ElementType[\"Doctype\"] = \"doctype\";\n})(ElementType || (ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nexport function isTag(elem) {\n return (elem.type === ElementType.Tag ||\n elem.type === ElementType.Script ||\n elem.type === ElementType.Style);\n}\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexport const Root = ElementType.Root;\n/** Type for Text */\nexport const Text = ElementType.Text;\n/** Type for <? ... ?> */\nexport const Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexport const Comment = ElementType.Comment;\n/** Type for <script> tags */\nexport const Script = ElementType.Script;\n/** Type for <style> tags */\nexport const Style = ElementType.Style;\n/** Type for Any tag */\nexport const Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexport const CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexport const Doctype = ElementType.Doctype;\n", "import { ElementType, isTag as isTagRaw } from \"domelementtype\";\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nexport class Node {\n constructor() {\n /** Parent of the node */\n this.parent = null;\n /** Previous sibling */\n this.prev = null;\n /** Next sibling */\n this.next = null;\n /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n this.startIndex = null;\n /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n this.endIndex = null;\n }\n // Read-write aliases for properties\n /**\n * Same as {@link parent}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get parentNode() {\n return this.parent;\n }\n set parentNode(parent) {\n this.parent = parent;\n }\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get previousSibling() {\n return this.prev;\n }\n set previousSibling(prev) {\n this.prev = prev;\n }\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get nextSibling() {\n return this.next;\n }\n set nextSibling(next) {\n this.next = next;\n }\n /**\n * Clone this node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\n cloneNode(recursive = false) {\n return cloneNode(this, recursive);\n }\n}\n/**\n * A node that contains some data.\n */\nexport class DataNode extends Node {\n /**\n * @param data The content of the data node\n */\n constructor(data) {\n super();\n this.data = data;\n }\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get nodeValue() {\n return this.data;\n }\n set nodeValue(data) {\n this.data = data;\n }\n}\n/**\n * Text within the document.\n */\nexport class Text extends DataNode {\n constructor() {\n super(...arguments);\n this.type = ElementType.Text;\n }\n get nodeType() {\n return 3;\n }\n}\n/**\n * Comments within the document.\n */\nexport class Comment extends DataNode {\n constructor() {\n super(...arguments);\n this.type = ElementType.Comment;\n }\n get nodeType() {\n return 8;\n }\n}\n/**\n * Processing instructions, including doc types.\n */\nexport class ProcessingInstruction extends DataNode {\n constructor(name, data) {\n super(data);\n this.name = name;\n this.type = ElementType.Directive;\n }\n get nodeType() {\n return 1;\n }\n}\n/**\n * A `Node` that can have children.\n */\nexport class NodeWithChildren extends Node {\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n constructor(children) {\n super();\n this.children = children;\n }\n // Aliases\n /** First child of the node. */\n get firstChild() {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n }\n /** Last child of the node. */\n get lastChild() {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n }\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get childNodes() {\n return this.children;\n }\n set childNodes(children) {\n this.children = children;\n }\n}\nexport class CDATA extends NodeWithChildren {\n constructor() {\n super(...arguments);\n this.type = ElementType.CDATA;\n }\n get nodeType() {\n return 4;\n }\n}\n/**\n * The root node of the document.\n */\nexport class Document extends NodeWithChildren {\n constructor() {\n super(...arguments);\n this.type = ElementType.Root;\n }\n get nodeType() {\n return 9;\n }\n}\n/**\n * An element within the DOM.\n */\nexport class Element extends NodeWithChildren {\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n */\n constructor(name, attribs, children = [], type = name === \"script\"\n ? ElementType.Script\n : name === \"style\"\n ? ElementType.Style\n : ElementType.Tag) {\n super(children);\n this.name = name;\n this.attribs = attribs;\n this.type = type;\n }\n get nodeType() {\n return 1;\n }\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get tagName() {\n return this.name;\n }\n set tagName(name) {\n this.name = name;\n }\n get attributes() {\n return Object.keys(this.attribs).map((name) => {\n var _a, _b;\n return ({\n name,\n value: this.attribs[name],\n namespace: (_a = this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n prefix: (_b = this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n });\n });\n }\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nexport function isTag(node) {\n return isTagRaw(node);\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nexport function isCDATA(node) {\n return node.type === ElementType.CDATA;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nexport function isText(node) {\n return node.type === ElementType.Text;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nexport function isComment(node) {\n return node.type === ElementType.Comment;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nexport function isDirective(node) {\n return node.type === ElementType.Directive;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nexport function isDocument(node) {\n return node.type === ElementType.Root;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nexport function hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nexport function cloneNode(node, recursive = false) {\n let result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new Element(node.name, { ...node.attribs }, children);\n children.forEach((child) => (child.parent = clone));\n if (node.namespace != null) {\n clone.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone[\"x-attribsNamespace\"] = { ...node[\"x-attribsNamespace\"] };\n }\n if (node[\"x-attribsPrefix\"]) {\n clone[\"x-attribsPrefix\"] = { ...node[\"x-attribsPrefix\"] };\n }\n result = clone;\n }\n else if (isCDATA(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new CDATA(children);\n children.forEach((child) => (child.parent = clone));\n result = clone;\n }\n else if (isDocument(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new Document(children);\n children.forEach((child) => (child.parent = clone));\n if (node[\"x-mode\"]) {\n clone[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone;\n }\n else if (isDirective(node)) {\n const instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(`Not implemented yet: ${node.type}`);\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\nfunction cloneChildren(childs) {\n const children = childs.map((child) => cloneNode(child, true));\n for (let i = 1; i < children.length; i++) {\n children[i].prev = children[i - 1];\n children[i - 1].next = children[i];\n }\n return children;\n}\n", "import { ElementType } from \"domelementtype\";\nimport { Element, Text, Comment, CDATA, Document, ProcessingInstruction, } from \"./node.js\";\nexport * from \"./node.js\";\n// Default options\nconst defaultOpts = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nexport class DomHandler {\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n constructor(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new Document(this.dom);\n /** Indicated whether parsing has been completed. */\n this.done = false;\n /** Stack of open tags. */\n this.tagStack = [this.root];\n /** A data node that is still being written to. */\n this.lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n this.parser = null;\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback !== null && callback !== void 0 ? callback : null;\n this.options = options !== null && options !== void 0 ? options : defaultOpts;\n this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n }\n onparserinit(parser) {\n this.parser = parser;\n }\n // Resets the handler back to starting state\n onreset() {\n this.dom = [];\n this.root = new Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n }\n // Signals the handler that parsing is done\n onend() {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n }\n onerror(error) {\n this.handleCallback(error);\n }\n onclosetag() {\n this.lastNode = null;\n const elem = this.tagStack.pop();\n if (this.options.withEndIndices) {\n elem.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(elem);\n }\n onopentag(name, attribs) {\n const type = this.options.xmlMode ? ElementType.Tag : undefined;\n const element = new Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n }\n ontext(data) {\n const { lastNode } = this;\n if (lastNode && lastNode.type === ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n const node = new Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n }\n oncomment(data) {\n if (this.lastNode && this.lastNode.type === ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n const node = new Comment(data);\n this.addNode(node);\n this.lastNode = node;\n }\n oncommentend() {\n this.lastNode = null;\n }\n oncdatastart() {\n const text = new Text(\"\");\n const node = new CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n }\n oncdataend() {\n this.lastNode = null;\n }\n onprocessinginstruction(name, data) {\n const node = new ProcessingInstruction(name, data);\n this.addNode(node);\n }\n handleCallback(error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n }\n addNode(node) {\n const parent = this.tagStack[this.tagStack.length - 1];\n const previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n }\n}\nexport default DomHandler;\n", null, null, null, null, null, null, null, null, "export const elementNames = new Map([\n \"altGlyph\",\n \"altGlyphDef\",\n \"altGlyphItem\",\n \"animateColor\",\n \"animateMotion\",\n \"animateTransform\",\n \"clipPath\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feDropShadow\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"foreignObject\",\n \"glyphRef\",\n \"linearGradient\",\n \"radialGradient\",\n \"textPath\",\n].map((val) => [val.toLowerCase(), val]));\nexport const attributeNames = new Map([\n \"definitionURL\",\n \"attributeName\",\n \"attributeType\",\n \"baseFrequency\",\n \"baseProfile\",\n \"calcMode\",\n \"clipPathUnits\",\n \"diffuseConstant\",\n \"edgeMode\",\n \"filterUnits\",\n \"glyphRef\",\n \"gradientTransform\",\n \"gradientUnits\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keyPoints\",\n \"keySplines\",\n \"keyTimes\",\n \"lengthAdjust\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerUnits\",\n \"markerWidth\",\n \"maskContentUnits\",\n \"maskUnits\",\n \"numOctaves\",\n \"pathLength\",\n \"patternContentUnits\",\n \"patternTransform\",\n \"patternUnits\",\n \"pointsAtX\",\n \"pointsAtY\",\n \"pointsAtZ\",\n \"preserveAlpha\",\n \"preserveAspectRatio\",\n \"primitiveUnits\",\n \"refX\",\n \"refY\",\n \"repeatCount\",\n \"repeatDur\",\n \"requiredExtensions\",\n \"requiredFeatures\",\n \"specularConstant\",\n \"specularExponent\",\n \"spreadMethod\",\n \"startOffset\",\n \"stdDeviation\",\n \"stitchTiles\",\n \"surfaceScale\",\n \"systemLanguage\",\n \"tableValues\",\n \"targetX\",\n \"targetY\",\n \"textLength\",\n \"viewBox\",\n \"viewTarget\",\n \"xChannelSelector\",\n \"yChannelSelector\",\n \"zoomAndPan\",\n].map((val) => [val.toLowerCase(), val]));\n", "/*\n * Module dependencies\n */\nimport * as ElementType from \"domelementtype\";\nimport { encodeXML, escapeAttribute, escapeText } from \"entities\";\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nimport { elementNames, attributeNames } from \"./foreignNames.js\";\nconst unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\nfunction replaceQuotes(value) {\n return value.replace(/\"/g, \"&quot;\");\n}\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n var _a;\n if (!attributes)\n return;\n const encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false\n ? replaceQuotes\n : opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? encodeXML\n : escapeAttribute;\n return Object.keys(attributes)\n .map((key) => {\n var _a, _b;\n const value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return `${key}=\"${encode(value)}\"`;\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nconst singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nexport function render(node, options = {}) {\n const nodes = \"length\" in node ? node : [node];\n let output = \"\";\n for (let i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexport default render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n // @ts-expect-error We don't use `Doctype` yet\n case ElementType.Doctype:\n case ElementType.Directive:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nconst foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nconst foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = { ...opts, xmlMode: false };\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = { ...opts, xmlMode: \"foreign\" };\n }\n let tag = `<${elem.name}`;\n const attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += ` ${attribs}`;\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += `</${elem.name}>`;\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return `<${elem.data}>`;\n}\nfunction renderText(elem, opts) {\n var _a;\n let data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data =\n opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? encodeXML(data)\n : escapeText(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return `<![CDATA[${elem.children[0].data}]]>`;\n}\nfunction renderComment(elem) {\n return `<!--${elem.data}-->`;\n}\n", null, null, null, null, null, null, null, "// Internal\nexport const NODE_END = -1;\n\n// Node\nexport const ELEMENT_NODE = 1;\nexport const ATTRIBUTE_NODE = 2;\nexport const TEXT_NODE = 3;\nexport const CDATA_SECTION_NODE = 4;\nexport const COMMENT_NODE = 8;\nexport const DOCUMENT_NODE = 9;\nexport const DOCUMENT_TYPE_NODE = 10;\nexport const DOCUMENT_FRAGMENT_NODE = 11;\n\n// Elements\nexport const BLOCK_ELEMENTS = new Set(['ARTICLE', 'ASIDE', 'BLOCKQUOTE', 'BODY', 'BR', 'BUTTON', 'CANVAS', 'CAPTION', 'COL', 'COLGROUP', 'DD', 'DIV', 'DL', 'DT', 'EMBED', 'FIELDSET', 'FIGCAPTION', 'FIGURE', 'FOOTER', 'FORM', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'LI', 'UL', 'OL', 'P']);\n\n// TreeWalker\nexport const SHOW_ALL = -1;\nexport const SHOW_ELEMENT = 1;\nexport const SHOW_TEXT = 4;\nexport const SHOW_CDATA_SECTION = 8;\nexport const SHOW_COMMENT = 128;\n\n// Document position\nexport const DOCUMENT_POSITION_DISCONNECTED = 0x01;\nexport const DOCUMENT_POSITION_PRECEDING = 0x02;\nexport const DOCUMENT_POSITION_FOLLOWING = 0x04;\nexport const DOCUMENT_POSITION_CONTAINS = 0x08;\nexport const DOCUMENT_POSITION_CONTAINED_BY = 0x10;\nexport const DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20;\n\n// SVG\nexport const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n", "const {\n assign,\n create,\n defineProperties,\n entries,\n getOwnPropertyDescriptors,\n keys,\n setPrototypeOf\n} = Object;\n\nexport {\n assign,\n create,\n defineProperties,\n entries,\n getOwnPropertyDescriptors,\n keys,\n setPrototypeOf\n};\n", "import {ELEMENT_NODE} from './constants.js';\nimport {END, MIME, NEXT, PREV} from './symbols.js';\n\nconst $String = String;\nexport {$String as String};\n\nexport const getEnd = node => node.nodeType === ELEMENT_NODE ? node[END] : node;\n\nexport const ignoreCase = ({ownerDocument}) => ownerDocument[MIME].ignoreCase;\n\nexport const knownAdjacent = (prev, next) => {\n prev[NEXT] = next;\n next[PREV] = prev;\n};\n\nexport const knownBoundaries = (prev, current, next) => {\n knownAdjacent(prev, current);\n knownAdjacent(getEnd(current), next);\n};\n\nexport const knownSegment = (prev, start, end, next) => {\n knownAdjacent(prev, start);\n knownAdjacent(getEnd(end), next);\n};\n\nexport const knownSiblings = (prev, current, next) => {\n knownAdjacent(prev, current);\n knownAdjacent(current, next);\n};\n\nexport const localCase = ({localName, ownerDocument}) => {\n return ownerDocument[MIME].ignoreCase ? localName.toUpperCase() : localName;\n};\n\nexport const setAdjacent = (prev, next) => {\n if (prev)\n prev[NEXT] = next;\n if (next)\n next[PREV] = prev;\n};\n\n/**\n * @param {import(\"../interface/document.js\").Document} ownerDocument\n * @param {string} html\n * @return {import(\"../interface/document-fragment.js\").DocumentFragment}\n */\nexport const htmlToFragment = (ownerDocument, html) => {\n const fragment = ownerDocument.createDocumentFragment();\n\n const elem = ownerDocument.createElement('');\n elem.innerHTML = html;\n const { firstChild, lastChild } = elem;\n\n if (firstChild) {\n knownSegment(fragment, firstChild, lastChild, fragment[END]);\n\n let child = firstChild;\n do {\n child.parentNode = fragment;\n } while (child !== lastChild && (child = getEnd(child)[NEXT]));\n }\n\n return fragment;\n};", "export const shadowRoots = new WeakMap;\n", "import {ELEMENT_NODE} from '../shared/constants.js';\nimport {END, NEXT, UPGRADE} from '../shared/symbols.js';\nimport {entries, setPrototypeOf} from '../shared/object.js';\nimport {shadowRoots} from '../shared/shadow-roots.js';\n\nlet reactive = false;\n\nexport const Classes = new WeakMap;\n\nexport const customElements = new WeakMap;\n\nexport const attributeChangedCallback = (element, attributeName, oldValue, newValue) => {\n if (\n reactive &&\n customElements.has(element) &&\n element.attributeChangedCallback &&\n element.constructor.observedAttributes.includes(attributeName)\n ) {\n element.attributeChangedCallback(attributeName, oldValue, newValue);\n }\n};\n\nconst createTrigger = (method, isConnected) => element => {\n if (customElements.has(element)) {\n const info = customElements.get(element);\n if (info.connected !== isConnected && element.isConnected === isConnected) {\n info.connected = isConnected;\n if (method in element)\n element[method]();\n }\n }\n};\n\nconst triggerConnected = createTrigger('connectedCallback', true);\nexport const connectedCallback = element => {\n if (reactive) {\n triggerConnected(element);\n if (shadowRoots.has(element))\n element = shadowRoots.get(element).shadowRoot;\n let {[NEXT]: next, [END]: end} = element;\n while (next !== end) {\n if (next.nodeType === ELEMENT_NODE)\n triggerConnected(next);\n next = next[NEXT];\n }\n }\n};\n\nconst triggerDisconnected = createTrigger('disconnectedCallback', false);\nexport const disconnectedCallback = element => {\n if (reactive) {\n triggerDisconnected(element);\n if (shadowRoots.has(element))\n element = shadowRoots.get(element).shadowRoot;\n let {[NEXT]: next, [END]: end} = element;\n while (next !== end) {\n if (next.nodeType === ELEMENT_NODE)\n triggerDisconnected(next);\n next = next[NEXT];\n }\n }\n};\n\n/**\n * @implements globalThis.CustomElementRegistry\n */\nexport class CustomElementRegistry {\n\n /**\n * @param {Document} ownerDocument\n */\n constructor(ownerDocument) {\n /**\n * @private\n */\n this.ownerDocument = ownerDocument;\n\n /**\n * @private\n */\n this.registry = new Map;\n\n /**\n * @private\n */\n this.waiting = new Map;\n\n /**\n * @private\n */\n this.active = false;\n }\n\n /**\n * @param {string} localName the custom element definition name\n * @param {Function} Class the custom element **Class** definition\n * @param {object?} options the optional object with an `extends` property\n */\n define(localName, Class, options = {}) {\n const {ownerDocument, registry, waiting} = this;\n\n if (registry.has(localName))\n throw new Error('unable to redefine ' + localName);\n\n if (Classes.has(Class))\n throw new Error('unable to redefine the same class: ' + Class);\n\n this.active = (reactive = true);\n\n const {extends: extend} = options;\n\n Classes.set(Class, {\n ownerDocument,\n options: {is: extend ? localName : ''},\n localName: extend || localName\n });\n\n const check = extend ?\n element => {\n return element.localName === extend &&\n element.getAttribute('is') === localName;\n } :\n element => element.localName === localName;\n registry.set(localName, {Class, check});\n if (waiting.has(localName)) {\n for (const resolve of waiting.get(localName))\n resolve(Class);\n waiting.delete(localName);\n }\n ownerDocument.querySelectorAll(\n extend ? `${extend}[is=\"${localName}\"]` : localName\n ).forEach(this.upgrade, this);\n }\n\n /**\n * @param {Element} element\n */\n upgrade(element) {\n if (customElements.has(element))\n return;\n const {ownerDocument, registry} = this;\n const ce = element.getAttribute('is') || element.localName;\n if (registry.has(ce)) {\n const {Class, check} = registry.get(ce);\n if (check(element)) {\n const {attributes, isConnected} = element;\n for (const attr of attributes)\n element.removeAttributeNode(attr);\n\n const values = entries(element);\n for (const [key] of values)\n delete element[key];\n\n setPrototypeOf(element, Class.prototype);\n ownerDocument[UPGRADE] = {element, values};\n new Class(ownerDocument, ce);\n\n customElements.set(element, {connected: isConnected});\n\n for (const attr of attributes)\n element.setAttributeNode(attr);\n\n if (isConnected && element.connectedCallback)\n element.connectedCallback();\n }\n }\n }\n\n /**\n * @param {string} localName the custom element definition name\n */\n whenDefined(localName) {\n const {registry, waiting} = this;\n return new Promise(resolve => {\n if (registry.has(localName))\n resolve(registry.get(localName).Class);\n else {\n if (!waiting.has(localName))\n waiting.set(localName, []);\n waiting.get(localName).push(resolve);\n }\n });\n }\n\n /**\n * @param {string} localName the custom element definition name\n * @returns {Function?} the custom element **Class**, if any\n */\n get(localName) {\n const info = this.registry.get(localName);\n return info && info.Class;\n }\n\n /**\n * @param {Function} Class **Class** of custom element\n * @returns {string?} found tag name or null\n */\n getName(Class) {\n if (Classes.has(Class)) {\n const { localName } = Classes.get(Class);\n return localName;\n }\n return null;\n }\n}\n", "import * as HTMLParser2 from 'htmlparser2';\n\nimport {ELEMENT_NODE, SVG_NAMESPACE} from './constants.js';\nimport {CUSTOM_ELEMENTS, PREV, END, VALUE} from './symbols.js';\nimport {keys} from './object.js';\n\nimport {knownBoundaries, knownSiblings} from './utils.js';\nimport {attributeChangedCallback, connectedCallback} from '../interface/custom-element-registry.js';\n\nconst {Parser} = HTMLParser2;\n\n// import {Mime} from './mime.js';\n// const VOID_SOURCE = Mime['text/html'].voidElements.source.slice(4, -2);\n// const VOID_ELEMENTS = new RegExp(`<(${VOID_SOURCE})([^>]*?)>`, 'gi');\n// const VOID_SANITIZER = (_, $1, $2) => `<${$1}${$2}${/\\/$/.test($2) ? '' : ' /'}>`;\n// const voidSanitizer = html => html.replace(VOID_ELEMENTS, VOID_SANITIZER);\n\nlet notParsing = true;\n\nconst append = (self, node, active) => {\n const end = self[END];\n node.parentNode = self;\n knownBoundaries(end[PREV], node, end);\n if (active && node.nodeType === ELEMENT_NODE)\n connectedCallback(node);\n return node;\n};\n\nconst attribute = (element, end, attribute, value, active) => {\n attribute[VALUE] = value;\n attribute.ownerElement = element;\n knownSiblings(end[PREV], attribute, end);\n if (attribute.name === 'class')\n element.className = value;\n if (active)\n attributeChangedCallback(element, attribute.name, null, value);\n};\n\nexport const isNotParsing = () => notParsing;\n\nexport const parseFromString = (document, isHTML, markupLanguage) => {\n const {active, registry} = document[CUSTOM_ELEMENTS];\n\n let node = document;\n let ownerSVGElement = null;\n let parsingCData = false;\n\n notParsing = false;\n\n const content = new Parser({\n // <!DOCTYPE ...>\n onprocessinginstruction(name, data) {\n if (name.toLowerCase() === '!doctype')\n document.doctype = data.slice(name.length).trim();\n },\n\n // <tagName>\n onopentag(name, attributes) {\n let create = true;\n if (isHTML) {\n if (ownerSVGElement) {\n node = append(node, document.createElementNS(SVG_NAMESPACE, name), active);\n node.ownerSVGElement = ownerSVGElement;\n create = false;\n }\n else if (name === 'svg' || name === 'SVG') {\n ownerSVGElement = document.createElementNS(SVG_NAMESPACE, name);\n node = append(node, ownerSVGElement, active);\n create = false;\n }\n else if (active) {\n const ce = name.includes('-') ? name : (attributes.is || '');\n if (ce && registry.has(ce)) {\n const {Class} = registry.get(ce);\n node = append(node, new Class, active);\n delete attributes.is;\n create = false;\n }\n }\n }\n\n if (create)\n node = append(node, document.createElement(name), false);\n\n let end = node[END];\n for (const name of keys(attributes))\n attribute(node, end, document.createAttribute(name), attributes[name], active);\n },\n\n // #text, #comment\n oncomment(data) { append(node, document.createComment(data), active); },\n ontext(text) {\n if (parsingCData) {\n append(node, document.createCDATASection(text), active);\n } else {\n append(node, document.createTextNode(text), active);\n }\n },\n\n // #cdata\n oncdatastart() { parsingCData = true; },\n oncdataend() { parsingCData = false; },\n\n // </tagName>\n onclosetag() {\n if (isHTML && node === ownerSVGElement)\n ownerSVGElement = null;\n node = node.parentNode;\n }\n }, {\n lowerCaseAttributeNames: false,\n decodeEntities: true,\n xmlMode: !isHTML\n });\n\n content.write(markupLanguage);\n content.end();\n\n notParsing = true;\n\n return document;\n};\n", "export const htmlClasses = new Map;\n\nexport const registerHTMLClass = (names, Class) => {\n for (const name of [].concat(names)) {\n htmlClasses.set(name, Class);\n htmlClasses.set(name.toUpperCase(), Class);\n }\n};\n", "import {\n NODE_END,\n ATTRIBUTE_NODE,\n CDATA_SECTION_NODE,\n COMMENT_NODE,\n DOCUMENT_TYPE_NODE,\n ELEMENT_NODE,\n TEXT_NODE\n} from './constants.js';\n\nimport {END, NEXT, VALUE} from './symbols.js';\n\nimport {getEnd} from './utils.js';\n\nconst loopSegment = ({[NEXT]: next, [END]: end}, json) => {\n while (next !== end) {\n switch (next.nodeType) {\n case ATTRIBUTE_NODE:\n attrAsJSON(next, json);\n break;\n case TEXT_NODE:\n case COMMENT_NODE:\n case CDATA_SECTION_NODE:\n characterDataAsJSON(next, json);\n break;\n case ELEMENT_NODE:\n elementAsJSON(next, json);\n next = getEnd(next);\n break;\n case DOCUMENT_TYPE_NODE:\n documentTypeAsJSON(next, json);\n break;\n }\n next = next[NEXT];\n }\n const last = json.length - 1;\n const value = json[last];\n if (typeof value === 'number' && value < 0)\n json[last] += NODE_END;\n else\n json.push(NODE_END);\n};\n\nexport const attrAsJSON = (attr, json) => {\n json.push(ATTRIBUTE_NODE, attr.name);\n const value = attr[VALUE].trim();\n if (value)\n json.push(value);\n};\n\nexport const characterDataAsJSON = (node, json) => {\n const value = node[VALUE];\n if (value.trim())\n json.push(node.nodeType, value);\n};\n\nexport const nonElementAsJSON = (node, json) => {\n json.push(node.nodeType);\n loopSegment(node, json);\n};\n\nexport const documentTypeAsJSON = ({name, publicId, systemId}, json) => {\n json.push(DOCUMENT_TYPE_NODE, name);\n if (publicId)\n json.push(publicId);\n if (systemId)\n json.push(systemId);\n};\n\nexport const elementAsJSON = (element, json) => {\n json.push(ELEMENT_NODE, element.localName);\n loopSegment(element, json);\n};\n", "import {MUTATION_OBSERVER} from '../shared/symbols.js';\n\nconst createRecord =\n (type, target, element, addedNodes, removedNodes, attributeName, oldValue) =>\n ({\n type,\n target,\n addedNodes,\n removedNodes,\n attributeName,\n oldValue,\n previousSibling: element?.previousSibling || null,\n nextSibling: element?.nextSibling || null,\n});\n\nconst queueAttribute = (\n observer, target, attributeName, attributeFilter, attributeOldValue, oldValue\n) => {\n if ((!attributeFilter || attributeFilter.includes(attributeName))) {\n const {callback, records, scheduled} = observer;\n records.push(createRecord(\n 'attributes', target, null,\n [], [],\n attributeName, attributeOldValue ? oldValue : void 0\n ));\n if (!scheduled) {\n observer.scheduled = true;\n Promise.resolve().then(() => {\n observer.scheduled = false;\n callback(records.splice(0), observer);\n });\n }\n }\n};\n\nexport const attributeChangedCallback = (element, attributeName, oldValue) => {\n const {ownerDocument} = element;\n const {active, observers} = ownerDocument[MUTATION_OBSERVER];\n if (active) {\n for (const observer of observers) {\n for (const [\n target,\n {\n childList,\n subtree,\n attributes,\n attributeFilter,\n attributeOldValue\n }\n ] of observer.nodes) {\n if (childList) {\n if (\n (subtree && (target === ownerDocument || target.contains(element))) ||\n (!subtree && target.children.includes(element))\n ) {\n queueAttribute(\n observer, element,\n attributeName, attributeFilter, attributeOldValue, oldValue\n );\n break;\n }\n }\n else if (\n attributes &&\n target === element\n ) {\n queueAttribute(\n observer, element,\n attributeName, attributeFilter, attributeOldValue, oldValue\n );\n break;\n }\n }\n }\n }\n};\n\nexport const moCallback = (element, parentNode) => {\n const {ownerDocument} = element;\n const {active, observers} = ownerDocument[MUTATION_OBSERVER];\n if (active) {\n for (const observer of observers) {\n for (const [target, {subtree, childList, characterData}] of observer.nodes) {\n if (childList) {\n if (\n (parentNode && (target === parentNode || /* c8 ignore next */(subtree && target.contains(parentNode)))) ||\n (!parentNode && ((subtree && (target === ownerDocument || /* c8 ignore next */target.contains(element))) ||\n (!subtree && target[characterData ? 'childNodes' : 'children'].includes(element))))\n ) {\n const {callback, records, scheduled} = observer;\n records.push(createRecord(\n 'childList', target, element,\n parentNode ? [] : [element], parentNode ? [element] : []\n ));\n if (!scheduled) {\n observer.scheduled = true;\n Promise.resolve().then(() => {\n observer.scheduled = false;\n callback(records.splice(0), observer);\n });\n }\n break;\n }\n }\n }\n }\n }\n};\n\nexport class MutationObserverClass {\n constructor(ownerDocument) {\n const observers = new Set;\n this.observers = observers;\n this.active = false;\n\n /**\n * @implements globalThis.MutationObserver\n */\n this.class = class MutationObserver {\n\n constructor(callback) {\n /**\n * @private\n */\n this.callback = callback;\n\n /**\n * @private\n */\n this.nodes = new Map;\n\n /**\n * @private\n */\n this.records = [];\n\n /**\n * @private\n */\n this.scheduled = false;\n }\n\n disconnect() {\n this.records.splice(0);\n this.nodes.clear();\n observers.delete(this);\n ownerDocument[MUTATION_OBSERVER].active = !!observers.size;\n }\n\n /**\n * @param {Element} target\n * @param {MutationObserverInit} options\n */\n observe(target, options = {\n subtree: false,\n childList: false,\n attributes: false,\n attributeFilter: null,\n attributeOldValue: false,\n characterData: false,\n // TODO: not implemented yet\n // characterDataOldValue: false\n }) {\n if (('attributeOldValue' in options) || ('attributeFilter' in options))\n options.attributes = true;\n // if ('characterDataOldValue' in options)\n // options.characterData = true;\n options.childList = !!options.childList;\n options.subtree = !!options.subtree;\n this.nodes.set(target, options);\n observers.add(this);\n ownerDocument[MUTATION_OBSERVER].active = true;\n }\n\n /**\n * @returns {MutationRecord[]}\n */\n takeRecords() { return this.records.splice(0); }\n }\n }\n}\n", "import {CLASS_LIST, NEXT, PREV, VALUE} from './symbols.js';\n\nimport {knownAdjacent, knownSiblings} from './utils.js';\n\nimport {attributeChangedCallback as ceAttributes} from '../interface/custom-element-registry.js';\nimport {attributeChangedCallback as moAttributes} from '../interface/mutation-observer.js';\n\nexport const emptyAttributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'class',\n 'contenteditable',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'draggable',\n 'formnovalidate',\n 'hidden',\n 'id',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected',\n 'style',\n 'truespeed'\n]);\n\nexport const setAttribute = (element, attribute) => {\n const {[VALUE]: value, name} = attribute;\n attribute.ownerElement = element;\n knownSiblings(element, attribute, element[NEXT]);\n if (name === 'class')\n element.className = value;\n moAttributes(element, name, null);\n ceAttributes(element, name, null, value);\n};\n\nexport const removeAttribute = (element, attribute) => {\n const {[VALUE]: value, name} = attribute;\n knownAdjacent(attribute[PREV], attribute[NEXT]);\n attribute.ownerElement = attribute[PREV] = attribute[NEXT] = null;\n if (name === 'class')\n element[CLASS_LIST] = null;\n moAttributes(element, name, value);\n ceAttributes(element, name, value, null);\n};\n\nexport const booleanAttribute = {\n get(element, name) {\n return element.hasAttribute(name);\n },\n set(element, name, value) {\n if (value)\n element.setAttribute(name, '');\n else\n element.removeAttribute(name);\n }\n};\n\nexport const numericAttribute = {\n get(element, name) {\n return parseFloat(element.getAttribute(name) || 0);\n },\n set(element, name, value) {\n element.setAttribute(name, value);\n }\n};\n\nexport const stringAttribute = {\n get(element, name) {\n return element.getAttribute(name) || '';\n },\n set(element, name, value) {\n element.setAttribute(name, value);\n }\n};\n\n/* oddly enough, this apparently is not a thing\nexport const nullableAttribute = {\n get(element, name) {\n return element.getAttribute(name);\n },\n set(element, name, value) {\n if (value === null)\n element.removeAttribute(name);\n else\n element.setAttribute(name, value);\n }\n};\n*/\n", "// https://dom.spec.whatwg.org/#interface-eventtarget\n\nconst wm = new WeakMap();\n\nfunction dispatch(event, listener) {\n if (typeof listener === 'function')\n listener.call(event.target, event);\n else\n listener.handleEvent(event);\n return event._stopImmediatePropagationFlag;\n}\n\nfunction invokeListeners({currentTarget, target}) {\n const map = wm.get(currentTarget);\n if (map && map.has(this.type)) {\n const listeners = map.get(this.type);\n if (currentTarget === target) {\n this.eventPhase = this.AT_TARGET;\n } else {\n this.eventPhase = this.BUBBLING_PHASE;\n }\n\n this.currentTarget = currentTarget;\n this.target = target;\n for (const [listener, options] of listeners) {\n if (options && options.once)\n listeners.delete(listener);\n if (dispatch(this, listener))\n break;\n }\n delete this.currentTarget;\n delete this.target;\n return this.cancelBubble;\n }\n}\n\n\n/**\n * @implements globalThis.EventTarget\n */\nclass DOMEventTarget {\n\n constructor() {\n wm.set(this, new Map);\n }\n\n /**\n * @protected\n */\n _getParent() {\n return null;\n }\n\n addEventListener(type, listener, options) {\n const map = wm.get(this);\n if (!map.has(type)) \n map.set(type, new Map);\n map.get(type).set(listener, options);\n }\n\n removeEventListener(type, listener) {\n const map = wm.get(this);\n if (map.has(type)) {\n const listeners = map.get(type);\n if (listeners.delete(listener) && !listeners.size)\n map.delete(type);\n }\n }\n\n dispatchEvent(event) {\n let node = this;\n event.eventPhase = event.CAPTURING_PHASE;\n\n // intentionally simplified, specs imply way more code: https://dom.spec.whatwg.org/#event-path\n while (node) {\n if (node.dispatchEvent)\n event._path.push({currentTarget: node, target: this});\n node = event.bubbles && node._getParent && node._getParent();\n }\n event._path.some(invokeListeners, event);\n event._path = [];\n event.eventPhase = event.NONE;\n return !event.defaultPrevented;\n }\n\n}\n\nexport {DOMEventTarget as EventTarget};\n", "// https://dom.spec.whatwg.org/#interface-nodelist\n\n/**\n * @implements globalThis.NodeList\n */\nexport class NodeList extends Array {\n item(i) { return i < this.length ? this[i] : null; }\n}\n", "// https://dom.spec.whatwg.org/#node\n\nimport {\n ELEMENT_NODE,\n ATTRIBUTE_NODE,\n TEXT_NODE,\n CDATA_SECTION_NODE,\n COMMENT_NODE,\n DOCUMENT_NODE,\n DOCUMENT_FRAGMENT_NODE,\n DOCUMENT_TYPE_NODE,\n DOCUMENT_POSITION_DISCONNECTED,\n DOCUMENT_POSITION_PRECEDING,\n DOCUMENT_POSITION_FOLLOWING,\n DOCUMENT_POSITION_CONTAINS,\n DOCUMENT_POSITION_CONTAINED_BY,\n DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC\n} from '../shared/constants.js';\n\nimport {NEXT, PREV} from '../shared/symbols.js';\n\nimport {EventTarget} from './event-target.js';\n\nimport {NodeList} from './node-list.js';\n\nconst getParentNodeCount = ({parentNode}) => {\n let count = 0;\n while (parentNode) {\n count++;\n parentNode = parentNode.parentNode;\n }\n return count;\n};\n\n/**\n * @implements globalThis.Node\n */\nexport class Node extends EventTarget {\n\n static get ELEMENT_NODE() { return ELEMENT_NODE; }\n static get ATTRIBUTE_NODE() { return ATTRIBUTE_NODE; }\n static get TEXT_NODE() { return TEXT_NODE; }\n static get CDATA_SECTION_NODE() { return CDATA_SECTION_NODE; }\n static get COMMENT_NODE() { return COMMENT_NODE; }\n static get DOCUMENT_NODE() { return DOCUMENT_NODE; }\n static get DOCUMENT_FRAGMENT_NODE() { return DOCUMENT_FRAGMENT_NODE; }\n static get DOCUMENT_TYPE_NODE() { return DOCUMENT_TYPE_NODE; }\n\n constructor(ownerDocument, localName, nodeType) {\n super();\n this.ownerDocument = ownerDocument;\n this.localName = localName;\n this.nodeType = nodeType;\n this.parentNode = null;\n this[NEXT] = null;\n this[PREV] = null;\n }\n\n get ELEMENT_NODE() { return ELEMENT_NODE; }\n get ATTRIBUTE_NODE() { return ATTRIBUTE_NODE; }\n get TEXT_NODE() { return TEXT_NODE; }\n get CDATA_SECTION_NODE() { return CDATA_SECTION_NODE; }\n get COMMENT_NODE() { return COMMENT_NODE; }\n get DOCUMENT_NODE() { return DOCUMENT_NODE; }\n get DOCUMENT_FRAGMENT_NODE() { return DOCUMENT_FRAGMENT_NODE; }\n get DOCUMENT_TYPE_NODE() { return DOCUMENT_TYPE_NODE; }\n\n get baseURI() {\n const ownerDocument = this.nodeType === DOCUMENT_NODE ?\n this : this.ownerDocument;\n if (ownerDocument) {\n const base = ownerDocument.querySelector('base');\n if (base)\n return base.getAttribute('href');\n\n const {location} = ownerDocument.defaultView;\n if (location)\n return location.href;\n }\n\n return null;\n }\n\n /* c8 ignore start */\n // mixin: node\n get isConnected() { return false; }\n get nodeName() { return this.localName; }\n get parentElement() { return null; }\n get previousSibling() { return null; }\n get previousElementSibling() { return null; }\n get nextSibling() { return null; }\n get nextElementSibling() { return null; }\n get childNodes() { return new NodeList; }\n get firstChild() { return null; }\n get lastChild() { return null; }\n\n // default values\n get nodeValue() { return null; }\n set nodeValue(value) {}\n get textContent() { return null; }\n set textContent(value) {}\n normalize() {}\n cloneNode() { return null; }\n contains() { return false; }\n /**\n * Inserts a node before a reference node as a child of this parent node.\n * @param {Node} newNode The node to be inserted.\n * @param {Node} referenceNode The node before which newNode is inserted. If this is null, then newNode is inserted at the end of node's child nodes.\n * @returns The added child\n */\n // eslint-disable-next-line no-unused-vars\n insertBefore(newNode, referenceNode) { return newNode }\n /**\n * Adds a node to the end of the list of children of this node.\n * @param {Node} child The node to append to the given parent node.\n * @returns The appended child.\n */\n appendChild(child) { return child }\n /**\n * Replaces a child node within this node\n * @param {Node} newChild The new node to replace oldChild.\n * @param {Node} oldChild The child to be replaced.\n * @returns The replaced Node. This is the same node as oldChild.\n */\n replaceChild(newChild, oldChild) { return oldChild }\n /**\n * Removes a child node from the DOM.\n * @param {Node} child A Node that is the child node to be removed from the DOM.\n * @returns The removed node.\n */\n removeChild(child) { return child }\n toString() { return ''; }\n /* c8 ignore stop */\n\n hasChildNodes() { return !!this.lastChild; }\n isSameNode(node) { return this === node; }\n\n // TODO: attributes?\n compareDocumentPosition(target) {\n let result = 0;\n if (this !== target) {\n let self = getParentNodeCount(this);\n let other = getParentNodeCount(target);\n if (self < other) {\n result += DOCUMENT_POSITION_FOLLOWING;\n if (this.contains(target))\n result += DOCUMENT_POSITION_CONTAINED_BY;\n }\n else if (other < self) {\n result += DOCUMENT_POSITION_PRECEDING;\n if (target.contains(this))\n result += DOCUMENT_POSITION_CONTAINS;\n }\n else if (self && other) {\n const {childNodes} = this.parentNode;\n if (childNodes.indexOf(this) < childNodes.indexOf(target))\n result += DOCUMENT_POSITION_FOLLOWING;\n else\n result += DOCUMENT_POSITION_PRECEDING;\n }\n if (!self || !other) {\n result += DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC;\n result += DOCUMENT_POSITION_DISCONNECTED;\n }\n }\n return result;\n }\n\n isEqualNode(node) {\n if (this === node)\n return true;\n if (this.nodeType === node.nodeType) {\n switch (this.nodeType) {\n case DOCUMENT_NODE:\n case DOCUMENT_FRAGMENT_NODE: {\n const aNodes = this.childNodes;\n const bNodes = node.childNodes;\n return aNodes.length === bNodes.length && aNodes.every((node, i) => node.isEqualNode(bNodes[i]));\n }\n }\n return this.toString() === node.toString();\n }\n return false;\n }\n\n /**\n * @protected\n */\n _getParent() {\n return this.parentNode;\n }\n\n /**\n * Calling it on an element inside a standard web page will return an HTMLDocument object representing the entire page (or <iframe>).\n * Calling it on an element inside a shadow DOM will return the associated ShadowRoot.\n * @return {ShadowRoot | HTMLDocument}\n */\n getRootNode() {\n let root = this;\n while (root.parentNode)\n root = root.parentNode;\n return root;\n }\n}\n", "const {replace} = '';\n\n// escape\nconst ca = /[<>&\\xA0]/g;\n\nconst esca = {\n '\\xA0': '&#160;',\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;'\n};\n\nconst pe = m => esca[m];\n\n/**\n * Safely escape HTML entities such as `&`, `<`, `>` only.\n * @param {string} es the input to safely escape\n * @returns {string} the escaped input, and it **throws** an error if\n * the input type is unexpected, except for boolean and numbers,\n * converted as string.\n */\nexport const escape = es => replace.call(es, ca, pe);\n", "import {ATTRIBUTE_NODE} from '../shared/constants.js';\nimport {CHANGED, VALUE} from '../shared/symbols.js';\nimport {String, ignoreCase} from '../shared/utils.js';\nimport {attrAsJSON} from '../shared/jsdon.js';\nimport {emptyAttributes} from '../shared/attributes.js';\n\nimport {attributeChangedCallback as moAttributes} from './mutation-observer.js';\nimport {attributeChangedCallback as ceAttributes} from './custom-element-registry.js';\n\nimport {Node} from './node.js';\nimport {escape} from '../shared/text-escaper.js';\n\nconst QUOTE = /\"/g;\n\n/**\n * @implements globalThis.Attr\n */\nexport class Attr extends Node {\n constructor(ownerDocument, name, value = '') {\n super(ownerDocument, name, ATTRIBUTE_NODE);\n this.ownerElement = null;\n this.name = String(name);\n this[VALUE] = String(value);\n this[CHANGED] = false;\n }\n\n get value() { return this[VALUE]; }\n set value(newValue) {\n const {[VALUE]: oldValue, name, ownerElement} = this;\n this[VALUE] = String(newValue);\n this[CHANGED] = true;\n if (ownerElement) {\n moAttributes(ownerElement, name, oldValue);\n ceAttributes(ownerElement, name, oldValue, this[VALUE]);\n }\n }\n\n cloneNode() {\n const {ownerDocument, name, [VALUE]: value} = this;\n return new Attr(ownerDocument, name, value);\n }\n\n toString() {\n const {name, [VALUE]: value} = this;\n if (emptyAttributes.has(name) && !value) {\n return ignoreCase(this) ? name : `${name}=\"\"`;\n }\n const escapedValue = (ignoreCase(this) ? value : escape(value)).replace(QUOTE, '&quot;');\n return `${name}=\"${escapedValue}\"`;\n }\n\n toJSON() {\n const json = [];\n attrAsJSON(this, json);\n return json;\n }\n}\n", "import {\n CDATA_SECTION_NODE,\n COMMENT_NODE,\n DOCUMENT_NODE,\n DOCUMENT_FRAGMENT_NODE,\n TEXT_NODE,\n NODE_END\n} from './constants.js';\n\nimport {START, NEXT, PREV} from './symbols.js';\nimport {getEnd} from './utils.js';\n\nexport const isConnected = ({ownerDocument, parentNode}) => {\n while (parentNode) {\n if (parentNode === ownerDocument)\n return true;\n parentNode = parentNode.parentNode || parentNode.host;\n }\n return false;\n};\n\nexport const parentElement = ({parentNode}) => {\n if (parentNode) {\n switch (parentNode.nodeType) {\n case DOCUMENT_NODE:\n case DOCUMENT_FRAGMENT_NODE:\n return null;\n }\n }\n return parentNode;\n};\n\nexport const previousSibling = ({[PREV]: prev}) => {\n switch (prev ? prev.nodeType : 0) {\n case NODE_END:\n return prev[START];\n case TEXT_NODE:\n case COMMENT_NODE:\n case CDATA_SECTION_NODE:\n return prev;\n }\n return null;\n};\n\nexport const nextSibling = node => {\n const next = getEnd(node)[NEXT];\n return next && (next.nodeType === NODE_END ? null : next);\n};\n", "// https://dom.spec.whatwg.org/#nondocumenttypechildnode\n// CharacterData, Element\n\nimport {ELEMENT_NODE} from '../shared/constants.js';\n\nimport {nextSibling, previousSibling} from '../shared/node.js';\n\nexport const nextElementSibling = node => {\n let next = nextSibling(node);\n while (next && next.nodeType !== ELEMENT_NODE)\n next = nextSibling(next);\n return next;\n};\n\nexport const previousElementSibling = node => {\n let prev = previousSibling(node);\n while (prev && prev.nodeType !== ELEMENT_NODE)\n prev = previousSibling(prev);\n return prev;\n};\n", "// https://dom.spec.whatwg.org/#childnode\n// CharacterData, DocumentType, Element\n\nimport {ELEMENT_NODE} from '../shared/constants.js';\nimport {NEXT, PREV} from '../shared/symbols.js';\n\nimport {getEnd, setAdjacent} from '../shared/utils.js';\n\nimport {moCallback} from '../interface/mutation-observer.js';\nimport {disconnectedCallback} from '../interface/custom-element-registry.js';\n\nconst asFragment = (ownerDocument, nodes) => {\n const fragment = ownerDocument.createDocumentFragment();\n fragment.append(...nodes);\n return fragment;\n};\n\nexport const before = (node, nodes) => {\n const {ownerDocument, parentNode} = node;\n if (parentNode)\n parentNode.insertBefore(\n asFragment(ownerDocument, nodes),\n node\n );\n};\n\nexport const after = (node, nodes) => {\n const {ownerDocument, parentNode} = node;\n if (parentNode)\n parentNode.insertBefore(\n asFragment(ownerDocument, nodes),\n getEnd(node)[NEXT]\n );\n};\n\nexport const replaceWith = (node, nodes) => {\n const {ownerDocument, parentNode} = node;\n if (parentNode) {\n if (nodes.includes(node))\n replaceWith(node, [node = node.cloneNode()]);\n parentNode.insertBefore(\n asFragment(ownerDocument, nodes),\n node\n );\n node.remove();\n }\n};\n\nexport const remove = (prev, current, next) => {\n const {parentNode, nodeType} = current;\n if (prev || next) {\n setAdjacent(prev, next);\n current[PREV] = null;\n getEnd(current)[NEXT] = null;\n }\n if (parentNode) {\n current.parentNode = null;\n moCallback(current, parentNode);\n if (nodeType === ELEMENT_NODE)\n disconnectedCallback(current);\n }\n};\n", "// https://dom.spec.whatwg.org/#interface-characterdata\n\nimport {NEXT, PREV, VALUE} from '../shared/symbols.js';\nimport {String} from '../shared/utils.js';\nimport {isConnected, parentElement, previousSibling, nextSibling} from '../shared/node.js';\nimport {characterDataAsJSON} from '../shared/jsdon.js';\n\nimport {previousElementSibling, nextElementSibling} from '../mixin/non-document-type-child-node.js';\nimport {before, after, replaceWith, remove} from '../mixin/child-node.js';\n\nimport {Node} from './node.js';\nimport {moCallback} from './mutation-observer.js';\n\n/**\n * @implements globalThis.CharacterData\n */\nexport class CharacterData extends Node {\n\n constructor(ownerDocument, localName, nodeType, data) {\n super(ownerDocument, localName, nodeType);\n this[VALUE] = String(data);\n }\n\n // <Mixins>\n get isConnected() { return isConnected(this); }\n get parentElement() { return parentElement(this); }\n get previousSibling() { return previousSibling(this); }\n get nextSibling() { return nextSibling(this); }\n\n get previousElementSibling() { return previousElementSibling(this); }\n get nextElementSibling() { return nextElementSibling(this); }\n\n before(...nodes) { before(this, nodes); }\n after(...nodes) { after(this, nodes); }\n replaceWith(...nodes) { replaceWith(this, nodes); }\n remove() { remove(this[PREV], this, this[NEXT]); }\n // </Mixins>\n\n // CharacterData only\n /* c8 ignore start */\n get data() { return this[VALUE]; }\n set data(value) {\n this[VALUE] = String(value);\n moCallback(this, this.parentNode);\n }\n\n get nodeValue() { return this.data; }\n set nodeValue(value) { this.data = value; }\n\n get textContent() { return this.data; }\n set textContent(value) { this.data = value; }\n\n get length() { return this.data.length; }\n\n substringData(offset, count) {\n return this.data.substr(offset, count);\n }\n\n appendData(data) {\n this.data += data;\n }\n\n insertData(offset, data) {\n const {data: t} = this;\n this.data = t.slice(0, offset) + data + t.slice(offset);\n }\n\n deleteData(offset, count) {\n const {data: t} = this;\n this.data = t.slice(0, offset) + t.slice(offset + count);\n }\n\n replaceData(offset, count, data) {\n const {data: t} = this;\n this.data = t.slice(0, offset) + data + t.slice(offset + count);\n }\n /* c8 ignore stop */\n\n toJSON() {\n const json = [];\n characterDataAsJSON(this, json);\n return json;\n }\n}\n", "import {CDATA_SECTION_NODE} from '../shared/constants.js';\nimport {VALUE} from '../shared/symbols.js';\n\nimport {CharacterData} from './character-data.js';\n\n/**\n * @implements globalThis.CDATASection\n */\nexport class CDATASection extends CharacterData {\n constructor(ownerDocument, data = '') {\n super(ownerDocument, '#cdatasection', CDATA_SECTION_NODE, data);\n }\n\n cloneNode() {\n const {ownerDocument, [VALUE]: data} = this;\n return new CDATASection(ownerDocument, data);\n }\n\n toString() { return `<![CDATA[${this[VALUE]}]]>`; }\n}\n", "import {COMMENT_NODE} from '../shared/constants.js';\nimport {VALUE} from '../shared/symbols.js';\n\nimport {CharacterData} from './character-data.js';\n\n/**\n * @implements globalThis.Comment\n */\nexport class Comment extends CharacterData {\n constructor(ownerDocument, data = '') {\n super(ownerDocument, '#comment', COMMENT_NODE, data);\n }\n\n cloneNode() {\n const {ownerDocument, [VALUE]: data} = this;\n return new Comment(ownerDocument, data);\n }\n\n toString() { return `<!--${this[VALUE]}-->`; }\n}\n", null, "export var SelectorType;\n(function (SelectorType) {\n SelectorType[\"Attribute\"] = \"attribute\";\n SelectorType[\"Pseudo\"] = \"pseudo\";\n SelectorType[\"PseudoElement\"] = \"pseudo-element\";\n SelectorType[\"Tag\"] = \"tag\";\n SelectorType[\"Universal\"] = \"universal\";\n // Traversals\n SelectorType[\"Adjacent\"] = \"adjacent\";\n SelectorType[\"Child\"] = \"child\";\n SelectorType[\"Descendant\"] = \"descendant\";\n SelectorType[\"Parent\"] = \"parent\";\n SelectorType[\"Sibling\"] = \"sibling\";\n SelectorType[\"ColumnCombinator\"] = \"column-combinator\";\n})(SelectorType || (SelectorType = {}));\n/**\n * Modes for ignore case.\n *\n * This could be updated to an enum, and the object is\n * the current stand-in that will allow code to be updated\n * without big changes.\n */\nexport const IgnoreCaseMode = {\n Unknown: null,\n QuirksMode: \"quirks\",\n IgnoreCase: true,\n CaseSensitive: false,\n};\nexport var AttributeAction;\n(function (AttributeAction) {\n AttributeAction[\"Any\"] = \"any\";\n AttributeAction[\"Element\"] = \"element\";\n AttributeAction[\"End\"] = \"end\";\n AttributeAction[\"Equals\"] = \"equals\";\n AttributeAction[\"Exists\"] = \"exists\";\n AttributeAction[\"Hyphen\"] = \"hyphen\";\n AttributeAction[\"Not\"] = \"not\";\n AttributeAction[\"Start\"] = \"start\";\n})(AttributeAction || (AttributeAction = {}));\n", "import { SelectorType, AttributeAction, } from \"./types\";\nconst reName = /^[^\\\\#]?(?:\\\\(?:[\\da-f]{1,6}\\s?|.)|[\\w\\-\\u00b0-\\uFFFF])+/;\nconst reEscape = /\\\\([\\da-f]{1,6}\\s?|(\\s)|.)/gi;\nconst actionTypes = new Map([\n [126 /* Tilde */, AttributeAction.Element],\n [94 /* Circumflex */, AttributeAction.Start],\n [36 /* Dollar */, AttributeAction.End],\n [42 /* Asterisk */, AttributeAction.Any],\n [33 /* ExclamationMark */, AttributeAction.Not],\n [124 /* Pipe */, AttributeAction.Hyphen],\n]);\n// Pseudos, whose data property is parsed as well.\nconst unpackPseudos = new Set([\n \"has\",\n \"not\",\n \"matches\",\n \"is\",\n \"where\",\n \"host\",\n \"host-context\",\n]);\n/**\n * Checks whether a specific selector is a traversal.\n * This is useful eg. in swapping the order of elements that\n * are not traversals.\n *\n * @param selector Selector to check.\n */\nexport function isTraversal(selector) {\n switch (selector.type) {\n case SelectorType.Adjacent:\n case SelectorType.Child:\n case SelectorType.Descendant:\n case SelectorType.Parent:\n case SelectorType.Sibling:\n case SelectorType.ColumnCombinator:\n return true;\n default:\n return false;\n }\n}\nconst stripQuotesFromPseudos = new Set([\"contains\", \"icontains\"]);\n// Unescape function taken from https://github.com/jquery/sizzle/blob/master/src/sizzle.js#L152\nfunction funescape(_, escaped, escapedWhitespace) {\n const high = parseInt(escaped, 16) - 0x10000;\n // NaN means non-codepoint\n return high !== high || escapedWhitespace\n ? escaped\n : high < 0\n ? // BMP codepoint\n String.fromCharCode(high + 0x10000)\n : // Supplemental Plane codepoint (surrogate pair)\n String.fromCharCode((high >> 10) | 0xd800, (high & 0x3ff) | 0xdc00);\n}\nfunction unescapeCSS(str) {\n return str.replace(reEscape, funescape);\n}\nfunction isQuote(c) {\n return c === 39 /* SingleQuote */ || c === 34 /* DoubleQuote */;\n}\nfunction isWhitespace(c) {\n return (c === 32 /* Space */ ||\n c === 9 /* Tab */ ||\n c === 10 /* NewLine */ ||\n c === 12 /* FormFeed */ ||\n c === 13 /* CarriageReturn */);\n}\n/**\n * Parses `selector`, optionally with the passed `options`.\n *\n * @param selector Selector to parse.\n * @param options Options for parsing.\n * @returns Returns a two-dimensional array.\n * The first dimension represents selectors separated by commas (eg. `sub1, sub2`),\n * the second contains the relevant tokens for that selector.\n */\nexport function parse(selector) {\n const subselects = [];\n const endIndex = parseSelector(subselects, `${selector}`, 0);\n if (endIndex < selector.length) {\n throw new Error(`Unmatched selector: ${selector.slice(endIndex)}`);\n }\n return subselects;\n}\nfunction parseSelector(subselects, selector, selectorIndex) {\n let tokens = [];\n function getName(offset) {\n const match = selector.slice(selectorIndex + offset).match(reName);\n if (!match) {\n throw new Error(`Expected name, found ${selector.slice(selectorIndex)}`);\n }\n const [name] = match;\n selectorIndex += offset + name.length;\n return unescapeCSS(name);\n }\n function stripWhitespace(offset) {\n selectorIndex += offset;\n while (selectorIndex < selector.length &&\n isWhitespace(selector.charCodeAt(selectorIndex))) {\n selectorIndex++;\n }\n }\n function readValueWithParenthesis() {\n selectorIndex += 1;\n const start = selectorIndex;\n let counter = 1;\n for (; counter > 0 && selectorIndex < selector.length; selectorIndex++) {\n if (selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */ &&\n !isEscaped(selectorIndex)) {\n counter++;\n }\n else if (selector.charCodeAt(selectorIndex) ===\n 41 /* RightParenthesis */ &&\n !isEscaped(selectorIndex)) {\n counter--;\n }\n }\n if (counter) {\n throw new Error(\"Parenthesis not matched\");\n }\n return unescapeCSS(selector.slice(start, selectorIndex - 1));\n }\n function isEscaped(pos) {\n let slashCount = 0;\n while (selector.charCodeAt(--pos) === 92 /* BackSlash */)\n slashCount++;\n return (slashCount & 1) === 1;\n }\n function ensureNotTraversal() {\n if (tokens.length > 0 && isTraversal(tokens[tokens.length - 1])) {\n throw new Error(\"Did not expect successive traversals.\");\n }\n }\n function addTraversal(type) {\n if (tokens.length > 0 &&\n tokens[tokens.length - 1].type === SelectorType.Descendant) {\n tokens[tokens.length - 1].type = type;\n return;\n }\n ensureNotTraversal();\n tokens.push({ type });\n }\n function addSpecialAttribute(name, action) {\n tokens.push({\n type: SelectorType.Attribute,\n name,\n action,\n value: getName(1),\n namespace: null,\n ignoreCase: \"quirks\",\n });\n }\n /**\n * We have finished parsing the current part of the selector.\n *\n * Remove descendant tokens at the end if they exist,\n * and return the last index, so that parsing can be\n * picked up from here.\n */\n function finalizeSubselector() {\n if (tokens.length &&\n tokens[tokens.length - 1].type === SelectorType.Descendant) {\n tokens.pop();\n }\n if (tokens.length === 0) {\n throw new Error(\"Empty sub-selector\");\n }\n subselects.push(tokens);\n }\n stripWhitespace(0);\n if (selector.length === selectorIndex) {\n return selectorIndex;\n }\n loop: while (selectorIndex < selector.length) {\n const firstChar = selector.charCodeAt(selectorIndex);\n switch (firstChar) {\n // Whitespace\n case 32 /* Space */:\n case 9 /* Tab */:\n case 10 /* NewLine */:\n case 12 /* FormFeed */:\n case 13 /* CarriageReturn */: {\n if (tokens.length === 0 ||\n tokens[0].type !== SelectorType.Descendant) {\n ensureNotTraversal();\n tokens.push({ type: SelectorType.Descendant });\n }\n stripWhitespace(1);\n break;\n }\n // Traversals\n case 62 /* GreaterThan */: {\n addTraversal(SelectorType.Child);\n stripWhitespace(1);\n break;\n }\n case 60 /* LessThan */: {\n addTraversal(SelectorType.Parent);\n stripWhitespace(1);\n break;\n }\n case 126 /* Tilde */: {\n addTraversal(SelectorType.Sibling);\n stripWhitespace(1);\n break;\n }\n case 43 /* Plus */: {\n addTraversal(SelectorType.Adjacent);\n stripWhitespace(1);\n break;\n }\n // Special attribute selectors: .class, #id\n case 46 /* Period */: {\n addSpecialAttribute(\"class\", AttributeAction.Element);\n break;\n }\n case 35 /* Hash */: {\n addSpecialAttribute(\"id\", AttributeAction.Equals);\n break;\n }\n case 91 /* LeftSquareBracket */: {\n stripWhitespace(1);\n // Determine attribute name and namespace\n let name;\n let namespace = null;\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */) {\n // Equivalent to no namespace\n name = getName(1);\n }\n else if (selector.startsWith(\"*|\", selectorIndex)) {\n namespace = \"*\";\n name = getName(2);\n }\n else {\n name = getName(0);\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */ &&\n selector.charCodeAt(selectorIndex + 1) !==\n 61 /* Equal */) {\n namespace = name;\n name = getName(1);\n }\n }\n stripWhitespace(0);\n // Determine comparison operation\n let action = AttributeAction.Exists;\n const possibleAction = actionTypes.get(selector.charCodeAt(selectorIndex));\n if (possibleAction) {\n action = possibleAction;\n if (selector.charCodeAt(selectorIndex + 1) !==\n 61 /* Equal */) {\n throw new Error(\"Expected `=`\");\n }\n stripWhitespace(2);\n }\n else if (selector.charCodeAt(selectorIndex) === 61 /* Equal */) {\n action = AttributeAction.Equals;\n stripWhitespace(1);\n }\n // Determine value\n let value = \"\";\n let ignoreCase = null;\n if (action !== \"exists\") {\n if (isQuote(selector.charCodeAt(selectorIndex))) {\n const quote = selector.charCodeAt(selectorIndex);\n let sectionEnd = selectorIndex + 1;\n while (sectionEnd < selector.length &&\n (selector.charCodeAt(sectionEnd) !== quote ||\n isEscaped(sectionEnd))) {\n sectionEnd += 1;\n }\n if (selector.charCodeAt(sectionEnd) !== quote) {\n throw new Error(\"Attribute value didn't end\");\n }\n value = unescapeCSS(selector.slice(selectorIndex + 1, sectionEnd));\n selectorIndex = sectionEnd + 1;\n }\n else {\n const valueStart = selectorIndex;\n while (selectorIndex < selector.length &&\n ((!isWhitespace(selector.charCodeAt(selectorIndex)) &&\n selector.charCodeAt(selectorIndex) !==\n 93 /* RightSquareBracket */) ||\n isEscaped(selectorIndex))) {\n selectorIndex += 1;\n }\n value = unescapeCSS(selector.slice(valueStart, selectorIndex));\n }\n stripWhitespace(0);\n // See if we have a force ignore flag\n const forceIgnore = selector.charCodeAt(selectorIndex) | 0x20;\n // If the forceIgnore flag is set (either `i` or `s`), use that value\n if (forceIgnore === 115 /* LowerS */) {\n ignoreCase = false;\n stripWhitespace(1);\n }\n else if (forceIgnore === 105 /* LowerI */) {\n ignoreCase = true;\n stripWhitespace(1);\n }\n }\n if (selector.charCodeAt(selectorIndex) !==\n 93 /* RightSquareBracket */) {\n throw new Error(\"Attribute selector didn't terminate\");\n }\n selectorIndex += 1;\n const attributeSelector = {\n type: SelectorType.Attribute,\n name,\n action,\n value,\n namespace,\n ignoreCase,\n };\n tokens.push(attributeSelector);\n break;\n }\n case 58 /* Colon */: {\n if (selector.charCodeAt(selectorIndex + 1) === 58 /* Colon */) {\n tokens.push({\n type: SelectorType.PseudoElement,\n name: getName(2).toLowerCase(),\n data: selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */\n ? readValueWithParenthesis()\n : null,\n });\n continue;\n }\n const name = getName(1).toLowerCase();\n let data = null;\n if (selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */) {\n if (unpackPseudos.has(name)) {\n if (isQuote(selector.charCodeAt(selectorIndex + 1))) {\n throw new Error(`Pseudo-selector ${name} cannot be quoted`);\n }\n data = [];\n selectorIndex = parseSelector(data, selector, selectorIndex + 1);\n if (selector.charCodeAt(selectorIndex) !==\n 41 /* RightParenthesis */) {\n throw new Error(`Missing closing parenthesis in :${name} (${selector})`);\n }\n selectorIndex += 1;\n }\n else {\n data = readValueWithParenthesis();\n if (stripQuotesFromPseudos.has(name)) {\n const quot = data.charCodeAt(0);\n if (quot === data.charCodeAt(data.length - 1) &&\n isQuote(quot)) {\n data = data.slice(1, -1);\n }\n }\n data = unescapeCSS(data);\n }\n }\n tokens.push({ type: SelectorType.Pseudo, name, data });\n break;\n }\n case 44 /* Comma */: {\n finalizeSubselector();\n tokens = [];\n stripWhitespace(1);\n break;\n }\n default: {\n if (selector.startsWith(\"/*\", selectorIndex)) {\n const endIndex = selector.indexOf(\"*/\", selectorIndex + 2);\n if (endIndex < 0) {\n throw new Error(\"Comment was not terminated\");\n }\n selectorIndex = endIndex + 2;\n // Remove leading whitespace\n if (tokens.length === 0) {\n stripWhitespace(0);\n }\n break;\n }\n let namespace = null;\n let name;\n if (firstChar === 42 /* Asterisk */) {\n selectorIndex += 1;\n name = \"*\";\n }\n else if (firstChar === 124 /* Pipe */) {\n name = \"\";\n if (selector.charCodeAt(selectorIndex + 1) === 124 /* Pipe */) {\n addTraversal(SelectorType.ColumnCombinator);\n stripWhitespace(2);\n break;\n }\n }\n else if (reName.test(selector.slice(selectorIndex))) {\n name = getName(0);\n }\n else {\n break loop;\n }\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */ &&\n selector.charCodeAt(selectorIndex + 1) !== 124 /* Pipe */) {\n namespace = name;\n if (selector.charCodeAt(selectorIndex + 1) ===\n 42 /* Asterisk */) {\n name = \"*\";\n selectorIndex += 2;\n }\n else {\n name = getName(1);\n }\n }\n tokens.push(name === \"*\"\n ? { type: SelectorType.Universal, namespace }\n : { type: SelectorType.Tag, name, namespace });\n }\n }\n }\n finalizeSubselector();\n return selectorIndex;\n}\n", null, null, null, null, null, null, null, null, null, null, null, null, "import * as CSSselect from 'css-select';\n\nimport {ELEMENT_NODE, TEXT_NODE} from './constants.js';\nimport {ignoreCase} from './utils.js';\n\nconst {isArray} = Array;\n\n/* c8 ignore start */\nconst isTag = ({nodeType}) => nodeType === ELEMENT_NODE;\n\nconst existsOne = (test, elements) => elements.some(\n element => isTag(element) && (\n test(element) ||\n existsOne(test, getChildren(element))\n )\n);\n\nconst getAttributeValue = (element, name) => name === 'class' ?\n element.classList.value : element.getAttribute(name);\n\nconst getChildren = ({childNodes}) => childNodes;\n\nconst getName = (element) => {\n const {localName} = element;\n return ignoreCase(element) ? localName.toLowerCase() : localName;\n};\n\nconst getParent = ({parentNode}) => parentNode;\n\nconst getSiblings = element => {\n const {parentNode} = element;\n return parentNode ? getChildren(parentNode) : element;\n};\n\nconst getText = node => {\n if (isArray(node))\n return node.map(getText).join('');\n if (isTag(node))\n return getText(getChildren(node));\n if (node.nodeType === TEXT_NODE)\n return node.data;\n return '';\n};\n\nconst hasAttrib = (element, name) => element.hasAttribute(name);\n\nconst removeSubsets = nodes => {\n let {length} = nodes;\n while (length--) {\n const node = nodes[length];\n if (length && -1 < nodes.lastIndexOf(node, length - 1)) {\n nodes.splice(length, 1);\n continue;\n }\n for (let {parentNode} = node; parentNode; parentNode = parentNode.parentNode) {\n if (nodes.includes(parentNode)) {\n nodes.splice(length, 1);\n break;\n }\n }\n }\n return nodes;\n};\n\nconst findAll = (test, nodes) => {\n const matches = [];\n for (const node of nodes) {\n if (isTag(node)) {\n if (test(node))\n matches.push(node);\n matches.push(...findAll(test, getChildren(node)));\n }\n }\n return matches;\n};\n\nconst findOne = (test, nodes) => {\n for (let node of nodes)\n if (test(node) || (node = findOne(test, getChildren(node))))\n return node;\n return null;\n};\n/* c8 ignore stop */\n\nconst adapter = {\n isTag,\n existsOne,\n getAttributeValue,\n getChildren,\n getName,\n getParent,\n getSiblings,\n getText,\n hasAttrib,\n removeSubsets,\n findAll,\n findOne\n};\n\nexport const prepareMatch = (element, selectors) => CSSselect.compile(\n selectors,\n {\n context: selectors.includes(':scope') ? element : void 0,\n xmlMode: !ignoreCase(element),\n adapter\n }\n);\n\nexport const matches = (element, selectors) => CSSselect.is(\n element,\n selectors,\n {\n strict: true,\n context: selectors.includes(':scope') ? element : void 0,\n xmlMode: !ignoreCase(element),\n adapter\n }\n);\n", "import {TEXT_NODE} from '../shared/constants.js';\nimport {VALUE} from '../shared/symbols.js';\nimport {escape} from '../shared/text-escaper.js';\n\nimport {CharacterData} from './character-data.js';\n\n/**\n * @implements globalThis.Text\n */\nexport class Text extends CharacterData {\n constructor(ownerDocument, data = '') {\n super(ownerDocument, '#text', TEXT_NODE, data);\n }\n\n get wholeText() {\n const text = [];\n let {previousSibling, nextSibling} = this;\n while (previousSibling) {\n if (previousSibling.nodeType === TEXT_NODE)\n text.unshift(previousSibling[VALUE]);\n else\n break;\n previousSibling = previousSibling.previousSibling;\n }\n text.push(this[VALUE]);\n while (nextSibling) {\n if (nextSibling.nodeType === TEXT_NODE)\n text.push(nextSibling[VALUE]);\n else\n break;\n nextSibling = nextSibling.nextSibling;\n }\n return text.join('');\n }\n\n cloneNode() {\n const {ownerDocument, [VALUE]: data} = this;\n return new Text(ownerDocument, data);\n }\n\n toString() { return escape(this[VALUE]); }\n}\n", "// https://dom.spec.whatwg.org/#interface-parentnode\n// Document, DocumentFragment, Element\n\nimport {\n ATTRIBUTE_NODE,\n DOCUMENT_FRAGMENT_NODE,\n ELEMENT_NODE,\n TEXT_NODE,\n NODE_END,\n CDATA_SECTION_NODE,\n COMMENT_NODE\n} from '../shared/constants.js';\n\nimport {PRIVATE, END, NEXT, PREV, START, VALUE} from '../shared/symbols.js';\n\nimport {prepareMatch} from '../shared/matches.js';\nimport {previousSibling, nextSibling} from '../shared/node.js';\nimport {getEnd, knownAdjacent, knownBoundaries, knownSegment, knownSiblings, localCase} from '../shared/utils.js';\n\nimport {Node} from '../interface/node.js';\nimport {Text} from '../interface/text.js';\nimport {NodeList} from '../interface/node-list.js';\n\nimport {moCallback} from '../interface/mutation-observer.js';\nimport {connectedCallback} from '../interface/custom-element-registry.js';\n\nimport {nextElementSibling} from './non-document-type-child-node.js';\n\nconst isNode = node => node instanceof Node;\n\nconst insert = (parentNode, child, nodes) => {\n const {ownerDocument} = parentNode;\n for (const node of nodes)\n parentNode.insertBefore(\n isNode(node) ? node : new Text(ownerDocument, node),\n child\n );\n};\n\n/** @typedef { import('../interface/element.js').Element & {\n [typeof NEXT]: NodeStruct,\n [typeof PREV]: NodeStruct,\n [typeof START]: NodeStruct,\n nodeType: typeof ATTRIBUTE_NODE | typeof DOCUMENT_FRAGMENT_NODE | typeof ELEMENT_NODE | typeof TEXT_NODE | typeof NODE_END | typeof COMMENT_NODE | typeof CDATA_SECTION_NODE,\n ownerDocument: Document,\n parentNode: ParentNode,\n}} NodeStruct */\n\nexport class ParentNode extends Node {\n constructor(ownerDocument, localName, nodeType) {\n super(ownerDocument, localName, nodeType);\n this[PRIVATE] = null;\n /** @type {NodeStruct} */\n this[NEXT] = this[END] = {\n [NEXT]: null,\n [PREV]: this,\n [START]: this,\n nodeType: NODE_END,\n ownerDocument: this.ownerDocument,\n parentNode: null\n };\n }\n\n get childNodes() {\n const childNodes = new NodeList;\n let {firstChild} = this;\n while (firstChild) {\n childNodes.push(firstChild);\n firstChild = nextSibling(firstChild);\n }\n return childNodes;\n }\n\n get children() {\n const children = new NodeList;\n let {firstElementChild} = this;\n while (firstElementChild) {\n children.push(firstElementChild);\n firstElementChild = nextElementSibling(firstElementChild);\n }\n return children;\n }\n\n /**\n * @returns {NodeStruct | null}\n */\n get firstChild() {\n let {[NEXT]: next, [END]: end} = this;\n while (next.nodeType === ATTRIBUTE_NODE)\n next = next[NEXT];\n return next === end ? null : next;\n }\n\n /**\n * @returns {NodeStruct | null}\n */\n get firstElementChild() {\n let {firstChild} = this;\n while (firstChild) {\n if (firstChild.nodeType === ELEMENT_NODE)\n return firstChild;\n firstChild = nextSibling(firstChild);\n }\n return null;\n }\n\n get lastChild() {\n const prev = this[END][PREV];\n switch (prev.nodeType) {\n case NODE_END:\n return prev[START];\n case ATTRIBUTE_NODE:\n return null;\n }\n return prev === this ? null : prev;\n }\n\n get lastElementChild() {\n let {lastChild} = this;\n while (lastChild) {\n if (lastChild.nodeType === ELEMENT_NODE)\n return lastChild;\n lastChild = previousSibling(lastChild);\n }\n return null;\n }\n\n get childElementCount() {\n return this.children.length;\n }\n\n prepend(...nodes) {\n insert(this, this.firstChild, nodes);\n }\n\n append(...nodes) {\n insert(this, this[END], nodes);\n }\n\n replaceChildren(...nodes) {\n let {[NEXT]: next, [END]: end} = this;\n while (next !== end && next.nodeType === ATTRIBUTE_NODE)\n next = next[NEXT];\n while (next !== end) {\n const after = getEnd(next)[NEXT];\n next.remove();\n next = after;\n }\n if (nodes.length)\n insert(this, end, nodes);\n }\n\n getElementsByClassName(className) {\n const elements = new NodeList;\n let {[NEXT]: next, [END]: end} = this;\n while (next !== end) {\n if (\n next.nodeType === ELEMENT_NODE &&\n next.hasAttribute('class') &&\n next.classList.has(className)\n )\n elements.push(next);\n next = next[NEXT];\n }\n return elements;\n }\n\n getElementsByTagName(tagName) {\n const elements = new NodeList;\n let {[NEXT]: next, [END]: end} = this;\n while (next !== end) {\n if (next.nodeType === ELEMENT_NODE && (\n next.localName === tagName ||\n localCase(next) === tagName\n ))\n elements.push(next);\n next = next[NEXT];\n }\n return elements;\n }\n\n querySelector(selectors) {\n const matches = prepareMatch(this, selectors);\n let {[NEXT]: next, [END]: end} = this;\n while (next !== end) {\n if (next.nodeType === ELEMENT_NODE && matches(next))\n return next;\n next = next.nodeType === ELEMENT_NODE && next.localName === 'template' ? next[END] : next[NEXT];\n }\n return null;\n }\n\n querySelectorAll(selectors) {\n const matches = prepareMatch(this, selectors);\n const elements = new NodeList;\n let {[NEXT]: next, [END]: end} = this;\n while (next !== end) {\n if (next.nodeType === ELEMENT_NODE && matches(next))\n elements.push(next);\n next = next.nodeType === ELEMENT_NODE && next.localName === 'template' ? next[END] : next[NEXT];\n }\n return elements;\n }\n\n appendChild(node) {\n return this.insertBefore(node, this[END]);\n }\n\n contains(node) {\n let parentNode = node;\n while (parentNode && parentNode !== this)\n parentNode = parentNode.parentNode;\n return parentNode === this;\n }\n\n insertBefore(node, before = null) {\n if (node === before)\n return node;\n if (node === this)\n throw new Error('unable to append a node to itself');\n const next = before || this[END];\n switch (node.nodeType) {\n case ELEMENT_NODE:\n node.remove();\n node.parentNode = this;\n knownBoundaries(next[PREV], node, next);\n moCallback(node, null);\n connectedCallback(node);\n break;\n case DOCUMENT_FRAGMENT_NODE: {\n let {[PRIVATE]: parentNode, firstChild, lastChild} = node;\n if (firstChild) {\n knownSegment(next[PREV], firstChild, lastChild, next);\n knownAdjacent(node, node[END]);\n if (parentNode)\n parentNode.replaceChildren();\n do {\n firstChild.parentNode = this;\n moCallback(firstChild, null);\n if (firstChild.nodeType === ELEMENT_NODE)\n connectedCallback(firstChild);\n } while (\n firstChild !== lastChild &&\n (firstChild = nextSibling(firstChild))\n );\n }\n break;\n }\n case TEXT_NODE:\n case COMMENT_NODE:\n case CDATA_SECTION_NODE:\n node.remove();\n /* eslint no-fallthrough:0 */\n // this covers DOCUMENT_TYPE_NODE too\n default:\n node.parentNode = this;\n knownSiblings(next[PREV], node, next);\n moCallback(node, null);\n break;\n }\n return node;\n }\n\n normalize() {\n let {[NEXT]: next, [END]: end} = this;\n while (next !== end) {\n const {[NEXT]: $next, [PREV]: $prev, nodeType} = next;\n if (nodeType === TEXT_NODE) {\n if (!next[VALUE])\n next.remove();\n else if ($prev && $prev.nodeType === TEXT_NODE) {\n $prev.textContent += next.textContent;\n next.remove();\n }\n }\n next = $next;\n }\n }\n\n removeChild(node) {\n if (node.parentNode !== this)\n throw new Error('node is not a child');\n node.remove();\n return node;\n }\n\n replaceChild(node, replaced) {\n const next = getEnd(replaced)[NEXT];\n replaced.remove();\n this.insertBefore(node, next);\n return replaced;\n }\n}\n", "// https://dom.spec.whatwg.org/#interface-nonelementparentnode\n// Document, DocumentFragment\n\nimport {ELEMENT_NODE} from '../shared/constants.js';\nimport {END, NEXT} from '../shared/symbols.js';\nimport {nonElementAsJSON} from '../shared/jsdon.js';\n\nimport {ParentNode} from './parent-node.js';\n\nexport class NonElementParentNode extends ParentNode {\n getElementById(id) {\n let {[NEXT]: next, [END]: end} = this;\n while (next !== end) {\n if (next.nodeType === ELEMENT_NODE && next.id === id)\n return next;\n next = next[NEXT];\n }\n return null;\n }\n\n cloneNode(deep) {\n const {ownerDocument, constructor} = this;\n const nonEPN = new constructor(ownerDocument);\n if (deep) {\n const {[END]: end} = nonEPN;\n for (const node of this.childNodes)\n nonEPN.insertBefore(node.cloneNode(deep), end);\n }\n return nonEPN; \n }\n\n toString() {\n const {childNodes, localName} = this;\n return `<${localName}>${childNodes.join('')}</${localName}>`;\n }\n\n toJSON() {\n const json = [];\n nonElementAsJSON(this, json);\n return json;\n }\n}\n", "import {DOCUMENT_FRAGMENT_NODE} from '../shared/constants.js';\nimport {NonElementParentNode} from '../mixin/non-element-parent-node.js';\n\n/**\n * @implements globalThis.DocumentFragment\n */\nexport class DocumentFragment extends NonElementParentNode {\n constructor(ownerDocument) {\n super(ownerDocument, '#document-fragment', DOCUMENT_FRAGMENT_NODE);\n }\n}\n", "import {DOCUMENT_TYPE_NODE} from '../shared/constants.js';\nimport {documentTypeAsJSON} from '../shared/jsdon.js';\n\nimport {Node} from './node.js';\n\n/**\n * @implements globalThis.DocumentType\n */\nexport class DocumentType extends Node {\n constructor(ownerDocument, name, publicId = '', systemId = '') {\n super(ownerDocument, '#document-type', DOCUMENT_TYPE_NODE);\n this.name = name;\n this.publicId = publicId;\n this.systemId = systemId;\n }\n\n cloneNode() {\n const {ownerDocument, name, publicId, systemId} = this;\n return new DocumentType(ownerDocument, name, publicId, systemId);\n }\n\n toString() {\n const {name, publicId, systemId} = this;\n const hasPublic = 0 < publicId.length;\n const str = [name];\n if (hasPublic)\n str.push('PUBLIC', `\"${publicId}\"`);\n if (systemId.length) {\n if (!hasPublic)\n str.push('SYSTEM');\n str.push(`\"${systemId}\"`);\n }\n return `<!DOCTYPE ${str.join(' ')}>`;\n }\n\n toJSON() {\n const json = [];\n documentTypeAsJSON(this, json);\n return json;\n }\n}\n", "import {ELEMENT_NODE, DOCUMENT_FRAGMENT_NODE} from '../shared/constants.js';\nimport {CUSTOM_ELEMENTS} from '../shared/symbols.js';\nimport {parseFromString} from '../shared/parse-from-string.js';\nimport {ignoreCase} from '../shared/utils.js';\n\n\n/**\n * @param {Node} node\n * @returns {String}\n */\nexport const getInnerHtml = node => node.childNodes.join('');\n\n/**\n * @param {Node} node\n * @param {String} html\n */\nexport const setInnerHtml = (node, html) => {\n const {ownerDocument} = node;\n const {constructor} = ownerDocument;\n const document = new constructor;\n document[CUSTOM_ELEMENTS] = ownerDocument[CUSTOM_ELEMENTS];\n const {childNodes} = parseFromString(document, ignoreCase(node), html);\n\n node.replaceChildren(...childNodes.map(setOwnerDocument, ownerDocument));\n};\n\nfunction setOwnerDocument(node) {\n node.ownerDocument = this;\n switch (node.nodeType) {\n case ELEMENT_NODE:\n case DOCUMENT_FRAGMENT_NODE:\n node.childNodes.forEach(setOwnerDocument, this);\n break;\n }\n return node;\n}\n", "export default camel => camel.replace(/(([A-Z0-9])([A-Z0-9][a-z]))|(([a-z0-9]+)([A-Z]))/g, '$2$5-$3$6')\n .toLowerCase();\n", "import uhyphen from 'uhyphen';\nimport {setPrototypeOf} from '../shared/object.js';\n\nconst refs = new WeakMap;\n\nconst key = name => `data-${uhyphen(name)}`;\nconst prop = name => name.slice(5).replace(/-([a-z])/g, (_, $1) => $1.toUpperCase());\n\nconst handler = {\n get(dataset, name) {\n if (name in dataset)\n return refs.get(dataset).getAttribute(key(name));\n },\n\n set(dataset, name, value) {\n dataset[name] = value;\n refs.get(dataset).setAttribute(key(name), value);\n return true;\n },\n\n deleteProperty(dataset, name) {\n if (name in dataset)\n refs.get(dataset).removeAttribute(key(name));\n return delete dataset[name];\n }\n};\n\n/**\n * @implements globalThis.DOMStringMap\n */\nexport class DOMStringMap {\n /**\n * @param {Element} ref\n */\n constructor(ref) {\n for (const {name, value} of ref.attributes) {\n if (/^data-/.test(name))\n this[prop(name)] = value;\n }\n refs.set(this, ref);\n return new Proxy(this, handler);\n }\n}\n\nsetPrototypeOf(DOMStringMap.prototype, null);\n", "import {OWNER_ELEMENT} from '../shared/symbols.js';\nimport {setAttribute} from '../shared/attributes.js';\n\nimport {Attr} from '../interface/attr.js';\n\nconst {add} = Set.prototype;\nconst addTokens = (self, tokens) => {\n for (const token of tokens) {\n if (token)\n add.call(self, token);\n }\n};\n\nconst update = ({[OWNER_ELEMENT]: ownerElement, value}) => {\n const attribute = ownerElement.getAttributeNode('class');\n if (attribute)\n attribute.value = value;\n else\n setAttribute(\n ownerElement,\n new Attr(ownerElement.ownerDocument, 'class', value)\n );\n};\n\n/**\n * @implements globalThis.DOMTokenList\n */\nexport class DOMTokenList extends Set {\n\n constructor(ownerElement) {\n super();\n this[OWNER_ELEMENT] = ownerElement;\n const attribute = ownerElement.getAttributeNode('class');\n if (attribute)\n addTokens(this, attribute.value.split(/\\s+/));\n }\n\n get length() { return this.size; }\n\n get value() { return [...this].join(' '); }\n\n /**\n * @param {...string} tokens\n */\n add(...tokens) {\n addTokens(this, tokens);\n update(this);\n }\n\n /**\n * @param {string} token\n */\n contains(token) { return this.has(token); }\n\n /**\n * @param {...string} tokens\n */\n remove(...tokens) {\n for (const token of tokens)\n this.delete(token);\n update(this);\n }\n\n /**\n * @param {string} token\n * @param {boolean?} force\n */\n toggle(token, force) {\n if (this.has(token)) {\n if (force)\n return true;\n this.delete(token);\n update(this);\n }\n else if (force || arguments.length === 1) {\n super.add(token);\n update(this);\n return true;\n }\n return false;\n }\n\n /**\n * @param {string} token\n * @param {string} newToken\n */\n replace(token, newToken) {\n if (this.has(token)) {\n this.delete(token);\n super.add(newToken);\n update(this);\n return true;\n }\n return false;\n }\n\n /**\n * @param {string} token\n */\n supports() { return true; }\n}\n", "import uhyphen from 'uhyphen';\n\nimport {CHANGED, PRIVATE, VALUE} from '../shared/symbols.js';\n\nconst refs = new WeakMap;\n\nconst getKeys = style => [...style.keys()].filter(key => key !== PRIVATE);\n\nconst updateKeys = style => {\n const attr = refs.get(style).getAttributeNode('style');\n if (!attr || attr[CHANGED] || style.get(PRIVATE) !== attr) {\n style.clear();\n if (attr) {\n style.set(PRIVATE, attr);\n for (const rule of attr[VALUE].split(/\\s*;\\s*/)) {\n let [key, ...rest] = rule.split(':');\n if (rest.length > 0) {\n key = key.trim();\n const value = rest.join(':').trim();\n if (key && value)\n style.set(key, value);\n }\n }\n }\n }\n return attr;\n};\n\nconst handler = {\n get(style, name) {\n if (name in prototype)\n return style[name];\n updateKeys(style);\n if (name === 'length')\n return getKeys(style).length;\n if (/^\\d+$/.test(name))\n return getKeys(style)[name];\n return style.get(uhyphen(name));\n },\n\n set(style, name, value) {\n if (name === 'cssText')\n style[name] = value;\n else {\n let attr = updateKeys(style);\n if (value == null)\n style.delete(uhyphen(name));\n else\n style.set(uhyphen(name), value);\n if (!attr) {\n const element = refs.get(style);\n attr = element.ownerDocument.createAttribute('style');\n element.setAttributeNode(attr);\n style.set(PRIVATE, attr);\n }\n attr[CHANGED] = false;\n attr[VALUE] = style.toString();\n }\n return true;\n }\n};\n\n/**\n * @implements globalThis.CSSStyleDeclaration\n */\nexport class CSSStyleDeclaration extends Map {\n constructor(element) {\n super();\n refs.set(this, element);\n /* c8 ignore start */\n return new Proxy(this, handler);\n /* c8 ignore stop */\n }\n\n get cssText() {\n return this.toString();\n }\n\n set cssText(value) {\n refs.get(this).setAttribute('style', value);\n }\n\n getPropertyValue(name) {\n const self = this[PRIVATE];\n return handler.get(self, name);\n }\n\n setProperty(name, value) {\n const self = this[PRIVATE];\n handler.set(self, name, value);\n }\n\n removeProperty(name) {\n const self = this[PRIVATE];\n handler.set(self, name, null);\n }\n\n [Symbol.iterator]() {\n const self = this[PRIVATE];\n updateKeys(self);\n const keys = getKeys(self);\n const {length} = keys;\n let i = 0;\n return {\n next() {\n const done = i === length;\n return {done, value: done ? null : keys[i++]};\n }\n };\n }\n\n get[PRIVATE]() { return this; }\n\n toString() {\n const self = this[PRIVATE];\n updateKeys(self);\n const cssText = [];\n self.forEach(push, cssText);\n return cssText.join(';');\n }\n}\n\nconst {prototype} = CSSStyleDeclaration;\n\nfunction push(value, key) {\n if (key !== PRIVATE)\n this.push(`${key}:${value}`);\n}\n", "// https://dom.spec.whatwg.org/#interface-event\n\n/* c8 ignore start */\n\n// Node 15 has Event but 14 and 12 don't\nconst BUBBLING_PHASE = 3;\nconst AT_TARGET = 2;\nconst CAPTURING_PHASE = 1;\nconst NONE = 0;\n\nfunction getCurrentTarget(ev) {\n return ev.currentTarget;\n}\n\n/**\n * @implements globalThis.Event\n */\nclass GlobalEvent {\n static get BUBBLING_PHASE() { return BUBBLING_PHASE; }\n static get AT_TARGET() { return AT_TARGET; }\n static get CAPTURING_PHASE() { return CAPTURING_PHASE; }\n static get NONE() { return NONE; }\n\n constructor(type, eventInitDict = {}) {\n this.type = type;\n this.bubbles = !!eventInitDict.bubbles;\n this.cancelBubble = false;\n this._stopImmediatePropagationFlag = false;\n this.cancelable = !!eventInitDict.cancelable;\n this.eventPhase = this.NONE;\n this.timeStamp = Date.now();\n this.defaultPrevented = false;\n this.originalTarget = null;\n this.returnValue = null;\n this.srcElement = null;\n this.target = null;\n this._path = [];\n }\n\n get BUBBLING_PHASE() { return BUBBLING_PHASE; }\n get AT_TARGET() { return AT_TARGET; }\n get CAPTURING_PHASE() { return CAPTURING_PHASE; }\n get NONE() { return NONE; }\n\n preventDefault() { this.defaultPrevented = true; }\n\n // simplified implementation, should be https://dom.spec.whatwg.org/#dom-event-composedpath\n composedPath() {\n return this._path.map(getCurrentTarget);\n }\n\n stopPropagation() {\n this.cancelBubble = true;\n }\n \n stopImmediatePropagation() {\n this.stopPropagation();\n this._stopImmediatePropagationFlag = true;\n }\n }\n\nexport {GlobalEvent as Event};\n\n/* c8 ignore stop */\n", "/**\n * @implements globalThis.NamedNodeMap\n */\nexport class NamedNodeMap extends Array {\n constructor(ownerElement) {\n super();\n this.ownerElement = ownerElement;\n }\n\n getNamedItem(name) {\n return this.ownerElement.getAttributeNode(name);\n }\n\n setNamedItem(attr) {\n this.ownerElement.setAttributeNode(attr);\n this.unshift(attr);\n }\n\n removeNamedItem(name) {\n const item = this.getNamedItem(name);\n this.ownerElement.removeAttribute(name);\n this.splice(this.indexOf(item), 1);\n }\n\n item(index) {\n return index < this.length ? this[index] : null;\n }\n\n /* c8 ignore start */\n getNamedItemNS(_, name) {\n return this.getNamedItem(name);\n }\n\n setNamedItemNS(_, attr) {\n return this.setNamedItem(attr);\n }\n\n removeNamedItemNS(_, name) {\n return this.removeNamedItem(name);\n }\n /* c8 ignore stop */\n}\n", "import {DOCUMENT_FRAGMENT_NODE} from '../shared/constants.js';\nimport {getInnerHtml, setInnerHtml} from '../mixin/inner-html.js';\nimport {NonElementParentNode} from '../mixin/non-element-parent-node.js';\n\n/**\n * @implements globalThis.ShadowRoot\n */\nexport class ShadowRoot extends NonElementParentNode {\n constructor(host) {\n super(host.ownerDocument, '#shadow-root', DOCUMENT_FRAGMENT_NODE);\n this.host = host;\n }\n\n get innerHTML() {\n return getInnerHtml(this);\n }\n set innerHTML(html) {\n setInnerHtml(this, html);\n }\n}\n", "// https://dom.spec.whatwg.org/#interface-element\n\nimport {\n ATTRIBUTE_NODE,\n BLOCK_ELEMENTS,\n CDATA_SECTION_NODE,\n COMMENT_NODE,\n ELEMENT_NODE,\n NODE_END,\n TEXT_NODE,\n SVG_NAMESPACE\n} from '../shared/constants.js';\n\nimport {\n setAttribute, removeAttribute,\n numericAttribute, stringAttribute\n} from '../shared/attributes.js';\n\nimport {\n CLASS_LIST, DATASET, STYLE,\n END, NEXT, PREV, START,\n MIME\n} from '../shared/symbols.js';\n\nimport {\n htmlToFragment,\n ignoreCase,\n knownAdjacent,\n localCase,\n String\n} from '../shared/utils.js';\n\nimport {elementAsJSON} from '../shared/jsdon.js';\nimport {matches, prepareMatch} from '../shared/matches.js';\nimport {shadowRoots} from '../shared/shadow-roots.js';\n\nimport {isConnected, parentElement, previousSibling, nextSibling} from '../shared/node.js';\nimport {previousElementSibling, nextElementSibling} from '../mixin/non-document-type-child-node.js';\n\nimport {before, after, replaceWith, remove} from '../mixin/child-node.js';\nimport {getInnerHtml, setInnerHtml} from '../mixin/inner-html.js';\nimport {ParentNode} from '../mixin/parent-node.js';\n\nimport {DOMStringMap} from '../dom/string-map.js';\nimport {DOMTokenList} from '../dom/token-list.js';\n\nimport {CSSStyleDeclaration} from './css-style-declaration.js';\nimport {Event} from './event.js';\nimport {NamedNodeMap} from './named-node-map.js';\nimport {ShadowRoot} from './shadow-root.js';\nimport {NodeList} from './node-list.js';\nimport {Attr} from './attr.js';\nimport {Text} from './text.js';\nimport {escape} from '../shared/text-escaper.js';\n\n// <utils>\nconst attributesHandler = {\n get(target, key) {\n return key in target ? target[key] : target.find(({name}) => name === key);\n }\n};\n\nconst create = (ownerDocument, element, localName) => {\n if ('ownerSVGElement' in element) {\n const svg = ownerDocument.createElementNS(SVG_NAMESPACE, localName);\n svg.ownerSVGElement = element.ownerSVGElement;\n return svg;\n }\n return ownerDocument.createElement(localName);\n};\n\nconst isVoid = ({localName, ownerDocument}) => {\n return ownerDocument[MIME].voidElements.test(localName);\n};\n\n// </utils>\n\n/**\n * @implements globalThis.Element\n */\nexport class Element extends ParentNode {\n constructor(ownerDocument, localName) {\n super(ownerDocument, localName, ELEMENT_NODE);\n this[CLASS_LIST] = null;\n this[DATASET] = null;\n this[STYLE] = null;\n }\n\n // <Mixins>\n get isConnected() { return isConnected(this); }\n get parentElement() { return parentElement(this); }\n get previousSibling() { return previousSibling(this); }\n get nextSibling() { return nextSibling(this); }\n get namespaceURI() {\n return 'http://www.w3.org/1999/xhtml';\n }\n\n get previousElementSibling() { return previousElementSibling(this); }\n get nextElementSibling() { return nextElementSibling(this); }\n\n before(...nodes) { before(this, nodes); }\n after(...nodes) { after(this, nodes); }\n replaceWith(...nodes) { replaceWith(this, nodes); }\n remove() { remove(this[PREV], this, this[END][NEXT]); }\n // </Mixins>\n\n // <specialGetters>\n get id() { return stringAttribute.get(this, 'id'); }\n set id(value) { stringAttribute.set(this, 'id', value); }\n\n get className() { return this.classList.value; }\n set className(value) {\n const {classList} = this;\n classList.clear();\n classList.add(...(String(value).split(/\\s+/)));\n }\n\n get nodeName() { return localCase(this); }\n get tagName() { return localCase(this); }\n\n get classList() {\n return this[CLASS_LIST] || (\n this[CLASS_LIST] = new DOMTokenList(this)\n );\n }\n\n get dataset() {\n return this[DATASET] || (\n this[DATASET] = new DOMStringMap(this)\n );\n }\n\n getBoundingClientRect() {\n return {\n x: 0,\n y: 0,\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0\n };\n }\n\n get nonce() { return stringAttribute.get(this, 'nonce'); }\n set nonce(value) { stringAttribute.set(this, 'nonce', value); }\n\n get style() {\n return this[STYLE] || (\n this[STYLE] = new CSSStyleDeclaration(this)\n );\n }\n\n get tabIndex() { return numericAttribute.get(this, 'tabindex') || -1; }\n set tabIndex(value) { numericAttribute.set(this, 'tabindex', value); }\n\n get slot() { return stringAttribute.get(this, 'slot'); }\n set slot(value) { stringAttribute.set(this, 'slot', value); }\n // </specialGetters>\n\n\n // <contentRelated>\n get innerText() {\n const text = [];\n let {[NEXT]: next, [END]: end} = this;\n while (next !== end) {\n if (next.nodeType === TEXT_NODE) {\n text.push(next.textContent.replace(/\\s+/g, ' '));\n } else if(\n text.length && next[NEXT] != end &&\n BLOCK_ELEMENTS.has(next.tagName)\n ) {\n text.push('\\n');\n }\n next = next[NEXT];\n }\n return text.join('');\n }\n\n /**\n * @returns {String}\n */\n get textContent() {\n const text = [];\n let {[NEXT]: next, [END]: end} = this;\n while (next !== end) {\n const nodeType = next.nodeType;\n if (nodeType === TEXT_NODE || nodeType === CDATA_SECTION_NODE)\n text.push(next.textContent);\n next = next[NEXT];\n }\n return text.join('');\n }\n\n set textContent(text) {\n this.replaceChildren();\n if (text != null && text !== '')\n this.appendChild(new Text(this.ownerDocument, text));\n }\n\n get innerHTML() {\n return getInnerHtml(this);\n }\n set innerHTML(html) {\n setInnerHtml(this, html);\n }\n\n get outerHTML() { return this.toString(); }\n set outerHTML(html) {\n const template = this.ownerDocument.createElement('');\n template.innerHTML = html;\n this.replaceWith(...template.childNodes);\n }\n // </contentRelated>\n\n // <attributes>\n get attributes() {\n const attributes = new NamedNodeMap(this);\n let next = this[NEXT];\n while (next.nodeType === ATTRIBUTE_NODE) {\n attributes.push(next);\n next = next[NEXT];\n }\n return new Proxy(attributes, attributesHandler);\n }\n\n focus() { this.dispatchEvent(new Event('focus')); }\n\n getAttribute(name) {\n if (name === 'class')\n return this.className;\n const attribute = this.getAttributeNode(name);\n return attribute && (ignoreCase(this) ? attribute.value : escape(attribute.value));\n }\n\n getAttributeNode(name) {\n let next = this[NEXT];\n while (next.nodeType === ATTRIBUTE_NODE) {\n if (next.name === name)\n return next;\n next = next[NEXT];\n }\n return null;\n }\n\n getAttributeNames() {\n const attributes = new NodeList;\n let next = this[NEXT];\n while (next.nodeType === ATTRIBUTE_NODE) {\n attributes.push(next.name);\n next = next[NEXT];\n }\n return attributes;\n }\n\n hasAttribute(name) { return !!this.getAttributeNode(name); }\n hasAttributes() { return this[NEXT].nodeType === ATTRIBUTE_NODE; }\n\n removeAttribute(name) {\n if (name === 'class' && this[CLASS_LIST])\n this[CLASS_LIST].clear();\n let next = this[NEXT];\n while (next.nodeType === ATTRIBUTE_NODE) {\n if (next.name === name) {\n removeAttribute(this, next);\n return;\n }\n next = next[NEXT];\n }\n }\n\n removeAttributeNode(attribute) {\n let next = this[NEXT];\n while (next.nodeType === ATTRIBUTE_NODE) {\n if (next === attribute) {\n removeAttribute(this, next);\n return;\n }\n next = next[NEXT];\n }\n }\n\n setAttribute(name, value) {\n if (name === 'class')\n this.className = value;\n else {\n const attribute = this.getAttributeNode(name);\n if (attribute)\n attribute.value = value;\n else\n setAttribute(this, new Attr(this.ownerDocument, name, value));\n }\n }\n\n setAttributeNode(attribute) {\n const {name} = attribute;\n const previously = this.getAttributeNode(name);\n if (previously !== attribute) {\n if (previously)\n this.removeAttributeNode(previously);\n const {ownerElement} = attribute;\n if (ownerElement)\n ownerElement.removeAttributeNode(attribute);\n setAttribute(this, attribute);\n }\n return previously;\n }\n\n toggleAttribute(name, force) {\n if (this.hasAttribute(name)) {\n if (!force) {\n this.removeAttribute(name);\n return false;\n }\n return true;\n }\n else if (force || arguments.length === 1) {\n this.setAttribute(name, '');\n return true;\n }\n return false;\n }\n // </attributes>\n\n // <ShadowDOM>\n get shadowRoot() {\n if (shadowRoots.has(this)) {\n const {mode, shadowRoot} = shadowRoots.get(this);\n if (mode === 'open')\n return shadowRoot;\n }\n return null;\n }\n\n attachShadow(init) {\n if (shadowRoots.has(this))\n throw new Error('operation not supported');\n // TODO: shadowRoot should be likely a specialized class that extends DocumentFragment\n // but until DSD is out, I am not sure I should spend time on this.\n const shadowRoot = new ShadowRoot(this);\n shadowRoots.set(this, {\n mode: init.mode,\n shadowRoot\n });\n return shadowRoot;\n }\n // </ShadowDOM>\n\n // <selectors>\n matches(selectors) { return matches(this, selectors); }\n closest(selectors) {\n let parentElement = this;\n const matches = prepareMatch(parentElement, selectors);\n while (parentElement && !matches(parentElement))\n parentElement = parentElement.parentElement;\n return parentElement;\n }\n // </selectors>\n\n // <insertAdjacent>\n insertAdjacentElement(position, element) {\n const {parentElement} = this;\n switch (position) {\n case 'beforebegin':\n if (parentElement) {\n parentElement.insertBefore(element, this);\n break;\n }\n return null;\n case 'afterbegin':\n this.insertBefore(element, this.firstChild);\n break;\n case 'beforeend':\n this.insertBefore(element, null);\n break;\n case 'afterend':\n if (parentElement) {\n parentElement.insertBefore(element, this.nextSibling);\n break;\n }\n return null;\n }\n return element;\n }\n\n insertAdjacentHTML(position, html) {\n this.insertAdjacentElement(position, htmlToFragment(this.ownerDocument, html));\n }\n\n insertAdjacentText(position, text) {\n const node = this.ownerDocument.createTextNode(text);\n this.insertAdjacentElement(position, node);\n }\n // </insertAdjacent>\n\n cloneNode(deep = false) {\n const {ownerDocument, localName} = this;\n const addNext = next => {\n next.parentNode = parentNode;\n knownAdjacent($next, next);\n $next = next;\n };\n const clone = create(ownerDocument, this, localName);\n let parentNode = clone, $next = clone;\n let {[NEXT]: next, [END]: prev} = this;\n while (next !== prev && (deep || next.nodeType === ATTRIBUTE_NODE)) {\n switch (next.nodeType) {\n case NODE_END:\n knownAdjacent($next, parentNode[END]);\n $next = parentNode[END];\n parentNode = parentNode.parentNode;\n break;\n case ELEMENT_NODE: {\n const node = create(ownerDocument, next, next.localName);\n addNext(node);\n parentNode = node;\n break;\n }\n case ATTRIBUTE_NODE: {\n const attr = next.cloneNode(deep);\n attr.ownerElement = parentNode;\n addNext(attr);\n break;\n }\n case TEXT_NODE:\n case COMMENT_NODE:\n case CDATA_SECTION_NODE:\n addNext(next.cloneNode(deep));\n break;\n }\n next = next[NEXT];\n }\n knownAdjacent($next, clone[END]);\n return clone;\n }\n\n // <custom>\n toString() {\n const out = [];\n const {[END]: end} = this;\n let next = {[NEXT]: this};\n let isOpened = false;\n do {\n next = next[NEXT];\n switch (next.nodeType) {\n case ATTRIBUTE_NODE: {\n const attr = ' ' + next;\n switch (attr) {\n case ' id':\n case ' class':\n case ' style':\n break;\n default:\n out.push(attr);\n }\n break;\n }\n case NODE_END: {\n const start = next[START];\n if (isOpened) {\n if ('ownerSVGElement' in start)\n out.push(' />');\n else if (isVoid(start))\n out.push(ignoreCase(start) ? '>' : ' />');\n else\n out.push(`></${start.localName}>`);\n isOpened = false;\n }\n else\n out.push(`</${start.localName}>`);\n break;\n }\n case ELEMENT_NODE:\n if (isOpened)\n out.push('>');\n if (next.toString !== this.toString) {\n out.push(next.toString());\n next = next[END];\n isOpened = false;\n }\n else {\n out.push(`<${next.localName}`);\n isOpened = true;\n }\n break;\n case TEXT_NODE:\n case COMMENT_NODE:\n case CDATA_SECTION_NODE:\n out.push((isOpened ? '>' : '') + next);\n isOpened = false;\n break;\n }\n } while (next !== end);\n return out.join('');\n }\n\n toJSON() {\n const json = [];\n elementAsJSON(this, json);\n return json;\n }\n // </custom>\n\n\n /* c8 ignore start */\n getAttributeNS(_, name) { return this.getAttribute(name); }\n getElementsByTagNameNS(_, name) { return this.getElementsByTagName(name); }\n hasAttributeNS(_, name) { return this.hasAttribute(name); }\n removeAttributeNS(_, name) { this.removeAttribute(name); }\n setAttributeNS(_, name, value) { this.setAttribute(name, value); }\n setAttributeNodeNS(attr) { return this.setAttributeNode(attr); }\n /* c8 ignore stop */\n}\n", "import {Element} from '../interface/element.js';\nimport {String} from '../shared/utils.js';\n\nconst classNames = new WeakMap;\n\nconst handler = {\n get(target, name) {\n return target[name];\n },\n set(target, name, value) {\n target[name] = value;\n return true;\n }\n};\n\n/**\n * @implements globalThis.SVGElement\n */\nexport class SVGElement extends Element {\n constructor(ownerDocument, localName, ownerSVGElement = null) {\n super(ownerDocument, localName);\n this.ownerSVGElement = ownerSVGElement;\n }\n\n get className() {\n if (!classNames.has(this))\n classNames.set(this, new Proxy({baseVal: '', animVal: ''}, handler));\n return classNames.get(this);\n }\n\n /* c8 ignore start */\n set className(value) {\n const {classList} = this;\n classList.clear();\n classList.add(...(String(value).split(/\\s+/)));\n }\n /* c8 ignore stop */\n\n get namespaceURI() {\n return 'http://www.w3.org/2000/svg';\n }\n\n getAttribute(name) {\n return name === 'class' ?\n [...this.classList].join(' ') :\n super.getAttribute(name);\n }\n\n setAttribute(name, value) {\n if (name === 'class')\n this.className = value;\n else if (name === 'style') {\n const {className} = this;\n className.baseVal = className.animVal = value;\n }\n super.setAttribute(name, value);\n }\n}\n", "import {Attr as _Attr} from '../interface/attr.js';\nimport {CharacterData as _CharacterData} from '../interface/character-data.js';\nimport {CDATASection as _CDATASection} from '../interface/cdata-section.js';\nimport {Comment as _Comment} from '../interface/comment.js';\nimport {DocumentFragment as _DocumentFragment} from '../interface/document-fragment.js';\nimport {DocumentType as _DocumentType} from '../interface/document-type.js';\nimport {Element as _Element} from '../interface/element.js';\nimport {Node as _Node} from '../interface/node.js';\nimport {ShadowRoot as _ShadowRoot} from '../interface/shadow-root.js';\nimport {Text as _Text} from '../interface/text.js';\nimport {SVGElement as _SVGElement} from '../svg/element.js';\n\nimport {setPrototypeOf} from './object.js';\n\n/* c8 ignore start */\nexport const illegalConstructor = () => {\n throw new TypeError('Illegal constructor');\n};\n\nexport function Attr() { illegalConstructor(); }\nsetPrototypeOf(Attr, _Attr);\nAttr.prototype = _Attr.prototype;\n\nexport function CDATASection() { illegalConstructor(); }\nsetPrototypeOf(CDATASection, _CDATASection);\nCDATASection.prototype = _CDATASection.prototype;\n\nexport function CharacterData() { illegalConstructor(); }\nsetPrototypeOf(CharacterData, _CharacterData);\nCharacterData.prototype = _CharacterData.prototype;\n\nexport function Comment() { illegalConstructor(); }\nsetPrototypeOf(Comment, _Comment);\nComment.prototype = _Comment.prototype;\n\nexport function DocumentFragment() { illegalConstructor(); }\nsetPrototypeOf(DocumentFragment, _DocumentFragment);\nDocumentFragment.prototype = _DocumentFragment.prototype;\n\nexport function DocumentType() { illegalConstructor(); }\nsetPrototypeOf(DocumentType, _DocumentType);\nDocumentType.prototype = _DocumentType.prototype;\n\nexport function Element() { illegalConstructor(); }\nsetPrototypeOf(Element, _Element);\nElement.prototype = _Element.prototype;\n\nexport function Node() { illegalConstructor(); }\nsetPrototypeOf(Node, _Node);\nNode.prototype = _Node.prototype;\n\nexport function ShadowRoot() { illegalConstructor(); }\nsetPrototypeOf(ShadowRoot, _ShadowRoot);\nShadowRoot.prototype = _ShadowRoot.prototype;\n\nexport function Text() { illegalConstructor(); }\nsetPrototypeOf(Text, _Text);\nText.prototype = _Text.prototype;\n\nexport function SVGElement() { illegalConstructor(); }\nsetPrototypeOf(SVGElement, _SVGElement);\nSVGElement.prototype = _SVGElement.prototype;\n/* c8 ignore stop */\n\nexport const Facades = {\n Attr,\n CDATASection,\n CharacterData,\n Comment,\n DocumentFragment,\n DocumentType,\n Element,\n Node,\n ShadowRoot,\n Text,\n SVGElement\n};\n", "import {END, UPGRADE} from '../shared/symbols.js';\nimport {booleanAttribute, stringAttribute} from '../shared/attributes.js';\n\nimport {Event} from '../interface/event.js';\nimport {Element} from '../interface/element.js';\nimport {Classes, customElements} from '../interface/custom-element-registry.js';\n\nconst Level0 = new WeakMap;\nconst level0 = {\n get(element, name) {\n return Level0.has(element) && Level0.get(element)[name] || null;\n },\n set(element, name, value) {\n if (!Level0.has(element))\n Level0.set(element, {});\n const handlers = Level0.get(element);\n const type = name.slice(2);\n if (handlers[name])\n element.removeEventListener(type, handlers[name], false);\n if ((handlers[name] = value))\n element.addEventListener(type, value, false);\n }\n};\n\n/**\n * @implements globalThis.HTMLElement\n */\nexport class HTMLElement extends Element {\n\n static get observedAttributes() { return []; }\n\n constructor(ownerDocument = null, localName = '') {\n super(ownerDocument, localName);\n\n const ownerLess = !ownerDocument;\n let options;\n\n if (ownerLess) {\n const {constructor: Class} = this;\n if (!Classes.has(Class))\n throw new Error('unable to initialize this Custom Element');\n ({ownerDocument, localName, options} = Classes.get(Class));\n }\n\n if (ownerDocument[UPGRADE]) {\n const {element, values} = ownerDocument[UPGRADE];\n ownerDocument[UPGRADE] = null;\n for (const [key, value] of values)\n element[key] = value;\n return element;\n }\n\n if (ownerLess) {\n this.ownerDocument = this[END].ownerDocument = ownerDocument;\n this.localName = localName;\n customElements.set(this, {connected: false});\n if (options.is)\n this.setAttribute('is', options.is);\n }\n }\n\n /* c8 ignore start */\n\n /* TODO: what about these?\n offsetHeight\n offsetLeft\n offsetParent\n offsetTop\n offsetWidth\n */\n\n blur() { this.dispatchEvent(new Event('blur')); }\n click() {\n const clickEvent = new Event('click', {bubbles: true, cancelable: true});\n clickEvent.button = 0;\n\n this.dispatchEvent(clickEvent);\n }\n\n // Boolean getters\n get accessKeyLabel() {\n const {accessKey} = this;\n return accessKey && `Alt+Shift+${accessKey}`;\n }\n get isContentEditable() { return this.hasAttribute('contenteditable'); }\n\n // Boolean Accessors\n get contentEditable() { return booleanAttribute.get(this, 'contenteditable'); }\n set contentEditable(value) { booleanAttribute.set(this, 'contenteditable', value); }\n get draggable() { return booleanAttribute.get(this, 'draggable'); }\n set draggable(value) { booleanAttribute.set(this, 'draggable', value); }\n get hidden() { return booleanAttribute.get(this, 'hidden'); }\n set hidden(value) { booleanAttribute.set(this, 'hidden', value); }\n get spellcheck() { return booleanAttribute.get(this, 'spellcheck'); }\n set spellcheck(value) { booleanAttribute.set(this, 'spellcheck', value); }\n\n // String Accessors\n get accessKey() { return stringAttribute.get(this, 'accesskey'); }\n set accessKey(value) { stringAttribute.set(this, 'accesskey', value); }\n get dir() { return stringAttribute.get(this, 'dir'); }\n set dir(value) { stringAttribute.set(this, 'dir', value); }\n get lang() { return stringAttribute.get(this, 'lang'); }\n set lang(value) { stringAttribute.set(this, 'lang', value); }\n get title() { return stringAttribute.get(this, 'title'); }\n set title(value) { stringAttribute.set(this, 'title', value); }\n\n // DOM Level 0\n get onabort() { return level0.get(this, 'onabort'); }\n set onabort(value) { level0.set(this, 'onabort', value); }\n\n get onblur() { return level0.get(this, 'onblur'); }\n set onblur(value) { level0.set(this, 'onblur', value); }\n\n get oncancel() { return level0.get(this, 'oncancel'); }\n set oncancel(value) { level0.set(this, 'oncancel', value); }\n\n get oncanplay() { return level0.get(this, 'oncanplay'); }\n set oncanplay(value) { level0.set(this, 'oncanplay', value); }\n\n get oncanplaythrough() { return level0.get(this, 'oncanplaythrough'); }\n set oncanplaythrough(value) { level0.set(this, 'oncanplaythrough', value); }\n\n get onchange() { return level0.get(this, 'onchange'); }\n set onchange(value) { level0.set(this, 'onchange', value); }\n\n get onclick() { return level0.get(this, 'onclick'); }\n set onclick(value) { level0.set(this, 'onclick', value); }\n\n get onclose() { return level0.get(this, 'onclose'); }\n set onclose(value) { level0.set(this, 'onclose', value); }\n\n get oncontextmenu() { return level0.get(this, 'oncontextmenu'); }\n set oncontextmenu(value) { level0.set(this, 'oncontextmenu', value); }\n\n get oncuechange() { return level0.get(this, 'oncuechange'); }\n set oncuechange(value) { level0.set(this, 'oncuechange', value); }\n\n get ondblclick() { return level0.get(this, 'ondblclick'); }\n set ondblclick(value) { level0.set(this, 'ondblclick', value); }\n\n get ondrag() { return level0.get(this, 'ondrag'); }\n set ondrag(value) { level0.set(this, 'ondrag', value); }\n\n get ondragend() { return level0.get(this, 'ondragend'); }\n set ondragend(value) { level0.set(this, 'ondragend', value); }\n\n get ondragenter() { return level0.get(this, 'ondragenter'); }\n set ondragenter(value) { level0.set(this, 'ondragenter', value); }\n\n get ondragleave() { return level0.get(this, 'ondragleave'); }\n set ondragleave(value) { level0.set(this, 'ondragleave', value); }\n\n get ondragover() { return level0.get(this, 'ondragover'); }\n set ondragover(value) { level0.set(this, 'ondragover', value); }\n\n get ondragstart() { return level0.get(this, 'ondragstart'); }\n set ondragstart(value) { level0.set(this, 'ondragstart', value); }\n\n get ondrop() { return level0.get(this, 'ondrop'); }\n set ondrop(value) { level0.set(this, 'ondrop', value); }\n\n get ondurationchange() { return level0.get(this, 'ondurationchange'); }\n set ondurationchange(value) { level0.set(this, 'ondurationchange', value); }\n\n get onemptied() { return level0.get(this, 'onemptied'); }\n set onemptied(value) { level0.set(this, 'onemptied', value); }\n\n get onended() { return level0.get(this, 'onended'); }\n set onended(value) { level0.set(this, 'onended', value); }\n\n get onerror() { return level0.get(this, 'onerror'); }\n set onerror(value) { level0.set(this, 'onerror', value); }\n\n get onfocus() { return level0.get(this, 'onfocus'); }\n set onfocus(value) { level0.set(this, 'onfocus', value); }\n\n get oninput() { return level0.get(this, 'oninput'); }\n set oninput(value) { level0.set(this, 'oninput', value); }\n\n get oninvalid() { return level0.get(this, 'oninvalid'); }\n set oninvalid(value) { level0.set(this, 'oninvalid', value); }\n\n get onkeydown() { return level0.get(this, 'onkeydown'); }\n set onkeydown(value) { level0.set(this, 'onkeydown', value); }\n\n get onkeypress() { return level0.get(this, 'onkeypress'); }\n set onkeypress(value) { level0.set(this, 'onkeypress', value); }\n\n get onkeyup() { return level0.get(this, 'onkeyup'); }\n set onkeyup(value) { level0.set(this, 'onkeyup', value); }\n\n get onload() { return level0.get(this, 'onload'); }\n set onload(value) { level0.set(this, 'onload', value); }\n\n get onloadeddata() { return level0.get(this, 'onloadeddata'); }\n set onloadeddata(value) { level0.set(this, 'onloadeddata', value); }\n\n get onloadedmetadata() { return level0.get(this, 'onloadedmetadata'); }\n set onloadedmetadata(value) { level0.set(this, 'onloadedmetadata', value); }\n\n get onloadstart() { return level0.get(this, 'onloadstart'); }\n set onloadstart(value) { level0.set(this, 'onloadstart', value); }\n\n get onmousedown() { return level0.get(this, 'onmousedown'); }\n set onmousedown(value) { level0.set(this, 'onmousedown', value); }\n\n get onmouseenter() { return level0.get(this, 'onmouseenter'); }\n set onmouseenter(value) { level0.set(this, 'onmouseenter', value); }\n\n get onmouseleave() { return level0.get(this, 'onmouseleave'); }\n set onmouseleave(value) { level0.set(this, 'onmouseleave', value); }\n\n get onmousemove() { return level0.get(this, 'onmousemove'); }\n set onmousemove(value) { level0.set(this, 'onmousemove', value); }\n\n get onmouseout() { return level0.get(this, 'onmouseout'); }\n set onmouseout(value) { level0.set(this, 'onmouseout', value); }\n\n get onmouseover() { return level0.get(this, 'onmouseover'); }\n set onmouseover(value) { level0.set(this, 'onmouseover', value); }\n\n get onmouseup() { return level0.get(this, 'onmouseup'); }\n set onmouseup(value) { level0.set(this, 'onmouseup', value); }\n\n get onmousewheel() { return level0.get(this, 'onmousewheel'); }\n set onmousewheel(value) { level0.set(this, 'onmousewheel', value); }\n\n get onpause() { return level0.get(this, 'onpause'); }\n set onpause(value) { level0.set(this, 'onpause', value); }\n\n get onplay() { return level0.get(this, 'onplay'); }\n set onplay(value) { level0.set(this, 'onplay', value); }\n\n get onplaying() { return level0.get(this, 'onplaying'); }\n set onplaying(value) { level0.set(this, 'onplaying', value); }\n\n get onprogress() { return level0.get(this, 'onprogress'); }\n set onprogress(value) { level0.set(this, 'onprogress', value); }\n\n get onratechange() { return level0.get(this, 'onratechange'); }\n set onratechange(value) { level0.set(this, 'onratechange', value); }\n\n get onreset() { return level0.get(this, 'onreset'); }\n set onreset(value) { level0.set(this, 'onreset', value); }\n\n get onresize() { return level0.get(this, 'onresize'); }\n set onresize(value) { level0.set(this, 'onresize', value); }\n\n get onscroll() { return level0.get(this, 'onscroll'); }\n set onscroll(value) { level0.set(this, 'onscroll', value); }\n\n get onseeked() { return level0.get(this, 'onseeked'); }\n set onseeked(value) { level0.set(this, 'onseeked', value); }\n\n get onseeking() { return level0.get(this, 'onseeking'); }\n set onseeking(value) { level0.set(this, 'onseeking', value); }\n\n get onselect() { return level0.get(this, 'onselect'); }\n set onselect(value) { level0.set(this, 'onselect', value); }\n\n get onshow() { return level0.get(this, 'onshow'); }\n set onshow(value) { level0.set(this, 'onshow', value); }\n\n get onstalled() { return level0.get(this, 'onstalled'); }\n set onstalled(value) { level0.set(this, 'onstalled', value); }\n\n get onsubmit() { return level0.get(this, 'onsubmit'); }\n set onsubmit(value) { level0.set(this, 'onsubmit', value); }\n\n get onsuspend() { return level0.get(this, 'onsuspend'); }\n set onsuspend(value) { level0.set(this, 'onsuspend', value); }\n\n get ontimeupdate() { return level0.get(this, 'ontimeupdate'); }\n set ontimeupdate(value) { level0.set(this, 'ontimeupdate', value); }\n\n get ontoggle() { return level0.get(this, 'ontoggle'); }\n set ontoggle(value) { level0.set(this, 'ontoggle', value); }\n\n get onvolumechange() { return level0.get(this, 'onvolumechange'); }\n set onvolumechange(value) { level0.set(this, 'onvolumechange', value); }\n\n get onwaiting() { return level0.get(this, 'onwaiting'); }\n set onwaiting(value) { level0.set(this, 'onwaiting', value); }\n\n get onauxclick() { return level0.get(this, 'onauxclick'); }\n set onauxclick(value) { level0.set(this, 'onauxclick', value); }\n\n get ongotpointercapture() { return level0.get(this, 'ongotpointercapture'); }\n set ongotpointercapture(value) { level0.set(this, 'ongotpointercapture', value); }\n\n get onlostpointercapture() { return level0.get(this, 'onlostpointercapture'); }\n set onlostpointercapture(value) { level0.set(this, 'onlostpointercapture', value); }\n\n get onpointercancel() { return level0.get(this, 'onpointercancel'); }\n set onpointercancel(value) { level0.set(this, 'onpointercancel', value); }\n\n get onpointerdown() { return level0.get(this, 'onpointerdown'); }\n set onpointerdown(value) { level0.set(this, 'onpointerdown', value); }\n\n get onpointerenter() { return level0.get(this, 'onpointerenter'); }\n set onpointerenter(value) { level0.set(this, 'onpointerenter', value); }\n\n get onpointerleave() { return level0.get(this, 'onpointerleave'); }\n set onpointerleave(value) { level0.set(this, 'onpointerleave', value); }\n\n get onpointermove() { return level0.get(this, 'onpointermove'); }\n set onpointermove(value) { level0.set(this, 'onpointermove', value); }\n\n get onpointerout() { return level0.get(this, 'onpointerout'); }\n set onpointerout(value) { level0.set(this, 'onpointerout', value); }\n\n get onpointerover() { return level0.get(this, 'onpointerover'); }\n set onpointerover(value) { level0.set(this, 'onpointerover', value); }\n\n get onpointerup() { return level0.get(this, 'onpointerup'); }\n set onpointerup(value) { level0.set(this, 'onpointerup', value); }\n /* c8 ignore stop */\n\n}\n", "import {CONTENT, PRIVATE} from '../shared/symbols.js';\n\nimport {registerHTMLClass} from '../shared/register-html-class.js';\n\nimport {HTMLElement} from './element.js';\n\nconst tagName = 'template';\n\n/**\n * @implements globalThis.HTMLTemplateElement\n */\nclass HTMLTemplateElement extends HTMLElement {\n constructor(ownerDocument) {\n super(ownerDocument, tagName);\n const content = this.ownerDocument.createDocumentFragment();\n (this[CONTENT] = content)[PRIVATE] = this;\n }\n\n get content() {\n if (this.hasChildNodes() && !this[CONTENT].hasChildNodes()) {\n for (const node of this.childNodes)\n this[CONTENT].appendChild(node.cloneNode(true));\n }\n return this[CONTENT];\n }\n}\n\nregisterHTMLClass(tagName, HTMLTemplateElement);\n\nexport {HTMLTemplateElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLHtmlElement\n */\nexport class HTMLHtmlElement extends HTMLElement {\n constructor(ownerDocument, localName = 'html') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\nconst {toString} = HTMLElement.prototype;\n\nexport class TextElement extends HTMLElement {\n\n get innerHTML() { return this.textContent; }\n set innerHTML(html) { this.textContent = html; }\n\n toString() {\n const outerHTML = toString.call(this.cloneNode());\n return outerHTML.replace('><', () => `>${this.textContent}<`);\n }\n}\n", "import { booleanAttribute, stringAttribute } from '../shared/attributes.js';\nimport { registerHTMLClass } from '../shared/register-html-class.js';\n\nimport { TextElement } from './text-element.js';\n\nconst tagName = 'script';\n\n/**\n * @implements globalThis.HTMLScriptElement\n */\nclass HTMLScriptElement extends TextElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n get type() {\n return stringAttribute.get(this, 'type');\n }\n set type(value) {\n stringAttribute.set(this, 'type', value);\n }\n\n get src() {\n return stringAttribute.get(this, 'src');\n }\n set src(value) {\n stringAttribute.set(this, 'src', value);\n }\n\n get defer() {\n return booleanAttribute.get(this, 'defer');\n }\n\n set defer(value) {\n booleanAttribute.set(this, 'defer', value);\n }\n\n get crossOrigin() {\n return stringAttribute.get(this, 'crossorigin');\n }\n set crossOrigin(value) {\n stringAttribute.set(this, 'crossorigin', value);\n }\n\n get nomodule() {\n return booleanAttribute.get(this, 'nomodule');\n }\n set nomodule(value) {\n booleanAttribute.set(this, 'nomodule', value);\n }\n\n get referrerPolicy() {\n return stringAttribute.get(this, 'referrerpolicy');\n }\n set referrerPolicy(value) {\n stringAttribute.set(this, 'referrerpolicy', value);\n }\n\n get nonce() {\n return stringAttribute.get(this, 'nonce');\n }\n set nonce(value) {\n stringAttribute.set(this, 'nonce', value);\n }\n\n get async() {\n return booleanAttribute.get(this, 'async');\n }\n set async(value) {\n booleanAttribute.set(this, 'async', value);\n }\n\n get text() { return this.textContent; }\n set text(content) { this.textContent = content; }\n}\n\nregisterHTMLClass(tagName, HTMLScriptElement);\n\nexport { HTMLScriptElement };\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLFrameElement\n */\nexport class HTMLFrameElement extends HTMLElement {\n constructor(ownerDocument, localName = 'frame') {\n super(ownerDocument, localName);\n }\n}\n", "import {registerHTMLClass} from '../shared/register-html-class.js';\nimport {booleanAttribute, stringAttribute} from '../shared/attributes.js';\n\nimport {HTMLElement} from './element.js';\n\nconst tagName = 'iframe';\n\n/**\n * @implements globalThis.HTMLIFrameElement\n */\nclass HTMLIFrameElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n /* c8 ignore start */\n get src() { return stringAttribute.get(this, 'src'); }\n set src(value) { stringAttribute.set(this, 'src', value); }\n\n get srcdoc() { return stringAttribute.get(this, \"srcdoc\"); }\n set srcdoc(value) { stringAttribute.set(this, \"srcdoc\", value); }\n\n get name() { return stringAttribute.get(this, \"name\"); }\n set name(value) { stringAttribute.set(this, \"name\", value); }\n\n get allow() { return stringAttribute.get(this, \"allow\"); }\n set allow(value) { stringAttribute.set(this, \"allow\", value); }\n\n get allowFullscreen() { return booleanAttribute.get(this, \"allowfullscreen\"); }\n set allowFullscreen(value) { booleanAttribute.set(this, \"allowfullscreen\", value); }\n \n get referrerPolicy() { return stringAttribute.get(this, \"referrerpolicy\"); }\n set referrerPolicy(value) { stringAttribute.set(this, \"referrerpolicy\", value); }\n \n get loading() { return stringAttribute.get(this, \"loading\"); }\n set loading(value) { stringAttribute.set(this, \"loading\", value); }\n /* c8 ignore stop */\n}\n\nregisterHTMLClass(tagName, HTMLIFrameElement);\n\nexport {HTMLIFrameElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLObjectElement\n */\nexport class HTMLObjectElement extends HTMLElement {\n constructor(ownerDocument, localName = 'object') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLHeadElement\n */\nexport class HTMLHeadElement extends HTMLElement {\n constructor(ownerDocument, localName = 'head') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLBodyElement\n */\nexport class HTMLBodyElement extends HTMLElement {\n constructor(ownerDocument, localName = 'body') {\n super(ownerDocument, localName);\n }\n}\n", "import {parse} from 'cssom';\n\nimport {registerHTMLClass} from '../shared/register-html-class.js';\nimport {SHEET} from '../shared/symbols.js';\n\nimport {TextElement} from './text-element.js';\n\nconst tagName = 'style';\n\n/**\n * @implements globalThis.HTMLStyleElement\n */\nclass HTMLStyleElement extends TextElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n this[SHEET] = null;\n }\n\n get sheet() {\n const sheet = this[SHEET];\n if (sheet !== null) {\n return sheet;\n }\n return this[SHEET] = parse(this.textContent);\n }\n\n get innerHTML() {\n return super.innerHTML || '';\n }\n set innerHTML(value) {\n super.textContent = value;\n this[SHEET] = null;\n }\n get innerText() {\n return super.innerText || '';\n }\n set innerText(value) {\n super.textContent = value;\n this[SHEET] = null;\n }\n get textContent() {\n return super.textContent || '';\n }\n set textContent(value) {\n super.textContent = value;\n this[SHEET] = null;\n }\n}\n\nregisterHTMLClass(tagName, HTMLStyleElement);\n\nexport {HTMLStyleElement};\n", "import {stringAttribute} from '../shared/attributes.js';\nimport {registerHTMLClass} from '../shared/register-html-class.js';\n\nimport {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLTimeElement\n */\nclass HTMLTimeElement extends HTMLElement {\n constructor(ownerDocument, localName = 'time') {\n super(ownerDocument, localName);\n }\n\n /**\n * @type {string}\n */\n get dateTime() { return stringAttribute.get(this, 'datetime'); }\n set dateTime(value) { stringAttribute.set(this, 'datetime', value); }\n}\n\nregisterHTMLClass('time', HTMLTimeElement)\n\nexport {HTMLTimeElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLFieldSetElement\n */\nexport class HTMLFieldSetElement extends HTMLElement {\n constructor(ownerDocument, localName = 'fieldset') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLEmbedElement\n */\nexport class HTMLEmbedElement extends HTMLElement {\n constructor(ownerDocument, localName = 'embed') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLHRElement\n */\nexport class HTMLHRElement extends HTMLElement {\n constructor(ownerDocument, localName = 'hr') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLProgressElement\n */\nexport class HTMLProgressElement extends HTMLElement {\n constructor(ownerDocument, localName = 'progress') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLParagraphElement\n */\nexport class HTMLParagraphElement extends HTMLElement {\n constructor(ownerDocument, localName = 'p') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLTableElement\n */\nexport class HTMLTableElement extends HTMLElement {\n constructor(ownerDocument, localName = 'table') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLFrameSetElement\n */\nexport class HTMLFrameSetElement extends HTMLElement {\n constructor(ownerDocument, localName = 'frameset') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLLIElement\n */\nexport class HTMLLIElement extends HTMLElement {\n constructor(ownerDocument, localName = 'li') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLBaseElement\n */\nexport class HTMLBaseElement extends HTMLElement {\n constructor(ownerDocument, localName = 'base') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLDataListElement\n */\nexport class HTMLDataListElement extends HTMLElement {\n constructor(ownerDocument, localName = 'datalist') {\n super(ownerDocument, localName);\n }\n}\n", "import {registerHTMLClass} from '../shared/register-html-class.js';\nimport {booleanAttribute, stringAttribute} from '../shared/attributes.js';\n\nimport {HTMLElement} from './element.js';\n\nconst tagName = 'input';\n\n/**\n * @implements globalThis.HTMLInputElement\n */\nclass HTMLInputElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n /* c8 ignore start */\n get autofocus() { return booleanAttribute.get(this, 'autofocus') || -1; }\n set autofocus(value) { booleanAttribute.set(this, 'autofocus', value); }\n\n get disabled() { return booleanAttribute.get(this, 'disabled'); }\n set disabled(value) { booleanAttribute.set(this, 'disabled', value); }\n\n get name() { return this.getAttribute('name'); }\n set name(value) { this.setAttribute('name', value); }\n\n get placeholder() { return this.getAttribute('placeholder'); }\n set placeholder(value) { this.setAttribute('placeholder', value); }\n\n get type() { return this.getAttribute('type'); }\n set type(value) { this.setAttribute('type', value); }\n\n get value() { return stringAttribute.get(this, 'value'); }\n set value(value) { stringAttribute.set(this, 'value', value); }\n /* c8 ignore stop */\n}\n\nregisterHTMLClass(tagName, HTMLInputElement);\n\nexport {HTMLInputElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLParamElement\n */\nexport class HTMLParamElement extends HTMLElement {\n constructor(ownerDocument, localName = 'param') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLMediaElement\n */\nexport class HTMLMediaElement extends HTMLElement {\n constructor(ownerDocument, localName = 'media') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLAudioElement\n */\nexport class HTMLAudioElement extends HTMLElement {\n constructor(ownerDocument, localName = 'audio') {\n super(ownerDocument, localName);\n }\n}\n", "import {registerHTMLClass} from '../shared/register-html-class.js';\n\nimport {HTMLElement} from './element.js';\n\nconst tagName = 'h1';\n\n/**\n * @implements globalThis.HTMLHeadingElement\n */\nclass HTMLHeadingElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n}\n\nregisterHTMLClass([tagName, 'h2', 'h3', 'h4', 'h5', 'h6'], HTMLHeadingElement);\n\nexport {HTMLHeadingElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLDirectoryElement\n */\nexport class HTMLDirectoryElement extends HTMLElement {\n constructor(ownerDocument, localName = 'dir') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLQuoteElement\n */\nexport class HTMLQuoteElement extends HTMLElement {\n constructor(ownerDocument, localName = 'quote') {\n super(ownerDocument, localName);\n }\n}\n", "import {IMAGE} from '../shared/symbols.js';\n\nimport {registerHTMLClass} from '../shared/register-html-class.js';\nimport {numericAttribute} from '../shared/attributes.js';\n\nimport Canvas from '../../commonjs/canvas.cjs';\n\nimport {HTMLElement} from './element.js';\n\nconst {createCanvas} = Canvas;\n\nconst tagName = 'canvas';\n\n/**\n * @implements globalThis.HTMLCanvasElement\n */\nclass HTMLCanvasElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n this[IMAGE] = createCanvas(300, 150);\n }\n\n get width() {\n return this[IMAGE].width;\n }\n\n set width(value) {\n numericAttribute.set(this, 'width', value);\n this[IMAGE].width = value;\n }\n\n get height() {\n return this[IMAGE].height;\n }\n\n set height(value) {\n numericAttribute.set(this, 'height', value);\n this[IMAGE].height = value;\n }\n\n getContext(type) {\n return this[IMAGE].getContext(type);\n }\n\n toDataURL(...args) {\n return this[IMAGE].toDataURL(...args);\n }\n}\n\nregisterHTMLClass(tagName, HTMLCanvasElement);\n\nexport {HTMLCanvasElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLLegendElement\n */\nexport class HTMLLegendElement extends HTMLElement {\n constructor(ownerDocument, localName = 'legend') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\nimport {booleanAttribute, stringAttribute} from '../shared/attributes.js';\nimport {registerHTMLClass} from '../shared/register-html-class.js';\n\nconst tagName = 'option';\n\n/**\n * @implements globalThis.HTMLOptionElement\n */\nclass HTMLOptionElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n /* c8 ignore start */\n get value() { return stringAttribute.get(this, 'value'); }\n set value(value) { stringAttribute.set(this, 'value', value); }\n /* c8 ignore stop */\n\n get selected() { return booleanAttribute.get(this, 'selected'); }\n set selected(value) {\n const option = this.parentElement?.querySelector('option[selected]');\n if (option && option !== this)\n option.selected = false;\n booleanAttribute.set(this, 'selected', value);\n }\n}\n\nregisterHTMLClass(tagName, HTMLOptionElement);\n\nexport {HTMLOptionElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLSpanElement\n */\nexport class HTMLSpanElement extends HTMLElement {\n constructor(ownerDocument, localName = 'span') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLMeterElement\n */\nexport class HTMLMeterElement extends HTMLElement {\n constructor(ownerDocument, localName = 'meter') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLVideoElement\n */\nexport class HTMLVideoElement extends HTMLElement {\n constructor(ownerDocument, localName = 'video') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLTableCellElement\n */\nexport class HTMLTableCellElement extends HTMLElement {\n constructor(ownerDocument, localName = 'td') {\n super(ownerDocument, localName);\n }\n}\n", "import {registerHTMLClass} from '../shared/register-html-class.js';\n\nimport {TextElement} from './text-element.js';\n\nconst tagName = 'title';\n\n/**\n * @implements globalThis.HTMLTitleElement\n */\nclass HTMLTitleElement extends TextElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n}\n\nregisterHTMLClass(tagName, HTMLTitleElement);\n\nexport {HTMLTitleElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLOutputElement\n */\nexport class HTMLOutputElement extends HTMLElement {\n constructor(ownerDocument, localName = 'output') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLTableRowElement\n */\nexport class HTMLTableRowElement extends HTMLElement {\n constructor(ownerDocument, localName = 'tr') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLDataElement\n */\nexport class HTMLDataElement extends HTMLElement {\n constructor(ownerDocument, localName = 'data') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLMenuElement\n */\nexport class HTMLMenuElement extends HTMLElement {\n constructor(ownerDocument, localName = 'menu') {\n super(ownerDocument, localName);\n }\n}\n", "import {registerHTMLClass} from '../shared/register-html-class.js';\nimport {booleanAttribute} from '../shared/attributes.js';\n\nimport {HTMLElement} from './element.js';\nimport {NodeList} from '../interface/node-list.js';\n\nconst tagName = 'select';\n\n/**\n * @implements globalThis.HTMLSelectElement\n */\nclass HTMLSelectElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n get options() {\n let children = new NodeList;\n let {firstElementChild} = this;\n while (firstElementChild) {\n if (firstElementChild.tagName === 'OPTGROUP')\n children.push(...firstElementChild.children);\n else\n children.push(firstElementChild);\n firstElementChild = firstElementChild.nextElementSibling;\n }\n return children;\n }\n\n /* c8 ignore start */\n get disabled() { return booleanAttribute.get(this, 'disabled'); }\n set disabled(value) { booleanAttribute.set(this, 'disabled', value); }\n\n get name() { return this.getAttribute('name'); }\n set name(value) { this.setAttribute('name', value); }\n /* c8 ignore stop */\n\n get value() { return this.querySelector('option[selected]')?.value; }\n}\n\nregisterHTMLClass(tagName, HTMLSelectElement);\n\nexport {HTMLSelectElement};\n\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLBRElement\n */\nexport class HTMLBRElement extends HTMLElement {\n constructor(ownerDocument, localName = 'br') {\n super(ownerDocument, localName);\n }\n}\n", "import {registerHTMLClass} from '../shared/register-html-class.js';\nimport {booleanAttribute} from '../shared/attributes.js';\n\nimport {HTMLElement} from './element.js';\n\nconst tagName = 'button';\n\n/**\n * @implements globalThis.HTMLButtonElement\n */\nclass HTMLButtonElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n /* c8 ignore start */\n get disabled() { return booleanAttribute.get(this, 'disabled'); }\n set disabled(value) { booleanAttribute.set(this, 'disabled', value); }\n\n get name() { return this.getAttribute('name'); }\n set name(value) { this.setAttribute('name', value); }\n\n get type() { return this.getAttribute('type'); }\n set type(value) { this.setAttribute('type', value); }\n /* c8 ignore stop */\n}\n\nregisterHTMLClass(tagName, HTMLButtonElement);\n\nexport {HTMLButtonElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLMapElement\n */\nexport class HTMLMapElement extends HTMLElement {\n constructor(ownerDocument, localName = 'map') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLOptGroupElement\n */\nexport class HTMLOptGroupElement extends HTMLElement {\n constructor(ownerDocument, localName = 'optgroup') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLDListElement\n */\nexport class HTMLDListElement extends HTMLElement {\n constructor(ownerDocument, localName = 'dl') {\n super(ownerDocument, localName);\n }\n}\n", "import {registerHTMLClass} from '../shared/register-html-class.js';\nimport {booleanAttribute} from '../shared/attributes.js';\n\nimport {TextElement} from './text-element.js';\n\nconst tagName = 'textarea';\n\n/**\n * @implements globalThis.HTMLTextAreaElement\n */\nclass HTMLTextAreaElement extends TextElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n /* c8 ignore start */\n get disabled() { return booleanAttribute.get(this, 'disabled'); }\n set disabled(value) { booleanAttribute.set(this, 'disabled', value); }\n\n get name() { return this.getAttribute('name'); }\n set name(value) { this.setAttribute('name', value); }\n\n get placeholder() { return this.getAttribute('placeholder'); }\n set placeholder(value) { this.setAttribute('placeholder', value); }\n\n get type() { return this.getAttribute('type'); }\n set type(value) { this.setAttribute('type', value); }\n\n get value() { return this.textContent; }\n set value(content) { this.textContent = content; }\n /* c8 ignore stop */\n}\n\nregisterHTMLClass(tagName, HTMLTextAreaElement);\n\nexport {HTMLTextAreaElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLFontElement\n */\nexport class HTMLFontElement extends HTMLElement {\n constructor(ownerDocument, localName = 'font') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLDivElement\n */\nexport class HTMLDivElement extends HTMLElement {\n constructor(ownerDocument, localName = 'div') {\n super(ownerDocument, localName);\n }\n}\n", "import {registerHTMLClass} from '../shared/register-html-class.js';\nimport {booleanAttribute, stringAttribute} from '../shared/attributes.js';\n\nimport {HTMLElement} from './element.js';\n\nconst tagName = 'link';\n\n/**\n * @implements globalThis.HTMLLinkElement\n */\nclass HTMLLinkElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n /* c8 ignore start */ // copy paste from img.src, already covered\n get disabled() { return booleanAttribute.get(this, 'disabled'); }\n set disabled(value) { booleanAttribute.set(this, 'disabled', value); }\n\n get href() { return stringAttribute.get(this, 'href').trim(); }\n set href(value) { stringAttribute.set(this, 'href', value); }\n\n get hreflang() { return stringAttribute.get(this, 'hreflang'); }\n set hreflang(value) { stringAttribute.set(this, 'hreflang', value); }\n\n get media() { return stringAttribute.get(this, 'media'); }\n set media(value) { stringAttribute.set(this, 'media', value); }\n\n get rel() { return stringAttribute.get(this, 'rel'); }\n set rel(value) { stringAttribute.set(this, 'rel', value); }\n\n get type() { return stringAttribute.get(this, 'type'); }\n set type(value) { stringAttribute.set(this, 'type', value); }\n /* c8 ignore stop */\n\n}\n\nregisterHTMLClass(tagName, HTMLLinkElement);\n\nexport {HTMLLinkElement};\n", "import {HTMLElement} from './element.js';\nimport {registerHTMLClass} from '../shared/register-html-class.js';\n\nconst tagName = 'slot';\n\n/**\n * @implements globalThis.HTMLSlotElement\n */\nclass HTMLSlotElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n /* c8 ignore start */\n get name() { return this.getAttribute('name'); }\n set name(value) { this.setAttribute('name', value); }\n\n assign() {}\n\n assignedNodes(options) {\n const isNamedSlot = !!this.name;\n const hostChildNodes = this.getRootNode().host?.childNodes ?? [];\n let slottables;\n\n if (isNamedSlot) {\n slottables = [...hostChildNodes].filter(node => node.slot === this.name);\n } else {\n slottables = [...hostChildNodes].filter(node => !node.slot);\n }\n\n if (options?.flatten) {\n const result = [];\n\n // Element and Text nodes are slottables. A slot can be a slottable.\n for (let slottable of slottables) {\n if (slottable.localName === 'slot') {\n result.push(...slottable.assignedNodes({ flatten: true }));\n } else {\n result.push(slottable);\n }\n }\n\n slottables = result;\n }\n\n // If no assigned nodes are found, it returns the slot's fallback content.\n return slottables.length ? slottables : [...this.childNodes];\n }\n\n assignedElements(options) {\n const slottables = this.assignedNodes(options).filter(n => n.nodeType === 1);\n\n // If no assigned elements are found, it returns the slot's fallback content.\n return slottables.length ? slottables : [...this.children];\n }\n /* c8 ignore stop */\n}\n\nregisterHTMLClass(tagName, HTMLSlotElement);\n\nexport {HTMLSlotElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLFormElement\n */\nexport class HTMLFormElement extends HTMLElement {\n constructor(ownerDocument, localName = 'form') {\n super(ownerDocument, localName);\n }\n}\n", "import {registerHTMLClass} from '../shared/register-html-class.js';\nimport {numericAttribute, stringAttribute} from '../shared/attributes.js';\n\nimport {HTMLElement} from './element.js';\n\nconst tagName = 'img';\n\n/**\n * @implements globalThis.HTMLImageElement\n */\nclass HTMLImageElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n /* c8 ignore start */\n get alt() { return stringAttribute.get(this, 'alt'); }\n set alt(value) { stringAttribute.set(this, 'alt', value); }\n\n get sizes() { return stringAttribute.get(this, 'sizes'); }\n set sizes(value) { stringAttribute.set(this, 'sizes', value); }\n\n get src() { return stringAttribute.get(this, 'src'); }\n set src(value) { stringAttribute.set(this, 'src', value); }\n\n get srcset() { return stringAttribute.get(this, 'srcset'); }\n set srcset(value) { stringAttribute.set(this, 'srcset', value); }\n\n get title() { return stringAttribute.get(this, 'title'); }\n set title(value) { stringAttribute.set(this, 'title', value); }\n\n get width() { return numericAttribute.get(this, 'width'); }\n set width(value) { numericAttribute.set(this, 'width', value); }\n\n get height() { return numericAttribute.get(this, 'height'); }\n set height(value) { numericAttribute.set(this, 'height', value); }\n /* c8 ignore stop */\n}\n\nregisterHTMLClass(tagName, HTMLImageElement);\n\nexport {HTMLImageElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLPreElement\n */\nexport class HTMLPreElement extends HTMLElement {\n constructor(ownerDocument, localName = 'pre') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLUListElement\n */\nexport class HTMLUListElement extends HTMLElement {\n constructor(ownerDocument, localName = 'ul') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\nimport {registerHTMLClass} from '../shared/register-html-class.js';\nimport { stringAttribute } from '../shared/attributes.js';\n\nconst tagName = 'meta'\n/**\n * @implements globalThis.HTMLMetaElement\n */\nexport class HTMLMetaElement extends HTMLElement {\n constructor(ownerDocument, localName =tagName) {\n super(ownerDocument, localName);\n }\n\n /* c8 ignore start */\n get name() { return stringAttribute.get(this, 'name'); }\n set name(value) { stringAttribute.set(this, 'name', value); }\n\n get httpEquiv() { return stringAttribute.get(this, 'http-equiv'); }\n set httpEquiv(value) { stringAttribute.set(this, 'http-equiv', value); }\n\n get content() { return stringAttribute.get(this, 'content'); }\n set content(value) { stringAttribute.set(this, 'content', value); }\n\n get charset() { return stringAttribute.get(this, 'charset'); }\n set charset(value) { stringAttribute.set(this, 'charset', value); }\n\n get media() { return stringAttribute.get(this, 'media'); }\n set media(value) { stringAttribute.set(this, 'media', value); }\n /* c8 ignore stop */\n\n}\n\nregisterHTMLClass(tagName, HTMLMetaElement);\n\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLPictureElement\n */\nexport class HTMLPictureElement extends HTMLElement {\n constructor(ownerDocument, localName = 'picture') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLAreaElement\n */\nexport class HTMLAreaElement extends HTMLElement {\n constructor(ownerDocument, localName = 'area') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLOListElement\n */\nexport class HTMLOListElement extends HTMLElement {\n constructor(ownerDocument, localName = 'ol') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLTableCaptionElement\n */\nexport class HTMLTableCaptionElement extends HTMLElement {\n constructor(ownerDocument, localName = 'caption') {\n super(ownerDocument, localName);\n }\n}\n", "import {registerHTMLClass} from '../shared/register-html-class.js';\nimport {stringAttribute} from '../shared/attributes.js';\n\nimport {HTMLElement} from './element.js';\n\nconst tagName = 'a';\n\n/**\n * @implements globalThis.HTMLAnchorElement\n */\nclass HTMLAnchorElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n /* c8 ignore start */ // copy paste from img.src, already covered\n get href() { return encodeURI(decodeURI(stringAttribute.get(this, 'href'))).trim(); }\n set href(value) { stringAttribute.set(this, 'href', decodeURI(value)); }\n\n get download() { return encodeURI(decodeURI(stringAttribute.get(this, 'download'))); }\n set download(value) { stringAttribute.set(this, 'download', decodeURI(value)); }\n\n get target() { return stringAttribute.get(this, 'target'); }\n set target(value) { stringAttribute.set(this, 'target', value); }\n\n get type() { return stringAttribute.get(this, 'type'); }\n set type(value) { stringAttribute.set(this, 'type', value); }\n\n get rel() { return stringAttribute.get(this, 'rel'); }\n set rel(value) { stringAttribute.set(this, 'rel', value); }\n /* c8 ignore stop */\n\n}\n\nregisterHTMLClass(tagName, HTMLAnchorElement);\n\nexport {HTMLAnchorElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLLabelElement\n */\nexport class HTMLLabelElement extends HTMLElement {\n constructor(ownerDocument, localName = 'label') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLUnknownElement\n */\nexport class HTMLUnknownElement extends HTMLElement {\n constructor(ownerDocument, localName = 'unknown') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLModElement\n */\nexport class HTMLModElement extends HTMLElement {\n constructor(ownerDocument, localName = 'mod') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLDetailsElement\n */\nexport class HTMLDetailsElement extends HTMLElement {\n constructor(ownerDocument, localName = 'details') {\n super(ownerDocument, localName);\n }\n}\n", "import {registerHTMLClass} from '../shared/register-html-class.js';\nimport {stringAttribute} from '../shared/attributes.js';\n\nimport {HTMLElement} from './element.js';\n\nconst tagName = 'source';\n\n/**\n * @implements globalThis.HTMLSourceElement\n */\nclass HTMLSourceElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n /* c8 ignore start */\n get src() { return stringAttribute.get(this, 'src'); }\n set src(value) { stringAttribute.set(this, 'src', value); }\n\n get srcset() { return stringAttribute.get(this, 'srcset'); }\n set srcset(value) { stringAttribute.set(this, 'srcset', value); }\n\n get sizes() { return stringAttribute.get(this, 'sizes'); }\n set sizes(value) { stringAttribute.set(this, 'sizes', value); }\n\n get type() { return stringAttribute.get(this, 'type'); }\n set type(value) { stringAttribute.set(this, 'type', value); }\n /* c8 ignore stop */\n}\n\nregisterHTMLClass(tagName, HTMLSourceElement);\n\nexport {HTMLSourceElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLTrackElement\n */\nexport class HTMLTrackElement extends HTMLElement {\n constructor(ownerDocument, localName = 'track') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLMarqueeElement\n */\nexport class HTMLMarqueeElement extends HTMLElement {\n constructor(ownerDocument, localName = 'marquee') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from '../html/element.js';\nimport {HTMLTemplateElement} from '../html/template-element.js';\nimport {HTMLHtmlElement} from '../html/html-element.js';\nimport {HTMLScriptElement} from '../html/script-element.js';\nimport {HTMLFrameElement} from '../html/frame-element.js';\nimport {HTMLIFrameElement} from '../html/i-frame-element.js';\nimport {HTMLObjectElement} from '../html/object-element.js';\nimport {HTMLHeadElement} from '../html/head-element.js';\nimport {HTMLBodyElement} from '../html/body-element.js';\nimport {HTMLStyleElement} from '../html/style-element.js';\nimport {HTMLTimeElement} from '../html/time-element.js';\nimport {HTMLFieldSetElement} from '../html/field-set-element.js';\nimport {HTMLEmbedElement} from '../html/embed-element.js';\nimport {HTMLHRElement} from '../html/hr-element.js';\nimport {HTMLProgressElement} from '../html/progress-element.js';\nimport {HTMLParagraphElement} from '../html/paragraph-element.js';\nimport {HTMLTableElement} from '../html/table-element.js';\nimport {HTMLFrameSetElement} from '../html/frame-set-element.js';\nimport {HTMLLIElement} from '../html/li-element.js';\nimport {HTMLBaseElement} from '../html/base-element.js';\nimport {HTMLDataListElement} from '../html/data-list-element.js';\nimport {HTMLInputElement} from '../html/input-element.js';\nimport {HTMLParamElement} from '../html/param-element.js';\nimport {HTMLMediaElement} from '../html/media-element.js';\nimport {HTMLAudioElement} from '../html/audio-element.js';\nimport {HTMLHeadingElement} from '../html/heading-element.js';\nimport {HTMLDirectoryElement} from '../html/directory-element.js';\nimport {HTMLQuoteElement} from '../html/quote-element.js';\nimport {HTMLCanvasElement} from '../html/canvas-element.js';\nimport {HTMLLegendElement} from '../html/legend-element.js';\nimport {HTMLOptionElement} from '../html/option-element.js';\nimport {HTMLSpanElement} from '../html/span-element.js';\nimport {HTMLMeterElement} from '../html/meter-element.js';\nimport {HTMLVideoElement} from '../html/video-element.js';\nimport {HTMLTableCellElement} from '../html/table-cell-element.js';\nimport {HTMLTitleElement} from '../html/title-element.js';\nimport {HTMLOutputElement} from '../html/output-element.js';\nimport {HTMLTableRowElement} from '../html/table-row-element.js';\nimport {HTMLDataElement} from '../html/data-element.js';\nimport {HTMLMenuElement} from '../html/menu-element.js';\nimport {HTMLSelectElement} from '../html/select-element.js';\nimport {HTMLBRElement} from '../html/br-element.js';\nimport {HTMLButtonElement} from '../html/button-element.js';\nimport {HTMLMapElement} from '../html/map-element.js';\nimport {HTMLOptGroupElement} from '../html/opt-group-element.js';\nimport {HTMLDListElement} from '../html/d-list-element.js';\nimport {HTMLTextAreaElement} from '../html/text-area-element.js';\nimport {HTMLFontElement} from '../html/font-element.js';\nimport {HTMLDivElement} from '../html/div-element.js';\nimport {HTMLLinkElement} from '../html/link-element.js';\nimport {HTMLSlotElement} from '../html/slot-element.js';\nimport {HTMLFormElement} from '../html/form-element.js';\nimport {HTMLImageElement} from '../html/image-element.js';\nimport {HTMLPreElement} from '../html/pre-element.js';\nimport {HTMLUListElement} from '../html/u-list-element.js';\nimport {HTMLMetaElement} from '../html/meta-element.js';\nimport {HTMLPictureElement} from '../html/picture-element.js';\nimport {HTMLAreaElement} from '../html/area-element.js';\nimport {HTMLOListElement} from '../html/o-list-element.js';\nimport {HTMLTableCaptionElement} from '../html/table-caption-element.js';\nimport {HTMLAnchorElement} from '../html/anchor-element.js';\nimport {HTMLLabelElement} from '../html/label-element.js';\nimport {HTMLUnknownElement} from '../html/unknown-element.js';\nimport {HTMLModElement} from '../html/mod-element.js';\nimport {HTMLDetailsElement} from '../html/details-element.js';\nimport {HTMLSourceElement} from '../html/source-element.js';\nimport {HTMLTrackElement} from '../html/track-element.js';\nimport {HTMLMarqueeElement} from '../html/marquee-element.js';\n\nexport {\n HTMLElement,\n HTMLTemplateElement,\n HTMLHtmlElement,\n HTMLScriptElement,\n HTMLFrameElement,\n HTMLIFrameElement,\n HTMLObjectElement,\n HTMLHeadElement,\n HTMLBodyElement,\n HTMLStyleElement,\n HTMLTimeElement,\n HTMLFieldSetElement,\n HTMLEmbedElement,\n HTMLHRElement,\n HTMLProgressElement,\n HTMLParagraphElement,\n HTMLTableElement,\n HTMLFrameSetElement,\n HTMLLIElement,\n HTMLBaseElement,\n HTMLDataListElement,\n HTMLInputElement,\n HTMLParamElement,\n HTMLMediaElement,\n HTMLAudioElement,\n HTMLHeadingElement,\n HTMLDirectoryElement,\n HTMLQuoteElement,\n HTMLCanvasElement,\n HTMLLegendElement,\n HTMLOptionElement,\n HTMLSpanElement,\n HTMLMeterElement,\n HTMLVideoElement,\n HTMLTableCellElement,\n HTMLTitleElement,\n HTMLOutputElement,\n HTMLTableRowElement,\n HTMLDataElement,\n HTMLMenuElement,\n HTMLSelectElement,\n HTMLBRElement,\n HTMLButtonElement,\n HTMLMapElement,\n HTMLOptGroupElement,\n HTMLDListElement,\n HTMLTextAreaElement,\n HTMLFontElement,\n HTMLDivElement,\n HTMLLinkElement,\n HTMLSlotElement,\n HTMLFormElement,\n HTMLImageElement,\n HTMLPreElement,\n HTMLUListElement,\n HTMLMetaElement,\n HTMLPictureElement,\n HTMLAreaElement,\n HTMLOListElement,\n HTMLTableCaptionElement,\n HTMLAnchorElement,\n HTMLLabelElement,\n HTMLUnknownElement,\n HTMLModElement,\n HTMLDetailsElement,\n HTMLSourceElement,\n HTMLTrackElement,\n HTMLMarqueeElement\n};\n\nexport const HTMLClasses = {\n HTMLElement,\n HTMLTemplateElement,\n HTMLHtmlElement,\n HTMLScriptElement,\n HTMLFrameElement,\n HTMLIFrameElement,\n HTMLObjectElement,\n HTMLHeadElement,\n HTMLBodyElement,\n HTMLStyleElement,\n HTMLTimeElement,\n HTMLFieldSetElement,\n HTMLEmbedElement,\n HTMLHRElement,\n HTMLProgressElement,\n HTMLParagraphElement,\n HTMLTableElement,\n HTMLFrameSetElement,\n HTMLLIElement,\n HTMLBaseElement,\n HTMLDataListElement,\n HTMLInputElement,\n HTMLParamElement,\n HTMLMediaElement,\n HTMLAudioElement,\n HTMLHeadingElement,\n HTMLDirectoryElement,\n HTMLQuoteElement,\n HTMLCanvasElement,\n HTMLLegendElement,\n HTMLOptionElement,\n HTMLSpanElement,\n HTMLMeterElement,\n HTMLVideoElement,\n HTMLTableCellElement,\n HTMLTitleElement,\n HTMLOutputElement,\n HTMLTableRowElement,\n HTMLDataElement,\n HTMLMenuElement,\n HTMLSelectElement,\n HTMLBRElement,\n HTMLButtonElement,\n HTMLMapElement,\n HTMLOptGroupElement,\n HTMLDListElement,\n HTMLTextAreaElement,\n HTMLFontElement,\n HTMLDivElement,\n HTMLLinkElement,\n HTMLSlotElement,\n HTMLFormElement,\n HTMLImageElement,\n HTMLPreElement,\n HTMLUListElement,\n HTMLMetaElement,\n HTMLPictureElement,\n HTMLAreaElement,\n HTMLOListElement,\n HTMLTableCaptionElement,\n HTMLAnchorElement,\n HTMLLabelElement,\n HTMLUnknownElement,\n HTMLModElement,\n HTMLDetailsElement,\n HTMLSourceElement,\n HTMLTrackElement,\n HTMLMarqueeElement\n};\n", "// TODO: ensure all these are text only\n// /^(?:plaintext|script|style|textarea|title|xmp)$/i\n\nconst voidElements = {test: () => true};\nexport const Mime = {\n 'text/html': {\n docType: '<!DOCTYPE html>',\n ignoreCase: true,\n voidElements: /^(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr)$/i\n },\n 'image/svg+xml': {\n docType: '<?xml version=\"1.0\" encoding=\"utf-8\"?>',\n ignoreCase: false,\n voidElements\n },\n 'text/xml': {\n docType: '<?xml version=\"1.0\" encoding=\"utf-8\"?>',\n ignoreCase: false,\n voidElements\n },\n 'application/xml': {\n docType: '<?xml version=\"1.0\" encoding=\"utf-8\"?>',\n ignoreCase: false,\n voidElements\n },\n 'application/xhtml+xml': {\n docType: '<?xml version=\"1.0\" encoding=\"utf-8\"?>',\n ignoreCase: false,\n voidElements\n }\n};\n", "// https://dom.spec.whatwg.org/#interface-customevent\n\n/* c8 ignore start */\n\n// One day Node might have CustomEvent too\n\nimport {Event} from './event.js';\n\n/**\n * @implements globalThis.CustomEvent\n */\nexport class CustomEvent extends Event {\n constructor(type, eventInitDict = {}) {\n super(type, eventInitDict);\n this.detail = eventInitDict.detail;\n }\n}\n\n/* c8 ignore stop */\n", "// https://dom.spec.whatwg.org/#interface-customevent\n\n/* c8 ignore start */\n\n// One day Node might have CustomEvent too\n\nimport {Event} from './event.js';\n\n/**\n * @implements globalThis.InputEvent\n */\nexport class InputEvent extends Event {\n constructor(type, inputEventInit = {}) {\n super(type, inputEventInit);\n this.inputType = inputEventInit.inputType;\n this.data = inputEventInit.data;\n this.dataTransfer = inputEventInit.dataTransfer;\n this.isComposing = inputEventInit.isComposing || false;\n this.ranges = inputEventInit.ranges;\n }\n}\n/* c8 ignore stop */\n", "import {HTMLImageElement} from '../html/image-element.js';\n\nexport const ImageClass = ownerDocument =>\n/**\n * @implements globalThis.Image\n */\nclass Image extends HTMLImageElement {\n constructor(width, height) {\n super(ownerDocument);\n switch (arguments.length) {\n case 1:\n this.height = width;\n this.width = width;\n break;\n case 2:\n this.height = height;\n this.width = width;\n break;\n }\n }\n};\n", "// https://dom.spec.whatwg.org/#concept-live-range\n\nimport {END, NEXT, PREV, START} from '../shared/symbols.js';\n\nimport {SVGElement} from '../svg/element.js';\n\nimport {getEnd, htmlToFragment, setAdjacent} from '../shared/utils.js';\n\nconst deleteContents = ({[START]: start, [END]: end}, fragment = null) => {\n setAdjacent(start[PREV], end[NEXT]);\n do {\n const after = getEnd(start);\n const next = after === end ? after : after[NEXT];\n if (fragment)\n fragment.insertBefore(start, fragment[END]);\n else\n start.remove();\n start = next;\n } while (start !== end);\n};\n\n/**\n * @implements globalThis.Range\n */\nexport class Range {\n constructor() {\n this[START] = null;\n this[END] = null;\n this.commonAncestorContainer = null;\n }\n\n /* TODO: this is more complicated than it looks\n setStart(node, offset) {\n this[START] = node.childNodes[offset];\n }\n\n setEnd(node, offset) {\n this[END] = getEnd(node.childNodes[offset]);\n }\n //*/\n\n insertNode(newNode) {\n this[END].parentNode.insertBefore(newNode, this[START]);\n }\n\n selectNode(node) {\n this[START] = node;\n this[END] = getEnd(node);\n }\n\n // TODO: SVG elements should then create contextual fragments\n // that return SVG nodes\n selectNodeContents(node) {\n this.selectNode(node);\n this.commonAncestorContainer = node;\n }\n\n surroundContents(parentNode) {\n parentNode.replaceChildren(this.extractContents());\n }\n\n setStartBefore(node) {\n this[START] = node;\n }\n\n setStartAfter(node) {\n this[START] = node.nextSibling;\n }\n\n setEndBefore(node) {\n this[END] = getEnd(node.previousSibling);\n }\n\n setEndAfter(node) {\n this[END] = getEnd(node);\n }\n\n cloneContents() {\n let {[START]: start, [END]: end} = this;\n const fragment = start.ownerDocument.createDocumentFragment();\n while (start !== end) {\n fragment.insertBefore(start.cloneNode(true), fragment[END]);\n start = getEnd(start);\n if (start !== end)\n start = start[NEXT];\n }\n return fragment;\n }\n\n deleteContents() {\n deleteContents(this);\n }\n\n extractContents() {\n const fragment = this[START].ownerDocument.createDocumentFragment();\n deleteContents(this, fragment);\n return fragment;\n }\n\n createContextualFragment(html) {\n const { commonAncestorContainer: doc } = this;\n const isSVG = 'ownerSVGElement' in doc;\n const document = isSVG ? doc.ownerDocument : doc;\n let content = htmlToFragment(document, html);\n if (isSVG) {\n const childNodes = [...content.childNodes];\n content = document.createDocumentFragment();\n Object.setPrototypeOf(content, SVGElement.prototype);\n content.ownerSVGElement = document;\n for (const child of childNodes) {\n Object.setPrototypeOf(child, SVGElement.prototype);\n child.ownerSVGElement = document;\n content.appendChild(child);\n }\n }\n else\n this.selectNode(content);\n return content;\n }\n\n cloneRange() {\n const range = new Range;\n range[START] = this[START];\n range[END] = this[END];\n return range;\n }\n}\n", "import {\n DOCUMENT_NODE,\n ELEMENT_NODE,\n TEXT_NODE,\n CDATA_SECTION_NODE,\n COMMENT_NODE,\n SHOW_ALL,\n SHOW_ELEMENT,\n SHOW_CDATA_SECTION,\n SHOW_COMMENT,\n SHOW_TEXT\n} from '../shared/constants.js';\n\nimport {PRIVATE, END, NEXT} from '../shared/symbols.js';\n\nconst isOK = ({nodeType}, mask) => {\n switch (nodeType) {\n case ELEMENT_NODE:\n return mask & SHOW_ELEMENT;\n case TEXT_NODE:\n return mask & SHOW_TEXT;\n case COMMENT_NODE:\n return mask & SHOW_COMMENT;\n case CDATA_SECTION_NODE:\n return mask & SHOW_CDATA_SECTION;\n }\n return 0;\n};\n\n/**\n * @implements globalThis.TreeWalker\n */\nexport class TreeWalker {\n constructor(root, whatToShow = SHOW_ALL) {\n this.root = root;\n this.currentNode = root;\n this.whatToShow = whatToShow;\n let {[NEXT]: next, [END]: end} = root;\n if (root.nodeType === DOCUMENT_NODE) {\n const {documentElement} = root;\n next = documentElement;\n end = documentElement[END];\n }\n const nodes = [];\n while (next && next !== end) {\n if (isOK(next, whatToShow))\n nodes.push(next);\n next = next[NEXT];\n }\n this[PRIVATE] = {i: 0, nodes};\n }\n\n nextNode() {\n const $ = this[PRIVATE];\n this.currentNode = $.i < $.nodes.length ? $.nodes[$.i++] : null;\n return this.currentNode;\n }\n}\n", "import {DOCUMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, SVG_NAMESPACE} from '../shared/constants.js';\n\nimport {\n CUSTOM_ELEMENTS, DOM_PARSER, GLOBALS, IMAGE, MUTATION_OBSERVER,\n DOCTYPE, END, NEXT, MIME, EVENT_TARGET, UPGRADE\n} from '../shared/symbols.js';\n\nimport {Facades, illegalConstructor} from '../shared/facades.js';\nimport {HTMLClasses} from '../shared/html-classes.js';\nimport {Mime} from '../shared/mime.js';\nimport {knownSiblings} from '../shared/utils.js';\nimport {assign, create, defineProperties, setPrototypeOf} from '../shared/object.js';\n\nimport {NonElementParentNode} from '../mixin/non-element-parent-node.js';\n\nimport {SVGElement} from '../svg/element.js';\n\nimport {Attr} from './attr.js';\nimport {CDATASection} from './cdata-section.js'\nimport {Comment} from './comment.js';\nimport {CustomElementRegistry} from './custom-element-registry.js';\nimport {CustomEvent} from './custom-event.js';\nimport {DocumentFragment} from './document-fragment.js';\nimport {DocumentType} from './document-type.js';\nimport {Element} from './element.js';\nimport {Event} from './event.js';\nimport {EventTarget} from './event-target.js';\nimport {InputEvent} from './input-event.js';\nimport {ImageClass} from './image.js';\nimport {MutationObserverClass} from './mutation-observer.js';\nimport {NamedNodeMap} from './named-node-map.js';\nimport {NodeList} from './node-list.js';\nimport {Range} from './range.js';\nimport {Text} from './text.js';\nimport {TreeWalker} from './tree-walker.js';\n\nconst query = (method, ownerDocument, selectors) => {\n let {[NEXT]: next, [END]: end} = ownerDocument;\n return method.call({ownerDocument, [NEXT]: next, [END]: end}, selectors);\n};\n\nconst globalExports = assign(\n {},\n Facades,\n HTMLClasses,\n {\n CustomEvent,\n Event,\n EventTarget,\n InputEvent,\n NamedNodeMap,\n NodeList\n }\n);\n\nconst window = new WeakMap;\n\n/**\n * @implements globalThis.Document\n */\nexport class Document extends NonElementParentNode {\n constructor(type) {\n super(null, '#document', DOCUMENT_NODE);\n this[CUSTOM_ELEMENTS] = {active: false, registry: null};\n this[MUTATION_OBSERVER] = {active: false, class: null};\n this[MIME] = Mime[type];\n /** @type {DocumentType} */\n this[DOCTYPE] = null;\n this[DOM_PARSER] = null;\n this[GLOBALS] = null;\n this[IMAGE] = null;\n this[UPGRADE] = null;\n }\n\n /**\n * @type {globalThis.Document['defaultView']}\n */\n get defaultView() {\n if (!window.has(this))\n window.set(this, new Proxy(globalThis, {\n set: (target, name, value) => {\n switch (name) {\n case 'addEventListener':\n case 'removeEventListener':\n case 'dispatchEvent':\n this[EVENT_TARGET][name] = value;\n break;\n default:\n target[name] = value;\n break;\n }\n return true;\n },\n get: (globalThis, name) => {\n switch (name) {\n case 'addEventListener':\n case 'removeEventListener':\n case 'dispatchEvent':\n if (!this[EVENT_TARGET]) {\n const et = this[EVENT_TARGET] = new EventTarget;\n et.dispatchEvent = et.dispatchEvent.bind(et);\n et.addEventListener = et.addEventListener.bind(et);\n et.removeEventListener = et.removeEventListener.bind(et);\n }\n return this[EVENT_TARGET][name];\n case 'document':\n return this;\n /* c8 ignore start */\n case 'navigator':\n return {\n userAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36'\n };\n /* c8 ignore stop */\n case 'window':\n return window.get(this);\n case 'customElements':\n if (!this[CUSTOM_ELEMENTS].registry)\n this[CUSTOM_ELEMENTS] = new CustomElementRegistry(this);\n return this[CUSTOM_ELEMENTS];\n case 'performance':\n return globalThis.performance;\n case 'DOMParser':\n return this[DOM_PARSER];\n case 'Image':\n if (!this[IMAGE])\n this[IMAGE] = ImageClass(this);\n return this[IMAGE];\n case 'MutationObserver':\n if (!this[MUTATION_OBSERVER].class)\n this[MUTATION_OBSERVER] = new MutationObserverClass(this);\n return this[MUTATION_OBSERVER].class;\n }\n return (this[GLOBALS] && this[GLOBALS][name]) ||\n globalExports[name] ||\n globalThis[name];\n }\n }));\n return window.get(this);\n }\n\n get doctype() {\n const docType = this[DOCTYPE];\n if (docType)\n return docType;\n const {firstChild} = this;\n if (firstChild && firstChild.nodeType === DOCUMENT_TYPE_NODE)\n return (this[DOCTYPE] = firstChild);\n return null;\n }\n\n set doctype(value) {\n if (/^([a-z:]+)(\\s+system|\\s+public(\\s+\"([^\"]+)\")?)?(\\s+\"([^\"]+)\")?/i.test(value)) {\n const {$1: name, $4: publicId, $6: systemId} = RegExp;\n this[DOCTYPE] = new DocumentType(this, name, publicId, systemId);\n knownSiblings(this, this[DOCTYPE], this[NEXT]);\n }\n }\n\n get documentElement() {\n return this.firstElementChild;\n }\n\n get isConnected() { return true; }\n\n /**\n * @protected\n */\n _getParent() {\n return this[EVENT_TARGET];\n }\n\n createAttribute(name) { return new Attr(this, name); }\n createCDATASection(data) { return new CDATASection(this, data); }\n createComment(textContent) { return new Comment(this, textContent); }\n createDocumentFragment() { return new DocumentFragment(this); }\n createDocumentType(name, publicId, systemId) { return new DocumentType(this, name, publicId, systemId); }\n createElement(localName) { return new Element(this, localName); }\n createRange() {\n const range = new Range;\n range.commonAncestorContainer = this;\n return range;\n }\n createTextNode(textContent) { return new Text(this, textContent); }\n createTreeWalker(root, whatToShow = -1) { return new TreeWalker(root, whatToShow); }\n createNodeIterator(root, whatToShow = -1) { return this.createTreeWalker(root, whatToShow); }\n\n createEvent(name) {\n const event = create(name === 'Event' ? new Event('') : new CustomEvent(''));\n event.initEvent = event.initCustomEvent = (\n type,\n canBubble = false,\n cancelable = false,\n detail\n ) => {\n event.bubbles = !!canBubble;\n\n defineProperties(event, {\n type: {value: type},\n canBubble: {value: canBubble},\n cancelable: {value: cancelable},\n detail: {value: detail}\n });\n };\n return event;\n }\n\n cloneNode(deep = false) {\n const {\n constructor,\n [CUSTOM_ELEMENTS]: customElements,\n [DOCTYPE]: doctype\n } = this;\n const document = new constructor();\n document[CUSTOM_ELEMENTS] = customElements;\n if (deep) {\n const end = document[END];\n const {childNodes} = this;\n for (let {length} = childNodes, i = 0; i < length; i++)\n document.insertBefore(childNodes[i].cloneNode(true), end);\n if (doctype)\n document[DOCTYPE] = childNodes[0];\n }\n return document;\n }\n\n importNode(externalNode) {\n // important: keep the signature length as *one*\n // or it would behave like old IE or Edge with polyfills\n const deep = 1 < arguments.length && !!arguments[1];\n const node = externalNode.cloneNode(deep);\n const {[CUSTOM_ELEMENTS]: customElements} = this;\n const {active} = customElements;\n const upgrade = element => {\n const {ownerDocument, nodeType} = element;\n element.ownerDocument = this;\n if (active && ownerDocument !== this && nodeType === ELEMENT_NODE)\n customElements.upgrade(element);\n };\n upgrade(node);\n if (deep) {\n switch (node.nodeType) {\n case ELEMENT_NODE:\n case DOCUMENT_FRAGMENT_NODE: {\n let {[NEXT]: next, [END]: end} = node;\n while (next !== end) {\n if (next.nodeType === ELEMENT_NODE)\n upgrade(next);\n next = next[NEXT];\n }\n break;\n }\n }\n }\n return node;\n }\n\n toString() { return this.childNodes.join(''); }\n\n querySelector(selectors) {\n return query(super.querySelector, this, selectors);\n }\n\n querySelectorAll(selectors) {\n return query(super.querySelectorAll, this, selectors);\n }\n\n /* c8 ignore start */\n getElementsByTagNameNS(_, name) {\n return this.getElementsByTagName(name);\n }\n createAttributeNS(_, name) {\n return this.createAttribute(name);\n }\n createElementNS(nsp, localName, options) {\n return nsp === SVG_NAMESPACE ?\n new SVGElement(this, localName, null) :\n this.createElement(localName, options);\n }\n /* c8 ignore stop */\n}\n\nsetPrototypeOf(\n globalExports.Document = function Document() {\n illegalConstructor();\n },\n Document\n).prototype = Document.prototype;\n", "import {ELEMENT_NODE} from '../shared/constants.js';\nimport {CUSTOM_ELEMENTS, END, NEXT} from '../shared/symbols.js';\nimport {htmlClasses} from '../shared/register-html-class.js';\n\nimport {Document} from '../interface/document.js';\nimport {NodeList} from '../interface/node-list.js';\nimport {customElements} from '../interface/custom-element-registry.js';\n\nimport {HTMLElement} from './element.js';\n\nconst createHTMLElement = (ownerDocument, builtin, localName, options) => {\n if (!builtin && htmlClasses.has(localName)) {\n const Class = htmlClasses.get(localName);\n return new Class(ownerDocument, localName);\n }\n const {[CUSTOM_ELEMENTS]: {active, registry}} = ownerDocument;\n if (active) {\n const ce = builtin ? options.is : localName;\n if (registry.has(ce)) {\n const {Class} = registry.get(ce);\n const element = new Class(ownerDocument, localName);\n customElements.set(element, {connected: false});\n return element;\n }\n }\n return new HTMLElement(ownerDocument, localName);\n};\n\n/**\n * @implements globalThis.HTMLDocument\n */\nexport class HTMLDocument extends Document {\n constructor() { super('text/html'); }\n\n get all() {\n const nodeList = new NodeList;\n let {[NEXT]: next, [END]: end} = this;\n while (next !== end) {\n switch (next.nodeType) {\n case ELEMENT_NODE:\n nodeList.push(next);\n break;\n }\n next = next[NEXT];\n }\n return nodeList;\n }\n\n /**\n * @type HTMLHeadElement\n */\n get head() {\n const {documentElement} = this;\n let {firstElementChild} = documentElement;\n if (!firstElementChild || firstElementChild.tagName !== 'HEAD') {\n firstElementChild = this.createElement('head');\n documentElement.prepend(firstElementChild);\n }\n return firstElementChild;\n }\n\n /**\n * @type HTMLBodyElement\n */\n get body() {\n const {head} = this;\n let {nextElementSibling} = head;\n if (!nextElementSibling || nextElementSibling.tagName !== 'BODY') {\n nextElementSibling = this.createElement('body');\n head.after(nextElementSibling);\n }\n return nextElementSibling;\n }\n\n /**\n * @type HTMLTitleElement\n */\n get title() {\n const {head} = this;\n return head.getElementsByTagName('title').at(0)?.textContent || '';\n }\n\n set title(textContent) {\n const {head} = this;\n let title = head.getElementsByTagName('title').at(0);\n if (title)\n title.textContent = textContent;\n else {\n head.insertBefore(\n this.createElement('title'),\n head.firstChild\n ).textContent = textContent;\n }\n }\n\n createElement(localName, options) {\n const builtin = !!(options && options.is);\n const element = createHTMLElement(this, builtin, localName, options);\n if (builtin)\n element.setAttribute('is', options.is);\n return element;\n }\n}\n", "import {MIME} from '../shared/symbols.js';\nimport {Document} from '../interface/document.js';\n\n/**\n * @implements globalThis.Document\n */\nexport class SVGDocument extends Document {\n constructor() { super('image/svg+xml'); }\n toString() {\n return this[MIME].docType + super.toString();\n }\n}\n", "import {MIME} from '../shared/symbols.js';\nimport {Document} from '../interface/document.js';\n\n/**\n * @implements globalThis.XMLDocument\n */\nexport class XMLDocument extends Document {\n constructor() { super('text/xml'); }\n toString() {\n return this[MIME].docType + super.toString();\n }\n}\n", "import {DOM_PARSER, GLOBALS} from '../shared/symbols.js';\nimport {parseFromString} from '../shared/parse-from-string.js';\n\nimport {HTMLDocument} from '../html/document.js';\nimport {SVGDocument} from '../svg/document.js';\nimport {XMLDocument} from '../xml/document.js';\n\n/**\n * @implements globalThis.DOMParser\n */\nexport class DOMParser {\n\n /** @typedef {{ \"text/html\": HTMLDocument, \"image/svg+xml\": SVGDocument, \"text/xml\": XMLDocument }} MimeToDoc */\n /**\n * @template {keyof MimeToDoc} MIME\n * @param {string} markupLanguage\n * @param {MIME} mimeType\n * @returns {MimeToDoc[MIME]}\n */\n parseFromString(markupLanguage, mimeType, globals = null) {\n let isHTML = false, document;\n if (mimeType === 'text/html') {\n isHTML = true;\n document = new HTMLDocument;\n }\n else if (mimeType === 'image/svg+xml')\n document = new SVGDocument;\n else\n document = new XMLDocument;\n document[DOM_PARSER] = DOMParser;\n if (globals)\n document[GLOBALS] = globals;\n if (isHTML && markupLanguage === '...')\n markupLanguage = '<!doctype html><html><head></head><body></body></html>';\n return markupLanguage ?\n parseFromString(document, isHTML, markupLanguage) :\n document;\n }\n}\n", "import {\n NODE_END,\n ELEMENT_NODE,\n ATTRIBUTE_NODE,\n TEXT_NODE,\n CDATA_SECTION_NODE,\n COMMENT_NODE,\n DOCUMENT_NODE,\n DOCUMENT_TYPE_NODE,\n DOCUMENT_FRAGMENT_NODE\n} from './constants.js';\n\nimport {END, PREV} from './symbols.js';\n\nimport {htmlClasses} from './register-html-class.js';\nimport {knownBoundaries, knownSiblings} from './utils.js';\n\nimport {Attr} from '../interface/attr.js';\nimport {CDATASection} from '../interface/cdata-section.js';\nimport {Comment} from '../interface/comment.js';\nimport {DocumentType} from '../interface/document-type.js';\nimport {Text} from '../interface/text.js';\n\nimport {HTMLDocument} from '../html/document.js';\nimport {HTMLElement} from '../html/element.js';\nimport {SVGElement} from '../svg/element.js';\n\nconst {parse} = JSON;\n\nconst append = (parentNode, node, end) => {\n node.parentNode = parentNode;\n knownSiblings(end[PREV], node, end);\n};\n\nconst createHTMLElement = (ownerDocument, localName) => {\n if (htmlClasses.has(localName)) {\n const Class = htmlClasses.get(localName);\n return new Class(ownerDocument, localName);\n }\n return new HTMLElement(ownerDocument, localName);\n};\n\n/**\n * @typedef {number|string} jsdonValue - either a node type or its content\n */\n\n/**\n * Given a stringified, or arrayfied DOM element, returns an HTMLDocument\n * that represent the content of such string, or array.\n * @param {string|jsdonValue[]} value\n * @returns {HTMLDocument}\n */\nexport const parseJSON = value => {\n const array = typeof value === 'string' ? parse(value) : value;\n const {length} = array;\n const document = new HTMLDocument;\n let parentNode = document, end = parentNode[END], svg = false, i = 0;\n while (i < length) {\n let nodeType = array[i++];\n switch (nodeType) {\n case ELEMENT_NODE: {\n const localName = array[i++];\n const isSVG = svg || localName === 'svg' || localName === 'SVG';\n const element = isSVG ?\n new SVGElement(document, localName, parentNode.ownerSVGElement || null) :\n createHTMLElement(document, localName);\n knownBoundaries(end[PREV], element, end);\n element.parentNode = parentNode;\n parentNode = element;\n end = parentNode[END];\n svg = isSVG;\n break;\n }\n case ATTRIBUTE_NODE: {\n const name = array[i++];\n const value = typeof array[i] === 'string' ? array[i++] : '';\n const attr = new Attr(document, name, value);\n attr.ownerElement = parentNode;\n knownSiblings(end[PREV], attr, end);\n break;\n }\n case TEXT_NODE:\n append(parentNode, new Text(document, array[i++]), end);\n break;\n case COMMENT_NODE:\n append(parentNode, new Comment(document, array[i++]), end);\n break;\n case CDATA_SECTION_NODE:\n append(parentNode, new CDATASection(document, array[i++]), end);\n break;\n case DOCUMENT_TYPE_NODE: {\n const args = [document];\n while (typeof array[i] === 'string')\n args.push(array[i++]);\n if (args.length === 3 && /\\.dtd$/i.test(args[2]))\n args.splice(2, 0, '');\n append(parentNode, new DocumentType(...args), end);\n break;\n }\n case DOCUMENT_FRAGMENT_NODE:\n parentNode = document.createDocumentFragment();\n end = parentNode[END];\n /* eslint no-fallthrough:0 */\n case DOCUMENT_NODE:\n break;\n default:\n do {\n nodeType -= NODE_END;\n if (svg && !parentNode.ownerSVGElement)\n svg = false;\n parentNode = parentNode.parentNode || parentNode;\n } while (nodeType < 0);\n end = parentNode[END];\n break;\n }\n }\n switch (i && array[0]) {\n case ELEMENT_NODE:\n return document.firstElementChild;\n case DOCUMENT_FRAGMENT_NODE:\n return parentNode;\n }\n return document;\n};\n\n/**\n * \n * @param {Document|Element} node the Document or Element to serialize\n * @returns {jsdonValue[]} the linear jsdon serialized array\n */\nexport const toJSON = node => node.toJSON();\n", "import {DOMParser} from './dom/parser.js';\nimport {Document as _Document} from './interface/document.js';\n\nimport {illegalConstructor} from './shared/facades.js';\nimport {setPrototypeOf} from './shared/object.js';\nexport {parseJSON, toJSON} from './shared/parse-json.js';\n\nexport * from './shared/facades.js';\nexport * from './shared/html-classes.js';\n\nexport {DOMParser};\n\nexport {CustomEvent} from './interface/custom-event.js';\nexport {Event} from './interface/event.js';\nexport {EventTarget} from './interface/event-target.js';\nexport {InputEvent} from './interface/input-event.js';\nexport {NodeList} from './interface/node-list.js';\nexport {NodeFilter} from './interface/node-filter.js';\n\nexport const parseHTML = (html, globals = null) => (new DOMParser).parseFromString(\n html, 'text/html', globals\n).defaultView;\n\nexport function Document() {\n illegalConstructor();\n}\n\nsetPrototypeOf(Document, _Document).prototype = _Document.prototype;\n", "import { parseHTML } from \"linkedom\";\nimport { isClassComponent, isFragment, isIntrinsicElement, JSX } from \"../jsx\";\nimport { Injector, ProviderNormalizer } from \"../module\";\nimport {\n COMPONENT,\n COMPONENT_PROVIDERS,\n ERROR_ELEMENT,\n ORCA_ELEMENT_TYPE,\n PENDING_REFERENCE_TYPE,\n} from \"../symbols\";\nimport { Constructor, Provider } from \"../types\";\n\ninterface PendingEntry {\n abortController: AbortController;\n promise: Promise<any>;\n}\n\nexport interface StreamRendererOptions {\n timeout?: number;\n}\n\nexport class StreamRenderer {\n private options: Required<StreamRendererOptions>;\n private pending = new Map<string, PendingEntry>();\n private processedIds = new Set<string>();\n private queueResolvers: ((u: JSX.Element) => void)[] = [];\n private renderingNodes!: WeakSet<object>;\n private idCounter = 0;\n\n constructor(\n private rootInjector: Injector,\n options: StreamRendererOptions = {}\n ) {\n this.options = {\n timeout: options.timeout ?? 30000,\n };\n }\n\n render(\n vnode: JSX.Element,\n parentInjector: Injector = this.rootInjector\n ): any {\n return this.stream(vnode, parentInjector);\n }\n\n private async *stream(vnode: JSX.Element, parentInjector: Injector) {\n this.pending.clear();\n this.queueResolvers = [];\n this.renderingNodes = new WeakSet();\n this.processedIds.clear();\n\n const nextUpdate = () =>\n new Promise<JSX.Element>((resolve) => this.queueResolvers.push(resolve));\n\n try {\n const root = this.buildSyncTree(vnode, parentInjector);\n yield { ...root, action: \"insert\" };\n\n while (this.pending.size > 0) {\n const update = await nextUpdate();\n yield update;\n }\n } finally {\n this.cleanup();\n }\n }\n\n private buildSyncTree(vnode: JSX.Element, injector: Injector): any {\n if (vnode == null || typeof vnode !== \"object\") return vnode;\n if (vnode.$$typeof !== ORCA_ELEMENT_TYPE) return vnode;\n\n if (this.renderingNodes.has(vnode)) {\n throw new Error(\n `Circular reference detected while rendering component \"${vnode.type?.name}\".`\n );\n }\n\n this.renderingNodes.add(vnode);\n\n try {\n if (isClassComponent(vnode)) {\n return this.renderClassComponent(vnode, injector);\n }\n\n if (isIntrinsicElement(vnode)) {\n return this.renderIntrinsicElement(vnode, injector);\n }\n\n if (isFragment(vnode)) {\n return {\n $$typeof: ORCA_ELEMENT_TYPE,\n type: null,\n id: vnode.id,\n props: {\n children: this.mapChildren(vnode.props?.children, injector),\n },\n key: null,\n };\n }\n\n return vnode;\n } finally {\n this.renderingNodes.delete(vnode);\n }\n }\n\n private renderIntrinsicElement(vnode: JSX.Element, injector: Injector): any {\n const { dangerouslySetInnerHTML, children, ...restProps } =\n vnode.props || {};\n\n let processedChildren;\n\n if (dangerouslySetInnerHTML?.__html) {\n processedChildren = this.parseHTMLToJSX(\n dangerouslySetInnerHTML.__html,\n injector\n );\n } else {\n processedChildren = this.mapChildren(children, injector);\n }\n\n return {\n $$typeof: ORCA_ELEMENT_TYPE,\n type: vnode.type,\n id: vnode.id,\n props: {\n ...restProps,\n children: processedChildren,\n },\n key: vnode.key ?? null,\n };\n }\n\n private renderClassComponent(vnode: JSX.Element, injector: Injector): any {\n const ComponentClass = vnode.type;\n const isComponent = Reflect.getMetadata(COMPONENT, ComponentClass);\n\n let componentInjector = injector;\n\n if (isComponent) {\n const localProviders: (Provider | Constructor)[] =\n Reflect.getMetadata(COMPONENT_PROVIDERS, ComponentClass) || [];\n\n if (localProviders.length > 0) {\n componentInjector = new Injector(\n localProviders.map((p) => ProviderNormalizer.normalize(p)),\n injector\n );\n }\n }\n\n const instance: any = componentInjector.resolve(ComponentClass);\n instance.props = vnode.props || {};\n\n const childVNode = instance.build();\n\n if (childVNode instanceof Promise) {\n return this.createPendingReference(vnode, childVNode, componentInjector);\n }\n\n return this.buildSyncTree(childVNode, componentInjector);\n }\n\n private mapChildren(children: any, injector: Injector): any {\n if (children == null) return undefined;\n if (typeof children === \"string\" || typeof children === \"number\") {\n return children;\n }\n\n if (Array.isArray(children)) {\n return children.map((c) => this.buildSyncTree(c, injector));\n }\n\n return this.buildSyncTree(children, injector);\n }\n\n private parseHTMLToJSX(html: string, injector: Injector): any {\n const { document } = parseHTML(\n `<!doctype html><html><body>${html}</body></html>`\n );\n\n const convertElement = (element: any): any => {\n const tagName = element.tagName.toLowerCase();\n const props: Record<string, any> = {};\n\n const attrs = element.attributes;\n if (attrs) {\n for (let i = 0; i < attrs.length; i++) {\n const attr = attrs[i];\n let name = attr.name;\n\n if (name === \"class\") {\n name = \"className\";\n } else if (name === \"for\") {\n name = \"htmlFor\";\n } else if (\n !name.startsWith(\"data-\") &&\n !name.startsWith(\"aria-\") &&\n name.includes(\"-\")\n ) {\n name = name.replace(/-([a-z])/g, (_: string, letter: string) =>\n letter.toUpperCase()\n );\n }\n\n props[name] = attr.value;\n }\n }\n\n const children: any[] = [];\n const childNodes = element.childNodes;\n\n if (childNodes) {\n for (let i = 0; i < childNodes.length; i++) {\n const child = childNodes[i];\n const converted = convertNode(child);\n if (converted != null) {\n children.push(converted);\n }\n }\n }\n\n const jsxElement = {\n $$typeof: ORCA_ELEMENT_TYPE,\n type: tagName,\n id: this.generateId(),\n props: {\n ...props,\n children:\n children.length === 0\n ? undefined\n : children.length === 1\n ? children[0]\n : children,\n },\n key: null,\n };\n\n return this.buildSyncTree(jsxElement, injector);\n };\n\n const convertNode = (node: any): any => {\n if (node.nodeType === 3) {\n const text = node.textContent || \"\";\n const trimmed = text.trim();\n return trimmed ? text : null;\n }\n\n if (node.nodeType === 1) {\n return convertElement(node);\n }\n\n return null;\n };\n\n const result: any[] = [];\n const bodyChildren = document.body?.childNodes;\n\n if (bodyChildren) {\n for (let i = 0; i < bodyChildren.length; i++) {\n const node = bodyChildren[i];\n const converted = convertNode(node);\n if (converted != null) {\n result.push(converted);\n }\n }\n }\n\n return result.length === 0\n ? undefined\n : result.length === 1\n ? result[0]\n : result;\n }\n\n private createPendingReference(\n vnode: JSX.Element,\n promise: Promise<any>,\n injector: Injector\n ) {\n const id = vnode.id;\n const abortController = new AbortController();\n\n const timeoutPromise = new Promise<never>((_, reject) => {\n const timeoutId = setTimeout(() => {\n abortController.abort();\n reject(\n new Error(\n `Component ${vnode.type.name || \"Unknown\"} timed out after ${\n this.options.timeout\n }ms`\n )\n );\n }, this.options.timeout);\n\n abortController.signal.addEventListener(\"abort\", () => {\n clearTimeout(timeoutId);\n });\n });\n\n const raced = Promise.race([promise, timeoutPromise])\n .then((result) => {\n result.id = vnode.id;\n return this.buildSyncTree(result, injector);\n })\n .catch((err) => Promise.reject({ id, error: err }));\n\n this.pending.set(id, { abortController, promise: raced });\n\n raced\n .then((resolved) => {\n if (this.processedIds.has(id)) return;\n this.processedIds.add(id);\n\n this.queueResolvers.shift()?.({\n ...resolved,\n action: \"update\",\n });\n\n this.pending.delete(id);\n })\n .catch((e) => {\n this.queueResolvers.shift()?.({\n $$typeof: ERROR_ELEMENT,\n type: \"error\",\n action: \"error\",\n id,\n props: {\n message: String(e?.error) || String(e),\n },\n key: null,\n });\n this.pending.delete(id);\n });\n\n return {\n $$typeof: PENDING_REFERENCE_TYPE,\n id,\n type: \"ref\",\n props: vnode.props,\n key: vnode.key ?? null,\n };\n }\n\n private generateId(): string {\n return `jsx_${++this.idCounter}`;\n }\n\n private cleanup() {\n for (const { abortController } of this.pending.values()) {\n abortController.abort();\n }\n this.pending.clear();\n this.processedIds.clear();\n this.queueResolvers.length = 0;\n }\n\n cancel() {\n this.cleanup();\n }\n\n async renderToCompletion(jsx: JSX.Element): Promise<JSX.Element[]> {\n const out: JSX.Element[] = [];\n for await (const upd of this.stream(jsx, this.rootInjector)) {\n out.push(upd);\n }\n return out;\n }\n}\n", "export class VNode {\n id?: string;\n parent?: VNode;\n children: VNode[] = [];\n\n constructor(public dom: Node, private cb?: (old: Node, nw: Node) => void) {}\n\n setId(id: string) {\n this.id = id;\n }\n\n addChild(child: VNode): VNode {\n child.parent = this;\n this.children.push(child);\n return child;\n }\n\n removeChild(child: VNode): void {\n const index = this.children.indexOf(child);\n if (index > -1) {\n this.children.splice(index, 1);\n child.parent = undefined;\n }\n }\n\n findById(id: string): VNode | null {\n if (this.id === id) return this;\n\n for (const child of this.children) {\n const found = child.findById(id);\n if (found) return found;\n }\n\n return null;\n }\n\n attach(nw: Node) {\n if (this.cb) {\n this.cb(this.dom, nw);\n } else {\n if (this.dom.parentNode) {\n this.dom.parentNode.replaceChild(nw, this.dom);\n }\n }\n this.dom = nw;\n }\n\n unmount(): void {\n for (const child of this.children) {\n child.unmount();\n }\n\n if (this.dom.parentNode) {\n this.dom.parentNode.removeChild(this.dom);\n }\n\n if (this.parent) {\n this.parent.removeChild(this);\n }\n }\n}\n", "export function symbolValueReplacer(key: any, value: any) {\n if (typeof value === \"symbol\") {\n return `@@Symbol:${value.description}`;\n }\n return value;\n}\n\nexport function symbolValueReviver(key: any, value: any) {\n if (typeof value === \"string\" && value.startsWith(\"@@Symbol:\")) {\n return Symbol.for(value.slice(9));\n }\n return value;\n}\n", "import { Signal, Subscriber } from \"@/shared\";\n\nlet currentEffect: Subscriber | null = null;\n\ninterface InternalSignal<T> extends Signal<T> {\n _isSignal: true;\n _subscribers: Set<Subscriber>;\n}\n\nexport function signal<T>(initialValue: T): Signal<T> {\n let value = initialValue;\n const subscribers = new Set<Subscriber>();\n\n const notify = () => {\n subscribers.forEach((sub) => sub());\n };\n\n return {\n _isSignal: true as const,\n _subscribers: subscribers,\n\n get value(): T {\n if (currentEffect) {\n subscribers.add(currentEffect);\n }\n return value;\n },\n set value(newValue: T) {\n if (value !== newValue) {\n value = newValue;\n notify();\n }\n },\n } as InternalSignal<T>;\n}\n\nexport function effect(fn: Subscriber): () => void {\n const execute = () => {\n currentEffect = execute;\n try {\n fn();\n } finally {\n currentEffect = null;\n }\n };\n\n execute();\n\n return () => {\n currentEffect = null;\n };\n}\n\nexport function computed<T>(fn: () => T): Signal<T> {\n const sig = signal(fn());\n\n effect(() => {\n sig.value = fn();\n });\n\n return sig;\n}\n\nexport function isSignal(value: any): boolean {\n return value && value._isSignal === true;\n}\n", "import { Observer, Signal } from \"@/shared\";\nimport { signal } from \"../signal\";\n\nexport interface Subscription {\n unsubscribe(): void;\n}\n\nexport type OperatorFunction<T, R> = (source: Observable<T>) => Observable<R>;\n\nexport class Observable<T> {\n __isObservable = true;\n\n private subscribers: Set<Observer<T>> = new Set();\n public _value?: T;\n\n constructor(\n private producer?: (observer: Observer<T>) => void | (() => void)\n ) {}\n\n public get $value(): T | undefined {\n return this._value;\n }\n\n public setValue(newValue: T) {\n this._value = newValue;\n }\n\n public subscribe(\n observerOrNext: Observer<T> | ((value: T) => void),\n error?: (err: any) => void,\n complete?: () => void\n ): Subscription {\n const observer: Observer<T> =\n typeof observerOrNext === \"function\"\n ? { next: observerOrNext, error, complete }\n : observerOrNext;\n\n this.subscribers.add(observer);\n\n let cleanup: (() => void) | void;\n if (this.producer) {\n try {\n cleanup = this.producer(observer);\n } catch (err) {\n if (observer.error) {\n observer.error(err);\n }\n }\n }\n\n return {\n unsubscribe: () => {\n this.subscribers.delete(observer);\n if (cleanup) cleanup();\n },\n };\n }\n\n public next(value: T): void {\n this.setValue(value);\n this.subscribers.forEach((observer) => {\n try {\n observer.next(value);\n } catch (err) {\n console.error(\"Error in observer:\", err);\n }\n });\n }\n\n public error(err: any): void {\n this.subscribers.forEach((observer) => {\n if (observer.error) {\n try {\n observer.error(err);\n } catch (e) {\n console.error(\"Error in error handler:\", e);\n }\n }\n });\n }\n\n public complete(): void {\n this.subscribers.forEach((observer) => {\n if (observer.complete) {\n try {\n observer.complete();\n } catch (err) {\n console.error(\"Error in complete handler:\", err);\n }\n }\n });\n this.subscribers.clear();\n }\n\n pipe(): Observable<T>;\n pipe<A>(op1: OperatorFunction<T, A>): Observable<A>;\n pipe<A, B>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>\n ): Observable<B>;\n pipe<A, B, C>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>\n ): Observable<C>;\n pipe<A, B, C, D>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>,\n op4: OperatorFunction<C, D>\n ): Observable<D>;\n pipe<A, B, C, D, E>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>,\n op4: OperatorFunction<C, D>,\n op5: OperatorFunction<D, E>\n ): Observable<E>;\n public pipe(...operations: OperatorFunction<any, any>[]): Observable<any> {\n if (operations.length === 0) {\n return this;\n }\n return operations.reduce((prev, fn) => fn(prev), this as any);\n }\n}\n\nexport function from<T>(iterable: Iterable<T>): Observable<T> {\n return new Observable((observer) => {\n for (const value of iterable) {\n observer.next(value);\n }\n observer.complete?.();\n });\n}\n\nexport function interval(ms: number): Observable<number> {\n return new Observable((observer) => {\n let count = 0;\n const id = setInterval(() => {\n observer.next(count++);\n }, ms);\n return () => clearInterval(id);\n });\n}\n\nexport function of<T>(...values: T[]): Observable<T> {\n return new Observable((observer) => {\n values.forEach((value) => observer.next(value));\n observer.complete?.();\n });\n}\n\nexport function observable<T>(\n producer?: ((observer: Observer<T>) => void | (() => void)) | undefined\n): Observable<T> {\n return new Observable<T>(producer);\n}\n\nexport function toSignal<T>(\n obs: Observable<T>,\n instance: any\n): Signal<T | undefined> {\n const sig = signal<T | undefined>(undefined);\n\n const subst = obs.subscribe((val) => {\n sig.value = val;\n });\n\n instance.__drop = [...(instance.__drop ?? []), () => subst.unsubscribe()];\n\n return sig;\n}\n\nexport function isObservable(value: any): boolean {\n return value && value.__isObservable === true;\n}\n", "import { JSX } from \"./jsx\";\nimport { Injector } from \"./module\";\n\nexport abstract class OrcaComponent {\n __cleanup: Array<() => void> = [];\n __injector!: Injector;\n props!: any;\n\n onDestory(): void {\n this.__cleanup.forEach((cb) => cb());\n }\n\n pushDrop(fn: () => void) {\n this.__cleanup.push(fn);\n }\n\n abstract build(): Node | JSX.Element | Promise<JSX.Element>;\n}\n", "var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { from, HttpClient, Inject, symbolValueReviver } from \"@/shared\";\nlet Navigate = class Navigate {\n constructor(oscUrl) {\n this.oscUrl = oscUrl;\n this.pages = from([]);\n this.cursor = 0;\n const initialState = history.state?.cursor ?? 0;\n this.cursor = initialState;\n if (!history.state) {\n history.replaceState({ cursor: 0 }, \"\");\n }\n window.addEventListener(\"popstate\", (e) => {\n const newIndex = e.state?.cursor ?? 0;\n this.cursor = newIndex;\n this.pages.next([...(this.pages.$value || [])]);\n });\n }\n getHome() {\n const http = new HttpClient();\n return http.post(this.oscUrl, {\n stream: \"ndjson\",\n reviver: symbolValueReviver,\n });\n }\n push(component) {\n const currentPages = this.pages.$value || [];\n const newPages = currentPages.slice(0, this.cursor + 1);\n this.cursor++;\n newPages.push(component);\n history.pushState({ cursor: this.cursor }, \"\");\n this.pages.next(newPages);\n }\n replace(component) {\n const currentPages = [...(this.pages.$value || [])];\n currentPages[this.cursor] = component;\n history.replaceState({ cursor: this.cursor }, \"\");\n this.pages.next(currentPages);\n }\n goBack() {\n if (this.cursor > 0) {\n history.back();\n }\n }\n goForward() {\n const currentPages = this.pages.$value || [];\n if (this.cursor < currentPages.length - 1) {\n history.forward();\n }\n }\n canGoBack() {\n return this.cursor > 0;\n }\n canGoForward() {\n const currentPages = this.pages.$value || [];\n return this.cursor < currentPages.length - 1;\n }\n getCurrentPage() {\n const currentPages = this.pages.$value || [];\n return currentPages[this.cursor];\n }\n clear() {\n this.cursor = 0;\n this.pages.next([]);\n history.replaceState({ cursor: 0 }, \"\");\n }\n};\nNavigate = __decorate([\n __param(0, Inject(\"OSC_URL\", { maybe: true })),\n __metadata(\"design:paramtypes\", [String])\n], Navigate);\nexport { Navigate };\n", "var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar _a;\nimport { Component, Navigate, OrcaComponent, OSC } from \"@/shared\";\nlet RouterOutlet = class RouterOutlet extends OrcaComponent {\n constructor(navigate) {\n super();\n this.navigate = navigate;\n }\n build() {\n const anchor = document.createElement(\"div\");\n const root = document.createElement(\"div\");\n anchor.appendChild(root);\n const osc = new OSC(root);\n const stream = this.navigate.getHome();\n const streamSubscription = stream.subscribe((jsx) => {\n const action = jsx.action || \"insert\";\n if (action === \"insert\") {\n osc.handleInsert(jsx);\n }\n else if (action === \"update\") {\n osc.handleUpdate(jsx);\n }\n else {\n console.warn(`Unknown action: ${action}`);\n }\n }, () => { }, () => {\n this.navigate.pages.setValue([osc.tree.dom]);\n });\n const subscription = this.navigate.pages.subscribe((pages) => {\n const top = pages[this.navigate.cursor];\n anchor.replaceChildren(top);\n });\n this.pushDrop(() => subscription.unsubscribe());\n this.pushDrop(() => streamSubscription.unsubscribe());\n return anchor;\n }\n};\nRouterOutlet = __decorate([\n Component(),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof Navigate !== \"undefined\" && Navigate) === \"function\" ? _a : Object])\n], RouterOutlet);\nexport { RouterOutlet };\n", "import { DynamicModule, HttpClientModule } from \"@/shared\";\nimport { Navigate } from \"./navigate\";\nimport { RouterOutlet } from \"./outlet\";\n\nexport class RouterModule {\n static forRoot(): DynamicModule {\n return {\n module: RouterModule,\n declarations: [RouterOutlet],\n providers: [Navigate],\n exports: [Navigate, RouterOutlet],\n };\n }\n}\n", "var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Injectable, Module, Observable } from \"@/shared\";\nlet HttpClient = class HttpClient {\n get(url, { stream = \"json\", reviver, init } = {}) {\n return new Observable((subscriber) => {\n const controller = new AbortController();\n fetch(url, {\n method: \"GET\",\n ...init,\n signal: controller.signal,\n })\n .then(async (res) => {\n if (!res.ok) {\n throw new Error(`HTTP ${res.status}: ${res.statusText}`);\n }\n if (stream === \"json\") {\n const data = await res.json();\n subscriber.next(reviver ? JSON.parse(JSON.stringify(data), reviver) : data);\n subscriber.complete?.();\n return;\n }\n if (stream === \"raw\") {\n subscriber.next(res);\n subscriber.complete?.();\n return;\n }\n const reader = res.body?.getReader();\n if (!reader) {\n throw new Error(\"ReadableStream not supported\");\n }\n const decoder = new TextDecoder();\n let buffer = \"\";\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n if (stream === \"ndjson\" && buffer.trim()) {\n try {\n subscriber.next(JSON.parse(buffer, reviver));\n }\n catch (err) {\n console.warn(\"Failed to parse remaining buffer:\", err);\n }\n }\n break;\n }\n const chunk = decoder.decode(value, { stream: true });\n if (stream === \"text\") {\n subscriber.next(chunk);\n continue;\n }\n if (stream === \"ndjson\") {\n buffer += chunk;\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop();\n for (const line of lines) {\n if (line.trim()) {\n try {\n subscriber.next(JSON.parse(line, reviver));\n }\n catch (err) {\n console.error(\"Failed to parse NDJSON line:\", line, err);\n }\n }\n }\n }\n }\n subscriber.complete?.();\n })\n .catch((err) => {\n if (err.name === \"AbortError\") {\n console.log(\"Request aborted\");\n }\n subscriber.error?.(err);\n });\n return () => {\n controller.abort();\n };\n });\n }\n post(url, { body, stream = \"json\", reviver, init } = {}) {\n const headers = new Headers(init?.headers);\n if (body && !headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json\");\n }\n const processedBody = body !== undefined\n ? typeof body === \"string\"\n ? body\n : JSON.stringify(body)\n : undefined;\n return this.get(url, {\n stream,\n reviver,\n init: {\n ...init,\n method: \"POST\",\n headers,\n body: processedBody,\n },\n });\n }\n put(url, options) {\n return this.request(url, \"PUT\", options);\n }\n patch(url, options) {\n return this.request(url, \"PATCH\", options);\n }\n delete(url, options) {\n return this.get(url, {\n ...options,\n init: {\n ...options?.init,\n method: \"DELETE\",\n },\n });\n }\n request(url, method, { body, stream = \"json\", reviver, init } = {}) {\n const headers = new Headers(init?.headers);\n if (body && !headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json\");\n }\n const processedBody = body !== undefined\n ? typeof body === \"string\"\n ? body\n : JSON.stringify(body)\n : undefined;\n return this.get(url, {\n stream,\n reviver,\n init: {\n ...init,\n method,\n headers,\n body: processedBody,\n },\n });\n }\n};\nHttpClient = __decorate([\n Injectable()\n], HttpClient);\nexport { HttpClient };\nlet HttpClientModule = class HttpClientModule {\n};\nHttpClientModule = __decorate([\n Module({\n providers: [HttpClient],\n exports: [HttpClient],\n })\n], HttpClientModule);\nexport { HttpClientModule };\n", "import {\n COMPONENT_DEPS,\n Constructor,\n DESIGN_PARAMTYPES,\n getCurrentInjector,\n Injector,\n isIntrinsicElement,\n JSX,\n ORCA_CLIENT_COMPONENT,\n PENDING_REFERENCE_TYPE,\n VNode,\n} from \"@/shared\";\n\ninterface BuildResult {\n domNode: Node;\n vnode?: VNode;\n}\n\nexport class OSC {\n public tree: VNode;\n private pendingRefs = new Map<string, JSX.Element>();\n\n constructor(private root: HTMLElement) {\n this.tree = new VNode(root, (old, nw) => {\n (old as HTMLElement).replaceWith(nw);\n });\n }\n\n public handleInsert(jsx: JSX.Element): void {\n const { domNode, vnode } = this.buildDOM(jsx, this.tree);\n\n if (jsx.id && vnode) {\n vnode.setId(jsx.id);\n }\n\n this.tree.attach(domNode);\n }\n\n public handleUpdate(jsx: JSX.Element): void {\n if (!jsx.id) {\n console.warn(\"Update action requires an id\");\n return;\n }\n\n const targetVNode = this.tree.findById(jsx.id);\n\n if (targetVNode) {\n const oldChildren = [...targetVNode.children];\n targetVNode.children = [];\n\n const { domNode, vnode } = this.buildDOM(\n jsx,\n targetVNode.parent || this.tree\n );\n\n targetVNode.attach(domNode);\n\n if (vnode) {\n targetVNode.children = vnode.children;\n }\n } else {\n console.warn(`Update target ${jsx.id} not found, inserting instead`);\n this.handleInsert(jsx);\n }\n }\n\n private buildDOM(\n jsx: JSX.Element | JSX.Element[],\n vparent: VNode\n ): BuildResult {\n if (jsx == null) {\n return { domNode: document.createDocumentFragment() };\n }\n\n if (Array.isArray(jsx)) {\n return this.buildArray(jsx, vparent);\n }\n\n if (this.isPrimitive(jsx)) {\n return this.buildTextNode(String(jsx), vparent);\n }\n\n if (jsx.$$typeof === PENDING_REFERENCE_TYPE) {\n return this.buildPendingReference(jsx, vparent);\n }\n\n if (jsx.$$typeof === ORCA_CLIENT_COMPONENT) {\n return this.buildClientComponent(jsx, vparent);\n }\n\n if (isIntrinsicElement(jsx)) {\n return this.buildIntrinsicElement(jsx, vparent);\n }\n\n console.error(\"Unsupported node:\", jsx);\n throw new Error(\n `Unsupported node type: ${typeof jsx}, $typeof: ${String(jsx.$$typeof)}`\n );\n }\n\n private buildClientComponent(jsx: any, parent: VNode): BuildResult {\n const componentInfo = jsx.props.__clientComponent;\n const { id, path, name } = componentInfo;\n\n const container = document.createElement(\"div\");\n container.dataset.clientComponent = id;\n\n const vnode = new VNode(container, (old, nw) => {\n if (old.parentNode) {\n old.parentNode.replaceChild(nw, old);\n }\n });\n\n if (jsx.id) {\n vnode.setId(jsx.id);\n }\n\n parent.addChild(vnode);\n\n this.loadClientComponent(path, name, jsx.props, container);\n\n return { domNode: container, vnode };\n }\n\n private buildPendingReference(jsx: any, parent: VNode): BuildResult {\n const refId = jsx.id;\n const div = document.createElement(\"div\");\n div.dataset.ref = refId;\n div.className = \"loading\";\n div.textContent = \"Loading...\";\n\n const vnode = new VNode(div, (old, nw) => {\n if (old.parentNode) {\n old.parentNode.replaceChild(nw, old);\n }\n });\n vnode.setId(refId);\n parent.addChild(vnode);\n\n const pendingContent = this.pendingRefs.get(refId);\n if (pendingContent) {\n setTimeout(() => this.resolvePendingReference(refId, pendingContent), 0);\n }\n\n return { domNode: div, vnode };\n }\n\n resolvePendingReference(refId: string, content: JSX.Element): void {\n const vnode = this.tree.findById(refId);\n if (!vnode) {\n console.warn(`Reference ${refId} not found`);\n this.pendingRefs.set(refId, content);\n return;\n }\n\n try {\n vnode.children = [];\n\n const { domNode, vnode: newVNode } = this.buildDOM(content, vnode);\n\n vnode.attach(domNode);\n\n if (newVNode) {\n vnode.children = newVNode.children;\n }\n\n this.pendingRefs.delete(refId);\n } catch (error) {\n console.error(`Error resolving reference ${refId}:`, error);\n }\n }\n\n private buildTextNode(text: string, parent: VNode): BuildResult {\n const textNode = document.createTextNode(text);\n const vnode = new VNode(textNode, (old, nw) => {\n if (old.parentNode) {\n old.parentNode.replaceChild(nw, old);\n }\n });\n parent.addChild(vnode);\n return { domNode: textNode, vnode };\n }\n\n private isPrimitive(node: any): boolean {\n return (\n typeof node === \"string\" ||\n typeof node === \"number\" ||\n typeof node === \"boolean\"\n );\n }\n\n private buildArray(nodes: JSX.Element[], parent: VNode): BuildResult {\n const fragment = document.createDocumentFragment();\n const vnodes: VNode[] = [];\n\n nodes.forEach((child) => {\n const { domNode, vnode } = this.buildDOM(child, parent);\n fragment.appendChild(domNode);\n if (vnode) {\n vnodes.push(vnode);\n }\n });\n\n return { domNode: fragment };\n }\n\n private buildIntrinsicElement(jsx: JSX.Element, parent: VNode): BuildResult {\n const tag = jsx.type;\n const dom = document.createElement(tag);\n\n const vnode = new VNode(dom, (old, nw) => {\n if (old.parentNode) {\n old.parentNode.replaceChild(nw, old);\n }\n });\n\n parent.addChild(vnode);\n\n if (jsx.id) {\n vnode.setId(jsx.id);\n }\n\n if (jsx.props) {\n this.buildAttributes(jsx.props, dom, vnode);\n }\n\n if (jsx.props?.children != null) {\n const { domNode: childDom } = this.buildDOM(jsx.props.children, vnode);\n dom.appendChild(childDom);\n }\n\n return { domNode: dom, vnode };\n }\n\n private buildAttributes(\n props: Record<string, any>,\n dom: HTMLElement,\n vnode: VNode\n ): void {\n for (const [key, value] of Object.entries(props)) {\n if (key === \"children\" || value == null) {\n continue;\n }\n\n const attrKey = this.normalizeAttributeKey(key);\n\n if (attrKey === \"style\" && typeof value === \"object\") {\n this.applyStyles(value, dom);\n continue;\n }\n\n if (typeof value === \"boolean\") {\n this.setBooleanAttribute(attrKey, value, dom);\n continue;\n }\n\n dom.setAttribute(attrKey, String(value));\n }\n }\n\n private normalizeAttributeKey(key: string): string {\n if (key === \"className\") return \"class\";\n if (key === \"htmlFor\") return \"for\";\n return key;\n }\n\n private applyStyles(styles: Record<string, any>, dom: HTMLElement): void {\n const styleString = Object.entries(styles)\n .map(([k, v]) => {\n const kebabKey = k.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);\n return `${kebabKey}:${v}`;\n })\n .join(\";\");\n dom.setAttribute(\"style\", styleString);\n }\n\n private setBooleanAttribute(\n key: string,\n value: boolean,\n dom: HTMLElement\n ): void {\n if (value) {\n dom.setAttribute(key, \"\");\n } else {\n dom.removeAttribute(key);\n }\n }\n\n private async loadClientComponent(\n path: string,\n name: string,\n props: Record<string, any>,\n container: HTMLElement\n ): Promise<void> {\n try {\n const module = await import(path);\n const ComponentClass: Constructor = module[name];\n\n if (!ComponentClass) {\n throw new Error(`Component ${name} not found in ${path}`);\n }\n\n const injector = getCurrentInjector();\n if (injector == null) {\n throw new Error(\"Couldn't find an injector\");\n }\n\n const seen = new Set<Constructor>();\n\n function register(Cls: Constructor, injector: Injector) {\n if (seen.has(Cls)) return;\n seen.add(Cls);\n\n injector.addProvider({\n provide: Cls,\n useClass: Cls,\n scope: \"transient\",\n });\n\n const paramDeps: Constructor[] =\n Reflect.getMetadata(DESIGN_PARAMTYPES, Cls) ?? [];\n\n const explicitDeps: Constructor[] =\n Reflect.getMetadata(COMPONENT_DEPS, Cls) ?? [];\n\n paramDeps\n .filter((d) => d && d !== Object)\n .forEach((d) => injector.addProvider(d));\n\n explicitDeps.forEach((deps) => register(deps, injector));\n }\n\n register(ComponentClass, injector);\n\n const cleanProps = { ...props };\n delete cleanProps.__clientComponent;\n\n const instance = injector.resolve(ComponentClass);\n instance.__injector = injector;\n instance.props = cleanProps;\n\n if (typeof instance.build !== \"function\") {\n throw new Error(`Component ${name} does not implement build()`);\n }\n\n const rendered = instance.build();\n\n container.replaceWith(rendered);\n } catch (error) {\n console.error(`Failed to load client component ${name}:`, error);\n\n container.textContent = `Error loading component: ${name}`;\n container.className = \"client-component-error\";\n }\n }\n}\n", "export function assert$(context?: any) {\n return context?.factory.createStringLiteral(\"assert\");\n}\n", "export * from \"./factory\";\nexport * from \"./dom\";\n", "import {\n BOOTSTRAP,\n collectAllProvidersFromNode,\n Compiler,\n Constructor,\n Injector,\n setCurrentInjector,\n} from \"@/shared\";\n\nexport class BrowserFactory {\n public static create(rootModule: Constructor, rootElement: HTMLElement) {\n const compiler = new Compiler();\n const appNode = compiler.compile(rootModule);\n\n const validation = compiler.validate(appNode);\n\n if (!validation.valid) {\n throw new Error(\n \"\u274C Validation failed:\\n\" + validation.errors.join(\"\\n\\n\")\n );\n }\n\n const allProviders = collectAllProvidersFromNode(appNode);\n\n const rootInjector = new Injector([\n ...allProviders,\n {\n provide: \"OSC_URL\",\n useValue: \"/osc\",\n },\n ]);\n\n setCurrentInjector(rootInjector);\n\n appNode.traverse((node) => {\n const providers = [...node.getProviders().values()];\n providers\n .filter((provider) => provider.eager)\n .forEach((p) => rootInjector.resolve(p.provide));\n });\n\n const bootstrap = Reflect.getMetadata(BOOTSTRAP, rootModule);\n\n const instance: any = rootInjector.resolve(bootstrap);\n\n instance.__injector = rootInjector;\n\n const childDom = instance.build();\n\n rootElement.appendChild(childDom);\n }\n}\n", "import { COMPONENT, COMPONENT_PROVIDERS, getCurrentInjector, Injector, ProviderNormalizer, } from \"@/shared\";\nimport { isObservable } from \"../../shared/observable\";\nimport { effect, isSignal } from \"../../shared/signal\";\nconst elementEffects = new WeakMap();\nconst cleanupObserver = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n mutation.removedNodes.forEach((node) => {\n cleanupElement(node);\n });\n });\n});\nif (typeof document !== \"undefined\" && document.body) {\n cleanupObserver.observe(document.body, {\n childList: true,\n subtree: true,\n });\n}\nelse if (typeof document !== \"undefined\") {\n document.addEventListener(\"DOMContentLoaded\", () => {\n cleanupObserver.observe(document.body, {\n childList: true,\n subtree: true,\n });\n });\n}\nfunction cleanupElement(node) {\n const cleanups = elementEffects.get(node);\n if (cleanups) {\n cleanups.forEach((cleanup, idx) => {\n cleanup();\n });\n elementEffects.delete(node);\n }\n if (node.childNodes && node.childNodes.length > 0) {\n node.childNodes.forEach((child) => cleanupElement(child));\n }\n}\nfunction registerEffect(el, cleanup) {\n if (!elementEffects.has(el)) {\n elementEffects.set(el, []);\n }\n elementEffects.get(el).push(cleanup);\n}\nfunction buildDOM(value) {\n if (value instanceof Node) {\n return value;\n }\n if (typeof value === \"string\" || typeof value === \"number\") {\n return document.createTextNode(String(value));\n }\n if (value == null || typeof value === \"boolean\") {\n return document.createTextNode(\"\");\n }\n if (Array.isArray(value)) {\n const fragment = document.createDocumentFragment();\n for (const item of value) {\n const node = buildDOM(item);\n fragment.appendChild(node);\n }\n return fragment;\n }\n console.log(\"Unhandled value:\", value);\n throw new Error(`Cannot build DOM from value: ${value}`);\n}\nexport function insert(parent, value) {\n if (value == null)\n return;\n let currentDOM;\n function attach(value) {\n const newDOM = buildDOM(value);\n if (currentDOM) {\n if (Array.isArray(currentDOM)) {\n currentDOM.forEach((node) => {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n });\n }\n else {\n if (currentDOM.parentNode) {\n currentDOM.parentNode.removeChild(currentDOM);\n }\n }\n }\n if (newDOM instanceof DocumentFragment) {\n const nodes = Array.from(newDOM.childNodes);\n parent.appendChild(newDOM);\n currentDOM = nodes;\n }\n else {\n parent.appendChild(newDOM);\n currentDOM = newDOM;\n }\n }\n if (isSignal(value)) {\n const cleanup = effect(() => {\n attach(value.value);\n });\n registerEffect(parent, cleanup);\n }\n else if (isObservable(value)) {\n const obs = value;\n const subst = obs.subscribe((val) => {\n attach(val);\n });\n registerEffect(parent, () => subst.unsubscribe());\n }\n else if (typeof value == \"function\") {\n const cleanup = effect(() => {\n attach(value());\n });\n registerEffect(parent, cleanup);\n }\n else {\n const node = buildDOM(value);\n parent.appendChild(node);\n }\n}\nfunction autoCleanup(element, callback) {\n const observer = new MutationObserver(() => {\n if (!document.contains(element)) {\n callback();\n observer.disconnect();\n }\n });\n setTimeout(() => {\n if (element.parentNode) {\n observer.observe(document.body, { childList: true, subtree: true });\n }\n }, 0);\n}\nexport function createComponent(ComponentClass, props = {}, parentComponent) {\n let injector = getCurrentInjector();\n if (!injector) {\n throw new Error(`Cannot create component ${ComponentClass.name} outside injection context. ` +\n `No injector available from current context or parent component.`);\n }\n const isComponent = Reflect.getMetadata(COMPONENT, ComponentClass);\n if (!isComponent) {\n throw new Error(`${ComponentClass.name} is not decorated with @Component()`);\n }\n let instance;\n try {\n instance = injector.resolve(ComponentClass);\n }\n catch (e) {\n throw new Error(e.message);\n }\n const localProviders = Reflect.getMetadata(COMPONENT_PROVIDERS, ComponentClass) || [];\n if (localProviders.length > 0) {\n injector = new Injector(localProviders.map((p) => ProviderNormalizer.normalize(p)), parentComponent.__injector);\n instance.__injector = injector;\n }\n instance.props = props;\n const root = instance.build();\n if (!(root instanceof Node)) {\n throw new Error(\"Root is not instance of node\");\n }\n const cleanup = () => {\n instance.__cleanup?.forEach((cb) => cb());\n instance.onDestory?.();\n };\n if (root.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n const firstChild = root.firstChild;\n if (firstChild) {\n autoCleanup(firstChild, cleanup);\n }\n }\n else {\n autoCleanup(root, cleanup);\n }\n return root;\n}\nexport function style(el, styleObj) {\n if (typeof styleObj === \"function\") {\n const cleanup = effect(() => {\n const styles = styleObj();\n if (!styles)\n return;\n for (const key in styles) {\n const value = styles[key];\n const actualValue = isSignal(value) ? value.value : value;\n const cssKey = key.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);\n el.style.setProperty(cssKey, actualValue);\n }\n });\n registerEffect(el, cleanup);\n return;\n }\n if (!styleObj)\n return;\n for (const key in styleObj) {\n const cssKey = key.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);\n el.style.setProperty(cssKey, styleObj[key]);\n }\n}\nexport function spread(el, attrs) {\n if (!attrs)\n return;\n for (const key in attrs) {\n const value = attrs[key];\n if (/^on[A-Z]/.test(key)) {\n const eventName = key.slice(2).toLowerCase();\n el.addEventListener(eventName, value);\n continue;\n }\n if (key === \"style\" && typeof value === \"object\") {\n style(el, value);\n continue;\n }\n const attrName = key === \"className\" ? \"class\" : key;\n el.setAttribute(attrName, value);\n }\n}\n"],
5
- "mappings": "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E,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,YAAY,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,aAAa,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,aAAa,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAA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,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ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E,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAA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",
4
+ "sourcesContent": ["/*! *****************************************************************************\nCopyright (C) Microsoft. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\nvar Reflect;\n(function (Reflect) {\n // Metadata Proposal\n // https://rbuckton.github.io/reflect-metadata/\n (function (factory) {\n var root = typeof globalThis === \"object\" ? globalThis :\n typeof global === \"object\" ? global :\n typeof self === \"object\" ? self :\n typeof this === \"object\" ? this :\n sloppyModeThis();\n var exporter = makeExporter(Reflect);\n if (typeof root.Reflect !== \"undefined\") {\n exporter = makeExporter(root.Reflect, exporter);\n }\n factory(exporter, root);\n if (typeof root.Reflect === \"undefined\") {\n root.Reflect = Reflect;\n }\n function makeExporter(target, previous) {\n return function (key, value) {\n Object.defineProperty(target, key, { configurable: true, writable: true, value: value });\n if (previous)\n previous(key, value);\n };\n }\n function functionThis() {\n try {\n return Function(\"return this;\")();\n }\n catch (_) { }\n }\n function indirectEvalThis() {\n try {\n return (void 0, eval)(\"(function() { return this; })()\");\n }\n catch (_) { }\n }\n function sloppyModeThis() {\n return functionThis() || indirectEvalThis();\n }\n })(function (exporter, root) {\n var hasOwn = Object.prototype.hasOwnProperty;\n // feature test for Symbol support\n var supportsSymbol = typeof Symbol === \"function\";\n var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== \"undefined\" ? Symbol.toPrimitive : \"@@toPrimitive\";\n var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== \"undefined\" ? Symbol.iterator : \"@@iterator\";\n var supportsCreate = typeof Object.create === \"function\"; // feature test for Object.create support\n var supportsProto = { __proto__: [] } instanceof Array; // feature test for __proto__ support\n var downLevel = !supportsCreate && !supportsProto;\n var HashMap = {\n // create an object in dictionary mode (a.k.a. \"slow\" mode in v8)\n create: supportsCreate\n ? function () { return MakeDictionary(Object.create(null)); }\n : supportsProto\n ? function () { return MakeDictionary({ __proto__: null }); }\n : function () { return MakeDictionary({}); },\n has: downLevel\n ? function (map, key) { return hasOwn.call(map, key); }\n : function (map, key) { return key in map; },\n get: downLevel\n ? function (map, key) { return hasOwn.call(map, key) ? map[key] : undefined; }\n : function (map, key) { return map[key]; },\n };\n // Load global or shim versions of Map, Set, and WeakMap\n var functionPrototype = Object.getPrototypeOf(Function);\n var _Map = typeof Map === \"function\" && typeof Map.prototype.entries === \"function\" ? Map : CreateMapPolyfill();\n var _Set = typeof Set === \"function\" && typeof Set.prototype.entries === \"function\" ? Set : CreateSetPolyfill();\n var _WeakMap = typeof WeakMap === \"function\" ? WeakMap : CreateWeakMapPolyfill();\n var registrySymbol = supportsSymbol ? Symbol.for(\"@reflect-metadata:registry\") : undefined;\n var metadataRegistry = GetOrCreateMetadataRegistry();\n var metadataProvider = CreateMetadataProvider(metadataRegistry);\n /**\n * Applies a set of decorators to a property of a target object.\n * @param decorators An array of decorators.\n * @param target The target object.\n * @param propertyKey (Optional) The property key to decorate.\n * @param attributes (Optional) The property descriptor for the target key.\n * @remarks Decorators are applied in reverse order.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Example = Reflect.decorate(decoratorsArray, Example);\n *\n * // property (on constructor)\n * Reflect.decorate(decoratorsArray, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.decorate(decoratorsArray, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Object.defineProperty(Example, \"staticMethod\",\n * Reflect.decorate(decoratorsArray, Example, \"staticMethod\",\n * Object.getOwnPropertyDescriptor(Example, \"staticMethod\")));\n *\n * // method (on prototype)\n * Object.defineProperty(Example.prototype, \"method\",\n * Reflect.decorate(decoratorsArray, Example.prototype, \"method\",\n * Object.getOwnPropertyDescriptor(Example.prototype, \"method\")));\n *\n */\n function decorate(decorators, target, propertyKey, attributes) {\n if (!IsUndefined(propertyKey)) {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsObject(target))\n throw new TypeError();\n if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes))\n throw new TypeError();\n if (IsNull(attributes))\n attributes = undefined;\n propertyKey = ToPropertyKey(propertyKey);\n return DecorateProperty(decorators, target, propertyKey, attributes);\n }\n else {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsConstructor(target))\n throw new TypeError();\n return DecorateConstructor(decorators, target);\n }\n }\n exporter(\"decorate\", decorate);\n // 4.1.2 Reflect.metadata(metadataKey, metadataValue)\n // https://rbuckton.github.io/reflect-metadata/#reflect.metadata\n /**\n * A default metadata decorator factory that can be used on a class, class member, or parameter.\n * @param metadataKey The key for the metadata entry.\n * @param metadataValue The value for the metadata entry.\n * @returns A decorator function.\n * @remarks\n * If `metadataKey` is already defined for the target and target key, the\n * metadataValue for that key will be overwritten.\n * @example\n *\n * // constructor\n * @Reflect.metadata(key, value)\n * class Example {\n * }\n *\n * // property (on constructor, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticProperty;\n * }\n *\n * // property (on prototype, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * property;\n * }\n *\n * // method (on constructor)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticMethod() { }\n * }\n *\n * // method (on prototype)\n * class Example {\n * @Reflect.metadata(key, value)\n * method() { }\n * }\n *\n */\n function metadata(metadataKey, metadataValue) {\n function decorator(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey))\n throw new TypeError();\n OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n return decorator;\n }\n exporter(\"metadata\", metadata);\n /**\n * Define a unique metadata entry on the target.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param metadataValue A value that contains attached metadata.\n * @param target The target object on which to define metadata.\n * @param propertyKey (Optional) The property key for the target.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Reflect.defineMetadata(\"custom:annotation\", options, Example);\n *\n * // property (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticMethod\");\n *\n * // method (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"method\");\n *\n * // decorator factory as metadata-producing annotation.\n * function MyAnnotation(options): Decorator {\n * return (target, key?) => Reflect.defineMetadata(\"custom:annotation\", options, target, key);\n * }\n *\n */\n function defineMetadata(metadataKey, metadataValue, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n exporter(\"defineMetadata\", defineMetadata);\n /**\n * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasMetadata\", hasMetadata);\n /**\n * Gets a value indicating whether the target object has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasOwnMetadata\", hasOwnMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object or its prototype chain.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getMetadata\", getMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getOwnMetadata\", getOwnMetadata);\n /**\n * Gets the metadata keys defined on the target object or its prototype chain.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryMetadataKeys(target, propertyKey);\n }\n exporter(\"getMetadataKeys\", getMetadataKeys);\n /**\n * Gets the unique metadata keys defined on the target object.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getOwnMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryOwnMetadataKeys(target, propertyKey);\n }\n exporter(\"getOwnMetadataKeys\", getOwnMetadataKeys);\n /**\n * Deletes the metadata entry from the target object with the provided key.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata entry was found and deleted; otherwise, false.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function deleteMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n var provider = GetMetadataProvider(target, propertyKey, /*Create*/ false);\n if (IsUndefined(provider))\n return false;\n return provider.OrdinaryDeleteMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"deleteMetadata\", deleteMetadata);\n function DecorateConstructor(decorators, target) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsConstructor(decorated))\n throw new TypeError();\n target = decorated;\n }\n }\n return target;\n }\n function DecorateProperty(decorators, target, propertyKey, descriptor) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target, propertyKey, descriptor);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsObject(decorated))\n throw new TypeError();\n descriptor = decorated;\n }\n }\n return descriptor;\n }\n // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata\n function OrdinaryHasMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return true;\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryHasMetadata(MetadataKey, parent, P);\n return false;\n }\n // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata\n function OrdinaryHasOwnMetadata(MetadataKey, O, P) {\n var provider = GetMetadataProvider(O, P, /*Create*/ false);\n if (IsUndefined(provider))\n return false;\n return ToBoolean(provider.OrdinaryHasOwnMetadata(MetadataKey, O, P));\n }\n // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata\n function OrdinaryGetMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return OrdinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryGetMetadata(MetadataKey, parent, P);\n return undefined;\n }\n // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata\n function OrdinaryGetOwnMetadata(MetadataKey, O, P) {\n var provider = GetMetadataProvider(O, P, /*Create*/ false);\n if (IsUndefined(provider))\n return;\n return provider.OrdinaryGetOwnMetadata(MetadataKey, O, P);\n }\n // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata\n function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {\n var provider = GetMetadataProvider(O, P, /*Create*/ true);\n provider.OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P);\n }\n // 3.1.6.1 OrdinaryMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys\n function OrdinaryMetadataKeys(O, P) {\n var ownKeys = OrdinaryOwnMetadataKeys(O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (parent === null)\n return ownKeys;\n var parentKeys = OrdinaryMetadataKeys(parent, P);\n if (parentKeys.length <= 0)\n return ownKeys;\n if (ownKeys.length <= 0)\n return parentKeys;\n var set = new _Set();\n var keys = [];\n for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {\n var key = ownKeys_1[_i];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {\n var key = parentKeys_1[_a];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n return keys;\n }\n // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys\n function OrdinaryOwnMetadataKeys(O, P) {\n var provider = GetMetadataProvider(O, P, /*create*/ false);\n if (!provider) {\n return [];\n }\n return provider.OrdinaryOwnMetadataKeys(O, P);\n }\n // 6 ECMAScript Data Types and Values\n // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values\n function Type(x) {\n if (x === null)\n return 1 /* Null */;\n switch (typeof x) {\n case \"undefined\": return 0 /* Undefined */;\n case \"boolean\": return 2 /* Boolean */;\n case \"string\": return 3 /* String */;\n case \"symbol\": return 4 /* Symbol */;\n case \"number\": return 5 /* Number */;\n case \"object\": return x === null ? 1 /* Null */ : 6 /* Object */;\n default: return 6 /* Object */;\n }\n }\n // 6.1.1 The Undefined Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type\n function IsUndefined(x) {\n return x === undefined;\n }\n // 6.1.2 The Null Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type\n function IsNull(x) {\n return x === null;\n }\n // 6.1.5 The Symbol Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type\n function IsSymbol(x) {\n return typeof x === \"symbol\";\n }\n // 6.1.7 The Object Type\n // https://tc39.github.io/ecma262/#sec-object-type\n function IsObject(x) {\n return typeof x === \"object\" ? x !== null : typeof x === \"function\";\n }\n // 7.1 Type Conversion\n // https://tc39.github.io/ecma262/#sec-type-conversion\n // 7.1.1 ToPrimitive(input [, PreferredType])\n // https://tc39.github.io/ecma262/#sec-toprimitive\n function ToPrimitive(input, PreferredType) {\n switch (Type(input)) {\n case 0 /* Undefined */: return input;\n case 1 /* Null */: return input;\n case 2 /* Boolean */: return input;\n case 3 /* String */: return input;\n case 4 /* Symbol */: return input;\n case 5 /* Number */: return input;\n }\n var hint = PreferredType === 3 /* String */ ? \"string\" : PreferredType === 5 /* Number */ ? \"number\" : \"default\";\n var exoticToPrim = GetMethod(input, toPrimitiveSymbol);\n if (exoticToPrim !== undefined) {\n var result = exoticToPrim.call(input, hint);\n if (IsObject(result))\n throw new TypeError();\n return result;\n }\n return OrdinaryToPrimitive(input, hint === \"default\" ? \"number\" : hint);\n }\n // 7.1.1.1 OrdinaryToPrimitive(O, hint)\n // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive\n function OrdinaryToPrimitive(O, hint) {\n if (hint === \"string\") {\n var toString_1 = O.toString;\n if (IsCallable(toString_1)) {\n var result = toString_1.call(O);\n if (!IsObject(result))\n return result;\n }\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n else {\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n var toString_2 = O.toString;\n if (IsCallable(toString_2)) {\n var result = toString_2.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n throw new TypeError();\n }\n // 7.1.2 ToBoolean(argument)\n // https://tc39.github.io/ecma262/2016/#sec-toboolean\n function ToBoolean(argument) {\n return !!argument;\n }\n // 7.1.12 ToString(argument)\n // https://tc39.github.io/ecma262/#sec-tostring\n function ToString(argument) {\n return \"\" + argument;\n }\n // 7.1.14 ToPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-topropertykey\n function ToPropertyKey(argument) {\n var key = ToPrimitive(argument, 3 /* String */);\n if (IsSymbol(key))\n return key;\n return ToString(key);\n }\n // 7.2 Testing and Comparison Operations\n // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations\n // 7.2.2 IsArray(argument)\n // https://tc39.github.io/ecma262/#sec-isarray\n function IsArray(argument) {\n return Array.isArray\n ? Array.isArray(argument)\n : argument instanceof Object\n ? argument instanceof Array\n : Object.prototype.toString.call(argument) === \"[object Array]\";\n }\n // 7.2.3 IsCallable(argument)\n // https://tc39.github.io/ecma262/#sec-iscallable\n function IsCallable(argument) {\n // NOTE: This is an approximation as we cannot check for [[Call]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.4 IsConstructor(argument)\n // https://tc39.github.io/ecma262/#sec-isconstructor\n function IsConstructor(argument) {\n // NOTE: This is an approximation as we cannot check for [[Construct]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.7 IsPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-ispropertykey\n function IsPropertyKey(argument) {\n switch (Type(argument)) {\n case 3 /* String */: return true;\n case 4 /* Symbol */: return true;\n default: return false;\n }\n }\n function SameValueZero(x, y) {\n return x === y || x !== x && y !== y;\n }\n // 7.3 Operations on Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-objects\n // 7.3.9 GetMethod(V, P)\n // https://tc39.github.io/ecma262/#sec-getmethod\n function GetMethod(V, P) {\n var func = V[P];\n if (func === undefined || func === null)\n return undefined;\n if (!IsCallable(func))\n throw new TypeError();\n return func;\n }\n // 7.4 Operations on Iterator Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects\n function GetIterator(obj) {\n var method = GetMethod(obj, iteratorSymbol);\n if (!IsCallable(method))\n throw new TypeError(); // from Call\n var iterator = method.call(obj);\n if (!IsObject(iterator))\n throw new TypeError();\n return iterator;\n }\n // 7.4.4 IteratorValue(iterResult)\n // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue\n function IteratorValue(iterResult) {\n return iterResult.value;\n }\n // 7.4.5 IteratorStep(iterator)\n // https://tc39.github.io/ecma262/#sec-iteratorstep\n function IteratorStep(iterator) {\n var result = iterator.next();\n return result.done ? false : result;\n }\n // 7.4.6 IteratorClose(iterator, completion)\n // https://tc39.github.io/ecma262/#sec-iteratorclose\n function IteratorClose(iterator) {\n var f = iterator[\"return\"];\n if (f)\n f.call(iterator);\n }\n // 9.1 Ordinary Object Internal Methods and Internal Slots\n // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots\n // 9.1.1.1 OrdinaryGetPrototypeOf(O)\n // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof\n function OrdinaryGetPrototypeOf(O) {\n var proto = Object.getPrototypeOf(O);\n if (typeof O !== \"function\" || O === functionPrototype)\n return proto;\n // TypeScript doesn't set __proto__ in ES5, as it's non-standard.\n // Try to determine the superclass constructor. Compatible implementations\n // must either set __proto__ on a subclass constructor to the superclass constructor,\n // or ensure each class has a valid `constructor` property on its prototype that\n // points back to the constructor.\n // If this is not the same as Function.[[Prototype]], then this is definately inherited.\n // This is the case when in ES6 or when using __proto__ in a compatible browser.\n if (proto !== functionPrototype)\n return proto;\n // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage.\n var prototype = O.prototype;\n var prototypeProto = prototype && Object.getPrototypeOf(prototype);\n if (prototypeProto == null || prototypeProto === Object.prototype)\n return proto;\n // If the constructor was not a function, then we cannot determine the heritage.\n var constructor = prototypeProto.constructor;\n if (typeof constructor !== \"function\")\n return proto;\n // If we have some kind of self-reference, then we cannot determine the heritage.\n if (constructor === O)\n return proto;\n // we have a pretty good guess at the heritage.\n return constructor;\n }\n // Global metadata registry\n // - Allows `import \"reflect-metadata\"` and `import \"reflect-metadata/no-conflict\"` to interoperate.\n // - Uses isolated metadata if `Reflect` is frozen before the registry can be installed.\n /**\n * Creates a registry used to allow multiple `reflect-metadata` providers.\n */\n function CreateMetadataRegistry() {\n var fallback;\n if (!IsUndefined(registrySymbol) &&\n typeof root.Reflect !== \"undefined\" &&\n !(registrySymbol in root.Reflect) &&\n typeof root.Reflect.defineMetadata === \"function\") {\n // interoperate with older version of `reflect-metadata` that did not support a registry.\n fallback = CreateFallbackProvider(root.Reflect);\n }\n var first;\n var second;\n var rest;\n var targetProviderMap = new _WeakMap();\n var registry = {\n registerProvider: registerProvider,\n getProvider: getProvider,\n setProvider: setProvider,\n };\n return registry;\n function registerProvider(provider) {\n if (!Object.isExtensible(registry)) {\n throw new Error(\"Cannot add provider to a frozen registry.\");\n }\n switch (true) {\n case fallback === provider: break;\n case IsUndefined(first):\n first = provider;\n break;\n case first === provider: break;\n case IsUndefined(second):\n second = provider;\n break;\n case second === provider: break;\n default:\n if (rest === undefined)\n rest = new _Set();\n rest.add(provider);\n break;\n }\n }\n function getProviderNoCache(O, P) {\n if (!IsUndefined(first)) {\n if (first.isProviderFor(O, P))\n return first;\n if (!IsUndefined(second)) {\n if (second.isProviderFor(O, P))\n return first;\n if (!IsUndefined(rest)) {\n var iterator = GetIterator(rest);\n while (true) {\n var next = IteratorStep(iterator);\n if (!next) {\n return undefined;\n }\n var provider = IteratorValue(next);\n if (provider.isProviderFor(O, P)) {\n IteratorClose(iterator);\n return provider;\n }\n }\n }\n }\n }\n if (!IsUndefined(fallback) && fallback.isProviderFor(O, P)) {\n return fallback;\n }\n return undefined;\n }\n function getProvider(O, P) {\n var providerMap = targetProviderMap.get(O);\n var provider;\n if (!IsUndefined(providerMap)) {\n provider = providerMap.get(P);\n }\n if (!IsUndefined(provider)) {\n return provider;\n }\n provider = getProviderNoCache(O, P);\n if (!IsUndefined(provider)) {\n if (IsUndefined(providerMap)) {\n providerMap = new _Map();\n targetProviderMap.set(O, providerMap);\n }\n providerMap.set(P, provider);\n }\n return provider;\n }\n function hasProvider(provider) {\n if (IsUndefined(provider))\n throw new TypeError();\n return first === provider || second === provider || !IsUndefined(rest) && rest.has(provider);\n }\n function setProvider(O, P, provider) {\n if (!hasProvider(provider)) {\n throw new Error(\"Metadata provider not registered.\");\n }\n var existingProvider = getProvider(O, P);\n if (existingProvider !== provider) {\n if (!IsUndefined(existingProvider)) {\n return false;\n }\n var providerMap = targetProviderMap.get(O);\n if (IsUndefined(providerMap)) {\n providerMap = new _Map();\n targetProviderMap.set(O, providerMap);\n }\n providerMap.set(P, provider);\n }\n return true;\n }\n }\n /**\n * Gets or creates the shared registry of metadata providers.\n */\n function GetOrCreateMetadataRegistry() {\n var metadataRegistry;\n if (!IsUndefined(registrySymbol) && IsObject(root.Reflect) && Object.isExtensible(root.Reflect)) {\n metadataRegistry = root.Reflect[registrySymbol];\n }\n if (IsUndefined(metadataRegistry)) {\n metadataRegistry = CreateMetadataRegistry();\n }\n if (!IsUndefined(registrySymbol) && IsObject(root.Reflect) && Object.isExtensible(root.Reflect)) {\n Object.defineProperty(root.Reflect, registrySymbol, {\n enumerable: false,\n configurable: false,\n writable: false,\n value: metadataRegistry\n });\n }\n return metadataRegistry;\n }\n function CreateMetadataProvider(registry) {\n // [[Metadata]] internal slot\n // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots\n var metadata = new _WeakMap();\n var provider = {\n isProviderFor: function (O, P) {\n var targetMetadata = metadata.get(O);\n if (IsUndefined(targetMetadata))\n return false;\n return targetMetadata.has(P);\n },\n OrdinaryDefineOwnMetadata: OrdinaryDefineOwnMetadata,\n OrdinaryHasOwnMetadata: OrdinaryHasOwnMetadata,\n OrdinaryGetOwnMetadata: OrdinaryGetOwnMetadata,\n OrdinaryOwnMetadataKeys: OrdinaryOwnMetadataKeys,\n OrdinaryDeleteMetadata: OrdinaryDeleteMetadata,\n };\n metadataRegistry.registerProvider(provider);\n return provider;\n function GetOrCreateMetadataMap(O, P, Create) {\n var targetMetadata = metadata.get(O);\n var createdTargetMetadata = false;\n if (IsUndefined(targetMetadata)) {\n if (!Create)\n return undefined;\n targetMetadata = new _Map();\n metadata.set(O, targetMetadata);\n createdTargetMetadata = true;\n }\n var metadataMap = targetMetadata.get(P);\n if (IsUndefined(metadataMap)) {\n if (!Create)\n return undefined;\n metadataMap = new _Map();\n targetMetadata.set(P, metadataMap);\n if (!registry.setProvider(O, P, provider)) {\n targetMetadata.delete(P);\n if (createdTargetMetadata) {\n metadata.delete(O);\n }\n throw new Error(\"Wrong provider for target.\");\n }\n }\n return metadataMap;\n }\n // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata\n function OrdinaryHasOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n return ToBoolean(metadataMap.has(MetadataKey));\n }\n // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata\n function OrdinaryGetOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return undefined;\n return metadataMap.get(MetadataKey);\n }\n // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata\n function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true);\n metadataMap.set(MetadataKey, MetadataValue);\n }\n // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys\n function OrdinaryOwnMetadataKeys(O, P) {\n var keys = [];\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return keys;\n var keysObj = metadataMap.keys();\n var iterator = GetIterator(keysObj);\n var k = 0;\n while (true) {\n var next = IteratorStep(iterator);\n if (!next) {\n keys.length = k;\n return keys;\n }\n var nextValue = IteratorValue(next);\n try {\n keys[k] = nextValue;\n }\n catch (e) {\n try {\n IteratorClose(iterator);\n }\n finally {\n throw e;\n }\n }\n k++;\n }\n }\n function OrdinaryDeleteMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n if (!metadataMap.delete(MetadataKey))\n return false;\n if (metadataMap.size === 0) {\n var targetMetadata = metadata.get(O);\n if (!IsUndefined(targetMetadata)) {\n targetMetadata.delete(P);\n if (targetMetadata.size === 0) {\n metadata.delete(targetMetadata);\n }\n }\n }\n return true;\n }\n }\n function CreateFallbackProvider(reflect) {\n var defineMetadata = reflect.defineMetadata, hasOwnMetadata = reflect.hasOwnMetadata, getOwnMetadata = reflect.getOwnMetadata, getOwnMetadataKeys = reflect.getOwnMetadataKeys, deleteMetadata = reflect.deleteMetadata;\n var metadataOwner = new _WeakMap();\n var provider = {\n isProviderFor: function (O, P) {\n var metadataPropertySet = metadataOwner.get(O);\n if (!IsUndefined(metadataPropertySet) && metadataPropertySet.has(P)) {\n return true;\n }\n if (getOwnMetadataKeys(O, P).length) {\n if (IsUndefined(metadataPropertySet)) {\n metadataPropertySet = new _Set();\n metadataOwner.set(O, metadataPropertySet);\n }\n metadataPropertySet.add(P);\n return true;\n }\n return false;\n },\n OrdinaryDefineOwnMetadata: defineMetadata,\n OrdinaryHasOwnMetadata: hasOwnMetadata,\n OrdinaryGetOwnMetadata: getOwnMetadata,\n OrdinaryOwnMetadataKeys: getOwnMetadataKeys,\n OrdinaryDeleteMetadata: deleteMetadata,\n };\n return provider;\n }\n /**\n * Gets the metadata provider for an object. If the object has no metadata provider and this is for a create operation,\n * then this module's metadata provider is assigned to the object.\n */\n function GetMetadataProvider(O, P, Create) {\n var registeredProvider = metadataRegistry.getProvider(O, P);\n if (!IsUndefined(registeredProvider)) {\n return registeredProvider;\n }\n if (Create) {\n if (metadataRegistry.setProvider(O, P, metadataProvider)) {\n return metadataProvider;\n }\n throw new Error(\"Illegal state.\");\n }\n return undefined;\n }\n // naive Map shim\n function CreateMapPolyfill() {\n var cacheSentinel = {};\n var arraySentinel = [];\n var MapIterator = /** @class */ (function () {\n function MapIterator(keys, values, selector) {\n this._index = 0;\n this._keys = keys;\n this._values = values;\n this._selector = selector;\n }\n MapIterator.prototype[\"@@iterator\"] = function () { return this; };\n MapIterator.prototype[iteratorSymbol] = function () { return this; };\n MapIterator.prototype.next = function () {\n var index = this._index;\n if (index >= 0 && index < this._keys.length) {\n var result = this._selector(this._keys[index], this._values[index]);\n if (index + 1 >= this._keys.length) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n else {\n this._index++;\n }\n return { value: result, done: false };\n }\n return { value: undefined, done: true };\n };\n MapIterator.prototype.throw = function (error) {\n if (this._index >= 0) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n throw error;\n };\n MapIterator.prototype.return = function (value) {\n if (this._index >= 0) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n return { value: value, done: true };\n };\n return MapIterator;\n }());\n var Map = /** @class */ (function () {\n function Map() {\n this._keys = [];\n this._values = [];\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n }\n Object.defineProperty(Map.prototype, \"size\", {\n get: function () { return this._keys.length; },\n enumerable: true,\n configurable: true\n });\n Map.prototype.has = function (key) { return this._find(key, /*insert*/ false) >= 0; };\n Map.prototype.get = function (key) {\n var index = this._find(key, /*insert*/ false);\n return index >= 0 ? this._values[index] : undefined;\n };\n Map.prototype.set = function (key, value) {\n var index = this._find(key, /*insert*/ true);\n this._values[index] = value;\n return this;\n };\n Map.prototype.delete = function (key) {\n var index = this._find(key, /*insert*/ false);\n if (index >= 0) {\n var size = this._keys.length;\n for (var i = index + 1; i < size; i++) {\n this._keys[i - 1] = this._keys[i];\n this._values[i - 1] = this._values[i];\n }\n this._keys.length--;\n this._values.length--;\n if (SameValueZero(key, this._cacheKey)) {\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n }\n return true;\n }\n return false;\n };\n Map.prototype.clear = function () {\n this._keys.length = 0;\n this._values.length = 0;\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n };\n Map.prototype.keys = function () { return new MapIterator(this._keys, this._values, getKey); };\n Map.prototype.values = function () { return new MapIterator(this._keys, this._values, getValue); };\n Map.prototype.entries = function () { return new MapIterator(this._keys, this._values, getEntry); };\n Map.prototype[\"@@iterator\"] = function () { return this.entries(); };\n Map.prototype[iteratorSymbol] = function () { return this.entries(); };\n Map.prototype._find = function (key, insert) {\n if (!SameValueZero(this._cacheKey, key)) {\n this._cacheIndex = -1;\n for (var i = 0; i < this._keys.length; i++) {\n if (SameValueZero(this._keys[i], key)) {\n this._cacheIndex = i;\n break;\n }\n }\n }\n if (this._cacheIndex < 0 && insert) {\n this._cacheIndex = this._keys.length;\n this._keys.push(key);\n this._values.push(undefined);\n }\n return this._cacheIndex;\n };\n return Map;\n }());\n return Map;\n function getKey(key, _) {\n return key;\n }\n function getValue(_, value) {\n return value;\n }\n function getEntry(key, value) {\n return [key, value];\n }\n }\n // naive Set shim\n function CreateSetPolyfill() {\n var Set = /** @class */ (function () {\n function Set() {\n this._map = new _Map();\n }\n Object.defineProperty(Set.prototype, \"size\", {\n get: function () { return this._map.size; },\n enumerable: true,\n configurable: true\n });\n Set.prototype.has = function (value) { return this._map.has(value); };\n Set.prototype.add = function (value) { return this._map.set(value, value), this; };\n Set.prototype.delete = function (value) { return this._map.delete(value); };\n Set.prototype.clear = function () { this._map.clear(); };\n Set.prototype.keys = function () { return this._map.keys(); };\n Set.prototype.values = function () { return this._map.keys(); };\n Set.prototype.entries = function () { return this._map.entries(); };\n Set.prototype[\"@@iterator\"] = function () { return this.keys(); };\n Set.prototype[iteratorSymbol] = function () { return this.keys(); };\n return Set;\n }());\n return Set;\n }\n // naive WeakMap shim\n function CreateWeakMapPolyfill() {\n var UUID_SIZE = 16;\n var keys = HashMap.create();\n var rootKey = CreateUniqueKey();\n return /** @class */ (function () {\n function WeakMap() {\n this._key = CreateUniqueKey();\n }\n WeakMap.prototype.has = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.has(table, this._key) : false;\n };\n WeakMap.prototype.get = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.get(table, this._key) : undefined;\n };\n WeakMap.prototype.set = function (target, value) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ true);\n table[this._key] = value;\n return this;\n };\n WeakMap.prototype.delete = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? delete table[this._key] : false;\n };\n WeakMap.prototype.clear = function () {\n // NOTE: not a real clear, just makes the previous data unreachable\n this._key = CreateUniqueKey();\n };\n return WeakMap;\n }());\n function CreateUniqueKey() {\n var key;\n do\n key = \"@@WeakMap@@\" + CreateUUID();\n while (HashMap.has(keys, key));\n keys[key] = true;\n return key;\n }\n function GetOrCreateWeakMapTable(target, create) {\n if (!hasOwn.call(target, rootKey)) {\n if (!create)\n return undefined;\n Object.defineProperty(target, rootKey, { value: HashMap.create() });\n }\n return target[rootKey];\n }\n function FillRandomBytes(buffer, size) {\n for (var i = 0; i < size; ++i)\n buffer[i] = Math.random() * 0xff | 0;\n return buffer;\n }\n function GenRandomBytes(size) {\n if (typeof Uint8Array === \"function\") {\n var array = new Uint8Array(size);\n if (typeof crypto !== \"undefined\") {\n crypto.getRandomValues(array);\n }\n else if (typeof msCrypto !== \"undefined\") {\n msCrypto.getRandomValues(array);\n }\n else {\n FillRandomBytes(array, size);\n }\n return array;\n }\n return FillRandomBytes(new Array(size), size);\n }\n function CreateUUID() {\n var data = GenRandomBytes(UUID_SIZE);\n // mark as random - RFC 4122 \u00A7 4.4\n data[6] = data[6] & 0x4f | 0x40;\n data[8] = data[8] & 0xbf | 0x80;\n var result = \"\";\n for (var offset = 0; offset < UUID_SIZE; ++offset) {\n var byte = data[offset];\n if (offset === 4 || offset === 6 || offset === 8)\n result += \"-\";\n if (byte < 16)\n result += \"0\";\n result += byte.toString(16).toLowerCase();\n }\n return result;\n }\n }\n // uses a heuristic used by v8 and chakra to force an object into dictionary mode.\n function MakeDictionary(obj) {\n obj.__ = undefined;\n delete obj.__;\n return obj;\n }\n });\n})(Reflect || (Reflect = {}));\n", "module.exports = {\n\ttrueFunc: function trueFunc(){\n\t\treturn true;\n\t},\n\tfalseFunc: function falseFunc(){\n\t\treturn false;\n\t}\n};", "//.CommonJS\nvar CSSOM = {};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://dev.w3.org/csswg/cssom/#the-stylesheet-interface\n */\nCSSOM.StyleSheet = function StyleSheet() {\n\tthis.parentStyleSheet = null;\n};\n\n\n//.CommonJS\nexports.StyleSheet = CSSOM.StyleSheet;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://dev.w3.org/csswg/cssom/#the-cssrule-interface\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRule\n */\nCSSOM.CSSRule = function CSSRule() {\n\tthis.parentRule = null;\n\tthis.parentStyleSheet = null;\n};\n\nCSSOM.CSSRule.UNKNOWN_RULE = 0; // obsolete\nCSSOM.CSSRule.STYLE_RULE = 1;\nCSSOM.CSSRule.CHARSET_RULE = 2; // obsolete\nCSSOM.CSSRule.IMPORT_RULE = 3;\nCSSOM.CSSRule.MEDIA_RULE = 4;\nCSSOM.CSSRule.FONT_FACE_RULE = 5;\nCSSOM.CSSRule.PAGE_RULE = 6;\nCSSOM.CSSRule.KEYFRAMES_RULE = 7;\nCSSOM.CSSRule.KEYFRAME_RULE = 8;\nCSSOM.CSSRule.MARGIN_RULE = 9;\nCSSOM.CSSRule.NAMESPACE_RULE = 10;\nCSSOM.CSSRule.COUNTER_STYLE_RULE = 11;\nCSSOM.CSSRule.SUPPORTS_RULE = 12;\nCSSOM.CSSRule.DOCUMENT_RULE = 13;\nCSSOM.CSSRule.FONT_FEATURE_VALUES_RULE = 14;\nCSSOM.CSSRule.VIEWPORT_RULE = 15;\nCSSOM.CSSRule.REGION_STYLE_RULE = 16;\n\n\nCSSOM.CSSRule.prototype = {\n\tconstructor: CSSOM.CSSRule\n\t//FIXME\n};\n\n\n//.CommonJS\nexports.CSSRule = CSSOM.CSSRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n\tCSSStyleDeclaration: require(\"./CSSStyleDeclaration\").CSSStyleDeclaration,\n\tCSSRule: require(\"./CSSRule\").CSSRule\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://dev.w3.org/csswg/cssom/#cssstylerule\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleRule\n */\nCSSOM.CSSStyleRule = function CSSStyleRule() {\n\tCSSOM.CSSRule.call(this);\n\tthis.selectorText = \"\";\n\tthis.style = new CSSOM.CSSStyleDeclaration();\n\tthis.style.parentRule = this;\n};\n\nCSSOM.CSSStyleRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSStyleRule.prototype.constructor = CSSOM.CSSStyleRule;\nCSSOM.CSSStyleRule.prototype.type = 1;\n\nObject.defineProperty(CSSOM.CSSStyleRule.prototype, \"cssText\", {\n\tget: function() {\n\t\tvar text;\n\t\tif (this.selectorText) {\n\t\t\ttext = this.selectorText + \" {\" + this.style.cssText + \"}\";\n\t\t} else {\n\t\t\ttext = \"\";\n\t\t}\n\t\treturn text;\n\t},\n\tset: function(cssText) {\n\t\tvar rule = CSSOM.CSSStyleRule.parse(cssText);\n\t\tthis.style = rule.style;\n\t\tthis.selectorText = rule.selectorText;\n\t}\n});\n\n\n/**\n * NON-STANDARD\n * lightweight version of parse.js.\n * @param {string} ruleText\n * @return CSSStyleRule\n */\nCSSOM.CSSStyleRule.parse = function(ruleText) {\n\tvar i = 0;\n\tvar state = \"selector\";\n\tvar index;\n\tvar j = i;\n\tvar buffer = \"\";\n\n\tvar SIGNIFICANT_WHITESPACE = {\n\t\t\"selector\": true,\n\t\t\"value\": true\n\t};\n\n\tvar styleRule = new CSSOM.CSSStyleRule();\n\tvar name, priority=\"\";\n\n\tfor (var character; (character = ruleText.charAt(i)); i++) {\n\n\t\tswitch (character) {\n\n\t\tcase \" \":\n\t\tcase \"\\t\":\n\t\tcase \"\\r\":\n\t\tcase \"\\n\":\n\t\tcase \"\\f\":\n\t\t\tif (SIGNIFICANT_WHITESPACE[state]) {\n\t\t\t\t// Squash 2 or more white-spaces in the row into 1\n\t\t\t\tswitch (ruleText.charAt(i - 1)) {\n\t\t\t\t\tcase \" \":\n\t\t\t\t\tcase \"\\t\":\n\t\t\t\t\tcase \"\\r\":\n\t\t\t\t\tcase \"\\n\":\n\t\t\t\t\tcase \"\\f\":\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbuffer += \" \";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\n\t\t// String\n\t\tcase '\"':\n\t\t\tj = i + 1;\n\t\t\tindex = ruleText.indexOf('\"', j) + 1;\n\t\t\tif (!index) {\n\t\t\t\tthrow '\" is missing';\n\t\t\t}\n\t\t\tbuffer += ruleText.slice(i, index);\n\t\t\ti = index - 1;\n\t\t\tbreak;\n\n\t\tcase \"'\":\n\t\t\tj = i + 1;\n\t\t\tindex = ruleText.indexOf(\"'\", j) + 1;\n\t\t\tif (!index) {\n\t\t\t\tthrow \"' is missing\";\n\t\t\t}\n\t\t\tbuffer += ruleText.slice(i, index);\n\t\t\ti = index - 1;\n\t\t\tbreak;\n\n\t\t// Comment\n\t\tcase \"/\":\n\t\t\tif (ruleText.charAt(i + 1) === \"*\") {\n\t\t\t\ti += 2;\n\t\t\t\tindex = ruleText.indexOf(\"*/\", i);\n\t\t\t\tif (index === -1) {\n\t\t\t\t\tthrow new SyntaxError(\"Missing */\");\n\t\t\t\t} else {\n\t\t\t\t\ti = index + 1;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"{\":\n\t\t\tif (state === \"selector\") {\n\t\t\t\tstyleRule.selectorText = buffer.trim();\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"name\";\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \":\":\n\t\t\tif (state === \"name\") {\n\t\t\t\tname = buffer.trim();\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"value\";\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"!\":\n\t\t\tif (state === \"value\" && ruleText.indexOf(\"!important\", i) === i) {\n\t\t\t\tpriority = \"important\";\n\t\t\t\ti += \"important\".length;\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \";\":\n\t\t\tif (state === \"value\") {\n\t\t\t\tstyleRule.style.setProperty(name, buffer.trim(), priority);\n\t\t\t\tpriority = \"\";\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"name\";\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"}\":\n\t\t\tif (state === \"value\") {\n\t\t\t\tstyleRule.style.setProperty(name, buffer.trim(), priority);\n\t\t\t\tpriority = \"\";\n\t\t\t\tbuffer = \"\";\n\t\t\t} else if (state === \"name\") {\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tstate = \"selector\";\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tbuffer += character;\n\t\t\tbreak;\n\n\t\t}\n\t}\n\n\treturn styleRule;\n\n};\n\n\n//.CommonJS\nexports.CSSStyleRule = CSSOM.CSSStyleRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n\tStyleSheet: require(\"./StyleSheet\").StyleSheet,\n\tCSSStyleRule: require(\"./CSSStyleRule\").CSSStyleRule\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet\n */\nCSSOM.CSSStyleSheet = function CSSStyleSheet() {\n\tCSSOM.StyleSheet.call(this);\n\tthis.cssRules = [];\n};\n\n\nCSSOM.CSSStyleSheet.prototype = new CSSOM.StyleSheet();\nCSSOM.CSSStyleSheet.prototype.constructor = CSSOM.CSSStyleSheet;\n\n\n/**\n * Used to insert a new rule into the style sheet. The new rule now becomes part of the cascade.\n *\n * sheet = new Sheet(\"body {margin: 0}\")\n * sheet.toString()\n * -> \"body{margin:0;}\"\n * sheet.insertRule(\"img {border: none}\", 0)\n * -> 0\n * sheet.toString()\n * -> \"img{border:none;}body{margin:0;}\"\n *\n * @param {string} rule\n * @param {number} index\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet-insertRule\n * @return {number} The index within the style sheet's rule collection of the newly inserted rule.\n */\nCSSOM.CSSStyleSheet.prototype.insertRule = function(rule, index) {\n\tif (index < 0 || index > this.cssRules.length) {\n\t\tthrow new RangeError(\"INDEX_SIZE_ERR\");\n\t}\n\tvar cssRule = CSSOM.parse(rule).cssRules[0];\n\tcssRule.parentStyleSheet = this;\n\tthis.cssRules.splice(index, 0, cssRule);\n\treturn index;\n};\n\n\n/**\n * Used to delete a rule from the style sheet.\n *\n * sheet = new Sheet(\"img{border:none} body{margin:0}\")\n * sheet.toString()\n * -> \"img{border:none;}body{margin:0;}\"\n * sheet.deleteRule(0)\n * sheet.toString()\n * -> \"body{margin:0;}\"\n *\n * @param {number} index within the style sheet's rule list of the rule to remove.\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet-deleteRule\n */\nCSSOM.CSSStyleSheet.prototype.deleteRule = function(index) {\n\tif (index < 0 || index >= this.cssRules.length) {\n\t\tthrow new RangeError(\"INDEX_SIZE_ERR\");\n\t}\n\tthis.cssRules.splice(index, 1);\n};\n\n\n/**\n * NON-STANDARD\n * @return {string} serialize stylesheet\n */\nCSSOM.CSSStyleSheet.prototype.toString = function() {\n\tvar result = \"\";\n\tvar rules = this.cssRules;\n\tfor (var i=0; i<rules.length; i++) {\n\t\tresult += rules[i].cssText + \"\\n\";\n\t}\n\treturn result;\n};\n\n\n//.CommonJS\nexports.CSSStyleSheet = CSSOM.CSSStyleSheet;\nCSSOM.parse = require('./parse').parse; // Cannot be included sooner due to the mutual dependency between parse.js and CSSStyleSheet.js\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://dev.w3.org/csswg/cssom/#the-medialist-interface\n */\nCSSOM.MediaList = function MediaList(){\n\tthis.length = 0;\n};\n\nCSSOM.MediaList.prototype = {\n\n\tconstructor: CSSOM.MediaList,\n\n\t/**\n\t * @return {string}\n\t */\n\tget mediaText() {\n\t\treturn Array.prototype.join.call(this, \", \");\n\t},\n\n\t/**\n\t * @param {string} value\n\t */\n\tset mediaText(value) {\n\t\tvar values = value.split(\",\");\n\t\tvar length = this.length = values.length;\n\t\tfor (var i=0; i<length; i++) {\n\t\t\tthis[i] = values[i].trim();\n\t\t}\n\t},\n\n\t/**\n\t * @param {string} medium\n\t */\n\tappendMedium: function(medium) {\n\t\tif (Array.prototype.indexOf.call(this, medium) === -1) {\n\t\t\tthis[this.length] = medium;\n\t\t\tthis.length++;\n\t\t}\n\t},\n\n\t/**\n\t * @param {string} medium\n\t */\n\tdeleteMedium: function(medium) {\n\t\tvar index = Array.prototype.indexOf.call(this, medium);\n\t\tif (index !== -1) {\n\t\t\tArray.prototype.splice.call(this, index, 1);\n\t\t}\n\t}\n\n};\n\n\n//.CommonJS\nexports.MediaList = CSSOM.MediaList;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n\tCSSRule: require(\"./CSSRule\").CSSRule,\n\tCSSStyleSheet: require(\"./CSSStyleSheet\").CSSStyleSheet,\n\tMediaList: require(\"./MediaList\").MediaList\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://dev.w3.org/csswg/cssom/#cssimportrule\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSImportRule\n */\nCSSOM.CSSImportRule = function CSSImportRule() {\n\tCSSOM.CSSRule.call(this);\n\tthis.href = \"\";\n\tthis.media = new CSSOM.MediaList();\n\tthis.styleSheet = new CSSOM.CSSStyleSheet();\n};\n\nCSSOM.CSSImportRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSImportRule.prototype.constructor = CSSOM.CSSImportRule;\nCSSOM.CSSImportRule.prototype.type = 3;\n\nObject.defineProperty(CSSOM.CSSImportRule.prototype, \"cssText\", {\n get: function() {\n var mediaText = this.media.mediaText;\n return \"@import url(\" + this.href + \")\" + (mediaText ? \" \" + mediaText : \"\") + \";\";\n },\n set: function(cssText) {\n var i = 0;\n\n /**\n * @import url(partial.css) screen, handheld;\n * || |\n * after-import media\n * |\n * url\n */\n var state = '';\n\n var buffer = '';\n var index;\n for (var character; (character = cssText.charAt(i)); i++) {\n\n switch (character) {\n case ' ':\n case '\\t':\n case '\\r':\n case '\\n':\n case '\\f':\n if (state === 'after-import') {\n state = 'url';\n } else {\n buffer += character;\n }\n break;\n\n case '@':\n if (!state && cssText.indexOf('@import', i) === i) {\n state = 'after-import';\n i += 'import'.length;\n buffer = '';\n }\n break;\n\n case 'u':\n if (state === 'url' && cssText.indexOf('url(', i) === i) {\n index = cssText.indexOf(')', i + 1);\n if (index === -1) {\n throw i + ': \")\" not found';\n }\n i += 'url('.length;\n var url = cssText.slice(i, index);\n if (url[0] === url[url.length - 1]) {\n if (url[0] === '\"' || url[0] === \"'\") {\n url = url.slice(1, -1);\n }\n }\n this.href = url;\n i = index;\n state = 'media';\n }\n break;\n\n case '\"':\n if (state === 'url') {\n index = cssText.indexOf('\"', i + 1);\n if (!index) {\n throw i + \": '\\\"' not found\";\n }\n this.href = cssText.slice(i + 1, index);\n i = index;\n state = 'media';\n }\n break;\n\n case \"'\":\n if (state === 'url') {\n index = cssText.indexOf(\"'\", i + 1);\n if (!index) {\n throw i + ': \"\\'\" not found';\n }\n this.href = cssText.slice(i + 1, index);\n i = index;\n state = 'media';\n }\n break;\n\n case ';':\n if (state === 'media') {\n if (buffer) {\n this.media.mediaText = buffer.trim();\n }\n }\n break;\n\n default:\n if (state === 'media') {\n buffer += character;\n }\n break;\n }\n }\n }\n});\n\n\n//.CommonJS\nexports.CSSImportRule = CSSOM.CSSImportRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n\tCSSRule: require(\"./CSSRule\").CSSRule\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see https://drafts.csswg.org/cssom/#the-cssgroupingrule-interface\n */\nCSSOM.CSSGroupingRule = function CSSGroupingRule() {\n\tCSSOM.CSSRule.call(this);\n\tthis.cssRules = [];\n};\n\nCSSOM.CSSGroupingRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSGroupingRule.prototype.constructor = CSSOM.CSSGroupingRule;\n\n\n/**\n * Used to insert a new CSS rule to a list of CSS rules.\n *\n * @example\n * cssGroupingRule.cssText\n * -> \"body{margin:0;}\"\n * cssGroupingRule.insertRule(\"img{border:none;}\", 1)\n * -> 1\n * cssGroupingRule.cssText\n * -> \"body{margin:0;}img{border:none;}\"\n *\n * @param {string} rule\n * @param {number} [index]\n * @see https://www.w3.org/TR/cssom-1/#dom-cssgroupingrule-insertrule\n * @return {number} The index within the grouping rule's collection of the newly inserted rule.\n */\n CSSOM.CSSGroupingRule.prototype.insertRule = function insertRule(rule, index) {\n\tif (index < 0 || index > this.cssRules.length) {\n\t\tthrow new RangeError(\"INDEX_SIZE_ERR\");\n\t}\n\tvar cssRule = CSSOM.parse(rule).cssRules[0];\n\tcssRule.parentRule = this;\n\tthis.cssRules.splice(index, 0, cssRule);\n\treturn index;\n};\n\n/**\n * Used to delete a rule from the grouping rule.\n *\n * cssGroupingRule.cssText\n * -> \"img{border:none;}body{margin:0;}\"\n * cssGroupingRule.deleteRule(0)\n * cssGroupingRule.cssText\n * -> \"body{margin:0;}\"\n *\n * @param {number} index within the grouping rule's rule list of the rule to remove.\n * @see https://www.w3.org/TR/cssom-1/#dom-cssgroupingrule-deleterule\n */\n CSSOM.CSSGroupingRule.prototype.deleteRule = function deleteRule(index) {\n\tif (index < 0 || index >= this.cssRules.length) {\n\t\tthrow new RangeError(\"INDEX_SIZE_ERR\");\n\t}\n\tthis.cssRules.splice(index, 1)[0].parentRule = null;\n};\n\n//.CommonJS\nexports.CSSGroupingRule = CSSOM.CSSGroupingRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n CSSRule: require(\"./CSSRule\").CSSRule,\n CSSGroupingRule: require(\"./CSSGroupingRule\").CSSGroupingRule\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see https://www.w3.org/TR/css-conditional-3/#the-cssconditionrule-interface\n */\nCSSOM.CSSConditionRule = function CSSConditionRule() {\n CSSOM.CSSGroupingRule.call(this);\n this.cssRules = [];\n};\n\nCSSOM.CSSConditionRule.prototype = new CSSOM.CSSGroupingRule();\nCSSOM.CSSConditionRule.prototype.constructor = CSSOM.CSSConditionRule;\nCSSOM.CSSConditionRule.prototype.conditionText = ''\nCSSOM.CSSConditionRule.prototype.cssText = ''\n\n//.CommonJS\nexports.CSSConditionRule = CSSOM.CSSConditionRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n\tCSSRule: require(\"./CSSRule\").CSSRule,\n\tCSSGroupingRule: require(\"./CSSGroupingRule\").CSSGroupingRule,\n\tCSSConditionRule: require(\"./CSSConditionRule\").CSSConditionRule,\n\tMediaList: require(\"./MediaList\").MediaList\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://dev.w3.org/csswg/cssom/#cssmediarule\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSMediaRule\n */\nCSSOM.CSSMediaRule = function CSSMediaRule() {\n\tCSSOM.CSSConditionRule.call(this);\n\tthis.media = new CSSOM.MediaList();\n};\n\nCSSOM.CSSMediaRule.prototype = new CSSOM.CSSConditionRule();\nCSSOM.CSSMediaRule.prototype.constructor = CSSOM.CSSMediaRule;\nCSSOM.CSSMediaRule.prototype.type = 4;\n\n// https://opensource.apple.com/source/WebCore/WebCore-7611.1.21.161.3/css/CSSMediaRule.cpp\nObject.defineProperties(CSSOM.CSSMediaRule.prototype, {\n \"conditionText\": {\n get: function() {\n return this.media.mediaText;\n },\n set: function(value) {\n this.media.mediaText = value;\n },\n configurable: true,\n enumerable: true\n },\n \"cssText\": {\n get: function() {\n var cssTexts = [];\n for (var i=0, length=this.cssRules.length; i < length; i++) {\n cssTexts.push(this.cssRules[i].cssText);\n }\n return \"@media \" + this.media.mediaText + \" {\" + cssTexts.join(\"\") + \"}\";\n },\n configurable: true,\n enumerable: true\n }\n});\n\n\n//.CommonJS\nexports.CSSMediaRule = CSSOM.CSSMediaRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n CSSRule: require(\"./CSSRule\").CSSRule,\n CSSGroupingRule: require(\"./CSSGroupingRule\").CSSGroupingRule,\n CSSConditionRule: require(\"./CSSConditionRule\").CSSConditionRule\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see https://drafts.csswg.org/css-conditional-3/#the-csssupportsrule-interface\n */\nCSSOM.CSSSupportsRule = function CSSSupportsRule() {\n CSSOM.CSSConditionRule.call(this);\n};\n\nCSSOM.CSSSupportsRule.prototype = new CSSOM.CSSConditionRule();\nCSSOM.CSSSupportsRule.prototype.constructor = CSSOM.CSSSupportsRule;\nCSSOM.CSSSupportsRule.prototype.type = 12;\n\nObject.defineProperty(CSSOM.CSSSupportsRule.prototype, \"cssText\", {\n get: function() {\n var cssTexts = [];\n\n for (var i = 0, length = this.cssRules.length; i < length; i++) {\n cssTexts.push(this.cssRules[i].cssText);\n }\n\n return \"@supports \" + this.conditionText + \" {\" + cssTexts.join(\"\") + \"}\";\n }\n});\n\n//.CommonJS\nexports.CSSSupportsRule = CSSOM.CSSSupportsRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n\tCSSStyleDeclaration: require(\"./CSSStyleDeclaration\").CSSStyleDeclaration,\n\tCSSRule: require(\"./CSSRule\").CSSRule\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://dev.w3.org/csswg/cssom/#css-font-face-rule\n */\nCSSOM.CSSFontFaceRule = function CSSFontFaceRule() {\n\tCSSOM.CSSRule.call(this);\n\tthis.style = new CSSOM.CSSStyleDeclaration();\n\tthis.style.parentRule = this;\n};\n\nCSSOM.CSSFontFaceRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSFontFaceRule.prototype.constructor = CSSOM.CSSFontFaceRule;\nCSSOM.CSSFontFaceRule.prototype.type = 5;\n//FIXME\n//CSSOM.CSSFontFaceRule.prototype.insertRule = CSSStyleSheet.prototype.insertRule;\n//CSSOM.CSSFontFaceRule.prototype.deleteRule = CSSStyleSheet.prototype.deleteRule;\n\n// http://www.opensource.apple.com/source/WebCore/WebCore-955.66.1/css/WebKitCSSFontFaceRule.cpp\nObject.defineProperty(CSSOM.CSSFontFaceRule.prototype, \"cssText\", {\n get: function() {\n return \"@font-face {\" + this.style.cssText + \"}\";\n }\n});\n\n\n//.CommonJS\nexports.CSSFontFaceRule = CSSOM.CSSFontFaceRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n\tCSSRule: require(\"./CSSRule\").CSSRule\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://www.w3.org/TR/shadow-dom/#host-at-rule\n */\nCSSOM.CSSHostRule = function CSSHostRule() {\n\tCSSOM.CSSRule.call(this);\n\tthis.cssRules = [];\n};\n\nCSSOM.CSSHostRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSHostRule.prototype.constructor = CSSOM.CSSHostRule;\nCSSOM.CSSHostRule.prototype.type = 1001;\n//FIXME\n//CSSOM.CSSHostRule.prototype.insertRule = CSSStyleSheet.prototype.insertRule;\n//CSSOM.CSSHostRule.prototype.deleteRule = CSSStyleSheet.prototype.deleteRule;\n\nObject.defineProperty(CSSOM.CSSHostRule.prototype, \"cssText\", {\n\tget: function() {\n\t\tvar cssTexts = [];\n\t\tfor (var i=0, length=this.cssRules.length; i < length; i++) {\n\t\t\tcssTexts.push(this.cssRules[i].cssText);\n\t\t}\n\t\treturn \"@host {\" + cssTexts.join(\"\") + \"}\";\n\t}\n});\n\n\n//.CommonJS\nexports.CSSHostRule = CSSOM.CSSHostRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n\tCSSRule: require(\"./CSSRule\").CSSRule,\n\tCSSStyleDeclaration: require('./CSSStyleDeclaration').CSSStyleDeclaration\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://www.w3.org/TR/css3-animations/#DOM-CSSKeyframeRule\n */\nCSSOM.CSSKeyframeRule = function CSSKeyframeRule() {\n\tCSSOM.CSSRule.call(this);\n\tthis.keyText = '';\n\tthis.style = new CSSOM.CSSStyleDeclaration();\n\tthis.style.parentRule = this;\n};\n\nCSSOM.CSSKeyframeRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSKeyframeRule.prototype.constructor = CSSOM.CSSKeyframeRule;\nCSSOM.CSSKeyframeRule.prototype.type = 8;\n//FIXME\n//CSSOM.CSSKeyframeRule.prototype.insertRule = CSSStyleSheet.prototype.insertRule;\n//CSSOM.CSSKeyframeRule.prototype.deleteRule = CSSStyleSheet.prototype.deleteRule;\n\n// http://www.opensource.apple.com/source/WebCore/WebCore-955.66.1/css/WebKitCSSKeyframeRule.cpp\nObject.defineProperty(CSSOM.CSSKeyframeRule.prototype, \"cssText\", {\n get: function() {\n return this.keyText + \" {\" + this.style.cssText + \"} \";\n }\n});\n\n\n//.CommonJS\nexports.CSSKeyframeRule = CSSOM.CSSKeyframeRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n\tCSSRule: require(\"./CSSRule\").CSSRule\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://www.w3.org/TR/css3-animations/#DOM-CSSKeyframesRule\n */\nCSSOM.CSSKeyframesRule = function CSSKeyframesRule() {\n\tCSSOM.CSSRule.call(this);\n\tthis.name = '';\n\tthis.cssRules = [];\n};\n\nCSSOM.CSSKeyframesRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSKeyframesRule.prototype.constructor = CSSOM.CSSKeyframesRule;\nCSSOM.CSSKeyframesRule.prototype.type = 7;\n//FIXME\n//CSSOM.CSSKeyframesRule.prototype.insertRule = CSSStyleSheet.prototype.insertRule;\n//CSSOM.CSSKeyframesRule.prototype.deleteRule = CSSStyleSheet.prototype.deleteRule;\n\n// http://www.opensource.apple.com/source/WebCore/WebCore-955.66.1/css/WebKitCSSKeyframesRule.cpp\nObject.defineProperty(CSSOM.CSSKeyframesRule.prototype, \"cssText\", {\n get: function() {\n var cssTexts = [];\n for (var i=0, length=this.cssRules.length; i < length; i++) {\n cssTexts.push(\" \" + this.cssRules[i].cssText);\n }\n return \"@\" + (this._vendorPrefix || '') + \"keyframes \" + this.name + \" { \\n\" + cssTexts.join(\"\\n\") + \"\\n}\";\n }\n});\n\n\n//.CommonJS\nexports.CSSKeyframesRule = CSSOM.CSSKeyframesRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSValue\n *\n * TODO: add if needed\n */\nCSSOM.CSSValue = function CSSValue() {\n};\n\nCSSOM.CSSValue.prototype = {\n\tconstructor: CSSOM.CSSValue,\n\n\t// @see: http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSValue\n\tset cssText(text) {\n\t\tvar name = this._getConstructorName();\n\n\t\tthrow new Error('DOMException: property \"cssText\" of \"' + name + '\" is readonly and can not be replaced with \"' + text + '\"!');\n\t},\n\n\tget cssText() {\n\t\tvar name = this._getConstructorName();\n\n\t\tthrow new Error('getter \"cssText\" of \"' + name + '\" is not implemented!');\n\t},\n\n\t_getConstructorName: function() {\n\t\tvar s = this.constructor.toString(),\n\t\t\t\tc = s.match(/function\\s([^\\(]+)/),\n\t\t\t\tname = c[1];\n\n\t\treturn name;\n\t}\n};\n\n\n//.CommonJS\nexports.CSSValue = CSSOM.CSSValue;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n\tCSSValue: require('./CSSValue').CSSValue\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://msdn.microsoft.com/en-us/library/ms537634(v=vs.85).aspx\n *\n */\nCSSOM.CSSValueExpression = function CSSValueExpression(token, idx) {\n\tthis._token = token;\n\tthis._idx = idx;\n};\n\nCSSOM.CSSValueExpression.prototype = new CSSOM.CSSValue();\nCSSOM.CSSValueExpression.prototype.constructor = CSSOM.CSSValueExpression;\n\n/**\n * parse css expression() value\n *\n * @return {Object}\n * - error:\n * or\n * - idx:\n * - expression:\n *\n * Example:\n *\n * .selector {\n *\t\tzoom: expression(documentElement.clientWidth > 1000 ? '1000px' : 'auto');\n * }\n */\nCSSOM.CSSValueExpression.prototype.parse = function() {\n\tvar token = this._token,\n\t\t\tidx = this._idx;\n\n\tvar character = '',\n\t\t\texpression = '',\n\t\t\terror = '',\n\t\t\tinfo,\n\t\t\tparen = [];\n\n\n\tfor (; ; ++idx) {\n\t\tcharacter = token.charAt(idx);\n\n\t\t// end of token\n\t\tif (character === '') {\n\t\t\terror = 'css expression error: unfinished expression!';\n\t\t\tbreak;\n\t\t}\n\n\t\tswitch(character) {\n\t\t\tcase '(':\n\t\t\t\tparen.push(character);\n\t\t\t\texpression += character;\n\t\t\t\tbreak;\n\n\t\t\tcase ')':\n\t\t\t\tparen.pop(character);\n\t\t\t\texpression += character;\n\t\t\t\tbreak;\n\n\t\t\tcase '/':\n\t\t\t\tif ((info = this._parseJSComment(token, idx))) { // comment?\n\t\t\t\t\tif (info.error) {\n\t\t\t\t\t\terror = 'css expression error: unfinished comment in expression!';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tidx = info.idx;\n\t\t\t\t\t\t// ignore the comment\n\t\t\t\t\t}\n\t\t\t\t} else if ((info = this._parseJSRexExp(token, idx))) { // regexp\n\t\t\t\t\tidx = info.idx;\n\t\t\t\t\texpression += info.text;\n\t\t\t\t} else { // other\n\t\t\t\t\texpression += character;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase \"'\":\n\t\t\tcase '\"':\n\t\t\t\tinfo = this._parseJSString(token, idx, character);\n\t\t\t\tif (info) { // string\n\t\t\t\t\tidx = info.idx;\n\t\t\t\t\texpression += info.text;\n\t\t\t\t} else {\n\t\t\t\t\texpression += character;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\texpression += character;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif (error) {\n\t\t\tbreak;\n\t\t}\n\n\t\t// end of expression\n\t\tif (paren.length === 0) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tvar ret;\n\tif (error) {\n\t\tret = {\n\t\t\terror: error\n\t\t};\n\t} else {\n\t\tret = {\n\t\t\tidx: idx,\n\t\t\texpression: expression\n\t\t};\n\t}\n\n\treturn ret;\n};\n\n\n/**\n *\n * @return {Object|false}\n * - idx:\n * - text:\n * or\n * - error:\n * or\n * false\n *\n */\nCSSOM.CSSValueExpression.prototype._parseJSComment = function(token, idx) {\n\tvar nextChar = token.charAt(idx + 1),\n\t\t\ttext;\n\n\tif (nextChar === '/' || nextChar === '*') {\n\t\tvar startIdx = idx,\n\t\t\t\tendIdx,\n\t\t\t\tcommentEndChar;\n\n\t\tif (nextChar === '/') { // line comment\n\t\t\tcommentEndChar = '\\n';\n\t\t} else if (nextChar === '*') { // block comment\n\t\t\tcommentEndChar = '*/';\n\t\t}\n\n\t\tendIdx = token.indexOf(commentEndChar, startIdx + 1 + 1);\n\t\tif (endIdx !== -1) {\n\t\t\tendIdx = endIdx + commentEndChar.length - 1;\n\t\t\ttext = token.substring(idx, endIdx + 1);\n\t\t\treturn {\n\t\t\t\tidx: endIdx,\n\t\t\t\ttext: text\n\t\t\t};\n\t\t} else {\n\t\t\tvar error = 'css expression error: unfinished comment in expression!';\n\t\t\treturn {\n\t\t\t\terror: error\n\t\t\t};\n\t\t}\n\t} else {\n\t\treturn false;\n\t}\n};\n\n\n/**\n *\n * @return {Object|false}\n *\t\t\t\t\t- idx:\n *\t\t\t\t\t- text:\n *\t\t\t\t\tor \n *\t\t\t\t\tfalse\n *\n */\nCSSOM.CSSValueExpression.prototype._parseJSString = function(token, idx, sep) {\n\tvar endIdx = this._findMatchedIdx(token, idx, sep),\n\t\t\ttext;\n\n\tif (endIdx === -1) {\n\t\treturn false;\n\t} else {\n\t\ttext = token.substring(idx, endIdx + sep.length);\n\n\t\treturn {\n\t\t\tidx: endIdx,\n\t\t\ttext: text\n\t\t};\n\t}\n};\n\n\n/**\n * parse regexp in css expression\n *\n * @return {Object|false}\n *\t\t\t\t- idx:\n *\t\t\t\t- regExp:\n *\t\t\t\tor \n *\t\t\t\tfalse\n */\n\n/*\n\nall legal RegExp\n \n/a/\n(/a/)\n[/a/]\n[12, /a/]\n\n!/a/\n\n+/a/\n-/a/\n* /a/\n/ /a/\n%/a/\n\n===/a/\n!==/a/\n==/a/\n!=/a/\n>/a/\n>=/a/\n</a/\n<=/a/\n\n&/a/\n|/a/\n^/a/\n~/a/\n<</a/\n>>/a/\n>>>/a/\n\n&&/a/\n||/a/\n?/a/\n=/a/\n,/a/\n\n\t\tdelete /a/\n\t\t\t\tin /a/\ninstanceof /a/\n\t\t\t\tnew /a/\n\t\ttypeof /a/\n\t\t\tvoid /a/\n\n*/\nCSSOM.CSSValueExpression.prototype._parseJSRexExp = function(token, idx) {\n\tvar before = token.substring(0, idx).replace(/\\s+$/, \"\"),\n\t\t\tlegalRegx = [\n\t\t\t\t/^$/,\n\t\t\t\t/\\($/,\n\t\t\t\t/\\[$/,\n\t\t\t\t/\\!$/,\n\t\t\t\t/\\+$/,\n\t\t\t\t/\\-$/,\n\t\t\t\t/\\*$/,\n\t\t\t\t/\\/\\s+/,\n\t\t\t\t/\\%$/,\n\t\t\t\t/\\=$/,\n\t\t\t\t/\\>$/,\n\t\t\t\t/<$/,\n\t\t\t\t/\\&$/,\n\t\t\t\t/\\|$/,\n\t\t\t\t/\\^$/,\n\t\t\t\t/\\~$/,\n\t\t\t\t/\\?$/,\n\t\t\t\t/\\,$/,\n\t\t\t\t/delete$/,\n\t\t\t\t/in$/,\n\t\t\t\t/instanceof$/,\n\t\t\t\t/new$/,\n\t\t\t\t/typeof$/,\n\t\t\t\t/void$/\n\t\t\t];\n\n\tvar isLegal = legalRegx.some(function(reg) {\n\t\treturn reg.test(before);\n\t});\n\n\tif (!isLegal) {\n\t\treturn false;\n\t} else {\n\t\tvar sep = '/';\n\n\t\t// same logic as string\n\t\treturn this._parseJSString(token, idx, sep);\n\t}\n};\n\n\n/**\n *\n * find next sep(same line) index in `token`\n *\n * @return {Number}\n *\n */\nCSSOM.CSSValueExpression.prototype._findMatchedIdx = function(token, idx, sep) {\n\tvar startIdx = idx,\n\t\t\tendIdx;\n\n\tvar NOT_FOUND = -1;\n\n\twhile(true) {\n\t\tendIdx = token.indexOf(sep, startIdx + 1);\n\n\t\tif (endIdx === -1) { // not found\n\t\t\tendIdx = NOT_FOUND;\n\t\t\tbreak;\n\t\t} else {\n\t\t\tvar text = token.substring(idx + 1, endIdx),\n\t\t\t\t\tmatched = text.match(/\\\\+$/);\n\t\t\tif (!matched || matched[0] % 2 === 0) { // not escaped\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tstartIdx = endIdx;\n\t\t\t}\n\t\t}\n\t}\n\n\t// boundary must be in the same line(js sting or regexp)\n\tvar nextNewLineIdx = token.indexOf('\\n', idx + 1);\n\tif (nextNewLineIdx < endIdx) {\n\t\tendIdx = NOT_FOUND;\n\t}\n\n\n\treturn endIdx;\n};\n\n\n\n\n//.CommonJS\nexports.CSSValueExpression = CSSOM.CSSValueExpression;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {};\n///CommonJS\n\n\n/**\n * @constructor\n * @see https://developer.mozilla.org/en/CSS/@-moz-document\n */\nCSSOM.MatcherList = function MatcherList(){\n this.length = 0;\n};\n\nCSSOM.MatcherList.prototype = {\n\n constructor: CSSOM.MatcherList,\n\n /**\n * @return {string}\n */\n get matcherText() {\n return Array.prototype.join.call(this, \", \");\n },\n\n /**\n * @param {string} value\n */\n set matcherText(value) {\n // just a temporary solution, actually it may be wrong by just split the value with ',', because a url can include ','.\n var values = value.split(\",\");\n var length = this.length = values.length;\n for (var i=0; i<length; i++) {\n this[i] = values[i].trim();\n }\n },\n\n /**\n * @param {string} matcher\n */\n appendMatcher: function(matcher) {\n if (Array.prototype.indexOf.call(this, matcher) === -1) {\n this[this.length] = matcher;\n this.length++;\n }\n },\n\n /**\n * @param {string} matcher\n */\n deleteMatcher: function(matcher) {\n var index = Array.prototype.indexOf.call(this, matcher);\n if (index !== -1) {\n Array.prototype.splice.call(this, index, 1);\n }\n }\n\n};\n\n\n//.CommonJS\nexports.MatcherList = CSSOM.MatcherList;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n CSSRule: require(\"./CSSRule\").CSSRule,\n MatcherList: require(\"./MatcherList\").MatcherList\n};\n///CommonJS\n\n\n/**\n * @constructor\n * @see https://developer.mozilla.org/en/CSS/@-moz-document\n */\nCSSOM.CSSDocumentRule = function CSSDocumentRule() {\n CSSOM.CSSRule.call(this);\n this.matcher = new CSSOM.MatcherList();\n this.cssRules = [];\n};\n\nCSSOM.CSSDocumentRule.prototype = new CSSOM.CSSRule();\nCSSOM.CSSDocumentRule.prototype.constructor = CSSOM.CSSDocumentRule;\nCSSOM.CSSDocumentRule.prototype.type = 10;\n//FIXME\n//CSSOM.CSSDocumentRule.prototype.insertRule = CSSStyleSheet.prototype.insertRule;\n//CSSOM.CSSDocumentRule.prototype.deleteRule = CSSStyleSheet.prototype.deleteRule;\n\nObject.defineProperty(CSSOM.CSSDocumentRule.prototype, \"cssText\", {\n get: function() {\n var cssTexts = [];\n for (var i=0, length=this.cssRules.length; i < length; i++) {\n cssTexts.push(this.cssRules[i].cssText);\n }\n return \"@-moz-document \" + this.matcher.matcherText + \" {\" + cssTexts.join(\"\") + \"}\";\n }\n});\n\n\n//.CommonJS\nexports.CSSDocumentRule = CSSOM.CSSDocumentRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {};\n///CommonJS\n\n\n/**\n * @param {string} token\n */\nCSSOM.parse = function parse(token) {\n\n\tvar i = 0;\n\n\t/**\n\t\t\"before-selector\" or\n\t\t\"selector\" or\n\t\t\"atRule\" or\n\t\t\"atBlock\" or\n\t\t\"conditionBlock\" or\n\t\t\"before-name\" or\n\t\t\"name\" or\n\t\t\"before-value\" or\n\t\t\"value\"\n\t*/\n\tvar state = \"before-selector\";\n\n\tvar index;\n\tvar buffer = \"\";\n\tvar valueParenthesisDepth = 0;\n\n\tvar SIGNIFICANT_WHITESPACE = {\n\t\t\"selector\": true,\n\t\t\"value\": true,\n\t\t\"value-parenthesis\": true,\n\t\t\"atRule\": true,\n\t\t\"importRule-begin\": true,\n\t\t\"importRule\": true,\n\t\t\"atBlock\": true,\n\t\t\"conditionBlock\": true,\n\t\t'documentRule-begin': true\n\t};\n\n\tvar styleSheet = new CSSOM.CSSStyleSheet();\n\n\t// @type CSSStyleSheet|CSSMediaRule|CSSSupportsRule|CSSFontFaceRule|CSSKeyframesRule|CSSDocumentRule\n\tvar currentScope = styleSheet;\n\n\t// @type CSSMediaRule|CSSSupportsRule|CSSKeyframesRule|CSSDocumentRule\n\tvar parentRule;\n\n\tvar ancestorRules = [];\n\tvar hasAncestors = false;\n\tvar prevScope;\n\n\tvar name, priority=\"\", styleRule, mediaRule, supportsRule, importRule, fontFaceRule, keyframesRule, documentRule, hostRule;\n\n\tvar atKeyframesRegExp = /@(-(?:\\w+-)+)?keyframes/g;\n\n\tvar parseError = function(message) {\n\t\tvar lines = token.substring(0, i).split('\\n');\n\t\tvar lineCount = lines.length;\n\t\tvar charCount = lines.pop().length + 1;\n\t\tvar error = new Error(message + ' (line ' + lineCount + ', char ' + charCount + ')');\n\t\terror.line = lineCount;\n\t\t/* jshint sub : true */\n\t\terror['char'] = charCount;\n\t\terror.styleSheet = styleSheet;\n\t\tthrow error;\n\t};\n\n\tfor (var character; (character = token.charAt(i)); i++) {\n\n\t\tswitch (character) {\n\n\t\tcase \" \":\n\t\tcase \"\\t\":\n\t\tcase \"\\r\":\n\t\tcase \"\\n\":\n\t\tcase \"\\f\":\n\t\t\tif (SIGNIFICANT_WHITESPACE[state]) {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\t// String\n\t\tcase '\"':\n\t\t\tindex = i + 1;\n\t\t\tdo {\n\t\t\t\tindex = token.indexOf('\"', index) + 1;\n\t\t\t\tif (!index) {\n\t\t\t\t\tparseError('Unmatched \"');\n\t\t\t\t}\n\t\t\t} while (token[index - 2] === '\\\\');\n\t\t\tbuffer += token.slice(i, index);\n\t\t\ti = index - 1;\n\t\t\tswitch (state) {\n\t\t\t\tcase 'before-value':\n\t\t\t\t\tstate = 'value';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'importRule-begin':\n\t\t\t\t\tstate = 'importRule';\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"'\":\n\t\t\tindex = i + 1;\n\t\t\tdo {\n\t\t\t\tindex = token.indexOf(\"'\", index) + 1;\n\t\t\t\tif (!index) {\n\t\t\t\t\tparseError(\"Unmatched '\");\n\t\t\t\t}\n\t\t\t} while (token[index - 2] === '\\\\');\n\t\t\tbuffer += token.slice(i, index);\n\t\t\ti = index - 1;\n\t\t\tswitch (state) {\n\t\t\t\tcase 'before-value':\n\t\t\t\t\tstate = 'value';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'importRule-begin':\n\t\t\t\t\tstate = 'importRule';\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\n\t\t// Comment\n\t\tcase \"/\":\n\t\t\tif (token.charAt(i + 1) === \"*\") {\n\t\t\t\ti += 2;\n\t\t\t\tindex = token.indexOf(\"*/\", i);\n\t\t\t\tif (index === -1) {\n\t\t\t\t\tparseError(\"Missing */\");\n\t\t\t\t} else {\n\t\t\t\t\ti = index + 1;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tif (state === \"importRule-begin\") {\n\t\t\t\tbuffer += \" \";\n\t\t\t\tstate = \"importRule\";\n\t\t\t}\n\t\t\tbreak;\n\n\t\t// At-rule\n\t\tcase \"@\":\n\t\t\tif (token.indexOf(\"@-moz-document\", i) === i) {\n\t\t\t\tstate = \"documentRule-begin\";\n\t\t\t\tdocumentRule = new CSSOM.CSSDocumentRule();\n\t\t\t\tdocumentRule.__starts = i;\n\t\t\t\ti += \"-moz-document\".length;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tbreak;\n\t\t\t} else if (token.indexOf(\"@media\", i) === i) {\n\t\t\t\tstate = \"atBlock\";\n\t\t\t\tmediaRule = new CSSOM.CSSMediaRule();\n\t\t\t\tmediaRule.__starts = i;\n\t\t\t\ti += \"media\".length;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tbreak;\n\t\t\t} else if (token.indexOf(\"@supports\", i) === i) {\n\t\t\t\tstate = \"conditionBlock\";\n\t\t\t\tsupportsRule = new CSSOM.CSSSupportsRule();\n\t\t\t\tsupportsRule.__starts = i;\n\t\t\t\ti += \"supports\".length;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tbreak;\n\t\t\t} else if (token.indexOf(\"@host\", i) === i) {\n\t\t\t\tstate = \"hostRule-begin\";\n\t\t\t\ti += \"host\".length;\n\t\t\t\thostRule = new CSSOM.CSSHostRule();\n\t\t\t\thostRule.__starts = i;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tbreak;\n\t\t\t} else if (token.indexOf(\"@import\", i) === i) {\n\t\t\t\tstate = \"importRule-begin\";\n\t\t\t\ti += \"import\".length;\n\t\t\t\tbuffer += \"@import\";\n\t\t\t\tbreak;\n\t\t\t} else if (token.indexOf(\"@font-face\", i) === i) {\n\t\t\t\tstate = \"fontFaceRule-begin\";\n\t\t\t\ti += \"font-face\".length;\n\t\t\t\tfontFaceRule = new CSSOM.CSSFontFaceRule();\n\t\t\t\tfontFaceRule.__starts = i;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tatKeyframesRegExp.lastIndex = i;\n\t\t\t\tvar matchKeyframes = atKeyframesRegExp.exec(token);\n\t\t\t\tif (matchKeyframes && matchKeyframes.index === i) {\n\t\t\t\t\tstate = \"keyframesRule-begin\";\n\t\t\t\t\tkeyframesRule = new CSSOM.CSSKeyframesRule();\n\t\t\t\t\tkeyframesRule.__starts = i;\n\t\t\t\t\tkeyframesRule._vendorPrefix = matchKeyframes[1]; // Will come out as undefined if no prefix was found\n\t\t\t\t\ti += matchKeyframes[0].length - 1;\n\t\t\t\t\tbuffer = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (state === \"selector\") {\n\t\t\t\t\tstate = \"atRule\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuffer += character;\n\t\t\tbreak;\n\n\t\tcase \"{\":\n\t\t\tif (state === \"selector\" || state === \"atRule\") {\n\t\t\t\tstyleRule.selectorText = buffer.trim();\n\t\t\t\tstyleRule.style.__starts = i;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-name\";\n\t\t\t} else if (state === \"atBlock\") {\n\t\t\t\tmediaRule.media.mediaText = buffer.trim();\n\n\t\t\t\tif (parentRule) {\n\t\t\t\t\tancestorRules.push(parentRule);\n\t\t\t\t}\n\n\t\t\t\tcurrentScope = parentRule = mediaRule;\n\t\t\t\tmediaRule.parentStyleSheet = styleSheet;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-selector\";\n\t\t\t} else if (state === \"conditionBlock\") {\n\t\t\t\tsupportsRule.conditionText = buffer.trim();\n\n\t\t\t\tif (parentRule) {\n\t\t\t\t\tancestorRules.push(parentRule);\n\t\t\t\t}\n\n\t\t\t\tcurrentScope = parentRule = supportsRule;\n\t\t\t\tsupportsRule.parentStyleSheet = styleSheet;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-selector\";\n\t\t\t} else if (state === \"hostRule-begin\") {\n\t\t\t\tif (parentRule) {\n\t\t\t\t\tancestorRules.push(parentRule);\n\t\t\t\t}\n\n\t\t\t\tcurrentScope = parentRule = hostRule;\n\t\t\t\thostRule.parentStyleSheet = styleSheet;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-selector\";\n\t\t\t} else if (state === \"fontFaceRule-begin\") {\n\t\t\t\tif (parentRule) {\n\t\t\t\t\tfontFaceRule.parentRule = parentRule;\n\t\t\t\t}\n\t\t\t\tfontFaceRule.parentStyleSheet = styleSheet;\n\t\t\t\tstyleRule = fontFaceRule;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-name\";\n\t\t\t} else if (state === \"keyframesRule-begin\") {\n\t\t\t\tkeyframesRule.name = buffer.trim();\n\t\t\t\tif (parentRule) {\n\t\t\t\t\tancestorRules.push(parentRule);\n\t\t\t\t\tkeyframesRule.parentRule = parentRule;\n\t\t\t\t}\n\t\t\t\tkeyframesRule.parentStyleSheet = styleSheet;\n\t\t\t\tcurrentScope = parentRule = keyframesRule;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"keyframeRule-begin\";\n\t\t\t} else if (state === \"keyframeRule-begin\") {\n\t\t\t\tstyleRule = new CSSOM.CSSKeyframeRule();\n\t\t\t\tstyleRule.keyText = buffer.trim();\n\t\t\t\tstyleRule.__starts = i;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-name\";\n\t\t\t} else if (state === \"documentRule-begin\") {\n\t\t\t\t// FIXME: what if this '{' is in the url text of the match function?\n\t\t\t\tdocumentRule.matcher.matcherText = buffer.trim();\n\t\t\t\tif (parentRule) {\n\t\t\t\t\tancestorRules.push(parentRule);\n\t\t\t\t\tdocumentRule.parentRule = parentRule;\n\t\t\t\t}\n\t\t\t\tcurrentScope = parentRule = documentRule;\n\t\t\t\tdocumentRule.parentStyleSheet = styleSheet;\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-selector\";\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \":\":\n\t\t\tif (state === \"name\") {\n\t\t\t\tname = buffer.trim();\n\t\t\t\tbuffer = \"\";\n\t\t\t\tstate = \"before-value\";\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"(\":\n\t\t\tif (state === 'value') {\n\t\t\t\t// ie css expression mode\n\t\t\t\tif (buffer.trim() === 'expression') {\n\t\t\t\t\tvar info = (new CSSOM.CSSValueExpression(token, i)).parse();\n\n\t\t\t\t\tif (info.error) {\n\t\t\t\t\t\tparseError(info.error);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbuffer += info.expression;\n\t\t\t\t\t\ti = info.idx;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tstate = 'value-parenthesis';\n\t\t\t\t\t//always ensure this is reset to 1 on transition\n\t\t\t\t\t//from value to value-parenthesis\n\t\t\t\t\tvalueParenthesisDepth = 1;\n\t\t\t\t\tbuffer += character;\n\t\t\t\t}\n\t\t\t} else if (state === 'value-parenthesis') {\n\t\t\t\tvalueParenthesisDepth++;\n\t\t\t\tbuffer += character;\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \")\":\n\t\t\tif (state === 'value-parenthesis') {\n\t\t\t\tvalueParenthesisDepth--;\n\t\t\t\tif (valueParenthesisDepth === 0) state = 'value';\n\t\t\t}\n\t\t\tbuffer += character;\n\t\t\tbreak;\n\n\t\tcase \"!\":\n\t\t\tif (state === \"value\" && token.indexOf(\"!important\", i) === i) {\n\t\t\t\tpriority = \"important\";\n\t\t\t\ti += \"important\".length;\n\t\t\t} else {\n\t\t\t\tbuffer += character;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \";\":\n\t\t\tswitch (state) {\n\t\t\t\tcase \"value\":\n\t\t\t\t\tstyleRule.style.setProperty(name, buffer.trim(), priority);\n\t\t\t\t\tpriority = \"\";\n\t\t\t\t\tbuffer = \"\";\n\t\t\t\t\tstate = \"before-name\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"atRule\":\n\t\t\t\t\tbuffer = \"\";\n\t\t\t\t\tstate = \"before-selector\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"importRule\":\n\t\t\t\t\timportRule = new CSSOM.CSSImportRule();\n\t\t\t\t\timportRule.parentStyleSheet = importRule.styleSheet.parentStyleSheet = styleSheet;\n\t\t\t\t\timportRule.cssText = buffer + character;\n\t\t\t\t\tstyleSheet.cssRules.push(importRule);\n\t\t\t\t\tbuffer = \"\";\n\t\t\t\t\tstate = \"before-selector\";\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbuffer += character;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"}\":\n\t\t\tswitch (state) {\n\t\t\t\tcase \"value\":\n\t\t\t\t\tstyleRule.style.setProperty(name, buffer.trim(), priority);\n\t\t\t\t\tpriority = \"\";\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase \"before-name\":\n\t\t\t\tcase \"name\":\n\t\t\t\t\tstyleRule.__ends = i + 1;\n\t\t\t\t\tif (parentRule) {\n\t\t\t\t\t\tstyleRule.parentRule = parentRule;\n\t\t\t\t\t}\n\t\t\t\t\tstyleRule.parentStyleSheet = styleSheet;\n\t\t\t\t\tcurrentScope.cssRules.push(styleRule);\n\t\t\t\t\tbuffer = \"\";\n\t\t\t\t\tif (currentScope.constructor === CSSOM.CSSKeyframesRule) {\n\t\t\t\t\t\tstate = \"keyframeRule-begin\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"before-selector\";\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"keyframeRule-begin\":\n\t\t\t\tcase \"before-selector\":\n\t\t\t\tcase \"selector\":\n\t\t\t\t\t// End of media/supports/document rule.\n\t\t\t\t\tif (!parentRule) {\n\t\t\t\t\t\tparseError(\"Unexpected }\");\n\t\t\t\t\t}\n\n\t\t\t\t\t// Handle rules nested in @media or @supports\n\t\t\t\t\thasAncestors = ancestorRules.length > 0;\n\n\t\t\t\t\twhile (ancestorRules.length > 0) {\n\t\t\t\t\t\tparentRule = ancestorRules.pop();\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tparentRule.constructor.name === \"CSSMediaRule\"\n\t\t\t\t\t\t\t|| parentRule.constructor.name === \"CSSSupportsRule\"\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tprevScope = currentScope;\n\t\t\t\t\t\t\tcurrentScope = parentRule;\n\t\t\t\t\t\t\tcurrentScope.cssRules.push(prevScope);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (ancestorRules.length === 0) {\n\t\t\t\t\t\t\thasAncestors = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (!hasAncestors) {\n\t\t\t\t\t\tcurrentScope.__ends = i + 1;\n\t\t\t\t\t\tstyleSheet.cssRules.push(currentScope);\n\t\t\t\t\t\tcurrentScope = styleSheet;\n\t\t\t\t\t\tparentRule = null;\n\t\t\t\t\t}\n\n\t\t\t\t\tbuffer = \"\";\n\t\t\t\t\tstate = \"before-selector\";\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tswitch (state) {\n\t\t\t\tcase \"before-selector\":\n\t\t\t\t\tstate = \"selector\";\n\t\t\t\t\tstyleRule = new CSSOM.CSSStyleRule();\n\t\t\t\t\tstyleRule.__starts = i;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"before-name\":\n\t\t\t\t\tstate = \"name\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"before-value\":\n\t\t\t\t\tstate = \"value\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"importRule-begin\":\n\t\t\t\t\tstate = \"importRule\";\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbuffer += character;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn styleSheet;\n};\n\n\n//.CommonJS\nexports.parse = CSSOM.parse;\n// The following modules cannot be included sooner due to the mutual dependency with parse.js\nCSSOM.CSSStyleSheet = require(\"./CSSStyleSheet\").CSSStyleSheet;\nCSSOM.CSSStyleRule = require(\"./CSSStyleRule\").CSSStyleRule;\nCSSOM.CSSImportRule = require(\"./CSSImportRule\").CSSImportRule;\nCSSOM.CSSGroupingRule = require(\"./CSSGroupingRule\").CSSGroupingRule;\nCSSOM.CSSMediaRule = require(\"./CSSMediaRule\").CSSMediaRule;\nCSSOM.CSSConditionRule = require(\"./CSSConditionRule\").CSSConditionRule;\nCSSOM.CSSSupportsRule = require(\"./CSSSupportsRule\").CSSSupportsRule;\nCSSOM.CSSFontFaceRule = require(\"./CSSFontFaceRule\").CSSFontFaceRule;\nCSSOM.CSSHostRule = require(\"./CSSHostRule\").CSSHostRule;\nCSSOM.CSSStyleDeclaration = require('./CSSStyleDeclaration').CSSStyleDeclaration;\nCSSOM.CSSKeyframeRule = require('./CSSKeyframeRule').CSSKeyframeRule;\nCSSOM.CSSKeyframesRule = require('./CSSKeyframesRule').CSSKeyframesRule;\nCSSOM.CSSValueExpression = require('./CSSValueExpression').CSSValueExpression;\nCSSOM.CSSDocumentRule = require('./CSSDocumentRule').CSSDocumentRule;\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {};\n///CommonJS\n\n\n/**\n * @constructor\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration\n */\nCSSOM.CSSStyleDeclaration = function CSSStyleDeclaration(){\n\tthis.length = 0;\n\tthis.parentRule = null;\n\n\t// NON-STANDARD\n\tthis._importants = {};\n};\n\n\nCSSOM.CSSStyleDeclaration.prototype = {\n\n\tconstructor: CSSOM.CSSStyleDeclaration,\n\n\t/**\n\t *\n\t * @param {string} name\n\t * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-getPropertyValue\n\t * @return {string} the value of the property if it has been explicitly set for this declaration block.\n\t * Returns the empty string if the property has not been set.\n\t */\n\tgetPropertyValue: function(name) {\n\t\treturn this[name] || \"\";\n\t},\n\n\t/**\n\t *\n\t * @param {string} name\n\t * @param {string} value\n\t * @param {string} [priority=null] \"important\" or null\n\t * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-setProperty\n\t */\n\tsetProperty: function(name, value, priority) {\n\t\tif (this[name]) {\n\t\t\t// Property already exist. Overwrite it.\n\t\t\tvar index = Array.prototype.indexOf.call(this, name);\n\t\t\tif (index < 0) {\n\t\t\t\tthis[this.length] = name;\n\t\t\t\tthis.length++;\n\t\t\t}\n\t\t} else {\n\t\t\t// New property.\n\t\t\tthis[this.length] = name;\n\t\t\tthis.length++;\n\t\t}\n\t\tthis[name] = value + \"\";\n\t\tthis._importants[name] = priority;\n\t},\n\n\t/**\n\t *\n\t * @param {string} name\n\t * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-removeProperty\n\t * @return {string} the value of the property if it has been explicitly set for this declaration block.\n\t * Returns the empty string if the property has not been set or the property name does not correspond to a known CSS property.\n\t */\n\tremoveProperty: function(name) {\n\t\tif (!(name in this)) {\n\t\t\treturn \"\";\n\t\t}\n\t\tvar index = Array.prototype.indexOf.call(this, name);\n\t\tif (index < 0) {\n\t\t\treturn \"\";\n\t\t}\n\t\tvar prevValue = this[name];\n\t\tthis[name] = \"\";\n\n\t\t// That's what WebKit and Opera do\n\t\tArray.prototype.splice.call(this, index, 1);\n\n\t\t// That's what Firefox does\n\t\t//this[index] = \"\"\n\n\t\treturn prevValue;\n\t},\n\n\tgetPropertyCSSValue: function() {\n\t\t//FIXME\n\t},\n\n\t/**\n\t *\n\t * @param {String} name\n\t */\n\tgetPropertyPriority: function(name) {\n\t\treturn this._importants[name] || \"\";\n\t},\n\n\n\t/**\n\t * element.style.overflow = \"auto\"\n\t * element.style.getPropertyShorthand(\"overflow-x\")\n\t * -> \"overflow\"\n\t */\n\tgetPropertyShorthand: function() {\n\t\t//FIXME\n\t},\n\n\tisPropertyImplicit: function() {\n\t\t//FIXME\n\t},\n\n\t// Doesn't work in IE < 9\n\tget cssText(){\n\t\tvar properties = [];\n\t\tfor (var i=0, length=this.length; i < length; ++i) {\n\t\t\tvar name = this[i];\n\t\t\tvar value = this.getPropertyValue(name);\n\t\t\tvar priority = this.getPropertyPriority(name);\n\t\t\tif (priority) {\n\t\t\t\tpriority = \" !\" + priority;\n\t\t\t}\n\t\t\tproperties[i] = name + \": \" + value + priority + \";\";\n\t\t}\n\t\treturn properties.join(\" \");\n\t},\n\n\tset cssText(text){\n\t\tvar i, name;\n\t\tfor (i = this.length; i--;) {\n\t\t\tname = this[i];\n\t\t\tthis[name] = \"\";\n\t\t}\n\t\tArray.prototype.splice.call(this, 0, this.length);\n\t\tthis._importants = {};\n\n\t\tvar dummyRule = CSSOM.parse('#bogus{' + text + '}').cssRules[0].style;\n\t\tvar length = dummyRule.length;\n\t\tfor (i = 0; i < length; ++i) {\n\t\t\tname = dummyRule[i];\n\t\t\tthis.setProperty(dummyRule[i], dummyRule.getPropertyValue(name), dummyRule.getPropertyPriority(name));\n\t\t}\n\t}\n};\n\n\n//.CommonJS\nexports.CSSStyleDeclaration = CSSOM.CSSStyleDeclaration;\nCSSOM.parse = require('./parse').parse; // Cannot be included sooner due to the mutual dependency between parse.js and CSSStyleDeclaration.js\n///CommonJS\n", "//.CommonJS\nvar CSSOM = {\n\tCSSStyleSheet: require(\"./CSSStyleSheet\").CSSStyleSheet,\n\tCSSRule: require(\"./CSSRule\").CSSRule,\n\tCSSStyleRule: require(\"./CSSStyleRule\").CSSStyleRule,\n\tCSSGroupingRule: require(\"./CSSGroupingRule\").CSSGroupingRule,\n\tCSSConditionRule: require(\"./CSSConditionRule\").CSSConditionRule,\n\tCSSMediaRule: require(\"./CSSMediaRule\").CSSMediaRule,\n\tCSSSupportsRule: require(\"./CSSSupportsRule\").CSSSupportsRule,\n\tCSSStyleDeclaration: require(\"./CSSStyleDeclaration\").CSSStyleDeclaration,\n\tCSSKeyframeRule: require('./CSSKeyframeRule').CSSKeyframeRule,\n\tCSSKeyframesRule: require('./CSSKeyframesRule').CSSKeyframesRule\n};\n///CommonJS\n\n\n/**\n * Produces a deep copy of stylesheet \u2014 the instance variables of stylesheet are copied recursively.\n * @param {CSSStyleSheet|CSSOM.CSSStyleSheet} stylesheet\n * @nosideeffects\n * @return {CSSOM.CSSStyleSheet}\n */\nCSSOM.clone = function clone(stylesheet) {\n\n\tvar cloned = new CSSOM.CSSStyleSheet();\n\n\tvar rules = stylesheet.cssRules;\n\tif (!rules) {\n\t\treturn cloned;\n\t}\n\n\tfor (var i = 0, rulesLength = rules.length; i < rulesLength; i++) {\n\t\tvar rule = rules[i];\n\t\tvar ruleClone = cloned.cssRules[i] = new rule.constructor();\n\n\t\tvar style = rule.style;\n\t\tif (style) {\n\t\t\tvar styleClone = ruleClone.style = new CSSOM.CSSStyleDeclaration();\n\t\t\tfor (var j = 0, styleLength = style.length; j < styleLength; j++) {\n\t\t\t\tvar name = styleClone[j] = style[j];\n\t\t\t\tstyleClone[name] = style[name];\n\t\t\t\tstyleClone._importants[name] = style.getPropertyPriority(name);\n\t\t\t}\n\t\t\tstyleClone.length = style.length;\n\t\t}\n\n\t\tif (rule.hasOwnProperty('keyText')) {\n\t\t\truleClone.keyText = rule.keyText;\n\t\t}\n\n\t\tif (rule.hasOwnProperty('selectorText')) {\n\t\t\truleClone.selectorText = rule.selectorText;\n\t\t}\n\n\t\tif (rule.hasOwnProperty('mediaText')) {\n\t\t\truleClone.mediaText = rule.mediaText;\n\t\t}\n\n\t\tif (rule.hasOwnProperty('conditionText')) {\n\t\t\truleClone.conditionText = rule.conditionText;\n\t\t}\n\n\t\tif (rule.hasOwnProperty('cssRules')) {\n\t\t\truleClone.cssRules = clone(rule).cssRules;\n\t\t}\n\t}\n\n\treturn cloned;\n\n};\n\n//.CommonJS\nexports.clone = CSSOM.clone;\n///CommonJS\n", "'use strict';\n\nexports.CSSStyleDeclaration = require('./CSSStyleDeclaration').CSSStyleDeclaration;\nexports.CSSRule = require('./CSSRule').CSSRule;\nexports.CSSGroupingRule = require('./CSSGroupingRule').CSSGroupingRule;\nexports.CSSConditionRule = require('./CSSConditionRule').CSSConditionRule;\nexports.CSSStyleRule = require('./CSSStyleRule').CSSStyleRule;\nexports.MediaList = require('./MediaList').MediaList;\nexports.CSSMediaRule = require('./CSSMediaRule').CSSMediaRule;\nexports.CSSSupportsRule = require('./CSSSupportsRule').CSSSupportsRule;\nexports.CSSImportRule = require('./CSSImportRule').CSSImportRule;\nexports.CSSFontFaceRule = require('./CSSFontFaceRule').CSSFontFaceRule;\nexports.CSSHostRule = require('./CSSHostRule').CSSHostRule;\nexports.StyleSheet = require('./StyleSheet').StyleSheet;\nexports.CSSStyleSheet = require('./CSSStyleSheet').CSSStyleSheet;\nexports.CSSKeyframesRule = require('./CSSKeyframesRule').CSSKeyframesRule;\nexports.CSSKeyframeRule = require('./CSSKeyframeRule').CSSKeyframeRule;\nexports.MatcherList = require('./MatcherList').MatcherList;\nexports.CSSDocumentRule = require('./CSSDocumentRule').CSSDocumentRule;\nexports.CSSValue = require('./CSSValue').CSSValue;\nexports.CSSValueExpression = require('./CSSValueExpression').CSSValueExpression;\nexports.parse = require('./parse').parse;\nexports.clone = require('./clone').clone;\n", "class Canvas {\n constructor(width, height) {\n this.width = width;\n this.height = height;\n }\n getContext() {\n return null;\n }\n toDataURL() {\n return '';\n }\n}\n\nmodule.exports = {\n createCanvas: (width, height) => new Canvas(width, height),\n};\n", "/* c8 ignore start */\ntry {\n module.exports = require('canvas');\n} catch (fallback) {\n module.exports = require('./canvas-shim.cjs');\n}\n/* c8 ignore stop */\n", "import \"reflect-metadata\";\n\nimport * as shared from \"./shared\";\nexport { shared };\n\nexport * from \"./shared/types\";\nexport * from \"./shared/symbols\";\nexport * from \"./shared/decorators\";\nexport * from \"./shared/module\";\nexport * from \"./shared/jsx\";\nexport * from \"./shared/observable\";\nexport * from \"./shared/signal\";\nexport * from \"./shared/json\";\nexport * from \"./shared/component\";\nexport * from \"./shared/module_libs\";\nexport * from \"./shared/dom\";\nexport * from \"./shared/macros\";\n\nimport * as browser from \"./browser\";\nexport { browser };\n\nexport * from \"./browser/dom\";\nexport * from \"./browser/factory\";\n", "export * from \"./decorators\";\nexport * from \"./symbols\";\nexport * from \"./types\";\nexport * from \"./module\";\nexport * from \"./jsx\";\nexport * from \"./renderers\";\nexport * from \"./json\";\nexport * from \"./signal\";\nexport * from \"./observable\";\nexport * from \"./store\";\nexport * from \"./component\";\nexport * from \"./module_libs\";\nexport * from \"./dom\";\nexport * from \"./macros\";\n", "class Store {\n private namespace = new Map<string, unknown>();\n\n set<T>(name: string, value: T): void {\n this.namespace.set(name, value);\n }\n\n get<T>(name: string): T | undefined {\n return this.namespace.get(name) as T | undefined;\n }\n\n update<T>(name: string, updater: (current: T | undefined) => T): void {\n const current = this.get<T>(name);\n const next = updater(current);\n this.set(name, next);\n }\n}\n\nexport const store = new Store();\n", "export const DECLARATIONS_KEY = Symbol(\"orca:declarations\");\nexport const PROVIDERS_KEY = Symbol(\"orca:providers\");\nexport const CONTROLLERS_KEY = Symbol(\"orca:controllers\");\nexport const BOOTSTRAP = Symbol(\"orca:bootstrap\");\nexport const BOOTSTRAP_VNODE = Symbol(\"orca:bootstrap:vnode\");\nexport const IMPORTS_KEY = Symbol(\"orca:imports\");\nexport const EXPORTS_KEY = Symbol(\"orca:exports\");\nexport const INJECTABLE = Symbol(\"orca:injectable\");\nexport const COMPONENT = Symbol(\"orca:component\");\nexport const COMPONENT_PROVIDERS = Symbol(\"orca:component:providers\");\nexport const COMPONENT_DEPS = Symbol(\"orca:component:deps\");\nexport const INJECT_TOKENS_KEY = Symbol(\"orca:injectTokens\");\nexport const NODE = Symbol(\"orca:node\");\nexport const DESIGN_PARAMTYPES = \"design:paramtypes\";\nexport const CONTROLLER = Symbol(\"orca:controller\");\nexport const CONTROLLER_PREFIX_KEY = Symbol(\"orca:controllerPrefix\");\nexport const PARAMS_META_KEY = Symbol(\"orca:paramsMeta\");\nexport const HTTP_METHOD_KEY = Symbol(\"orca:method\");\nexport const PATH_KEY = Symbol(\"orca:path\");\nexport const EXPRESS_ADAPTER_HOST = Symbol(\"orca:express\");\nexport const SIGNATURE_METADATA_KEY = Symbol(\"orca:signature:schemas\");\n\n// over the wire symbols\nexport const ERROR_ELEMENT = Symbol.for(\"orca:error\");\nexport const ORCA_ELEMENT_TYPE = Symbol.for(\"orca:element\");\nexport const ORCA_FRAGMENT_TYPE = Symbol.for(\"orca:fragment\");\nexport const ORCA_CLIENT_COMPONENT = Symbol.for(\"orca.client.component\");\nexport const PENDING_REFERENCE_TYPE = Symbol.for(\"orca:pending_reference\");\n", "export type Constructor<T = any> = new (...args: any[]) => T;\n\nexport type Token<T> = Constructor<T> | string | symbol;\n\nexport type Scope = \"singleton\" | \"transient\";\n\nexport interface Provider<T = any> {\n provide: Token<T>;\n useClass?: Constructor<T>;\n useValue?: T;\n useFactory?: (...args: any[]) => T;\n scope?: Scope;\n useExisting?: Token<T>;\n deps?: Token<any>[];\n eager?: boolean;\n}\n\nexport interface DynamicModule {\n module: Constructor;\n providers?: (Provider | Constructor)[];\n controllers?: Constructor[];\n declarations?: Constructor[];\n imports?: IModule[];\n exports?: Token<any>[];\n}\n\nexport type IModule = Constructor | DynamicModule;\n\nexport interface ModuleParams {\n declarations?: Constructor[];\n controllers?: Constructor[];\n providers?: (Provider | Constructor)[];\n imports?: IModule[];\n exports?: Token<any>[];\n bootstrap?: Constructor;\n}\n\nexport interface ComponentParams {\n providers?: (Provider | Constructor)[];\n deps?: Constructor[];\n}\n\nexport interface InjectParams {\n maybe?: boolean;\n}\n\nexport interface InjectedToken<T> {\n token: Token<T>;\n maybe?: boolean;\n}\n\nexport enum HandlerParamType {\n ROUTE_PARAM = \"ROUTE_PARAM\",\n BODY = \"BODY\",\n}\n\nexport enum HttpMethod {\n GET = \"get\",\n POST = \"post\",\n}\n\nexport type MethodDecorator = <T>(\n target: Object,\n propertyKey: string | symbol,\n descriptor: TypedPropertyDescriptor<T>\n) => void | TypedPropertyDescriptor<T>;\n\nexport interface Signal<T> {\n get value(): T;\n set value(newValue: T);\n}\n\nexport type Subscriber = () => void;\n\nexport interface Observer<T> {\n next: (value: T) => void;\n error?: (err: any) => void;\n complete?: () => void;\n}\n\nexport type ValidatableSchema = {\n parse: (input: any) => any;\n};\n\nexport interface ControllerParams {\n providedIn?: string;\n}\n", "import { store } from \"./store\";\nimport { BOOTSTRAP, COMPONENT, COMPONENT_DEPS, COMPONENT_PROVIDERS, CONTROLLER, CONTROLLER_PREFIX_KEY, CONTROLLERS_KEY, DECLARATIONS_KEY, EXPORTS_KEY, HTTP_METHOD_KEY, IMPORTS_KEY, INJECT_TOKENS_KEY, INJECTABLE, PARAMS_META_KEY, PATH_KEY, PROVIDERS_KEY, SIGNATURE_METADATA_KEY, } from \"./symbols\";\nimport { HandlerParamType, HttpMethod, } from \"./types\";\nexport function Module(params = {}) {\n return function (target) {\n Reflect.defineMetadata(PROVIDERS_KEY, params.providers || [], target);\n Reflect.defineMetadata(DECLARATIONS_KEY, params.declarations || [], target);\n Reflect.defineMetadata(IMPORTS_KEY, params.imports || [], target);\n Reflect.defineMetadata(EXPORTS_KEY, params.exports || [], target);\n Reflect.defineMetadata(CONTROLLERS_KEY, params.controllers || [], target);\n Reflect.defineMetadata(BOOTSTRAP, params.bootstrap || [], target);\n };\n}\nexport function Injectable() {\n return function (target) {\n Reflect.defineMetadata(INJECTABLE, true, target);\n return target;\n };\n}\nexport function Component(params = {}) {\n return function (target) {\n store.update(\"components\", (current) => {\n const next = current ?? new Map();\n next.set(target.name, target);\n return next;\n });\n Reflect.defineMetadata(COMPONENT, true, target);\n Reflect.defineMetadata(COMPONENT_PROVIDERS, params.providers || [], target);\n Reflect.defineMetadata(COMPONENT_DEPS, params.deps || [], target);\n return target;\n };\n}\nexport function Inject(token, params = {}) {\n return function (target, _propertyKey, parameterIndex) {\n const existingTokens = Reflect.getOwnMetadata(INJECT_TOKENS_KEY, target) || new Map();\n existingTokens.set(parameterIndex, {\n token: token,\n ...params,\n });\n Reflect.defineMetadata(INJECT_TOKENS_KEY, existingTokens, target);\n };\n}\nexport function Controller(prefix, options = {}) {\n return function (target) {\n Injectable()(target);\n if (options.providedIn == \"root\") {\n store.update(\"root_controllers\", (current) => {\n const next = current ?? new Set();\n next.add(target);\n return next;\n });\n }\n Reflect.defineMetadata(CONTROLLER_PREFIX_KEY, prefix ?? \"/\", target);\n Reflect.defineMetadata(CONTROLLER, true, target);\n };\n}\nfunction getHandlerParamDecorator(type, key) {\n return function (target, methodName, index) {\n const paramsMeta = Reflect.getMetadata(PARAMS_META_KEY, target, methodName) ?? {};\n paramsMeta[index] = { key, type };\n Reflect.defineMetadata(PARAMS_META_KEY, paramsMeta, target, methodName);\n };\n}\nexport function Param(key) {\n return getHandlerParamDecorator(HandlerParamType.ROUTE_PARAM, key);\n}\nexport function Body(key) {\n return getHandlerParamDecorator(HandlerParamType.BODY, key);\n}\nfunction getRouteDecorator(httpMethod, path) {\n return function (target, key, descriptor) {\n Reflect.defineMetadata(HTTP_METHOD_KEY, httpMethod, target, key);\n Reflect.defineMetadata(PATH_KEY, path, target, key);\n };\n}\nexport function Get(path) {\n return getRouteDecorator(HttpMethod.GET, path ?? \"\");\n}\nexport function Post(path) {\n return getRouteDecorator(HttpMethod.POST, path ?? \"\");\n}\nexport function Signature(...schemas) {\n return function (target, propertyKey, descriptor) {\n Reflect.defineMetadata(SIGNATURE_METADATA_KEY, schemas, target, propertyKey);\n const originalMethod = descriptor.value;\n descriptor.value = async function (...args) {\n return originalMethod.apply(this, args);\n };\n return descriptor;\n };\n}\nexport function getSignatureMetadata(target, propertyKey) {\n return Reflect.getMetadata(SIGNATURE_METADATA_KEY, target, propertyKey);\n}\nexport function hasSignature(target, propertyKey) {\n return Reflect.hasMetadata(SIGNATURE_METADATA_KEY, target, propertyKey);\n}\nexport function parseSignatureSchemas(schemas, paramCount) {\n if (schemas.length === 0) {\n return { paramSchemas: [] };\n }\n if (schemas.length === 1) {\n return {\n paramSchemas: [],\n returnSchema: schemas[0],\n };\n }\n const paramSchemas = schemas.slice(0, -1);\n const returnSchema = schemas[schemas.length - 1];\n if (paramSchemas.length !== paramCount) {\n throw new Error(`@Signature decorator has ${paramSchemas.length} parameter schemas but method has ${paramCount} parameters. They must match.`);\n }\n return { paramSchemas, returnSchema };\n}\n", "import { Constructor, Provider, Token } from \"../types\";\n\nexport class ProviderNormalizer {\n static normalize(provider: Provider | Constructor): Provider {\n if (typeof provider === \"function\") {\n return { provide: provider, useClass: provider, scope: \"singleton\" };\n }\n return { scope: \"singleton\", ...provider };\n }\n}\n\nexport class Node {\n private children: Node[] = [];\n private tokens = new Map<Token<any>, Token<any>[]>();\n private exports: Set<Token<any>> = new Set();\n private providers = new Map<Token<any>, Provider>();\n\n constructor(public name: string) {}\n\n traverse(cb: (node: Node) => void) {\n cb(this);\n this.children.forEach((child) => child.traverse(cb));\n }\n\n addProviders(providers: (Provider | Constructor)[]) {\n providers.forEach((p) => {\n const normalized = ProviderNormalizer.normalize(p);\n this.providers.set(normalized.provide, normalized);\n });\n }\n\n getProviders(): Map<Token<any>, Provider> {\n return this.providers;\n }\n\n setChildren(children: Node[]) {\n this.children = children;\n }\n\n addToken(token: Token<any>, dependencies: Token<any>[]) {\n this.tokens.set(token, dependencies);\n }\n\n addExport(token: Token<any>) {\n this.exports.add(token);\n }\n\n getTokens(): Map<Token<any>, Token<any>[]> {\n return this.tokens;\n }\n\n getExports(): Set<Token<any>> {\n return this.exports;\n }\n\n getChildren(): Node[] {\n return this.children;\n }\n}\n", "import { COMPONENT, COMPONENT_DEPS, COMPONENT_PROVIDERS, CONTROLLERS_KEY, DECLARATIONS_KEY, DESIGN_PARAMTYPES, EXPORTS_KEY, IMPORTS_KEY, INJECT_TOKENS_KEY, PROVIDERS_KEY, } from \"../symbols\";\nimport { Node } from \"./node\";\nexport class Compiler {\n constructor() {\n this.nodes = new Map();\n }\n compile(rootModule) {\n return this.createNode(rootModule);\n }\n createNode(moduleOrDynamic) {\n const target = this.isDynamicModule(moduleOrDynamic)\n ? moduleOrDynamic.module\n : moduleOrDynamic;\n if (this.nodes.has(target.name))\n return this.nodes.get(target.name);\n const node = new Node(target.name);\n this.nodes.set(target.name, node);\n const imports = this.getImports(moduleOrDynamic);\n node.setChildren(imports.map((imp) => this.createNode(imp)));\n const providers = this.getProviders(moduleOrDynamic);\n const controllers = this.getControllers(moduleOrDynamic);\n const declarations = this.getDeclarations(moduleOrDynamic);\n [...providers, ...controllers].forEach((item) => {\n const token = this.getProviderToken(item);\n const deps = this.extractDependencies(item);\n node.addToken(token, deps);\n });\n node.addProviders(providers);\n declarations.forEach((dec) => {\n node.addProviders([{ provide: dec, useClass: dec, scope: \"transient\" }]);\n });\n controllers.forEach((ctrl) => {\n node.addProviders([\n { provide: ctrl, useClass: ctrl, scope: \"singleton\" },\n ]);\n });\n [...declarations, ...controllers].forEach((comp) => {\n if (Reflect.getMetadata(COMPONENT, comp)) {\n const constructorDeps = this.getConstructorDependencies(comp);\n node.addToken(comp, constructorDeps);\n const componentDeps = Reflect.getMetadata(COMPONENT_DEPS, comp) || [];\n const allDeps = [...constructorDeps, ...componentDeps];\n node.addToken(comp, allDeps);\n const localProviders = Reflect.getMetadata(COMPONENT_PROVIDERS, comp) || [];\n node.addProviders(localProviders);\n localProviders.forEach((lp) => {\n const token = this.getProviderToken(lp);\n const deps = this.extractDependencies(lp);\n node.addToken(token, deps);\n });\n }\n });\n this.getExports(moduleOrDynamic).forEach((exp) => node.addExport(exp));\n return node;\n }\n validate(rootNode) {\n const errors = [];\n const allNodes = new Map();\n this.collectAllNodes(rootNode, allNodes);\n const tokenName = (token) => typeof token === \"function\" ? token.name : String(token);\n allNodes.forEach((node) => {\n const moduleName = node.name;\n const providedTokens = node.getTokens();\n const exportedTokens = node.getExports();\n for (const exp of exportedTokens) {\n if (!providedTokens.has(exp)) {\n errors.push(`\u274C EXPORT ERROR in module \"${moduleName}\":\\n` +\n ` Exports token \"${tokenName(exp)}\" but this module does not provide it.\\n` +\n ` \u2192 Add it to providers/controllers/declarations, or remove from exports.`);\n }\n }\n const seen = new Set();\n for (const token of providedTokens.keys()) {\n if (seen.has(token)) {\n errors.push(`\u274C DUPLICATE PROVIDER in module \"${moduleName}\":\\n` +\n ` Token \"${tokenName(token)}\" is registered more than once.\\n` +\n ` \u2192 Remove duplicate entries.`);\n }\n seen.add(token);\n }\n for (const [token, deps] of providedTokens) {\n for (const dep of deps) {\n if (providedTokens.has(dep))\n continue;\n const providingModule = this.findProvidingModule(dep, node, allNodes, new Set());\n if (!providingModule) {\n const consumer = tokenName(token);\n const missing = tokenName(dep);\n const possibleProviders = Array.from(allNodes.values())\n .filter((n) => n.getTokens().has(dep))\n .map((n) => n.name);\n let suggestion = \"\";\n if (possibleProviders.length > 0) {\n suggestion =\n `\\n \u2192 \"${missing}\" IS provided in: ${possibleProviders.join(\", \")}\\n` +\n ` \u2192 Ensure one of those modules exports it AND \"${moduleName}\" imports that module.`;\n }\n else {\n suggestion = `\\n \u2192 \"${missing}\" is not provided anywhere. Add a provider for it.`;\n }\n errors.push(`\u274C UNRESOLVED DEPENDENCY in module \"${moduleName}\":\\n` +\n ` \"${consumer}\" requires \"${missing}\"${suggestion}`);\n }\n }\n }\n providedTokens.forEach((deps, token) => {\n if (typeof token === \"function\" &&\n Reflect.getMetadata(COMPONENT, token)) {\n const componentDeps = Reflect.getMetadata(COMPONENT_DEPS, token) || [];\n componentDeps.forEach((depComp) => {\n if (typeof depComp === \"function\" &&\n !Reflect.getMetadata(COMPONENT, depComp)) {\n errors.push(`\u274C COMPONENT DEPENDENCY ERROR in module \"${moduleName}\":\\n` +\n ` Component \"${tokenName(token)}\" lists \"${tokenName(depComp)}\" in deps\\n` +\n ` \u2192 \"${tokenName(depComp)}\" is not a component (missing @Component decorator)`);\n }\n if (!providedTokens.has(depComp)) {\n const providingMod = this.findProvidingModule(depComp, node, allNodes, new Set());\n if (!providingMod) {\n errors.push(`\u274C COMPONENT DEPENDENCY ERROR in module \"${moduleName}\":\\n` +\n ` Component \"${tokenName(token)}\" renders \"${tokenName(depComp)}\"\\n` +\n ` \u2192 \"${tokenName(depComp)}\" must be in declarations or imported`);\n }\n }\n });\n }\n });\n });\n return { valid: errors.length === 0, errors };\n }\n collectAllNodes(node, collected, visited = new Set()) {\n if (visited.has(node.name))\n return;\n visited.add(node.name);\n collected.set(node.name, node);\n node\n .getChildren()\n .forEach((child) => this.collectAllNodes(child, collected, visited));\n }\n findProvidingModule(token, fromNode, allNodes, visited = new Set()) {\n if (visited.has(fromNode.name))\n return null;\n visited.add(fromNode.name);\n for (const child of fromNode.getChildren()) {\n if (child.getTokens().has(token) && child.getExports().has(token)) {\n return child.name;\n }\n const found = this.findProvidingModule(token, child, allNodes, visited);\n if (found)\n return found;\n }\n return null;\n }\n getProviderToken(provider) {\n return typeof provider === \"function\" ? provider : provider.provide;\n }\n extractDependencies(item) {\n if (typeof item === \"object\" && \"deps\" in item && item.deps)\n return item.deps;\n if (typeof item === \"object\" && item.useClass)\n return this.getConstructorDependencies(item.useClass);\n if (typeof item === \"function\")\n return this.getConstructorDependencies(item);\n return [];\n }\n getConstructorDependencies(constructor) {\n const injectTokens = Reflect.getOwnMetadata(INJECT_TOKENS_KEY, constructor) || new Map();\n const paramTypes = Reflect.getMetadata(DESIGN_PARAMTYPES, constructor) || [];\n return paramTypes\n .map((type, index) => {\n const injected = injectTokens.get(index);\n if (injected?.maybe) {\n return null;\n }\n return injected?.token ?? type;\n })\n .filter((token) => Boolean(token));\n }\n isDynamicModule(m) {\n return typeof m === \"object\" && \"module\" in m;\n }\n getImports(m) {\n if (this.isDynamicModule(m))\n return m.imports || [];\n return Reflect.getMetadata(IMPORTS_KEY, m) || [];\n }\n getProviders(m) {\n if (this.isDynamicModule(m))\n return m.providers || [];\n return Reflect.getMetadata(PROVIDERS_KEY, m) || [];\n }\n getControllers(m) {\n if (this.isDynamicModule(m))\n return m.controllers || [];\n return Reflect.getMetadata(CONTROLLERS_KEY, m) || [];\n }\n getDeclarations(m) {\n if (this.isDynamicModule(m))\n return m.declarations || [];\n return Reflect.getMetadata(DECLARATIONS_KEY, m) || [];\n }\n getExports(m) {\n if (this.isDynamicModule(m))\n return m.exports || [];\n return Reflect.getMetadata(EXPORTS_KEY, m) || [];\n }\n printDAG(node, indent = \"\", visited = new Set()) {\n if (visited.has(node.name)) {\n console.log(`${indent}${node.name} (circular)`);\n return;\n }\n visited.add(node.name);\n console.log(`${indent}${node.name}`);\n const tokens = node.getTokens();\n if (tokens.size > 0) {\n console.log(`${indent}\u251C\u2500 Tokens:`);\n Array.from(tokens.entries()).forEach(([token, deps], i, arr) => {\n const prefix = i === arr.length - 1 ? \"\u2514\u2500\" : \"\u251C\u2500\";\n const tokenName = typeof token === \"function\" ? token.name : String(token);\n const depStr = deps.length\n ? ` \u2192 [${deps\n .map((d) => (typeof d === \"function\" ? d.name : String(d)))\n .join(\", \")}]`\n : \"\";\n console.log(`${indent}\u2502 ${prefix} ${tokenName}${depStr}`);\n });\n }\n const exports = node.getExports();\n if (exports.size > 0) {\n const names = Array.from(exports).map((t) => typeof t === \"function\" ? t.name : String(t));\n console.log(`${indent}\u251C\u2500 Exports: [${names.join(\", \")}]`);\n }\n const children = node.getChildren();\n if (children.length > 0) {\n console.log(`${indent}\u2514\u2500 Imports:`);\n children.forEach((child, i) => {\n const isLast = i === children.length - 1;\n const childIndent = indent + (isLast ? \" \" : \"\u2502 \");\n this.printDAG(child, childIndent, new Set(visited));\n });\n }\n }\n}\n", "import { DESIGN_PARAMTYPES, INJECT_TOKENS_KEY } from \"../symbols\";\nimport { Constructor, InjectedToken, Provider, Token } from \"../types\";\nimport { Node, ProviderNormalizer } from \"./node\";\n\nexport class Injector {\n private instanceCache = new Map<Token<any>, any>();\n private providerMap = new Map<Token<any>, Provider>();\n private parent?: Injector;\n\n constructor(providers: Provider[], parent?: Injector) {\n this.parent = parent;\n providers.forEach((p) => {\n const normalized = ProviderNormalizer.normalize(p);\n this.providerMap.set(normalized.provide, normalized);\n });\n }\n\n addProvider(provider: Provider | Constructor) {\n const normalized = ProviderNormalizer.normalize(provider);\n this.providerMap.set(normalized.provide, normalized);\n }\n\n resolve<T>(token: Token<T>): T {\n if (this.instanceCache.has(token)) {\n return this.instanceCache.get(token);\n }\n\n const provider = this.providerMap.get(token);\n\n if (!provider) {\n if (this.parent) {\n return this.parent.resolve(token);\n }\n throw new Error(\n `No provider for token: ${\n typeof token === \"function\" ? token.name : String(token)\n }`\n );\n }\n\n const instance = this.createInstance(provider);\n\n if (provider.scope !== \"transient\") {\n this.instanceCache.set(token, instance);\n }\n\n return instance as T;\n }\n\n private createInstance(provider: Provider): any {\n if (\"useValue\" in provider && provider.useValue !== undefined)\n return provider.useValue;\n if (provider.useExisting) return this.resolve(provider.useExisting);\n if (provider.useFactory) {\n const deps = (provider.deps || []).map((d) => this.resolve(d));\n return provider.useFactory(...deps);\n }\n\n const Ctor = provider.useClass || (provider.provide as Constructor);\n const deps = provider.deps || this.getConstructorDeps(Ctor);\n\n return new Ctor(...deps.map((d) => this.resolve(d)));\n }\n\n private getConstructorDeps(ctor: Constructor): Token<any>[] {\n const injectTokens: Map<\n number,\n InjectedToken<any>\n > = Reflect.getOwnMetadata(INJECT_TOKENS_KEY, ctor) || new Map();\n\n const paramTypes = Reflect.getMetadata(DESIGN_PARAMTYPES, ctor) || [];\n\n return paramTypes\n .map((type: any, index: number) => {\n const injected = injectTokens.get(index);\n return injected?.token ?? type;\n })\n .filter((token: any): token is Token<any> => Boolean(token));\n }\n}\n\nexport function collectAllProvidersFromNode(\n node: Node,\n collected = new Set<Provider>()\n): Provider[] {\n node.getProviders().forEach((p) => collected.add(p));\n node\n .getChildren()\n .forEach((child) => collectAllProvidersFromNode(child, collected));\n return Array.from(collected);\n}\n", "import { Injector } from \"./injector\";\n\nlet currentInjector: Injector | null = null;\n\nexport function setCurrentInjector(injector: Injector) {\n currentInjector = injector;\n}\n\nexport function getCurrentInjector(): Injector | null {\n return currentInjector;\n}\n", "import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n", "let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n", "const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n", "import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction _v4(options, buf, offset) {\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? rng();\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n return _v4(options, buf, offset);\n}\nexport default v4;\n", "import { v4 as uuidv4 } from \"uuid\";\n\nimport { ORCA_ELEMENT_TYPE, ORCA_FRAGMENT_TYPE } from \"../symbols\";\nimport { JSX } from \"./types\";\n\nexport { JSX };\n\nexport function jsx(type: any, config: any, maybeKey?: any): JSX.Element {\n const key = maybeKey !== undefined ? maybeKey : config?.key ?? null;\n\n const props: any = {};\n\n if (config) {\n for (const propName in config) {\n if (propName === \"key\") continue;\n\n if (propName === \"ref\") continue;\n\n props[propName] = config[propName];\n }\n }\n\n if (props.children !== undefined) {\n props.children = normalizeChildren(props.children);\n }\n\n if (typeof type === \"function\" && type.defaultProps) {\n for (const propName in type.defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = type.defaultProps[propName];\n }\n }\n }\n\n return createVNode(type, props, key);\n}\n\nexport const jsxs = jsx;\n\nexport function Fragment(props: any): JSX.Element {\n return {\n $$typeof: ORCA_ELEMENT_TYPE,\n type: ORCA_FRAGMENT_TYPE,\n id: \"00000000-0000-0000-0000-000000000000\",\n props,\n key: null,\n };\n}\n\nfunction createVNode(\n type: any,\n props: any,\n key: string | number | null\n): JSX.Element {\n return {\n $$typeof: ORCA_ELEMENT_TYPE,\n id: uuidv4(),\n type,\n props,\n key,\n };\n}\n\nfunction normalizeChildren(children: any): any {\n if (children === null || children === undefined) {\n return null;\n }\n\n if (!Array.isArray(children)) {\n return normalizeChild(children);\n }\n\n const normalized: any[] = [];\n\n for (let i = 0; i < children.length; i++) {\n const child = normalizeChild(children[i]);\n\n if (child === null) continue;\n\n if (Array.isArray(child)) {\n normalized.push(...child);\n } else {\n normalized.push(child);\n }\n }\n\n if (normalized.length === 0) return null;\n if (normalized.length === 1) return normalized[0];\n return normalized;\n}\n\nfunction normalizeChild(child: any): any {\n if (child === null || child === undefined || typeof child === \"boolean\") {\n return null;\n }\n\n if (typeof child === \"number\") {\n return String(child);\n }\n\n if (typeof child === \"string\" || child.$$typeof === ORCA_ELEMENT_TYPE) {\n return child;\n }\n\n if (Array.isArray(child)) {\n return child.map(normalizeChild).filter((c) => c !== null);\n }\n\n return String(child);\n}\n\nexport function isClassComponent(jsx: JSX.Element): boolean {\n return (\n typeof jsx.type === \"function\" &&\n jsx.type.prototype &&\n typeof jsx.type.prototype.build === \"function\"\n );\n}\n\nexport function isIntrinsicElement(jsx: JSX.Element): boolean {\n return typeof jsx.type === \"string\";\n}\n\nexport function isFragment(jsx: JSX.Element): boolean {\n return (\n typeof jsx.type === \"function\" && jsx.type()?.type == ORCA_FRAGMENT_TYPE\n );\n}\n", "import { JSX } from \"../jsx\";\nimport { Injector, ProviderNormalizer } from \"../module\";\nimport { COMPONENT, COMPONENT_PROVIDERS } from \"../symbols\";\nimport { Constructor, Provider } from \"../types\";\n\nexport class StringRenderer {\n constructor(private rootInjector: Injector) {}\n\n render(\n vnode: JSX.Element,\n parentInjector: Injector = this.rootInjector\n ): any {\n if (typeof vnode.type === \"function\") {\n const ComponentClass = vnode.type;\n const isComponent = Reflect.getMetadata(COMPONENT, ComponentClass);\n\n let componentInjector = parentInjector;\n\n if (isComponent) {\n const localProviders: (Provider | Constructor)[] =\n Reflect.getMetadata(COMPONENT_PROVIDERS, ComponentClass) || [];\n\n if (localProviders.length > 0) {\n componentInjector = new Injector(\n localProviders.map((p) => ProviderNormalizer.normalize(p)),\n parentInjector\n );\n }\n }\n\n const instance: any = componentInjector.resolve(ComponentClass);\n\n instance.props = vnode.props || {};\n\n const childVNode = instance.build();\n\n return this.render(childVNode, componentInjector);\n }\n\n if (typeof vnode.type === \"string\") {\n const { children, ...attrs } = vnode.props;\n\n const attrsStr = Object.entries(attrs)\n .map(([key, value]) => {\n if (value === true) return key;\n if (value === false || value === null || value === undefined)\n return \"\";\n return `${key}=\"${this.escapeHtml(String(value))}\"`;\n })\n .filter(Boolean)\n .join(\" \");\n\n const openTag = attrsStr\n ? `<${vnode.type} ${attrsStr}>`\n : `<${vnode.type}>`;\n\n const selfClosing = [\"img\", \"br\", \"hr\", \"input\", \"meta\", \"link\"];\n if (selfClosing.includes(vnode.type)) {\n return attrsStr ? `<${vnode.type} ${attrsStr} />` : `<${vnode.type} />`;\n }\n\n let childrenHtml = \"\";\n if (children !== undefined && children !== null) {\n if (Array.isArray(children)) {\n childrenHtml = children\n .map((child) => {\n if (typeof child === \"string\" || typeof child === \"number\") {\n return this.escapeHtml(String(child));\n }\n return this.render(child, parentInjector);\n })\n .join(\"\");\n } else if (typeof children === \"object\" && \"type\" in children) {\n childrenHtml = this.render(children, parentInjector);\n } else {\n childrenHtml = this.escapeHtml(String(children));\n }\n }\n\n return `${openTag}${childrenHtml}</${vnode.type}>`;\n }\n\n return \"\";\n }\n\n private escapeHtml(text: string): string {\n const map: Record<string, string> = {\n \"&\": \"&amp;\",\n \"<\": \"&lt;\",\n \">\": \"&gt;\",\n '\"': \"&quot;\",\n \"'\": \"&#039;\",\n };\n return text.replace(/[&<>\"']/g, (m) => map[m]);\n }\n}\n", "// used in Attr to signal changes\nexport const CHANGED = Symbol('changed');\n\n// used in Element to setup once classList\nexport const CLASS_LIST = Symbol('classList');\n\n// used in Document to attach once customElements\nexport const CUSTOM_ELEMENTS = Symbol('CustomElements');\n\n// used in HTMLTemplateElement\nexport const CONTENT = Symbol('content');\n\n// used in Element for data attributes\nexport const DATASET = Symbol('dataset');\n\n// used in Document to attach the DocType\nexport const DOCTYPE = Symbol('doctype');\n\n// used in parser and Document to attach once a DOMParser\nexport const DOM_PARSER = Symbol('DOMParser');\n\n// used to reference an end node\nexport const END = Symbol('end');\n\n// used in Document to make the globalThis an event target\nexport const EVENT_TARGET = Symbol('EventTarget');\n\n// used to augment a created document defaultView\nexport const GLOBALS = Symbol('globals');\n\n// used in both Canvas and Document to provide images\nexport const IMAGE = Symbol('image');\n\n// used to define Document mime type\nexport const MIME = Symbol('mime');\n\n// used in Document to attach once MutationObserver\nexport const MUTATION_OBSERVER = Symbol('MutationObserver');\n\n// used to define next node reference\nexport const NEXT = Symbol('next');\n\n// used to define Attr owner elements\nexport const OWNER_ELEMENT = Symbol('ownerElement');\n\n// used to define previous node reference\nexport const PREV = Symbol('prev');\n\n// used to define various \"private\" properties\nexport const PRIVATE = Symbol('private');\n\n// used to define the CSSStyleSheet.sheet\nexport const SHEET = Symbol('sheet');\n\n// used to define start node reference\nexport const START = Symbol('start');\n\n// used to define special CSS style attribute\nexport const STYLE = Symbol('style');\n\n// used to upgrade Custom Elements\nexport const UPGRADE = Symbol('upgrade');\n\n// used to define generic values\nexport const VALUE = Symbol('value');\n", "import { Parser, type ParserOptions } from \"./Parser.js\";\nexport type { Handler, ParserOptions } from \"./Parser.js\";\nexport { Parser } from \"./Parser.js\";\n\nimport {\n DomHandler,\n type DomHandlerOptions,\n type ChildNode,\n type Element,\n type Document,\n} from \"domhandler\";\n\nexport {\n DomHandler,\n // Old name for DomHandler\n DomHandler as DefaultHandler,\n type DomHandlerOptions,\n} from \"domhandler\";\n\nexport type Options = ParserOptions & DomHandlerOptions;\n\n// Helper methods\n\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM handler.\n */\nexport function parseDocument(data: string, options?: Options): Document {\n const handler = new DomHandler(undefined, options);\n new Parser(handler, options).end(data);\n return handler.root;\n}\n/**\n * Parses data, returns an array of the root nodes.\n *\n * Note that the root nodes still have a `Document` node as their parent.\n * Use `parseDocument` to get the `Document` node instead.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM handler.\n * @deprecated Use `parseDocument` instead.\n */\nexport function parseDOM(data: string, options?: Options): ChildNode[] {\n return parseDocument(data, options).children;\n}\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param callback A callback that will be called once parsing has been completed, with the resulting document.\n * @param options Optional options for the parser and DOM handler.\n * @param elementCallback An optional callback that will be called every time a tag has been completed inside of the DOM.\n */\nexport function createDocumentStream(\n callback: (error: Error | null, document: Document) => void,\n options?: Options,\n elementCallback?: (element: Element) => void,\n): Parser {\n const handler: DomHandler = new DomHandler(\n (error: Error | null) => callback(error, handler.root),\n options,\n elementCallback,\n );\n return new Parser(handler, options);\n}\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param callback A callback that will be called once parsing has been completed, with an array of root nodes.\n * @param options Optional options for the parser and DOM handler.\n * @param elementCallback An optional callback that will be called every time a tag has been completed inside of the DOM.\n * @deprecated Use `createDocumentStream` instead.\n */\nexport function createDomStream(\n callback: (error: Error | null, dom: ChildNode[]) => void,\n options?: Options,\n elementCallback?: (element: Element) => void,\n): Parser {\n const handler = new DomHandler(callback, options, elementCallback);\n return new Parser(handler, options);\n}\n\nexport {\n default as Tokenizer,\n type Callbacks as TokenizerCallbacks,\n QuoteType,\n} from \"./Tokenizer.js\";\n\n/*\n * All of the following exports exist for backwards-compatibility.\n * They should probably be removed eventually.\n */\nexport * as ElementType from \"domelementtype\";\n\nimport { getFeed, type Feed } from \"domutils\";\n\nexport { getFeed, type Feed } from \"domutils\";\n\nconst parseFeedDefaultOptions = { xmlMode: true };\n\n/**\n * Parse a feed.\n *\n * @param feed The feed that should be parsed, as a string.\n * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`.\n */\nexport function parseFeed(\n feed: string,\n options: Options = parseFeedDefaultOptions,\n): Feed | null {\n return getFeed(parseDOM(feed, options));\n}\n\nexport * as DomUtils from \"domutils\";\n", "// Generated using scripts/write-decode-map.ts\n\nexport const htmlDecodeTree: Uint16Array = /* #__PURE__ */ new Uint16Array(\n // prettier-ignore\n /* #__PURE__ */ \"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map((c) => c.charCodeAt(0)),\n);\n", "// Generated using scripts/write-decode-map.ts\n\nexport const xmlDecodeTree: Uint16Array = /* #__PURE__ */ new Uint16Array(\n // prettier-ignore\n /* #__PURE__ */ \"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map((c) => c.charCodeAt(0)),\n);\n", "// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\n\nconst decodeMap = new Map([\n [0, 65_533],\n // C1 Unicode control character reference replacements\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\n\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexport const fromCodePoint: (...codePoints: number[]) => string =\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins\n String.fromCodePoint ??\n function (codePoint: number): string {\n let output = \"\";\n\n if (codePoint > 0xff_ff) {\n codePoint -= 0x1_00_00;\n output += String.fromCharCode(\n ((codePoint >>> 10) & 0x3_ff) | 0xd8_00,\n );\n codePoint = 0xdc_00 | (codePoint & 0x3_ff);\n }\n\n output += String.fromCharCode(codePoint);\n return output;\n };\n\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nexport function replaceCodePoint(codePoint: number): number {\n if (\n (codePoint >= 0xd8_00 && codePoint <= 0xdf_ff) ||\n codePoint > 0x10_ff_ff\n ) {\n return 0xff_fd;\n }\n\n return decodeMap.get(codePoint) ?? codePoint;\n}\n\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nexport function decodeCodePoint(codePoint: number): string {\n return fromCodePoint(replaceCodePoint(codePoint));\n}\n", "import { htmlDecodeTree } from \"./generated/decode-data-html.js\";\nimport { xmlDecodeTree } from \"./generated/decode-data-xml.js\";\nimport { replaceCodePoint, fromCodePoint } from \"./decode-codepoint.js\";\n\nconst enum CharCodes {\n NUM = 35, // \"#\"\n SEMI = 59, // \";\"\n EQUALS = 61, // \"=\"\n ZERO = 48, // \"0\"\n NINE = 57, // \"9\"\n LOWER_A = 97, // \"a\"\n LOWER_F = 102, // \"f\"\n LOWER_X = 120, // \"x\"\n LOWER_Z = 122, // \"z\"\n UPPER_A = 65, // \"A\"\n UPPER_F = 70, // \"F\"\n UPPER_Z = 90, // \"Z\"\n}\n\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nconst TO_LOWER_BIT = 0b10_0000;\n\nexport enum BinTrieFlags {\n VALUE_LENGTH = 0b1100_0000_0000_0000,\n BRANCH_LENGTH = 0b0011_1111_1000_0000,\n JUMP_TABLE = 0b0000_0000_0111_1111,\n}\n\nfunction isNumber(code: number): boolean {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\n\nfunction isHexadecimalCharacter(code: number): boolean {\n return (\n (code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F)\n );\n}\n\nfunction isAsciiAlphaNumeric(code: number): boolean {\n return (\n (code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code)\n );\n}\n\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code: number): boolean {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\n\nconst enum EntityDecoderState {\n EntityStart,\n NumericStart,\n NumericDecimal,\n NumericHex,\n NamedEntity,\n}\n\nexport enum DecodingMode {\n /** Entities in text nodes that can end with any character. */\n Legacy = 0,\n /** Only allow entities terminated with a semicolon. */\n Strict = 1,\n /** Entities in attributes have limitations on ending characters. */\n Attribute = 2,\n}\n\n/**\n * Producers for character reference errors as defined in the HTML spec.\n */\nexport interface EntityErrorProducer {\n missingSemicolonAfterCharacterReference(): void;\n absenceOfDigitsInNumericCharacterReference(\n consumedCharacters: number,\n ): void;\n validateNumericCharacterReference(code: number): void;\n}\n\n/**\n * Token decoder with support of writing partial entities.\n */\nexport class EntityDecoder {\n constructor(\n /** The tree used to decode entities. */\n private readonly decodeTree: Uint16Array,\n /**\n * The function that is called when a codepoint is decoded.\n *\n * For multi-byte named entities, this will be called multiple times,\n * with the second codepoint, and the same `consumed` value.\n *\n * @param codepoint The decoded codepoint.\n * @param consumed The number of bytes consumed by the decoder.\n */\n private readonly emitCodePoint: (cp: number, consumed: number) => void,\n /** An object that is used to produce errors. */\n private readonly errors?: EntityErrorProducer | undefined,\n ) {}\n\n /** The current state of the decoder. */\n private state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n private consumed = 1;\n /**\n * The result of the entity.\n *\n * Either the result index of a numeric entity, or the codepoint of a\n * numeric entity.\n */\n private result = 0;\n\n /** The current index in the decode tree. */\n private treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n private excess = 1;\n /** The mode in which the decoder is operating. */\n private decodeMode = DecodingMode.Strict;\n\n /** Resets the instance to make it reusable. */\n startEntity(decodeMode: DecodingMode): void {\n this.decodeMode = decodeMode;\n this.state = EntityDecoderState.EntityStart;\n this.result = 0;\n this.treeIndex = 0;\n this.excess = 1;\n this.consumed = 1;\n }\n\n /**\n * Write an entity to the decoder. This can be called multiple times with partial entities.\n * If the entity is incomplete, the decoder will return -1.\n *\n * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n * entity is incomplete, and resume when the next string is written.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n write(input: string, offset: number): number {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (input.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(input, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(input, offset);\n }\n\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(input, offset);\n }\n\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(input, offset);\n }\n\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(input, offset);\n }\n\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(input, offset);\n }\n }\n }\n\n /**\n * Switches between the numeric decimal and hexadecimal states.\n *\n * Equivalent to the `Numeric character reference state` in the HTML spec.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n private stateNumericStart(input: string, offset: number): number {\n if (offset >= input.length) {\n return -1;\n }\n\n if ((input.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(input, offset + 1);\n }\n\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(input, offset);\n }\n\n private addToNumericResult(\n input: string,\n start: number,\n end: number,\n base: number,\n ): void {\n if (start !== end) {\n const digitCount = end - start;\n this.result =\n this.result * Math.pow(base, digitCount) +\n Number.parseInt(input.substr(start, digitCount), base);\n this.consumed += digitCount;\n }\n }\n\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n private stateNumericHex(input: string, offset: number): number {\n const startIndex = offset;\n\n while (offset < input.length) {\n const char = input.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n offset += 1;\n } else {\n this.addToNumericResult(input, startIndex, offset, 16);\n return this.emitNumericEntity(char, 3);\n }\n }\n\n this.addToNumericResult(input, startIndex, offset, 16);\n\n return -1;\n }\n\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n private stateNumericDecimal(input: string, offset: number): number {\n const startIndex = offset;\n\n while (offset < input.length) {\n const char = input.charCodeAt(offset);\n if (isNumber(char)) {\n offset += 1;\n } else {\n this.addToNumericResult(input, startIndex, offset, 10);\n return this.emitNumericEntity(char, 2);\n }\n }\n\n this.addToNumericResult(input, startIndex, offset, 10);\n\n return -1;\n }\n\n /**\n * Validate and emit a numeric entity.\n *\n * Implements the logic from the `Hexademical character reference start\n * state` and `Numeric character reference end state` in the HTML spec.\n *\n * @param lastCp The last code point of the entity. Used to see if the\n * entity was terminated with a semicolon.\n * @param expectedLength The minimum number of characters that should be\n * consumed. Used to validate that at least one digit\n * was consumed.\n * @returns The number of characters that were consumed.\n */\n private emitNumericEntity(lastCp: number, expectedLength: number): number {\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n this.errors?.absenceOfDigitsInNumericCharacterReference(\n this.consumed,\n );\n return 0;\n }\n\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n } else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n\n this.emitCodePoint(replaceCodePoint(this.result), this.consumed);\n\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n\n this.errors.validateNumericCharacterReference(this.result);\n }\n\n return this.consumed;\n }\n\n /**\n * Parses a named entity.\n *\n * Equivalent to the `Named character reference state` in the HTML spec.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n private stateNamedEntity(input: string, offset: number): number {\n const { decodeTree } = this;\n let current = decodeTree[this.treeIndex];\n // The mask is the number of bytes of the value, including the current byte.\n let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n\n for (; offset < input.length; offset++, this.excess++) {\n const char = input.charCodeAt(offset);\n\n this.treeIndex = determineBranch(\n decodeTree,\n current,\n this.treeIndex + Math.max(1, valueLength),\n char,\n );\n\n if (this.treeIndex < 0) {\n return this.result === 0 ||\n // If we are parsing an attribute\n (this.decodeMode === DecodingMode.Attribute &&\n // We shouldn't have consumed any characters after the entity,\n (valueLength === 0 ||\n // And there should be no invalid characters.\n isEntityInAttributeInvalidEnd(char)))\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n\n // If the branch is a value, store it and continue\n if (valueLength !== 0) {\n // If the entity is terminated by a semicolon, we are done.\n if (char === CharCodes.SEMI) {\n return this.emitNamedEntityData(\n this.treeIndex,\n valueLength,\n this.consumed + this.excess,\n );\n }\n\n // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n if (this.decodeMode !== DecodingMode.Strict) {\n this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\n }\n\n return -1;\n }\n\n /**\n * Emit a named entity that was not terminated with a semicolon.\n *\n * @returns The number of characters consumed.\n */\n private emitNotTerminatedNamedEntity(): number {\n const { result, decodeTree } = this;\n\n const valueLength =\n (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n\n this.emitNamedEntityData(result, valueLength, this.consumed);\n this.errors?.missingSemicolonAfterCharacterReference();\n\n return this.consumed;\n }\n\n /**\n * Emit a named entity.\n *\n * @param result The index of the entity in the decode tree.\n * @param valueLength The number of bytes in the entity.\n * @param consumed The number of characters consumed.\n *\n * @returns The number of characters consumed.\n */\n private emitNamedEntityData(\n result: number,\n valueLength: number,\n consumed: number,\n ): number {\n const { decodeTree } = this;\n\n this.emitCodePoint(\n valueLength === 1\n ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n : decodeTree[result + 1],\n consumed,\n );\n if (valueLength === 3) {\n // For multi-byte values, we need to emit the second byte.\n this.emitCodePoint(decodeTree[result + 2], consumed);\n }\n\n return consumed;\n }\n\n /**\n * Signal to the parser that the end of the input was reached.\n *\n * Remaining data will be emitted and relevant errors will be produced.\n *\n * @returns The number of characters consumed.\n */\n end(): number {\n switch (this.state) {\n case EntityDecoderState.NamedEntity: {\n // Emit a named entity if we have one.\n return this.result !== 0 &&\n (this.decodeMode !== DecodingMode.Attribute ||\n this.result === this.treeIndex)\n ? this.emitNotTerminatedNamedEntity()\n : 0;\n }\n // Otherwise, emit a numeric entity if we have one.\n case EntityDecoderState.NumericDecimal: {\n return this.emitNumericEntity(0, 2);\n }\n case EntityDecoderState.NumericHex: {\n return this.emitNumericEntity(0, 3);\n }\n case EntityDecoderState.NumericStart: {\n this.errors?.absenceOfDigitsInNumericCharacterReference(\n this.consumed,\n );\n return 0;\n }\n case EntityDecoderState.EntityStart: {\n // Return 0 if we have no entity.\n return 0;\n }\n }\n }\n}\n\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree: Uint16Array) {\n let returnValue = \"\";\n const decoder = new EntityDecoder(\n decodeTree,\n (data) => (returnValue += fromCodePoint(data)),\n );\n\n return function decodeWithTrie(\n input: string,\n decodeMode: DecodingMode,\n ): string {\n let lastIndex = 0;\n let offset = 0;\n\n while ((offset = input.indexOf(\"&\", offset)) >= 0) {\n returnValue += input.slice(lastIndex, offset);\n\n decoder.startEntity(decodeMode);\n\n const length = decoder.write(\n input,\n // Skip the \"&\"\n offset + 1,\n );\n\n if (length < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n\n lastIndex = offset + length;\n // If `length` is 0, skip the current `&` and continue.\n offset = length === 0 ? lastIndex + 1 : lastIndex;\n }\n\n const result = returnValue + input.slice(lastIndex);\n\n // Make sure we don't keep a reference to the final string.\n returnValue = \"\";\n\n return result;\n };\n}\n\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nexport function determineBranch(\n decodeTree: Uint16Array,\n current: number,\n nodeIndex: number,\n char: number,\n): number {\n const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n const jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIndex : -1;\n }\n\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n const value = char - jumpOffset;\n\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIndex + value] - 1;\n }\n\n // Case 3: Multiple branches encoded in dictionary\n\n // Binary search for the character.\n let lo = nodeIndex;\n let hi = lo + branchCount - 1;\n\n while (lo <= hi) {\n const mid = (lo + hi) >>> 1;\n const midValue = decodeTree[mid];\n\n if (midValue < char) {\n lo = mid + 1;\n } else if (midValue > char) {\n hi = mid - 1;\n } else {\n return decodeTree[mid + branchCount];\n }\n }\n\n return -1;\n}\n\nconst htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree);\nconst xmlDecoder = /* #__PURE__ */ getDecoder(xmlDecodeTree);\n\n/**\n * Decodes an HTML string.\n *\n * @param htmlString The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nexport function decodeHTML(\n htmlString: string,\n mode: DecodingMode = DecodingMode.Legacy,\n): string {\n return htmlDecoder(htmlString, mode);\n}\n\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param htmlAttribute The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLAttribute(htmlAttribute: string): string {\n return htmlDecoder(htmlAttribute, DecodingMode.Attribute);\n}\n\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param htmlString The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLStrict(htmlString: string): string {\n return htmlDecoder(htmlString, DecodingMode.Strict);\n}\n\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param xmlString The string to decode.\n * @returns The decoded string.\n */\nexport function decodeXML(xmlString: string): string {\n return xmlDecoder(xmlString, DecodingMode.Strict);\n}\n\n// Re-export for use by eg. htmlparser2\nexport { htmlDecodeTree } from \"./generated/decode-data-html.js\";\nexport { xmlDecodeTree } from \"./generated/decode-data-xml.js\";\n\nexport {\n decodeCodePoint,\n replaceCodePoint,\n fromCodePoint,\n} from \"./decode-codepoint.js\";\n", "import {\n EntityDecoder,\n DecodingMode,\n htmlDecodeTree,\n xmlDecodeTree,\n} from \"entities/decode\";\n\nconst enum CharCodes {\n Tab = 0x9, // \"\\t\"\n NewLine = 0xa, // \"\\n\"\n FormFeed = 0xc, // \"\\f\"\n CarriageReturn = 0xd, // \"\\r\"\n Space = 0x20, // \" \"\n ExclamationMark = 0x21, // \"!\"\n Number = 0x23, // \"#\"\n Amp = 0x26, // \"&\"\n SingleQuote = 0x27, // \"'\"\n DoubleQuote = 0x22, // '\"'\n Dash = 0x2d, // \"-\"\n Slash = 0x2f, // \"/\"\n Zero = 0x30, // \"0\"\n Nine = 0x39, // \"9\"\n Semi = 0x3b, // \";\"\n Lt = 0x3c, // \"<\"\n Eq = 0x3d, // \"=\"\n Gt = 0x3e, // \">\"\n Questionmark = 0x3f, // \"?\"\n UpperA = 0x41, // \"A\"\n LowerA = 0x61, // \"a\"\n UpperF = 0x46, // \"F\"\n LowerF = 0x66, // \"f\"\n UpperZ = 0x5a, // \"Z\"\n LowerZ = 0x7a, // \"z\"\n LowerX = 0x78, // \"x\"\n OpeningSquareBracket = 0x5b, // \"[\"\n}\n\n/** All the states the tokenizer can be in. */\nconst enum State {\n Text = 1,\n BeforeTagName, // After <\n InTagName,\n InSelfClosingTag,\n BeforeClosingTagName,\n InClosingTagName,\n AfterClosingTagName,\n\n // Attributes\n BeforeAttributeName,\n InAttributeName,\n AfterAttributeName,\n BeforeAttributeValue,\n InAttributeValueDq, // \"\n InAttributeValueSq, // '\n InAttributeValueNq,\n\n // Declarations\n BeforeDeclaration, // !\n InDeclaration,\n\n // Processing instructions\n InProcessingInstruction, // ?\n\n // Comments & CDATA\n BeforeComment,\n CDATASequence,\n InSpecialComment,\n InCommentLike,\n\n // Special tags\n BeforeSpecialS, // Decide if we deal with `<script` or `<style`\n BeforeSpecialT, // Decide if we deal with `<title` or `<textarea`\n SpecialStartSequence,\n InSpecialTag,\n\n InEntity,\n}\n\nfunction isWhitespace(c: number): boolean {\n return (\n c === CharCodes.Space ||\n c === CharCodes.NewLine ||\n c === CharCodes.Tab ||\n c === CharCodes.FormFeed ||\n c === CharCodes.CarriageReturn\n );\n}\n\nfunction isEndOfTagSection(c: number): boolean {\n return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace(c);\n}\n\nfunction isASCIIAlpha(c: number): boolean {\n return (\n (c >= CharCodes.LowerA && c <= CharCodes.LowerZ) ||\n (c >= CharCodes.UpperA && c <= CharCodes.UpperZ)\n );\n}\n\nexport enum QuoteType {\n NoValue = 0,\n Unquoted = 1,\n Single = 2,\n Double = 3,\n}\n\nexport interface Callbacks {\n onattribdata(start: number, endIndex: number): void;\n onattribentity(codepoint: number): void;\n onattribend(quote: QuoteType, endIndex: number): void;\n onattribname(start: number, endIndex: number): void;\n oncdata(start: number, endIndex: number, endOffset: number): void;\n onclosetag(start: number, endIndex: number): void;\n oncomment(start: number, endIndex: number, endOffset: number): void;\n ondeclaration(start: number, endIndex: number): void;\n onend(): void;\n onopentagend(endIndex: number): void;\n onopentagname(start: number, endIndex: number): void;\n onprocessinginstruction(start: number, endIndex: number): void;\n onselfclosingtag(endIndex: number): void;\n ontext(start: number, endIndex: number): void;\n ontextentity(codepoint: number, endIndex: number): void;\n}\n\n/**\n * Sequences used to match longer strings.\n *\n * We don't have `Script`, `Style`, or `Title` here. Instead, we re-use the *End\n * sequences with an increased offset.\n */\nconst Sequences = {\n Cdata: new Uint8Array([0x43, 0x44, 0x41, 0x54, 0x41, 0x5b]), // CDATA[\n CdataEnd: new Uint8Array([0x5d, 0x5d, 0x3e]), // ]]>\n CommentEnd: new Uint8Array([0x2d, 0x2d, 0x3e]), // `-->`\n ScriptEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74]), // `</script`\n StyleEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65]), // `</style`\n TitleEnd: new Uint8Array([0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65]), // `</title`\n TextareaEnd: new Uint8Array([\n 0x3c, 0x2f, 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61,\n ]), // `</textarea`\n XmpEnd: new Uint8Array([0x3c, 0x2f, 0x78, 0x6d, 0x70]), // `</xmp`\n};\n\nexport default class Tokenizer {\n /** The current state the tokenizer is in. */\n private state = State.Text;\n /** The read buffer. */\n private buffer = \"\";\n /** The beginning of the section that is currently being read. */\n private sectionStart = 0;\n /** The index within the buffer that we are currently looking at. */\n private index = 0;\n /** The start of the last entity. */\n private entityStart = 0;\n /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */\n private baseState = State.Text;\n /** For special parsing behavior inside of script and style tags. */\n private isSpecial = false;\n /** Indicates whether the tokenizer has been paused. */\n public running = true;\n /** The offset of the current buffer. */\n private offset = 0;\n\n private readonly xmlMode: boolean;\n private readonly decodeEntities: boolean;\n private readonly entityDecoder: EntityDecoder;\n\n constructor(\n {\n xmlMode = false,\n decodeEntities = true,\n }: { xmlMode?: boolean; decodeEntities?: boolean },\n private readonly cbs: Callbacks,\n ) {\n this.xmlMode = xmlMode;\n this.decodeEntities = decodeEntities;\n this.entityDecoder = new EntityDecoder(\n xmlMode ? xmlDecodeTree : htmlDecodeTree,\n (cp, consumed) => this.emitCodePoint(cp, consumed),\n );\n }\n\n public reset(): void {\n this.state = State.Text;\n this.buffer = \"\";\n this.sectionStart = 0;\n this.index = 0;\n this.baseState = State.Text;\n this.currentSequence = undefined!;\n this.running = true;\n this.offset = 0;\n }\n\n public write(chunk: string): void {\n this.offset += this.buffer.length;\n this.buffer = chunk;\n this.parse();\n }\n\n public end(): void {\n if (this.running) this.finish();\n }\n\n public pause(): void {\n this.running = false;\n }\n\n public resume(): void {\n this.running = true;\n if (this.index < this.buffer.length + this.offset) {\n this.parse();\n }\n }\n\n private stateText(c: number): void {\n if (\n c === CharCodes.Lt ||\n (!this.decodeEntities && this.fastForwardTo(CharCodes.Lt))\n ) {\n if (this.index > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, this.index);\n }\n this.state = State.BeforeTagName;\n this.sectionStart = this.index;\n } else if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n\n private currentSequence: Uint8Array = undefined!;\n private sequenceIndex = 0;\n private stateSpecialStartSequence(c: number): void {\n const isEnd = this.sequenceIndex === this.currentSequence.length;\n const isMatch = isEnd\n ? // If we are at the end of the sequence, make sure the tag name has ended\n isEndOfTagSection(c)\n : // Otherwise, do a case-insensitive comparison\n (c | 0x20) === this.currentSequence[this.sequenceIndex];\n\n if (!isMatch) {\n this.isSpecial = false;\n } else if (!isEnd) {\n this.sequenceIndex++;\n return;\n }\n\n this.sequenceIndex = 0;\n this.state = State.InTagName;\n this.stateInTagName(c);\n }\n\n /** Look for an end tag. For <title> tags, also decode entities. */\n private stateInSpecialTag(c: number): void {\n if (this.sequenceIndex === this.currentSequence.length) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n const endOfText = this.index - this.currentSequence.length;\n\n if (this.sectionStart < endOfText) {\n // Spoof the index so that reported locations match up.\n const actualIndex = this.index;\n this.index = endOfText;\n this.cbs.ontext(this.sectionStart, endOfText);\n this.index = actualIndex;\n }\n\n this.isSpecial = false;\n this.sectionStart = endOfText + 2; // Skip over the `</`\n this.stateInClosingTagName(c);\n return; // We are done; skip the rest of the function.\n }\n\n this.sequenceIndex = 0;\n }\n\n if ((c | 0x20) === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex += 1;\n } else if (this.sequenceIndex === 0) {\n if (this.currentSequence === Sequences.TitleEnd) {\n // We have to parse entities in <title> tags.\n if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n } else if (this.fastForwardTo(CharCodes.Lt)) {\n // Outside of <title> tags, we can fast-forward.\n this.sequenceIndex = 1;\n }\n } else {\n // If we see a `<`, set the sequence index to 1; useful for eg. `<</script>`.\n this.sequenceIndex = Number(c === CharCodes.Lt);\n }\n }\n\n private stateCDATASequence(c: number): void {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n } else {\n this.sequenceIndex = 0;\n this.state = State.InDeclaration;\n this.stateInDeclaration(c); // Reconsume the character\n }\n }\n\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n private fastForwardTo(c: number): boolean {\n while (++this.index < this.buffer.length + this.offset) {\n if (this.buffer.charCodeAt(this.index - this.offset) === c) {\n return true;\n }\n }\n\n /*\n * We increment the index at the end of the `parse` loop,\n * so set it to `buffer.length - 1` here.\n *\n * TODO: Refactor `parse` to increment index before calling states.\n */\n this.index = this.buffer.length + this.offset - 1;\n\n return false;\n }\n\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n private stateInCommentLike(c: number): void {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index, 2);\n } else {\n this.cbs.oncomment(this.sectionStart, this.index, 2);\n }\n\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = State.Text;\n }\n } else if (this.sequenceIndex === 0) {\n // Fast-forward to the first character of the sequence\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n } else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n // Allow long sequences, eg. --->, ]]]>\n this.sequenceIndex = 0;\n }\n }\n\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n */\n private isTagStartChar(c: number) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n }\n\n private startSpecial(sequence: Uint8Array, offset: number) {\n this.isSpecial = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n this.state = State.SpecialStartSequence;\n }\n\n private stateBeforeTagName(c: number): void {\n if (c === CharCodes.ExclamationMark) {\n this.state = State.BeforeDeclaration;\n this.sectionStart = this.index + 1;\n } else if (c === CharCodes.Questionmark) {\n this.state = State.InProcessingInstruction;\n this.sectionStart = this.index + 1;\n } else if (this.isTagStartChar(c)) {\n const lower = c | 0x20;\n this.sectionStart = this.index;\n if (this.xmlMode) {\n this.state = State.InTagName;\n } else if (lower === Sequences.ScriptEnd[2]) {\n this.state = State.BeforeSpecialS;\n } else if (\n lower === Sequences.TitleEnd[2] ||\n lower === Sequences.XmpEnd[2]\n ) {\n this.state = State.BeforeSpecialT;\n } else {\n this.state = State.InTagName;\n }\n } else if (c === CharCodes.Slash) {\n this.state = State.BeforeClosingTagName;\n } else {\n this.state = State.Text;\n this.stateText(c);\n }\n }\n private stateInTagName(c: number): void {\n if (isEndOfTagSection(c)) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n }\n private stateBeforeClosingTagName(c: number): void {\n if (isWhitespace(c)) {\n // Ignore\n } else if (c === CharCodes.Gt) {\n this.state = State.Text;\n } else {\n this.state = this.isTagStartChar(c)\n ? State.InClosingTagName\n : State.InSpecialComment;\n this.sectionStart = this.index;\n }\n }\n private stateInClosingTagName(c: number): void {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterClosingTagName;\n this.stateAfterClosingTagName(c);\n }\n }\n private stateAfterClosingTagName(c: number): void {\n // Skip everything until \">\"\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n private stateBeforeAttributeName(c: number): void {\n if (c === CharCodes.Gt) {\n this.cbs.onopentagend(this.index);\n if (this.isSpecial) {\n this.state = State.InSpecialTag;\n this.sequenceIndex = 0;\n } else {\n this.state = State.Text;\n }\n this.sectionStart = this.index + 1;\n } else if (c === CharCodes.Slash) {\n this.state = State.InSelfClosingTag;\n } else if (!isWhitespace(c)) {\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n }\n private stateInSelfClosingTag(c: number): void {\n if (c === CharCodes.Gt) {\n this.cbs.onselfclosingtag(this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n this.isSpecial = false; // Reset special state, in case of self-closing special tags\n } else if (!isWhitespace(c)) {\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n }\n private stateInAttributeName(c: number): void {\n if (c === CharCodes.Eq || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.sectionStart = this.index;\n this.state = State.AfterAttributeName;\n this.stateAfterAttributeName(c);\n }\n }\n private stateAfterAttributeName(c: number): void {\n if (c === CharCodes.Eq) {\n this.state = State.BeforeAttributeValue;\n } else if (c === CharCodes.Slash || c === CharCodes.Gt) {\n this.cbs.onattribend(QuoteType.NoValue, this.sectionStart);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n } else if (!isWhitespace(c)) {\n this.cbs.onattribend(QuoteType.NoValue, this.sectionStart);\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n }\n private stateBeforeAttributeValue(c: number): void {\n if (c === CharCodes.DoubleQuote) {\n this.state = State.InAttributeValueDq;\n this.sectionStart = this.index + 1;\n } else if (c === CharCodes.SingleQuote) {\n this.state = State.InAttributeValueSq;\n this.sectionStart = this.index + 1;\n } else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = State.InAttributeValueNq;\n this.stateInAttributeValueNoQuotes(c); // Reconsume token\n }\n }\n private handleInAttributeValue(c: number, quote: number) {\n if (\n c === quote ||\n (!this.decodeEntities && this.fastForwardTo(quote))\n ) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(\n quote === CharCodes.DoubleQuote\n ? QuoteType.Double\n : QuoteType.Single,\n this.index + 1,\n );\n this.state = State.BeforeAttributeName;\n } else if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n private stateInAttributeValueDoubleQuotes(c: number): void {\n this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n }\n private stateInAttributeValueSingleQuotes(c: number): void {\n this.handleInAttributeValue(c, CharCodes.SingleQuote);\n }\n private stateInAttributeValueNoQuotes(c: number): void {\n if (isWhitespace(c) || c === CharCodes.Gt) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(QuoteType.Unquoted, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n } else if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n private stateBeforeDeclaration(c: number): void {\n if (c === CharCodes.OpeningSquareBracket) {\n this.state = State.CDATASequence;\n this.sequenceIndex = 0;\n } else {\n this.state =\n c === CharCodes.Dash\n ? State.BeforeComment\n : State.InDeclaration;\n }\n }\n private stateInDeclaration(c: number): void {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.ondeclaration(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n private stateInProcessingInstruction(c: number): void {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n private stateBeforeComment(c: number): void {\n if (c === CharCodes.Dash) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CommentEnd;\n // Allow short comments (eg. <!-->)\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n } else {\n this.state = State.InDeclaration;\n }\n }\n private stateInSpecialComment(c: number): void {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.oncomment(this.sectionStart, this.index, 0);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n private stateBeforeSpecialS(c: number): void {\n const lower = c | 0x20;\n if (lower === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n } else if (lower === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n } else {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n }\n\n private stateBeforeSpecialT(c: number): void {\n const lower = c | 0x20;\n switch (lower) {\n case Sequences.TitleEnd[3]: {\n this.startSpecial(Sequences.TitleEnd, 4);\n\n break;\n }\n case Sequences.TextareaEnd[3]: {\n this.startSpecial(Sequences.TextareaEnd, 4);\n\n break;\n }\n case Sequences.XmpEnd[3]: {\n this.startSpecial(Sequences.XmpEnd, 4);\n\n break;\n }\n default: {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n }\n }\n\n private startEntity() {\n this.baseState = this.state;\n this.state = State.InEntity;\n this.entityStart = this.index;\n this.entityDecoder.startEntity(\n this.xmlMode\n ? DecodingMode.Strict\n : this.baseState === State.Text ||\n this.baseState === State.InSpecialTag\n ? DecodingMode.Legacy\n : DecodingMode.Attribute,\n );\n }\n\n private stateInEntity(): void {\n const length = this.entityDecoder.write(\n this.buffer,\n this.index - this.offset,\n );\n\n // If `length` is positive, we are done with the entity.\n if (length >= 0) {\n this.state = this.baseState;\n\n if (length === 0) {\n this.index = this.entityStart;\n }\n } else {\n // Mark buffer as consumed.\n this.index = this.offset + this.buffer.length - 1;\n }\n }\n\n /**\n * Remove data that has already been consumed from the buffer.\n */\n private cleanup() {\n // If we are inside of text or attributes, emit what we already have.\n if (this.running && this.sectionStart !== this.index) {\n if (\n this.state === State.Text ||\n (this.state === State.InSpecialTag && this.sequenceIndex === 0)\n ) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n } else if (\n this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueNq\n ) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n }\n\n private shouldContinue() {\n return this.index < this.buffer.length + this.offset && this.running;\n }\n\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n private parse() {\n while (this.shouldContinue()) {\n const c = this.buffer.charCodeAt(this.index - this.offset);\n switch (this.state) {\n case State.Text: {\n this.stateText(c);\n break;\n }\n case State.SpecialStartSequence: {\n this.stateSpecialStartSequence(c);\n break;\n }\n case State.InSpecialTag: {\n this.stateInSpecialTag(c);\n break;\n }\n case State.CDATASequence: {\n this.stateCDATASequence(c);\n break;\n }\n case State.InAttributeValueDq: {\n this.stateInAttributeValueDoubleQuotes(c);\n break;\n }\n case State.InAttributeName: {\n this.stateInAttributeName(c);\n break;\n }\n case State.InCommentLike: {\n this.stateInCommentLike(c);\n break;\n }\n case State.InSpecialComment: {\n this.stateInSpecialComment(c);\n break;\n }\n case State.BeforeAttributeName: {\n this.stateBeforeAttributeName(c);\n break;\n }\n case State.InTagName: {\n this.stateInTagName(c);\n break;\n }\n case State.InClosingTagName: {\n this.stateInClosingTagName(c);\n break;\n }\n case State.BeforeTagName: {\n this.stateBeforeTagName(c);\n break;\n }\n case State.AfterAttributeName: {\n this.stateAfterAttributeName(c);\n break;\n }\n case State.InAttributeValueSq: {\n this.stateInAttributeValueSingleQuotes(c);\n break;\n }\n case State.BeforeAttributeValue: {\n this.stateBeforeAttributeValue(c);\n break;\n }\n case State.BeforeClosingTagName: {\n this.stateBeforeClosingTagName(c);\n break;\n }\n case State.AfterClosingTagName: {\n this.stateAfterClosingTagName(c);\n break;\n }\n case State.BeforeSpecialS: {\n this.stateBeforeSpecialS(c);\n break;\n }\n case State.BeforeSpecialT: {\n this.stateBeforeSpecialT(c);\n break;\n }\n case State.InAttributeValueNq: {\n this.stateInAttributeValueNoQuotes(c);\n break;\n }\n case State.InSelfClosingTag: {\n this.stateInSelfClosingTag(c);\n break;\n }\n case State.InDeclaration: {\n this.stateInDeclaration(c);\n break;\n }\n case State.BeforeDeclaration: {\n this.stateBeforeDeclaration(c);\n break;\n }\n case State.BeforeComment: {\n this.stateBeforeComment(c);\n break;\n }\n case State.InProcessingInstruction: {\n this.stateInProcessingInstruction(c);\n break;\n }\n case State.InEntity: {\n this.stateInEntity();\n break;\n }\n }\n this.index++;\n }\n this.cleanup();\n }\n\n private finish() {\n if (this.state === State.InEntity) {\n this.entityDecoder.end();\n this.state = this.baseState;\n }\n\n this.handleTrailingData();\n\n this.cbs.onend();\n }\n\n /** Handle any trailing data. */\n private handleTrailingData() {\n const endIndex = this.buffer.length + this.offset;\n\n // If there is no remaining data, we are done.\n if (this.sectionStart >= endIndex) {\n return;\n }\n\n if (this.state === State.InCommentLike) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex, 0);\n } else {\n this.cbs.oncomment(this.sectionStart, endIndex, 0);\n }\n } else if (\n this.state === State.InTagName ||\n this.state === State.BeforeAttributeName ||\n this.state === State.BeforeAttributeValue ||\n this.state === State.AfterAttributeName ||\n this.state === State.InAttributeName ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueNq ||\n this.state === State.InClosingTagName\n ) {\n /*\n * If we are currently in an opening or closing tag, us not calling the\n * respective callback signals that the tag should be ignored.\n */\n } else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n }\n\n private emitCodePoint(cp: number, consumed: number): void {\n if (\n this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag\n ) {\n if (this.sectionStart < this.entityStart) {\n this.cbs.onattribdata(this.sectionStart, this.entityStart);\n }\n this.sectionStart = this.entityStart + consumed;\n this.index = this.sectionStart - 1;\n\n this.cbs.onattribentity(cp);\n } else {\n if (this.sectionStart < this.entityStart) {\n this.cbs.ontext(this.sectionStart, this.entityStart);\n }\n this.sectionStart = this.entityStart + consumed;\n this.index = this.sectionStart - 1;\n\n this.cbs.ontextentity(cp, this.sectionStart);\n }\n }\n}\n", "import Tokenizer, { type Callbacks, QuoteType } from \"./Tokenizer.js\";\nimport { fromCodePoint } from \"entities/decode\";\n\nconst formTags = new Set([\n \"input\",\n \"option\",\n \"optgroup\",\n \"select\",\n \"button\",\n \"datalist\",\n \"textarea\",\n]);\nconst pTag = new Set([\"p\"]);\nconst tableSectionTags = new Set([\"thead\", \"tbody\"]);\nconst ddtTags = new Set([\"dd\", \"dt\"]);\nconst rtpTags = new Set([\"rt\", \"rp\"]);\n\nconst openImpliesClose = new Map<string, Set<string>>([\n [\"tr\", new Set([\"tr\", \"th\", \"td\"])],\n [\"th\", new Set([\"th\"])],\n [\"td\", new Set([\"thead\", \"th\", \"td\"])],\n [\"body\", new Set([\"head\", \"link\", \"script\"])],\n [\"li\", new Set([\"li\"])],\n [\"p\", pTag],\n [\"h1\", pTag],\n [\"h2\", pTag],\n [\"h3\", pTag],\n [\"h4\", pTag],\n [\"h5\", pTag],\n [\"h6\", pTag],\n [\"select\", formTags],\n [\"input\", formTags],\n [\"output\", formTags],\n [\"button\", formTags],\n [\"datalist\", formTags],\n [\"textarea\", formTags],\n [\"option\", new Set([\"option\"])],\n [\"optgroup\", new Set([\"optgroup\", \"option\"])],\n [\"dd\", ddtTags],\n [\"dt\", ddtTags],\n [\"address\", pTag],\n [\"article\", pTag],\n [\"aside\", pTag],\n [\"blockquote\", pTag],\n [\"details\", pTag],\n [\"div\", pTag],\n [\"dl\", pTag],\n [\"fieldset\", pTag],\n [\"figcaption\", pTag],\n [\"figure\", pTag],\n [\"footer\", pTag],\n [\"form\", pTag],\n [\"header\", pTag],\n [\"hr\", pTag],\n [\"main\", pTag],\n [\"nav\", pTag],\n [\"ol\", pTag],\n [\"pre\", pTag],\n [\"section\", pTag],\n [\"table\", pTag],\n [\"ul\", pTag],\n [\"rt\", rtpTags],\n [\"rp\", rtpTags],\n [\"tbody\", tableSectionTags],\n [\"tfoot\", tableSectionTags],\n]);\n\nconst voidElements = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n\nconst foreignContextElements = new Set([\"math\", \"svg\"]);\n\nconst htmlIntegrationElements = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignobject\",\n \"desc\",\n \"title\",\n]);\n\nexport interface ParserOptions {\n /**\n * Indicates whether special tags (`<script>`, `<style>`, and `<title>`) should get special treatment\n * and if \"empty\" tags (eg. `<br>`) can have children. If `false`, the content of special tags\n * will be text only. For feeds and other XML content (documents that don't consist of HTML),\n * set this to `true`.\n *\n * @default false\n */\n xmlMode?: boolean;\n\n /**\n * Decode entities within the document.\n *\n * @default true\n */\n decodeEntities?: boolean;\n\n /**\n * If set to true, all tags will be lowercased.\n *\n * @default !xmlMode\n */\n lowerCaseTags?: boolean;\n\n /**\n * If set to `true`, all attribute names will be lowercased. This has noticeable impact on speed.\n *\n * @default !xmlMode\n */\n lowerCaseAttributeNames?: boolean;\n\n /**\n * If set to true, CDATA sections will be recognized as text even if the xmlMode option is not enabled.\n * NOTE: If xmlMode is set to `true` then CDATA sections will always be recognized as text.\n *\n * @default xmlMode\n */\n recognizeCDATA?: boolean;\n\n /**\n * If set to `true`, self-closing tags will trigger the onclosetag event even if xmlMode is not set to `true`.\n * NOTE: If xmlMode is set to `true` then self-closing tags will always be recognized.\n *\n * @default xmlMode\n */\n recognizeSelfClosing?: boolean;\n\n /**\n * Allows the default tokenizer to be overwritten.\n */\n Tokenizer?: typeof Tokenizer;\n}\n\nexport interface Handler {\n onparserinit(parser: Parser): void;\n\n /**\n * Resets the handler back to starting state\n */\n onreset(): void;\n\n /**\n * Signals the handler that parsing is done\n */\n onend(): void;\n onerror(error: Error): void;\n onclosetag(name: string, isImplied: boolean): void;\n onopentagname(name: string): void;\n /**\n *\n * @param name Name of the attribute\n * @param value Value of the attribute.\n * @param quote Quotes used around the attribute. `null` if the attribute has no quotes around the value, `undefined` if the attribute has no value.\n */\n onattribute(\n name: string,\n value: string,\n quote?: string | undefined | null,\n ): void;\n onopentag(\n name: string,\n attribs: { [s: string]: string },\n isImplied: boolean,\n ): void;\n ontext(data: string): void;\n oncomment(data: string): void;\n oncdatastart(): void;\n oncdataend(): void;\n oncommentend(): void;\n onprocessinginstruction(name: string, data: string): void;\n}\n\nconst reNameEnd = /\\s|\\//;\n\nexport class Parser implements Callbacks {\n /** The start index of the last event. */\n public startIndex = 0;\n /** The end index of the last event. */\n public endIndex = 0;\n /**\n * Store the start index of the current open tag,\n * so we can update the start index for attributes.\n */\n private openTagStart = 0;\n\n private tagname = \"\";\n private attribname = \"\";\n private attribvalue = \"\";\n private attribs: null | { [key: string]: string } = null;\n private readonly stack: string[] = [];\n /** Determines whether self-closing tags are recognized. */\n private readonly foreignContext: boolean[];\n private readonly cbs: Partial<Handler>;\n private readonly lowerCaseTagNames: boolean;\n private readonly lowerCaseAttributeNames: boolean;\n private readonly recognizeSelfClosing: boolean;\n /** We are parsing HTML. Inverse of the `xmlMode` option. */\n private readonly htmlMode: boolean;\n private readonly tokenizer: Tokenizer;\n\n private readonly buffers: string[] = [];\n private bufferOffset = 0;\n /** The index of the last written buffer. Used when resuming after a `pause()`. */\n private writeIndex = 0;\n /** Indicates whether the parser has finished running / `.end` has been called. */\n private ended = false;\n\n constructor(\n cbs?: Partial<Handler> | null,\n private readonly options: ParserOptions = {},\n ) {\n this.cbs = cbs ?? {};\n this.htmlMode = !this.options.xmlMode;\n this.lowerCaseTagNames = options.lowerCaseTags ?? this.htmlMode;\n this.lowerCaseAttributeNames =\n options.lowerCaseAttributeNames ?? this.htmlMode;\n this.recognizeSelfClosing =\n options.recognizeSelfClosing ?? !this.htmlMode;\n this.tokenizer = new (options.Tokenizer ?? Tokenizer)(\n this.options,\n this,\n );\n this.foreignContext = [!this.htmlMode];\n this.cbs.onparserinit?.(this);\n }\n\n // Tokenizer event handlers\n\n /** @internal */\n ontext(start: number, endIndex: number): void {\n const data = this.getSlice(start, endIndex);\n this.endIndex = endIndex - 1;\n this.cbs.ontext?.(data);\n this.startIndex = endIndex;\n }\n\n /** @internal */\n ontextentity(cp: number, endIndex: number): void {\n this.endIndex = endIndex - 1;\n this.cbs.ontext?.(fromCodePoint(cp));\n this.startIndex = endIndex;\n }\n\n /**\n * Checks if the current tag is a void element. Override this if you want\n * to specify your own additional void elements.\n */\n protected isVoidElement(name: string): boolean {\n return this.htmlMode && voidElements.has(name);\n }\n\n /** @internal */\n onopentagname(start: number, endIndex: number): void {\n this.endIndex = endIndex;\n\n let name = this.getSlice(start, endIndex);\n\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n\n this.emitOpenTag(name);\n }\n\n private emitOpenTag(name: string) {\n this.openTagStart = this.startIndex;\n this.tagname = name;\n\n const impliesClose = this.htmlMode && openImpliesClose.get(name);\n\n if (impliesClose) {\n while (this.stack.length > 0 && impliesClose.has(this.stack[0])) {\n const element = this.stack.shift()!;\n this.cbs.onclosetag?.(element, true);\n }\n }\n if (!this.isVoidElement(name)) {\n this.stack.unshift(name);\n\n if (this.htmlMode) {\n if (foreignContextElements.has(name)) {\n this.foreignContext.unshift(true);\n } else if (htmlIntegrationElements.has(name)) {\n this.foreignContext.unshift(false);\n }\n }\n }\n this.cbs.onopentagname?.(name);\n if (this.cbs.onopentag) this.attribs = {};\n }\n\n private endOpenTag(isImplied: boolean) {\n this.startIndex = this.openTagStart;\n\n if (this.attribs) {\n this.cbs.onopentag?.(this.tagname, this.attribs, isImplied);\n this.attribs = null;\n }\n if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {\n this.cbs.onclosetag(this.tagname, true);\n }\n\n this.tagname = \"\";\n }\n\n /** @internal */\n onopentagend(endIndex: number): void {\n this.endIndex = endIndex;\n this.endOpenTag(false);\n\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n\n /** @internal */\n onclosetag(start: number, endIndex: number): void {\n this.endIndex = endIndex;\n\n let name = this.getSlice(start, endIndex);\n\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n\n if (\n this.htmlMode &&\n (foreignContextElements.has(name) ||\n htmlIntegrationElements.has(name))\n ) {\n this.foreignContext.shift();\n }\n\n if (!this.isVoidElement(name)) {\n const pos = this.stack.indexOf(name);\n if (pos !== -1) {\n for (let index = 0; index <= pos; index++) {\n const element = this.stack.shift()!;\n // We know the stack has sufficient elements.\n this.cbs.onclosetag?.(element, index !== pos);\n }\n } else if (this.htmlMode && name === \"p\") {\n // Implicit open before close\n this.emitOpenTag(\"p\");\n this.closeCurrentTag(true);\n }\n } else if (this.htmlMode && name === \"br\") {\n // We can't use `emitOpenTag` for implicit open, as `br` would be implicitly closed.\n this.cbs.onopentagname?.(\"br\");\n this.cbs.onopentag?.(\"br\", {}, true);\n this.cbs.onclosetag?.(\"br\", false);\n }\n\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n\n /** @internal */\n onselfclosingtag(endIndex: number): void {\n this.endIndex = endIndex;\n if (this.recognizeSelfClosing || this.foreignContext[0]) {\n this.closeCurrentTag(false);\n\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n } else {\n // Ignore the fact that the tag is self-closing.\n this.onopentagend(endIndex);\n }\n }\n\n private closeCurrentTag(isOpenImplied: boolean) {\n const name = this.tagname;\n this.endOpenTag(isOpenImplied);\n\n // Self-closing tags will be on the top of the stack\n if (this.stack[0] === name) {\n // If the opening tag isn't implied, the closing tag has to be implied.\n this.cbs.onclosetag?.(name, !isOpenImplied);\n this.stack.shift();\n }\n }\n\n /** @internal */\n onattribname(start: number, endIndex: number): void {\n this.startIndex = start;\n const name = this.getSlice(start, endIndex);\n\n this.attribname = this.lowerCaseAttributeNames\n ? name.toLowerCase()\n : name;\n }\n\n /** @internal */\n onattribdata(start: number, endIndex: number): void {\n this.attribvalue += this.getSlice(start, endIndex);\n }\n\n /** @internal */\n onattribentity(cp: number): void {\n this.attribvalue += fromCodePoint(cp);\n }\n\n /** @internal */\n onattribend(quote: QuoteType, endIndex: number): void {\n this.endIndex = endIndex;\n\n this.cbs.onattribute?.(\n this.attribname,\n this.attribvalue,\n quote === QuoteType.Double\n ? '\"'\n : quote === QuoteType.Single\n ? \"'\"\n : quote === QuoteType.NoValue\n ? undefined\n : null,\n );\n\n if (\n this.attribs &&\n !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)\n ) {\n this.attribs[this.attribname] = this.attribvalue;\n }\n this.attribvalue = \"\";\n }\n\n private getInstructionName(value: string) {\n const index = value.search(reNameEnd);\n let name = index < 0 ? value : value.substr(0, index);\n\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n\n return name;\n }\n\n /** @internal */\n ondeclaration(start: number, endIndex: number): void {\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex);\n\n if (this.cbs.onprocessinginstruction) {\n const name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(`!${name}`, `!${value}`);\n }\n\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n\n /** @internal */\n onprocessinginstruction(start: number, endIndex: number): void {\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex);\n\n if (this.cbs.onprocessinginstruction) {\n const name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(`?${name}`, `?${value}`);\n }\n\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n\n /** @internal */\n oncomment(start: number, endIndex: number, offset: number): void {\n this.endIndex = endIndex;\n\n this.cbs.oncomment?.(this.getSlice(start, endIndex - offset));\n this.cbs.oncommentend?.();\n\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n\n /** @internal */\n oncdata(start: number, endIndex: number, offset: number): void {\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex - offset);\n\n if (!this.htmlMode || this.options.recognizeCDATA) {\n this.cbs.oncdatastart?.();\n this.cbs.ontext?.(value);\n this.cbs.oncdataend?.();\n } else {\n this.cbs.oncomment?.(`[CDATA[${value}]]`);\n this.cbs.oncommentend?.();\n }\n\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n\n /** @internal */\n onend(): void {\n if (this.cbs.onclosetag) {\n // Set the end index for all remaining tags\n this.endIndex = this.startIndex;\n for (let index = 0; index < this.stack.length; index++) {\n this.cbs.onclosetag(this.stack[index], true);\n }\n }\n this.cbs.onend?.();\n }\n\n /**\n * Resets the parser to a blank state, ready to parse a new HTML document\n */\n public reset(): void {\n this.cbs.onreset?.();\n this.tokenizer.reset();\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribs = null;\n this.stack.length = 0;\n this.startIndex = 0;\n this.endIndex = 0;\n this.cbs.onparserinit?.(this);\n this.buffers.length = 0;\n this.foreignContext.length = 0;\n this.foreignContext.unshift(!this.htmlMode);\n this.bufferOffset = 0;\n this.writeIndex = 0;\n this.ended = false;\n }\n\n /**\n * Resets the parser, then parses a complete document and\n * pushes it to the handler.\n *\n * @param data Document to parse.\n */\n public parseComplete(data: string): void {\n this.reset();\n this.end(data);\n }\n\n private getSlice(start: number, end: number) {\n while (start - this.bufferOffset >= this.buffers[0].length) {\n this.shiftBuffer();\n }\n\n let slice = this.buffers[0].slice(\n start - this.bufferOffset,\n end - this.bufferOffset,\n );\n\n while (end - this.bufferOffset > this.buffers[0].length) {\n this.shiftBuffer();\n slice += this.buffers[0].slice(0, end - this.bufferOffset);\n }\n\n return slice;\n }\n\n private shiftBuffer(): void {\n this.bufferOffset += this.buffers[0].length;\n this.writeIndex--;\n this.buffers.shift();\n }\n\n /**\n * Parses a chunk of data and calls the corresponding callbacks.\n *\n * @param chunk Chunk to parse.\n */\n public write(chunk: string): void {\n if (this.ended) {\n this.cbs.onerror?.(new Error(\".write() after done!\"));\n return;\n }\n\n this.buffers.push(chunk);\n if (this.tokenizer.running) {\n this.tokenizer.write(chunk);\n this.writeIndex++;\n }\n }\n\n /**\n * Parses the end of the buffer and clears the stack, calls onend.\n *\n * @param chunk Optional final chunk to parse.\n */\n public end(chunk?: string): void {\n if (this.ended) {\n this.cbs.onerror?.(new Error(\".end() after done!\"));\n return;\n }\n\n if (chunk) this.write(chunk);\n this.ended = true;\n this.tokenizer.end();\n }\n\n /**\n * Pauses parsing. The parser won't emit events until `resume` is called.\n */\n public pause(): void {\n this.tokenizer.pause();\n }\n\n /**\n * Resumes parsing after `pause` was called.\n */\n public resume(): void {\n this.tokenizer.resume();\n\n while (\n this.tokenizer.running &&\n this.writeIndex < this.buffers.length\n ) {\n this.tokenizer.write(this.buffers[this.writeIndex++]);\n }\n\n if (this.ended) this.tokenizer.end();\n }\n\n /**\n * Alias of `write`, for backwards compatibility.\n *\n * @param chunk Chunk to parse.\n * @deprecated\n */\n public parseChunk(chunk: string): void {\n this.write(chunk);\n }\n /**\n * Alias of `end`, for backwards compatibility.\n *\n * @param chunk Optional final chunk to parse.\n * @deprecated\n */\n public done(chunk?: string): void {\n this.end(chunk);\n }\n}\n", "/** Types of elements found in htmlparser2's DOM */\nexport var ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for <? ... ?> */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for <!-- ... --> */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for <script> tags */\n ElementType[\"Script\"] = \"script\";\n /** Type for <style> tags */\n ElementType[\"Style\"] = \"style\";\n /** Type for Any tag */\n ElementType[\"Tag\"] = \"tag\";\n /** Type for <![CDATA[ ... ]]> */\n ElementType[\"CDATA\"] = \"cdata\";\n /** Type for <!doctype ...> */\n ElementType[\"Doctype\"] = \"doctype\";\n})(ElementType || (ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nexport function isTag(elem) {\n return (elem.type === ElementType.Tag ||\n elem.type === ElementType.Script ||\n elem.type === ElementType.Style);\n}\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexport const Root = ElementType.Root;\n/** Type for Text */\nexport const Text = ElementType.Text;\n/** Type for <? ... ?> */\nexport const Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexport const Comment = ElementType.Comment;\n/** Type for <script> tags */\nexport const Script = ElementType.Script;\n/** Type for <style> tags */\nexport const Style = ElementType.Style;\n/** Type for Any tag */\nexport const Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexport const CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexport const Doctype = ElementType.Doctype;\n", "import { ElementType, isTag as isTagRaw } from \"domelementtype\";\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nexport class Node {\n constructor() {\n /** Parent of the node */\n this.parent = null;\n /** Previous sibling */\n this.prev = null;\n /** Next sibling */\n this.next = null;\n /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n this.startIndex = null;\n /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n this.endIndex = null;\n }\n // Read-write aliases for properties\n /**\n * Same as {@link parent}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get parentNode() {\n return this.parent;\n }\n set parentNode(parent) {\n this.parent = parent;\n }\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get previousSibling() {\n return this.prev;\n }\n set previousSibling(prev) {\n this.prev = prev;\n }\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get nextSibling() {\n return this.next;\n }\n set nextSibling(next) {\n this.next = next;\n }\n /**\n * Clone this node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\n cloneNode(recursive = false) {\n return cloneNode(this, recursive);\n }\n}\n/**\n * A node that contains some data.\n */\nexport class DataNode extends Node {\n /**\n * @param data The content of the data node\n */\n constructor(data) {\n super();\n this.data = data;\n }\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get nodeValue() {\n return this.data;\n }\n set nodeValue(data) {\n this.data = data;\n }\n}\n/**\n * Text within the document.\n */\nexport class Text extends DataNode {\n constructor() {\n super(...arguments);\n this.type = ElementType.Text;\n }\n get nodeType() {\n return 3;\n }\n}\n/**\n * Comments within the document.\n */\nexport class Comment extends DataNode {\n constructor() {\n super(...arguments);\n this.type = ElementType.Comment;\n }\n get nodeType() {\n return 8;\n }\n}\n/**\n * Processing instructions, including doc types.\n */\nexport class ProcessingInstruction extends DataNode {\n constructor(name, data) {\n super(data);\n this.name = name;\n this.type = ElementType.Directive;\n }\n get nodeType() {\n return 1;\n }\n}\n/**\n * A `Node` that can have children.\n */\nexport class NodeWithChildren extends Node {\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n constructor(children) {\n super();\n this.children = children;\n }\n // Aliases\n /** First child of the node. */\n get firstChild() {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n }\n /** Last child of the node. */\n get lastChild() {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n }\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get childNodes() {\n return this.children;\n }\n set childNodes(children) {\n this.children = children;\n }\n}\nexport class CDATA extends NodeWithChildren {\n constructor() {\n super(...arguments);\n this.type = ElementType.CDATA;\n }\n get nodeType() {\n return 4;\n }\n}\n/**\n * The root node of the document.\n */\nexport class Document extends NodeWithChildren {\n constructor() {\n super(...arguments);\n this.type = ElementType.Root;\n }\n get nodeType() {\n return 9;\n }\n}\n/**\n * An element within the DOM.\n */\nexport class Element extends NodeWithChildren {\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n */\n constructor(name, attribs, children = [], type = name === \"script\"\n ? ElementType.Script\n : name === \"style\"\n ? ElementType.Style\n : ElementType.Tag) {\n super(children);\n this.name = name;\n this.attribs = attribs;\n this.type = type;\n }\n get nodeType() {\n return 1;\n }\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get tagName() {\n return this.name;\n }\n set tagName(name) {\n this.name = name;\n }\n get attributes() {\n return Object.keys(this.attribs).map((name) => {\n var _a, _b;\n return ({\n name,\n value: this.attribs[name],\n namespace: (_a = this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n prefix: (_b = this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n });\n });\n }\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nexport function isTag(node) {\n return isTagRaw(node);\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nexport function isCDATA(node) {\n return node.type === ElementType.CDATA;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nexport function isText(node) {\n return node.type === ElementType.Text;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nexport function isComment(node) {\n return node.type === ElementType.Comment;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nexport function isDirective(node) {\n return node.type === ElementType.Directive;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nexport function isDocument(node) {\n return node.type === ElementType.Root;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nexport function hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nexport function cloneNode(node, recursive = false) {\n let result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new Element(node.name, { ...node.attribs }, children);\n children.forEach((child) => (child.parent = clone));\n if (node.namespace != null) {\n clone.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone[\"x-attribsNamespace\"] = { ...node[\"x-attribsNamespace\"] };\n }\n if (node[\"x-attribsPrefix\"]) {\n clone[\"x-attribsPrefix\"] = { ...node[\"x-attribsPrefix\"] };\n }\n result = clone;\n }\n else if (isCDATA(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new CDATA(children);\n children.forEach((child) => (child.parent = clone));\n result = clone;\n }\n else if (isDocument(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new Document(children);\n children.forEach((child) => (child.parent = clone));\n if (node[\"x-mode\"]) {\n clone[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone;\n }\n else if (isDirective(node)) {\n const instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(`Not implemented yet: ${node.type}`);\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\nfunction cloneChildren(childs) {\n const children = childs.map((child) => cloneNode(child, true));\n for (let i = 1; i < children.length; i++) {\n children[i].prev = children[i - 1];\n children[i - 1].next = children[i];\n }\n return children;\n}\n", "import { ElementType } from \"domelementtype\";\nimport { Element, Text, Comment, CDATA, Document, ProcessingInstruction, } from \"./node.js\";\nexport * from \"./node.js\";\n// Default options\nconst defaultOpts = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nexport class DomHandler {\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n constructor(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new Document(this.dom);\n /** Indicated whether parsing has been completed. */\n this.done = false;\n /** Stack of open tags. */\n this.tagStack = [this.root];\n /** A data node that is still being written to. */\n this.lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n this.parser = null;\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback !== null && callback !== void 0 ? callback : null;\n this.options = options !== null && options !== void 0 ? options : defaultOpts;\n this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n }\n onparserinit(parser) {\n this.parser = parser;\n }\n // Resets the handler back to starting state\n onreset() {\n this.dom = [];\n this.root = new Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n }\n // Signals the handler that parsing is done\n onend() {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n }\n onerror(error) {\n this.handleCallback(error);\n }\n onclosetag() {\n this.lastNode = null;\n const elem = this.tagStack.pop();\n if (this.options.withEndIndices) {\n elem.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(elem);\n }\n onopentag(name, attribs) {\n const type = this.options.xmlMode ? ElementType.Tag : undefined;\n const element = new Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n }\n ontext(data) {\n const { lastNode } = this;\n if (lastNode && lastNode.type === ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n const node = new Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n }\n oncomment(data) {\n if (this.lastNode && this.lastNode.type === ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n const node = new Comment(data);\n this.addNode(node);\n this.lastNode = node;\n }\n oncommentend() {\n this.lastNode = null;\n }\n oncdatastart() {\n const text = new Text(\"\");\n const node = new CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n }\n oncdataend() {\n this.lastNode = null;\n }\n onprocessinginstruction(name, data) {\n const node = new ProcessingInstruction(name, data);\n this.addNode(node);\n }\n handleCallback(error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n }\n addNode(node) {\n const parent = this.tagStack[this.tagStack.length - 1];\n const previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n }\n}\nexport default DomHandler;\n", null, null, null, null, null, null, null, null, "export const elementNames = new Map([\n \"altGlyph\",\n \"altGlyphDef\",\n \"altGlyphItem\",\n \"animateColor\",\n \"animateMotion\",\n \"animateTransform\",\n \"clipPath\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feDropShadow\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"foreignObject\",\n \"glyphRef\",\n \"linearGradient\",\n \"radialGradient\",\n \"textPath\",\n].map((val) => [val.toLowerCase(), val]));\nexport const attributeNames = new Map([\n \"definitionURL\",\n \"attributeName\",\n \"attributeType\",\n \"baseFrequency\",\n \"baseProfile\",\n \"calcMode\",\n \"clipPathUnits\",\n \"diffuseConstant\",\n \"edgeMode\",\n \"filterUnits\",\n \"glyphRef\",\n \"gradientTransform\",\n \"gradientUnits\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keyPoints\",\n \"keySplines\",\n \"keyTimes\",\n \"lengthAdjust\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerUnits\",\n \"markerWidth\",\n \"maskContentUnits\",\n \"maskUnits\",\n \"numOctaves\",\n \"pathLength\",\n \"patternContentUnits\",\n \"patternTransform\",\n \"patternUnits\",\n \"pointsAtX\",\n \"pointsAtY\",\n \"pointsAtZ\",\n \"preserveAlpha\",\n \"preserveAspectRatio\",\n \"primitiveUnits\",\n \"refX\",\n \"refY\",\n \"repeatCount\",\n \"repeatDur\",\n \"requiredExtensions\",\n \"requiredFeatures\",\n \"specularConstant\",\n \"specularExponent\",\n \"spreadMethod\",\n \"startOffset\",\n \"stdDeviation\",\n \"stitchTiles\",\n \"surfaceScale\",\n \"systemLanguage\",\n \"tableValues\",\n \"targetX\",\n \"targetY\",\n \"textLength\",\n \"viewBox\",\n \"viewTarget\",\n \"xChannelSelector\",\n \"yChannelSelector\",\n \"zoomAndPan\",\n].map((val) => [val.toLowerCase(), val]));\n", "/*\n * Module dependencies\n */\nimport * as ElementType from \"domelementtype\";\nimport { encodeXML, escapeAttribute, escapeText } from \"entities\";\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nimport { elementNames, attributeNames } from \"./foreignNames.js\";\nconst unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\nfunction replaceQuotes(value) {\n return value.replace(/\"/g, \"&quot;\");\n}\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n var _a;\n if (!attributes)\n return;\n const encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false\n ? replaceQuotes\n : opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? encodeXML\n : escapeAttribute;\n return Object.keys(attributes)\n .map((key) => {\n var _a, _b;\n const value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return `${key}=\"${encode(value)}\"`;\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nconst singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nexport function render(node, options = {}) {\n const nodes = \"length\" in node ? node : [node];\n let output = \"\";\n for (let i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexport default render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n // @ts-expect-error We don't use `Doctype` yet\n case ElementType.Doctype:\n case ElementType.Directive:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nconst foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nconst foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = { ...opts, xmlMode: false };\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = { ...opts, xmlMode: \"foreign\" };\n }\n let tag = `<${elem.name}`;\n const attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += ` ${attribs}`;\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += `</${elem.name}>`;\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return `<${elem.data}>`;\n}\nfunction renderText(elem, opts) {\n var _a;\n let data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data =\n opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? encodeXML(data)\n : escapeText(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return `<![CDATA[${elem.children[0].data}]]>`;\n}\nfunction renderComment(elem) {\n return `<!--${elem.data}-->`;\n}\n", null, null, null, null, null, null, null, "// Internal\nexport const NODE_END = -1;\n\n// Node\nexport const ELEMENT_NODE = 1;\nexport const ATTRIBUTE_NODE = 2;\nexport const TEXT_NODE = 3;\nexport const CDATA_SECTION_NODE = 4;\nexport const COMMENT_NODE = 8;\nexport const DOCUMENT_NODE = 9;\nexport const DOCUMENT_TYPE_NODE = 10;\nexport const DOCUMENT_FRAGMENT_NODE = 11;\n\n// Elements\nexport const BLOCK_ELEMENTS = new Set(['ARTICLE', 'ASIDE', 'BLOCKQUOTE', 'BODY', 'BR', 'BUTTON', 'CANVAS', 'CAPTION', 'COL', 'COLGROUP', 'DD', 'DIV', 'DL', 'DT', 'EMBED', 'FIELDSET', 'FIGCAPTION', 'FIGURE', 'FOOTER', 'FORM', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'LI', 'UL', 'OL', 'P']);\n\n// TreeWalker\nexport const SHOW_ALL = -1;\nexport const SHOW_ELEMENT = 1;\nexport const SHOW_TEXT = 4;\nexport const SHOW_CDATA_SECTION = 8;\nexport const SHOW_COMMENT = 128;\n\n// Document position\nexport const DOCUMENT_POSITION_DISCONNECTED = 0x01;\nexport const DOCUMENT_POSITION_PRECEDING = 0x02;\nexport const DOCUMENT_POSITION_FOLLOWING = 0x04;\nexport const DOCUMENT_POSITION_CONTAINS = 0x08;\nexport const DOCUMENT_POSITION_CONTAINED_BY = 0x10;\nexport const DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20;\n\n// SVG\nexport const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n", "const {\n assign,\n create,\n defineProperties,\n entries,\n getOwnPropertyDescriptors,\n keys,\n setPrototypeOf\n} = Object;\n\nexport {\n assign,\n create,\n defineProperties,\n entries,\n getOwnPropertyDescriptors,\n keys,\n setPrototypeOf\n};\n", "import {ELEMENT_NODE} from './constants.js';\nimport {END, MIME, NEXT, PREV} from './symbols.js';\n\nconst $String = String;\nexport {$String as String};\n\nexport const getEnd = node => node.nodeType === ELEMENT_NODE ? node[END] : node;\n\nexport const ignoreCase = ({ownerDocument}) => ownerDocument[MIME].ignoreCase;\n\nexport const knownAdjacent = (prev, next) => {\n prev[NEXT] = next;\n next[PREV] = prev;\n};\n\nexport const knownBoundaries = (prev, current, next) => {\n knownAdjacent(prev, current);\n knownAdjacent(getEnd(current), next);\n};\n\nexport const knownSegment = (prev, start, end, next) => {\n knownAdjacent(prev, start);\n knownAdjacent(getEnd(end), next);\n};\n\nexport const knownSiblings = (prev, current, next) => {\n knownAdjacent(prev, current);\n knownAdjacent(current, next);\n};\n\nexport const localCase = ({localName, ownerDocument}) => {\n return ownerDocument[MIME].ignoreCase ? localName.toUpperCase() : localName;\n};\n\nexport const setAdjacent = (prev, next) => {\n if (prev)\n prev[NEXT] = next;\n if (next)\n next[PREV] = prev;\n};\n\n/**\n * @param {import(\"../interface/document.js\").Document} ownerDocument\n * @param {string} html\n * @return {import(\"../interface/document-fragment.js\").DocumentFragment}\n */\nexport const htmlToFragment = (ownerDocument, html) => {\n const fragment = ownerDocument.createDocumentFragment();\n\n const elem = ownerDocument.createElement('');\n elem.innerHTML = html;\n const { firstChild, lastChild } = elem;\n\n if (firstChild) {\n knownSegment(fragment, firstChild, lastChild, fragment[END]);\n\n let child = firstChild;\n do {\n child.parentNode = fragment;\n } while (child !== lastChild && (child = getEnd(child)[NEXT]));\n }\n\n return fragment;\n};", "export const shadowRoots = new WeakMap;\n", "import {ELEMENT_NODE} from '../shared/constants.js';\nimport {END, NEXT, UPGRADE} from '../shared/symbols.js';\nimport {entries, setPrototypeOf} from '../shared/object.js';\nimport {shadowRoots} from '../shared/shadow-roots.js';\n\nlet reactive = false;\n\nexport const Classes = new WeakMap;\n\nexport const customElements = new WeakMap;\n\nexport const attributeChangedCallback = (element, attributeName, oldValue, newValue) => {\n if (\n reactive &&\n customElements.has(element) &&\n element.attributeChangedCallback &&\n element.constructor.observedAttributes.includes(attributeName)\n ) {\n element.attributeChangedCallback(attributeName, oldValue, newValue);\n }\n};\n\nconst createTrigger = (method, isConnected) => element => {\n if (customElements.has(element)) {\n const info = customElements.get(element);\n if (info.connected !== isConnected && element.isConnected === isConnected) {\n info.connected = isConnected;\n if (method in element)\n element[method]();\n }\n }\n};\n\nconst triggerConnected = createTrigger('connectedCallback', true);\nexport const connectedCallback = element => {\n if (reactive) {\n triggerConnected(element);\n if (shadowRoots.has(element))\n element = shadowRoots.get(element).shadowRoot;\n let {[NEXT]: next, [END]: end} = element;\n while (next !== end) {\n if (next.nodeType === ELEMENT_NODE)\n triggerConnected(next);\n next = next[NEXT];\n }\n }\n};\n\nconst triggerDisconnected = createTrigger('disconnectedCallback', false);\nexport const disconnectedCallback = element => {\n if (reactive) {\n triggerDisconnected(element);\n if (shadowRoots.has(element))\n element = shadowRoots.get(element).shadowRoot;\n let {[NEXT]: next, [END]: end} = element;\n while (next !== end) {\n if (next.nodeType === ELEMENT_NODE)\n triggerDisconnected(next);\n next = next[NEXT];\n }\n }\n};\n\n/**\n * @implements globalThis.CustomElementRegistry\n */\nexport class CustomElementRegistry {\n\n /**\n * @param {Document} ownerDocument\n */\n constructor(ownerDocument) {\n /**\n * @private\n */\n this.ownerDocument = ownerDocument;\n\n /**\n * @private\n */\n this.registry = new Map;\n\n /**\n * @private\n */\n this.waiting = new Map;\n\n /**\n * @private\n */\n this.active = false;\n }\n\n /**\n * @param {string} localName the custom element definition name\n * @param {Function} Class the custom element **Class** definition\n * @param {object?} options the optional object with an `extends` property\n */\n define(localName, Class, options = {}) {\n const {ownerDocument, registry, waiting} = this;\n\n if (registry.has(localName))\n throw new Error('unable to redefine ' + localName);\n\n if (Classes.has(Class))\n throw new Error('unable to redefine the same class: ' + Class);\n\n this.active = (reactive = true);\n\n const {extends: extend} = options;\n\n Classes.set(Class, {\n ownerDocument,\n options: {is: extend ? localName : ''},\n localName: extend || localName\n });\n\n const check = extend ?\n element => {\n return element.localName === extend &&\n element.getAttribute('is') === localName;\n } :\n element => element.localName === localName;\n registry.set(localName, {Class, check});\n if (waiting.has(localName)) {\n for (const resolve of waiting.get(localName))\n resolve(Class);\n waiting.delete(localName);\n }\n ownerDocument.querySelectorAll(\n extend ? `${extend}[is=\"${localName}\"]` : localName\n ).forEach(this.upgrade, this);\n }\n\n /**\n * @param {Element} element\n */\n upgrade(element) {\n if (customElements.has(element))\n return;\n const {ownerDocument, registry} = this;\n const ce = element.getAttribute('is') || element.localName;\n if (registry.has(ce)) {\n const {Class, check} = registry.get(ce);\n if (check(element)) {\n const {attributes, isConnected} = element;\n for (const attr of attributes)\n element.removeAttributeNode(attr);\n\n const values = entries(element);\n for (const [key] of values)\n delete element[key];\n\n setPrototypeOf(element, Class.prototype);\n ownerDocument[UPGRADE] = {element, values};\n new Class(ownerDocument, ce);\n\n customElements.set(element, {connected: isConnected});\n\n for (const attr of attributes)\n element.setAttributeNode(attr);\n\n if (isConnected && element.connectedCallback)\n element.connectedCallback();\n }\n }\n }\n\n /**\n * @param {string} localName the custom element definition name\n */\n whenDefined(localName) {\n const {registry, waiting} = this;\n return new Promise(resolve => {\n if (registry.has(localName))\n resolve(registry.get(localName).Class);\n else {\n if (!waiting.has(localName))\n waiting.set(localName, []);\n waiting.get(localName).push(resolve);\n }\n });\n }\n\n /**\n * @param {string} localName the custom element definition name\n * @returns {Function?} the custom element **Class**, if any\n */\n get(localName) {\n const info = this.registry.get(localName);\n return info && info.Class;\n }\n\n /**\n * @param {Function} Class **Class** of custom element\n * @returns {string?} found tag name or null\n */\n getName(Class) {\n if (Classes.has(Class)) {\n const { localName } = Classes.get(Class);\n return localName;\n }\n return null;\n }\n}\n", "import * as HTMLParser2 from 'htmlparser2';\n\nimport {ELEMENT_NODE, SVG_NAMESPACE} from './constants.js';\nimport {CUSTOM_ELEMENTS, PREV, END, VALUE} from './symbols.js';\nimport {keys} from './object.js';\n\nimport {knownBoundaries, knownSiblings} from './utils.js';\nimport {attributeChangedCallback, connectedCallback} from '../interface/custom-element-registry.js';\n\nconst {Parser} = HTMLParser2;\n\n// import {Mime} from './mime.js';\n// const VOID_SOURCE = Mime['text/html'].voidElements.source.slice(4, -2);\n// const VOID_ELEMENTS = new RegExp(`<(${VOID_SOURCE})([^>]*?)>`, 'gi');\n// const VOID_SANITIZER = (_, $1, $2) => `<${$1}${$2}${/\\/$/.test($2) ? '' : ' /'}>`;\n// const voidSanitizer = html => html.replace(VOID_ELEMENTS, VOID_SANITIZER);\n\nlet notParsing = true;\n\nconst append = (self, node, active) => {\n const end = self[END];\n node.parentNode = self;\n knownBoundaries(end[PREV], node, end);\n if (active && node.nodeType === ELEMENT_NODE)\n connectedCallback(node);\n return node;\n};\n\nconst attribute = (element, end, attribute, value, active) => {\n attribute[VALUE] = value;\n attribute.ownerElement = element;\n knownSiblings(end[PREV], attribute, end);\n if (attribute.name === 'class')\n element.className = value;\n if (active)\n attributeChangedCallback(element, attribute.name, null, value);\n};\n\nexport const isNotParsing = () => notParsing;\n\nexport const parseFromString = (document, isHTML, markupLanguage) => {\n const {active, registry} = document[CUSTOM_ELEMENTS];\n\n let node = document;\n let ownerSVGElement = null;\n let parsingCData = false;\n\n notParsing = false;\n\n const content = new Parser({\n // <!DOCTYPE ...>\n onprocessinginstruction(name, data) {\n if (name.toLowerCase() === '!doctype')\n document.doctype = data.slice(name.length).trim();\n },\n\n // <tagName>\n onopentag(name, attributes) {\n let create = true;\n if (isHTML) {\n if (ownerSVGElement) {\n node = append(node, document.createElementNS(SVG_NAMESPACE, name), active);\n node.ownerSVGElement = ownerSVGElement;\n create = false;\n }\n else if (name === 'svg' || name === 'SVG') {\n ownerSVGElement = document.createElementNS(SVG_NAMESPACE, name);\n node = append(node, ownerSVGElement, active);\n create = false;\n }\n else if (active) {\n const ce = name.includes('-') ? name : (attributes.is || '');\n if (ce && registry.has(ce)) {\n const {Class} = registry.get(ce);\n node = append(node, new Class, active);\n delete attributes.is;\n create = false;\n }\n }\n }\n\n if (create)\n node = append(node, document.createElement(name), false);\n\n let end = node[END];\n for (const name of keys(attributes))\n attribute(node, end, document.createAttribute(name), attributes[name], active);\n },\n\n // #text, #comment\n oncomment(data) { append(node, document.createComment(data), active); },\n ontext(text) {\n if (parsingCData) {\n append(node, document.createCDATASection(text), active);\n } else {\n append(node, document.createTextNode(text), active);\n }\n },\n\n // #cdata\n oncdatastart() { parsingCData = true; },\n oncdataend() { parsingCData = false; },\n\n // </tagName>\n onclosetag() {\n if (isHTML && node === ownerSVGElement)\n ownerSVGElement = null;\n node = node.parentNode;\n }\n }, {\n lowerCaseAttributeNames: false,\n decodeEntities: true,\n xmlMode: !isHTML\n });\n\n content.write(markupLanguage);\n content.end();\n\n notParsing = true;\n\n return document;\n};\n", "export const htmlClasses = new Map;\n\nexport const registerHTMLClass = (names, Class) => {\n for (const name of [].concat(names)) {\n htmlClasses.set(name, Class);\n htmlClasses.set(name.toUpperCase(), Class);\n }\n};\n", "import {\n NODE_END,\n ATTRIBUTE_NODE,\n CDATA_SECTION_NODE,\n COMMENT_NODE,\n DOCUMENT_TYPE_NODE,\n ELEMENT_NODE,\n TEXT_NODE\n} from './constants.js';\n\nimport {END, NEXT, VALUE} from './symbols.js';\n\nimport {getEnd} from './utils.js';\n\nconst loopSegment = ({[NEXT]: next, [END]: end}, json) => {\n while (next !== end) {\n switch (next.nodeType) {\n case ATTRIBUTE_NODE:\n attrAsJSON(next, json);\n break;\n case TEXT_NODE:\n case COMMENT_NODE:\n case CDATA_SECTION_NODE:\n characterDataAsJSON(next, json);\n break;\n case ELEMENT_NODE:\n elementAsJSON(next, json);\n next = getEnd(next);\n break;\n case DOCUMENT_TYPE_NODE:\n documentTypeAsJSON(next, json);\n break;\n }\n next = next[NEXT];\n }\n const last = json.length - 1;\n const value = json[last];\n if (typeof value === 'number' && value < 0)\n json[last] += NODE_END;\n else\n json.push(NODE_END);\n};\n\nexport const attrAsJSON = (attr, json) => {\n json.push(ATTRIBUTE_NODE, attr.name);\n const value = attr[VALUE].trim();\n if (value)\n json.push(value);\n};\n\nexport const characterDataAsJSON = (node, json) => {\n const value = node[VALUE];\n if (value.trim())\n json.push(node.nodeType, value);\n};\n\nexport const nonElementAsJSON = (node, json) => {\n json.push(node.nodeType);\n loopSegment(node, json);\n};\n\nexport const documentTypeAsJSON = ({name, publicId, systemId}, json) => {\n json.push(DOCUMENT_TYPE_NODE, name);\n if (publicId)\n json.push(publicId);\n if (systemId)\n json.push(systemId);\n};\n\nexport const elementAsJSON = (element, json) => {\n json.push(ELEMENT_NODE, element.localName);\n loopSegment(element, json);\n};\n", "import {MUTATION_OBSERVER} from '../shared/symbols.js';\n\nconst createRecord =\n (type, target, element, addedNodes, removedNodes, attributeName, oldValue) =>\n ({\n type,\n target,\n addedNodes,\n removedNodes,\n attributeName,\n oldValue,\n previousSibling: element?.previousSibling || null,\n nextSibling: element?.nextSibling || null,\n});\n\nconst queueAttribute = (\n observer, target, attributeName, attributeFilter, attributeOldValue, oldValue\n) => {\n if ((!attributeFilter || attributeFilter.includes(attributeName))) {\n const {callback, records, scheduled} = observer;\n records.push(createRecord(\n 'attributes', target, null,\n [], [],\n attributeName, attributeOldValue ? oldValue : void 0\n ));\n if (!scheduled) {\n observer.scheduled = true;\n Promise.resolve().then(() => {\n observer.scheduled = false;\n callback(records.splice(0), observer);\n });\n }\n }\n};\n\nexport const attributeChangedCallback = (element, attributeName, oldValue) => {\n const {ownerDocument} = element;\n const {active, observers} = ownerDocument[MUTATION_OBSERVER];\n if (active) {\n for (const observer of observers) {\n for (const [\n target,\n {\n childList,\n subtree,\n attributes,\n attributeFilter,\n attributeOldValue\n }\n ] of observer.nodes) {\n if (childList) {\n if (\n (subtree && (target === ownerDocument || target.contains(element))) ||\n (!subtree && target.children.includes(element))\n ) {\n queueAttribute(\n observer, element,\n attributeName, attributeFilter, attributeOldValue, oldValue\n );\n break;\n }\n }\n else if (\n attributes &&\n target === element\n ) {\n queueAttribute(\n observer, element,\n attributeName, attributeFilter, attributeOldValue, oldValue\n );\n break;\n }\n }\n }\n }\n};\n\nexport const moCallback = (element, parentNode) => {\n const {ownerDocument} = element;\n const {active, observers} = ownerDocument[MUTATION_OBSERVER];\n if (active) {\n for (const observer of observers) {\n for (const [target, {subtree, childList, characterData}] of observer.nodes) {\n if (childList) {\n if (\n (parentNode && (target === parentNode || /* c8 ignore next */(subtree && target.contains(parentNode)))) ||\n (!parentNode && ((subtree && (target === ownerDocument || /* c8 ignore next */target.contains(element))) ||\n (!subtree && target[characterData ? 'childNodes' : 'children'].includes(element))))\n ) {\n const {callback, records, scheduled} = observer;\n records.push(createRecord(\n 'childList', target, element,\n parentNode ? [] : [element], parentNode ? [element] : []\n ));\n if (!scheduled) {\n observer.scheduled = true;\n Promise.resolve().then(() => {\n observer.scheduled = false;\n callback(records.splice(0), observer);\n });\n }\n break;\n }\n }\n }\n }\n }\n};\n\nexport class MutationObserverClass {\n constructor(ownerDocument) {\n const observers = new Set;\n this.observers = observers;\n this.active = false;\n\n /**\n * @implements globalThis.MutationObserver\n */\n this.class = class MutationObserver {\n\n constructor(callback) {\n /**\n * @private\n */\n this.callback = callback;\n\n /**\n * @private\n */\n this.nodes = new Map;\n\n /**\n * @private\n */\n this.records = [];\n\n /**\n * @private\n */\n this.scheduled = false;\n }\n\n disconnect() {\n this.records.splice(0);\n this.nodes.clear();\n observers.delete(this);\n ownerDocument[MUTATION_OBSERVER].active = !!observers.size;\n }\n\n /**\n * @param {Element} target\n * @param {MutationObserverInit} options\n */\n observe(target, options = {\n subtree: false,\n childList: false,\n attributes: false,\n attributeFilter: null,\n attributeOldValue: false,\n characterData: false,\n // TODO: not implemented yet\n // characterDataOldValue: false\n }) {\n if (('attributeOldValue' in options) || ('attributeFilter' in options))\n options.attributes = true;\n // if ('characterDataOldValue' in options)\n // options.characterData = true;\n options.childList = !!options.childList;\n options.subtree = !!options.subtree;\n this.nodes.set(target, options);\n observers.add(this);\n ownerDocument[MUTATION_OBSERVER].active = true;\n }\n\n /**\n * @returns {MutationRecord[]}\n */\n takeRecords() { return this.records.splice(0); }\n }\n }\n}\n", "import {CLASS_LIST, NEXT, PREV, VALUE} from './symbols.js';\n\nimport {knownAdjacent, knownSiblings} from './utils.js';\n\nimport {attributeChangedCallback as ceAttributes} from '../interface/custom-element-registry.js';\nimport {attributeChangedCallback as moAttributes} from '../interface/mutation-observer.js';\n\nexport const emptyAttributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'class',\n 'contenteditable',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'draggable',\n 'formnovalidate',\n 'hidden',\n 'id',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected',\n 'style',\n 'truespeed'\n]);\n\nexport const setAttribute = (element, attribute) => {\n const {[VALUE]: value, name} = attribute;\n attribute.ownerElement = element;\n knownSiblings(element, attribute, element[NEXT]);\n if (name === 'class')\n element.className = value;\n moAttributes(element, name, null);\n ceAttributes(element, name, null, value);\n};\n\nexport const removeAttribute = (element, attribute) => {\n const {[VALUE]: value, name} = attribute;\n knownAdjacent(attribute[PREV], attribute[NEXT]);\n attribute.ownerElement = attribute[PREV] = attribute[NEXT] = null;\n if (name === 'class')\n element[CLASS_LIST] = null;\n moAttributes(element, name, value);\n ceAttributes(element, name, value, null);\n};\n\nexport const booleanAttribute = {\n get(element, name) {\n return element.hasAttribute(name);\n },\n set(element, name, value) {\n if (value)\n element.setAttribute(name, '');\n else\n element.removeAttribute(name);\n }\n};\n\nexport const numericAttribute = {\n get(element, name) {\n return parseFloat(element.getAttribute(name) || 0);\n },\n set(element, name, value) {\n element.setAttribute(name, value);\n }\n};\n\nexport const stringAttribute = {\n get(element, name) {\n return element.getAttribute(name) || '';\n },\n set(element, name, value) {\n element.setAttribute(name, value);\n }\n};\n\n/* oddly enough, this apparently is not a thing\nexport const nullableAttribute = {\n get(element, name) {\n return element.getAttribute(name);\n },\n set(element, name, value) {\n if (value === null)\n element.removeAttribute(name);\n else\n element.setAttribute(name, value);\n }\n};\n*/\n", "// https://dom.spec.whatwg.org/#interface-eventtarget\n\nconst wm = new WeakMap();\n\nfunction dispatch(event, listener) {\n if (typeof listener === 'function')\n listener.call(event.target, event);\n else\n listener.handleEvent(event);\n return event._stopImmediatePropagationFlag;\n}\n\nfunction invokeListeners({currentTarget, target}) {\n const map = wm.get(currentTarget);\n if (map && map.has(this.type)) {\n const listeners = map.get(this.type);\n if (currentTarget === target) {\n this.eventPhase = this.AT_TARGET;\n } else {\n this.eventPhase = this.BUBBLING_PHASE;\n }\n\n this.currentTarget = currentTarget;\n this.target = target;\n for (const [listener, options] of listeners) {\n if (options && options.once)\n listeners.delete(listener);\n if (dispatch(this, listener))\n break;\n }\n delete this.currentTarget;\n delete this.target;\n return this.cancelBubble;\n }\n}\n\n\n/**\n * @implements globalThis.EventTarget\n */\nclass DOMEventTarget {\n\n constructor() {\n wm.set(this, new Map);\n }\n\n /**\n * @protected\n */\n _getParent() {\n return null;\n }\n\n addEventListener(type, listener, options) {\n const map = wm.get(this);\n if (!map.has(type)) \n map.set(type, new Map);\n map.get(type).set(listener, options);\n }\n\n removeEventListener(type, listener) {\n const map = wm.get(this);\n if (map.has(type)) {\n const listeners = map.get(type);\n if (listeners.delete(listener) && !listeners.size)\n map.delete(type);\n }\n }\n\n dispatchEvent(event) {\n let node = this;\n event.eventPhase = event.CAPTURING_PHASE;\n\n // intentionally simplified, specs imply way more code: https://dom.spec.whatwg.org/#event-path\n while (node) {\n if (node.dispatchEvent)\n event._path.push({currentTarget: node, target: this});\n node = event.bubbles && node._getParent && node._getParent();\n }\n event._path.some(invokeListeners, event);\n event._path = [];\n event.eventPhase = event.NONE;\n return !event.defaultPrevented;\n }\n\n}\n\nexport {DOMEventTarget as EventTarget};\n", "// https://dom.spec.whatwg.org/#interface-nodelist\n\n/**\n * @implements globalThis.NodeList\n */\nexport class NodeList extends Array {\n item(i) { return i < this.length ? this[i] : null; }\n}\n", "// https://dom.spec.whatwg.org/#node\n\nimport {\n ELEMENT_NODE,\n ATTRIBUTE_NODE,\n TEXT_NODE,\n CDATA_SECTION_NODE,\n COMMENT_NODE,\n DOCUMENT_NODE,\n DOCUMENT_FRAGMENT_NODE,\n DOCUMENT_TYPE_NODE,\n DOCUMENT_POSITION_DISCONNECTED,\n DOCUMENT_POSITION_PRECEDING,\n DOCUMENT_POSITION_FOLLOWING,\n DOCUMENT_POSITION_CONTAINS,\n DOCUMENT_POSITION_CONTAINED_BY,\n DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC\n} from '../shared/constants.js';\n\nimport {NEXT, PREV} from '../shared/symbols.js';\n\nimport {EventTarget} from './event-target.js';\n\nimport {NodeList} from './node-list.js';\n\nconst getParentNodeCount = ({parentNode}) => {\n let count = 0;\n while (parentNode) {\n count++;\n parentNode = parentNode.parentNode;\n }\n return count;\n};\n\n/**\n * @implements globalThis.Node\n */\nexport class Node extends EventTarget {\n\n static get ELEMENT_NODE() { return ELEMENT_NODE; }\n static get ATTRIBUTE_NODE() { return ATTRIBUTE_NODE; }\n static get TEXT_NODE() { return TEXT_NODE; }\n static get CDATA_SECTION_NODE() { return CDATA_SECTION_NODE; }\n static get COMMENT_NODE() { return COMMENT_NODE; }\n static get DOCUMENT_NODE() { return DOCUMENT_NODE; }\n static get DOCUMENT_FRAGMENT_NODE() { return DOCUMENT_FRAGMENT_NODE; }\n static get DOCUMENT_TYPE_NODE() { return DOCUMENT_TYPE_NODE; }\n\n constructor(ownerDocument, localName, nodeType) {\n super();\n this.ownerDocument = ownerDocument;\n this.localName = localName;\n this.nodeType = nodeType;\n this.parentNode = null;\n this[NEXT] = null;\n this[PREV] = null;\n }\n\n get ELEMENT_NODE() { return ELEMENT_NODE; }\n get ATTRIBUTE_NODE() { return ATTRIBUTE_NODE; }\n get TEXT_NODE() { return TEXT_NODE; }\n get CDATA_SECTION_NODE() { return CDATA_SECTION_NODE; }\n get COMMENT_NODE() { return COMMENT_NODE; }\n get DOCUMENT_NODE() { return DOCUMENT_NODE; }\n get DOCUMENT_FRAGMENT_NODE() { return DOCUMENT_FRAGMENT_NODE; }\n get DOCUMENT_TYPE_NODE() { return DOCUMENT_TYPE_NODE; }\n\n get baseURI() {\n const ownerDocument = this.nodeType === DOCUMENT_NODE ?\n this : this.ownerDocument;\n if (ownerDocument) {\n const base = ownerDocument.querySelector('base');\n if (base)\n return base.getAttribute('href');\n\n const {location} = ownerDocument.defaultView;\n if (location)\n return location.href;\n }\n\n return null;\n }\n\n /* c8 ignore start */\n // mixin: node\n get isConnected() { return false; }\n get nodeName() { return this.localName; }\n get parentElement() { return null; }\n get previousSibling() { return null; }\n get previousElementSibling() { return null; }\n get nextSibling() { return null; }\n get nextElementSibling() { return null; }\n get childNodes() { return new NodeList; }\n get firstChild() { return null; }\n get lastChild() { return null; }\n\n // default values\n get nodeValue() { return null; }\n set nodeValue(value) {}\n get textContent() { return null; }\n set textContent(value) {}\n normalize() {}\n cloneNode() { return null; }\n contains() { return false; }\n /**\n * Inserts a node before a reference node as a child of this parent node.\n * @param {Node} newNode The node to be inserted.\n * @param {Node} referenceNode The node before which newNode is inserted. If this is null, then newNode is inserted at the end of node's child nodes.\n * @returns The added child\n */\n // eslint-disable-next-line no-unused-vars\n insertBefore(newNode, referenceNode) { return newNode }\n /**\n * Adds a node to the end of the list of children of this node.\n * @param {Node} child The node to append to the given parent node.\n * @returns The appended child.\n */\n appendChild(child) { return child }\n /**\n * Replaces a child node within this node\n * @param {Node} newChild The new node to replace oldChild.\n * @param {Node} oldChild The child to be replaced.\n * @returns The replaced Node. This is the same node as oldChild.\n */\n replaceChild(newChild, oldChild) { return oldChild }\n /**\n * Removes a child node from the DOM.\n * @param {Node} child A Node that is the child node to be removed from the DOM.\n * @returns The removed node.\n */\n removeChild(child) { return child }\n toString() { return ''; }\n /* c8 ignore stop */\n\n hasChildNodes() { return !!this.lastChild; }\n isSameNode(node) { return this === node; }\n\n // TODO: attributes?\n compareDocumentPosition(target) {\n let result = 0;\n if (this !== target) {\n let self = getParentNodeCount(this);\n let other = getParentNodeCount(target);\n if (self < other) {\n result += DOCUMENT_POSITION_FOLLOWING;\n if (this.contains(target))\n result += DOCUMENT_POSITION_CONTAINED_BY;\n }\n else if (other < self) {\n result += DOCUMENT_POSITION_PRECEDING;\n if (target.contains(this))\n result += DOCUMENT_POSITION_CONTAINS;\n }\n else if (self && other) {\n const {childNodes} = this.parentNode;\n if (childNodes.indexOf(this) < childNodes.indexOf(target))\n result += DOCUMENT_POSITION_FOLLOWING;\n else\n result += DOCUMENT_POSITION_PRECEDING;\n }\n if (!self || !other) {\n result += DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC;\n result += DOCUMENT_POSITION_DISCONNECTED;\n }\n }\n return result;\n }\n\n isEqualNode(node) {\n if (this === node)\n return true;\n if (this.nodeType === node.nodeType) {\n switch (this.nodeType) {\n case DOCUMENT_NODE:\n case DOCUMENT_FRAGMENT_NODE: {\n const aNodes = this.childNodes;\n const bNodes = node.childNodes;\n return aNodes.length === bNodes.length && aNodes.every((node, i) => node.isEqualNode(bNodes[i]));\n }\n }\n return this.toString() === node.toString();\n }\n return false;\n }\n\n /**\n * @protected\n */\n _getParent() {\n return this.parentNode;\n }\n\n /**\n * Calling it on an element inside a standard web page will return an HTMLDocument object representing the entire page (or <iframe>).\n * Calling it on an element inside a shadow DOM will return the associated ShadowRoot.\n * @return {ShadowRoot | HTMLDocument}\n */\n getRootNode() {\n let root = this;\n while (root.parentNode)\n root = root.parentNode;\n return root;\n }\n}\n", "const {replace} = '';\n\n// escape\nconst ca = /[<>&\\xA0]/g;\n\nconst esca = {\n '\\xA0': '&#160;',\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;'\n};\n\nconst pe = m => esca[m];\n\n/**\n * Safely escape HTML entities such as `&`, `<`, `>` only.\n * @param {string} es the input to safely escape\n * @returns {string} the escaped input, and it **throws** an error if\n * the input type is unexpected, except for boolean and numbers,\n * converted as string.\n */\nexport const escape = es => replace.call(es, ca, pe);\n", "import {ATTRIBUTE_NODE} from '../shared/constants.js';\nimport {CHANGED, VALUE} from '../shared/symbols.js';\nimport {String, ignoreCase} from '../shared/utils.js';\nimport {attrAsJSON} from '../shared/jsdon.js';\nimport {emptyAttributes} from '../shared/attributes.js';\n\nimport {attributeChangedCallback as moAttributes} from './mutation-observer.js';\nimport {attributeChangedCallback as ceAttributes} from './custom-element-registry.js';\n\nimport {Node} from './node.js';\nimport {escape} from '../shared/text-escaper.js';\n\nconst QUOTE = /\"/g;\n\n/**\n * @implements globalThis.Attr\n */\nexport class Attr extends Node {\n constructor(ownerDocument, name, value = '') {\n super(ownerDocument, name, ATTRIBUTE_NODE);\n this.ownerElement = null;\n this.name = String(name);\n this[VALUE] = String(value);\n this[CHANGED] = false;\n }\n\n get value() { return this[VALUE]; }\n set value(newValue) {\n const {[VALUE]: oldValue, name, ownerElement} = this;\n this[VALUE] = String(newValue);\n this[CHANGED] = true;\n if (ownerElement) {\n moAttributes(ownerElement, name, oldValue);\n ceAttributes(ownerElement, name, oldValue, this[VALUE]);\n }\n }\n\n cloneNode() {\n const {ownerDocument, name, [VALUE]: value} = this;\n return new Attr(ownerDocument, name, value);\n }\n\n toString() {\n const {name, [VALUE]: value} = this;\n if (emptyAttributes.has(name) && !value) {\n return ignoreCase(this) ? name : `${name}=\"\"`;\n }\n const escapedValue = (ignoreCase(this) ? value : escape(value)).replace(QUOTE, '&quot;');\n return `${name}=\"${escapedValue}\"`;\n }\n\n toJSON() {\n const json = [];\n attrAsJSON(this, json);\n return json;\n }\n}\n", "import {\n CDATA_SECTION_NODE,\n COMMENT_NODE,\n DOCUMENT_NODE,\n DOCUMENT_FRAGMENT_NODE,\n TEXT_NODE,\n NODE_END\n} from './constants.js';\n\nimport {START, NEXT, PREV} from './symbols.js';\nimport {getEnd} from './utils.js';\n\nexport const isConnected = ({ownerDocument, parentNode}) => {\n while (parentNode) {\n if (parentNode === ownerDocument)\n return true;\n parentNode = parentNode.parentNode || parentNode.host;\n }\n return false;\n};\n\nexport const parentElement = ({parentNode}) => {\n if (parentNode) {\n switch (parentNode.nodeType) {\n case DOCUMENT_NODE:\n case DOCUMENT_FRAGMENT_NODE:\n return null;\n }\n }\n return parentNode;\n};\n\nexport const previousSibling = ({[PREV]: prev}) => {\n switch (prev ? prev.nodeType : 0) {\n case NODE_END:\n return prev[START];\n case TEXT_NODE:\n case COMMENT_NODE:\n case CDATA_SECTION_NODE:\n return prev;\n }\n return null;\n};\n\nexport const nextSibling = node => {\n const next = getEnd(node)[NEXT];\n return next && (next.nodeType === NODE_END ? null : next);\n};\n", "// https://dom.spec.whatwg.org/#nondocumenttypechildnode\n// CharacterData, Element\n\nimport {ELEMENT_NODE} from '../shared/constants.js';\n\nimport {nextSibling, previousSibling} from '../shared/node.js';\n\nexport const nextElementSibling = node => {\n let next = nextSibling(node);\n while (next && next.nodeType !== ELEMENT_NODE)\n next = nextSibling(next);\n return next;\n};\n\nexport const previousElementSibling = node => {\n let prev = previousSibling(node);\n while (prev && prev.nodeType !== ELEMENT_NODE)\n prev = previousSibling(prev);\n return prev;\n};\n", "// https://dom.spec.whatwg.org/#childnode\n// CharacterData, DocumentType, Element\n\nimport {ELEMENT_NODE} from '../shared/constants.js';\nimport {NEXT, PREV} from '../shared/symbols.js';\n\nimport {getEnd, setAdjacent} from '../shared/utils.js';\n\nimport {moCallback} from '../interface/mutation-observer.js';\nimport {disconnectedCallback} from '../interface/custom-element-registry.js';\n\nconst asFragment = (ownerDocument, nodes) => {\n const fragment = ownerDocument.createDocumentFragment();\n fragment.append(...nodes);\n return fragment;\n};\n\nexport const before = (node, nodes) => {\n const {ownerDocument, parentNode} = node;\n if (parentNode)\n parentNode.insertBefore(\n asFragment(ownerDocument, nodes),\n node\n );\n};\n\nexport const after = (node, nodes) => {\n const {ownerDocument, parentNode} = node;\n if (parentNode)\n parentNode.insertBefore(\n asFragment(ownerDocument, nodes),\n getEnd(node)[NEXT]\n );\n};\n\nexport const replaceWith = (node, nodes) => {\n const {ownerDocument, parentNode} = node;\n if (parentNode) {\n if (nodes.includes(node))\n replaceWith(node, [node = node.cloneNode()]);\n parentNode.insertBefore(\n asFragment(ownerDocument, nodes),\n node\n );\n node.remove();\n }\n};\n\nexport const remove = (prev, current, next) => {\n const {parentNode, nodeType} = current;\n if (prev || next) {\n setAdjacent(prev, next);\n current[PREV] = null;\n getEnd(current)[NEXT] = null;\n }\n if (parentNode) {\n current.parentNode = null;\n moCallback(current, parentNode);\n if (nodeType === ELEMENT_NODE)\n disconnectedCallback(current);\n }\n};\n", "// https://dom.spec.whatwg.org/#interface-characterdata\n\nimport {NEXT, PREV, VALUE} from '../shared/symbols.js';\nimport {String} from '../shared/utils.js';\nimport {isConnected, parentElement, previousSibling, nextSibling} from '../shared/node.js';\nimport {characterDataAsJSON} from '../shared/jsdon.js';\n\nimport {previousElementSibling, nextElementSibling} from '../mixin/non-document-type-child-node.js';\nimport {before, after, replaceWith, remove} from '../mixin/child-node.js';\n\nimport {Node} from './node.js';\nimport {moCallback} from './mutation-observer.js';\n\n/**\n * @implements globalThis.CharacterData\n */\nexport class CharacterData extends Node {\n\n constructor(ownerDocument, localName, nodeType, data) {\n super(ownerDocument, localName, nodeType);\n this[VALUE] = String(data);\n }\n\n // <Mixins>\n get isConnected() { return isConnected(this); }\n get parentElement() { return parentElement(this); }\n get previousSibling() { return previousSibling(this); }\n get nextSibling() { return nextSibling(this); }\n\n get previousElementSibling() { return previousElementSibling(this); }\n get nextElementSibling() { return nextElementSibling(this); }\n\n before(...nodes) { before(this, nodes); }\n after(...nodes) { after(this, nodes); }\n replaceWith(...nodes) { replaceWith(this, nodes); }\n remove() { remove(this[PREV], this, this[NEXT]); }\n // </Mixins>\n\n // CharacterData only\n /* c8 ignore start */\n get data() { return this[VALUE]; }\n set data(value) {\n this[VALUE] = String(value);\n moCallback(this, this.parentNode);\n }\n\n get nodeValue() { return this.data; }\n set nodeValue(value) { this.data = value; }\n\n get textContent() { return this.data; }\n set textContent(value) { this.data = value; }\n\n get length() { return this.data.length; }\n\n substringData(offset, count) {\n return this.data.substr(offset, count);\n }\n\n appendData(data) {\n this.data += data;\n }\n\n insertData(offset, data) {\n const {data: t} = this;\n this.data = t.slice(0, offset) + data + t.slice(offset);\n }\n\n deleteData(offset, count) {\n const {data: t} = this;\n this.data = t.slice(0, offset) + t.slice(offset + count);\n }\n\n replaceData(offset, count, data) {\n const {data: t} = this;\n this.data = t.slice(0, offset) + data + t.slice(offset + count);\n }\n /* c8 ignore stop */\n\n toJSON() {\n const json = [];\n characterDataAsJSON(this, json);\n return json;\n }\n}\n", "import {CDATA_SECTION_NODE} from '../shared/constants.js';\nimport {VALUE} from '../shared/symbols.js';\n\nimport {CharacterData} from './character-data.js';\n\n/**\n * @implements globalThis.CDATASection\n */\nexport class CDATASection extends CharacterData {\n constructor(ownerDocument, data = '') {\n super(ownerDocument, '#cdatasection', CDATA_SECTION_NODE, data);\n }\n\n cloneNode() {\n const {ownerDocument, [VALUE]: data} = this;\n return new CDATASection(ownerDocument, data);\n }\n\n toString() { return `<![CDATA[${this[VALUE]}]]>`; }\n}\n", "import {COMMENT_NODE} from '../shared/constants.js';\nimport {VALUE} from '../shared/symbols.js';\n\nimport {CharacterData} from './character-data.js';\n\n/**\n * @implements globalThis.Comment\n */\nexport class Comment extends CharacterData {\n constructor(ownerDocument, data = '') {\n super(ownerDocument, '#comment', COMMENT_NODE, data);\n }\n\n cloneNode() {\n const {ownerDocument, [VALUE]: data} = this;\n return new Comment(ownerDocument, data);\n }\n\n toString() { return `<!--${this[VALUE]}-->`; }\n}\n", null, "export var SelectorType;\n(function (SelectorType) {\n SelectorType[\"Attribute\"] = \"attribute\";\n SelectorType[\"Pseudo\"] = \"pseudo\";\n SelectorType[\"PseudoElement\"] = \"pseudo-element\";\n SelectorType[\"Tag\"] = \"tag\";\n SelectorType[\"Universal\"] = \"universal\";\n // Traversals\n SelectorType[\"Adjacent\"] = \"adjacent\";\n SelectorType[\"Child\"] = \"child\";\n SelectorType[\"Descendant\"] = \"descendant\";\n SelectorType[\"Parent\"] = \"parent\";\n SelectorType[\"Sibling\"] = \"sibling\";\n SelectorType[\"ColumnCombinator\"] = \"column-combinator\";\n})(SelectorType || (SelectorType = {}));\n/**\n * Modes for ignore case.\n *\n * This could be updated to an enum, and the object is\n * the current stand-in that will allow code to be updated\n * without big changes.\n */\nexport const IgnoreCaseMode = {\n Unknown: null,\n QuirksMode: \"quirks\",\n IgnoreCase: true,\n CaseSensitive: false,\n};\nexport var AttributeAction;\n(function (AttributeAction) {\n AttributeAction[\"Any\"] = \"any\";\n AttributeAction[\"Element\"] = \"element\";\n AttributeAction[\"End\"] = \"end\";\n AttributeAction[\"Equals\"] = \"equals\";\n AttributeAction[\"Exists\"] = \"exists\";\n AttributeAction[\"Hyphen\"] = \"hyphen\";\n AttributeAction[\"Not\"] = \"not\";\n AttributeAction[\"Start\"] = \"start\";\n})(AttributeAction || (AttributeAction = {}));\n", "import { SelectorType, AttributeAction, } from \"./types\";\nconst reName = /^[^\\\\#]?(?:\\\\(?:[\\da-f]{1,6}\\s?|.)|[\\w\\-\\u00b0-\\uFFFF])+/;\nconst reEscape = /\\\\([\\da-f]{1,6}\\s?|(\\s)|.)/gi;\nconst actionTypes = new Map([\n [126 /* Tilde */, AttributeAction.Element],\n [94 /* Circumflex */, AttributeAction.Start],\n [36 /* Dollar */, AttributeAction.End],\n [42 /* Asterisk */, AttributeAction.Any],\n [33 /* ExclamationMark */, AttributeAction.Not],\n [124 /* Pipe */, AttributeAction.Hyphen],\n]);\n// Pseudos, whose data property is parsed as well.\nconst unpackPseudos = new Set([\n \"has\",\n \"not\",\n \"matches\",\n \"is\",\n \"where\",\n \"host\",\n \"host-context\",\n]);\n/**\n * Checks whether a specific selector is a traversal.\n * This is useful eg. in swapping the order of elements that\n * are not traversals.\n *\n * @param selector Selector to check.\n */\nexport function isTraversal(selector) {\n switch (selector.type) {\n case SelectorType.Adjacent:\n case SelectorType.Child:\n case SelectorType.Descendant:\n case SelectorType.Parent:\n case SelectorType.Sibling:\n case SelectorType.ColumnCombinator:\n return true;\n default:\n return false;\n }\n}\nconst stripQuotesFromPseudos = new Set([\"contains\", \"icontains\"]);\n// Unescape function taken from https://github.com/jquery/sizzle/blob/master/src/sizzle.js#L152\nfunction funescape(_, escaped, escapedWhitespace) {\n const high = parseInt(escaped, 16) - 0x10000;\n // NaN means non-codepoint\n return high !== high || escapedWhitespace\n ? escaped\n : high < 0\n ? // BMP codepoint\n String.fromCharCode(high + 0x10000)\n : // Supplemental Plane codepoint (surrogate pair)\n String.fromCharCode((high >> 10) | 0xd800, (high & 0x3ff) | 0xdc00);\n}\nfunction unescapeCSS(str) {\n return str.replace(reEscape, funescape);\n}\nfunction isQuote(c) {\n return c === 39 /* SingleQuote */ || c === 34 /* DoubleQuote */;\n}\nfunction isWhitespace(c) {\n return (c === 32 /* Space */ ||\n c === 9 /* Tab */ ||\n c === 10 /* NewLine */ ||\n c === 12 /* FormFeed */ ||\n c === 13 /* CarriageReturn */);\n}\n/**\n * Parses `selector`, optionally with the passed `options`.\n *\n * @param selector Selector to parse.\n * @param options Options for parsing.\n * @returns Returns a two-dimensional array.\n * The first dimension represents selectors separated by commas (eg. `sub1, sub2`),\n * the second contains the relevant tokens for that selector.\n */\nexport function parse(selector) {\n const subselects = [];\n const endIndex = parseSelector(subselects, `${selector}`, 0);\n if (endIndex < selector.length) {\n throw new Error(`Unmatched selector: ${selector.slice(endIndex)}`);\n }\n return subselects;\n}\nfunction parseSelector(subselects, selector, selectorIndex) {\n let tokens = [];\n function getName(offset) {\n const match = selector.slice(selectorIndex + offset).match(reName);\n if (!match) {\n throw new Error(`Expected name, found ${selector.slice(selectorIndex)}`);\n }\n const [name] = match;\n selectorIndex += offset + name.length;\n return unescapeCSS(name);\n }\n function stripWhitespace(offset) {\n selectorIndex += offset;\n while (selectorIndex < selector.length &&\n isWhitespace(selector.charCodeAt(selectorIndex))) {\n selectorIndex++;\n }\n }\n function readValueWithParenthesis() {\n selectorIndex += 1;\n const start = selectorIndex;\n let counter = 1;\n for (; counter > 0 && selectorIndex < selector.length; selectorIndex++) {\n if (selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */ &&\n !isEscaped(selectorIndex)) {\n counter++;\n }\n else if (selector.charCodeAt(selectorIndex) ===\n 41 /* RightParenthesis */ &&\n !isEscaped(selectorIndex)) {\n counter--;\n }\n }\n if (counter) {\n throw new Error(\"Parenthesis not matched\");\n }\n return unescapeCSS(selector.slice(start, selectorIndex - 1));\n }\n function isEscaped(pos) {\n let slashCount = 0;\n while (selector.charCodeAt(--pos) === 92 /* BackSlash */)\n slashCount++;\n return (slashCount & 1) === 1;\n }\n function ensureNotTraversal() {\n if (tokens.length > 0 && isTraversal(tokens[tokens.length - 1])) {\n throw new Error(\"Did not expect successive traversals.\");\n }\n }\n function addTraversal(type) {\n if (tokens.length > 0 &&\n tokens[tokens.length - 1].type === SelectorType.Descendant) {\n tokens[tokens.length - 1].type = type;\n return;\n }\n ensureNotTraversal();\n tokens.push({ type });\n }\n function addSpecialAttribute(name, action) {\n tokens.push({\n type: SelectorType.Attribute,\n name,\n action,\n value: getName(1),\n namespace: null,\n ignoreCase: \"quirks\",\n });\n }\n /**\n * We have finished parsing the current part of the selector.\n *\n * Remove descendant tokens at the end if they exist,\n * and return the last index, so that parsing can be\n * picked up from here.\n */\n function finalizeSubselector() {\n if (tokens.length &&\n tokens[tokens.length - 1].type === SelectorType.Descendant) {\n tokens.pop();\n }\n if (tokens.length === 0) {\n throw new Error(\"Empty sub-selector\");\n }\n subselects.push(tokens);\n }\n stripWhitespace(0);\n if (selector.length === selectorIndex) {\n return selectorIndex;\n }\n loop: while (selectorIndex < selector.length) {\n const firstChar = selector.charCodeAt(selectorIndex);\n switch (firstChar) {\n // Whitespace\n case 32 /* Space */:\n case 9 /* Tab */:\n case 10 /* NewLine */:\n case 12 /* FormFeed */:\n case 13 /* CarriageReturn */: {\n if (tokens.length === 0 ||\n tokens[0].type !== SelectorType.Descendant) {\n ensureNotTraversal();\n tokens.push({ type: SelectorType.Descendant });\n }\n stripWhitespace(1);\n break;\n }\n // Traversals\n case 62 /* GreaterThan */: {\n addTraversal(SelectorType.Child);\n stripWhitespace(1);\n break;\n }\n case 60 /* LessThan */: {\n addTraversal(SelectorType.Parent);\n stripWhitespace(1);\n break;\n }\n case 126 /* Tilde */: {\n addTraversal(SelectorType.Sibling);\n stripWhitespace(1);\n break;\n }\n case 43 /* Plus */: {\n addTraversal(SelectorType.Adjacent);\n stripWhitespace(1);\n break;\n }\n // Special attribute selectors: .class, #id\n case 46 /* Period */: {\n addSpecialAttribute(\"class\", AttributeAction.Element);\n break;\n }\n case 35 /* Hash */: {\n addSpecialAttribute(\"id\", AttributeAction.Equals);\n break;\n }\n case 91 /* LeftSquareBracket */: {\n stripWhitespace(1);\n // Determine attribute name and namespace\n let name;\n let namespace = null;\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */) {\n // Equivalent to no namespace\n name = getName(1);\n }\n else if (selector.startsWith(\"*|\", selectorIndex)) {\n namespace = \"*\";\n name = getName(2);\n }\n else {\n name = getName(0);\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */ &&\n selector.charCodeAt(selectorIndex + 1) !==\n 61 /* Equal */) {\n namespace = name;\n name = getName(1);\n }\n }\n stripWhitespace(0);\n // Determine comparison operation\n let action = AttributeAction.Exists;\n const possibleAction = actionTypes.get(selector.charCodeAt(selectorIndex));\n if (possibleAction) {\n action = possibleAction;\n if (selector.charCodeAt(selectorIndex + 1) !==\n 61 /* Equal */) {\n throw new Error(\"Expected `=`\");\n }\n stripWhitespace(2);\n }\n else if (selector.charCodeAt(selectorIndex) === 61 /* Equal */) {\n action = AttributeAction.Equals;\n stripWhitespace(1);\n }\n // Determine value\n let value = \"\";\n let ignoreCase = null;\n if (action !== \"exists\") {\n if (isQuote(selector.charCodeAt(selectorIndex))) {\n const quote = selector.charCodeAt(selectorIndex);\n let sectionEnd = selectorIndex + 1;\n while (sectionEnd < selector.length &&\n (selector.charCodeAt(sectionEnd) !== quote ||\n isEscaped(sectionEnd))) {\n sectionEnd += 1;\n }\n if (selector.charCodeAt(sectionEnd) !== quote) {\n throw new Error(\"Attribute value didn't end\");\n }\n value = unescapeCSS(selector.slice(selectorIndex + 1, sectionEnd));\n selectorIndex = sectionEnd + 1;\n }\n else {\n const valueStart = selectorIndex;\n while (selectorIndex < selector.length &&\n ((!isWhitespace(selector.charCodeAt(selectorIndex)) &&\n selector.charCodeAt(selectorIndex) !==\n 93 /* RightSquareBracket */) ||\n isEscaped(selectorIndex))) {\n selectorIndex += 1;\n }\n value = unescapeCSS(selector.slice(valueStart, selectorIndex));\n }\n stripWhitespace(0);\n // See if we have a force ignore flag\n const forceIgnore = selector.charCodeAt(selectorIndex) | 0x20;\n // If the forceIgnore flag is set (either `i` or `s`), use that value\n if (forceIgnore === 115 /* LowerS */) {\n ignoreCase = false;\n stripWhitespace(1);\n }\n else if (forceIgnore === 105 /* LowerI */) {\n ignoreCase = true;\n stripWhitespace(1);\n }\n }\n if (selector.charCodeAt(selectorIndex) !==\n 93 /* RightSquareBracket */) {\n throw new Error(\"Attribute selector didn't terminate\");\n }\n selectorIndex += 1;\n const attributeSelector = {\n type: SelectorType.Attribute,\n name,\n action,\n value,\n namespace,\n ignoreCase,\n };\n tokens.push(attributeSelector);\n break;\n }\n case 58 /* Colon */: {\n if (selector.charCodeAt(selectorIndex + 1) === 58 /* Colon */) {\n tokens.push({\n type: SelectorType.PseudoElement,\n name: getName(2).toLowerCase(),\n data: selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */\n ? readValueWithParenthesis()\n : null,\n });\n continue;\n }\n const name = getName(1).toLowerCase();\n let data = null;\n if (selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */) {\n if (unpackPseudos.has(name)) {\n if (isQuote(selector.charCodeAt(selectorIndex + 1))) {\n throw new Error(`Pseudo-selector ${name} cannot be quoted`);\n }\n data = [];\n selectorIndex = parseSelector(data, selector, selectorIndex + 1);\n if (selector.charCodeAt(selectorIndex) !==\n 41 /* RightParenthesis */) {\n throw new Error(`Missing closing parenthesis in :${name} (${selector})`);\n }\n selectorIndex += 1;\n }\n else {\n data = readValueWithParenthesis();\n if (stripQuotesFromPseudos.has(name)) {\n const quot = data.charCodeAt(0);\n if (quot === data.charCodeAt(data.length - 1) &&\n isQuote(quot)) {\n data = data.slice(1, -1);\n }\n }\n data = unescapeCSS(data);\n }\n }\n tokens.push({ type: SelectorType.Pseudo, name, data });\n break;\n }\n case 44 /* Comma */: {\n finalizeSubselector();\n tokens = [];\n stripWhitespace(1);\n break;\n }\n default: {\n if (selector.startsWith(\"/*\", selectorIndex)) {\n const endIndex = selector.indexOf(\"*/\", selectorIndex + 2);\n if (endIndex < 0) {\n throw new Error(\"Comment was not terminated\");\n }\n selectorIndex = endIndex + 2;\n // Remove leading whitespace\n if (tokens.length === 0) {\n stripWhitespace(0);\n }\n break;\n }\n let namespace = null;\n let name;\n if (firstChar === 42 /* Asterisk */) {\n selectorIndex += 1;\n name = \"*\";\n }\n else if (firstChar === 124 /* Pipe */) {\n name = \"\";\n if (selector.charCodeAt(selectorIndex + 1) === 124 /* Pipe */) {\n addTraversal(SelectorType.ColumnCombinator);\n stripWhitespace(2);\n break;\n }\n }\n else if (reName.test(selector.slice(selectorIndex))) {\n name = getName(0);\n }\n else {\n break loop;\n }\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */ &&\n selector.charCodeAt(selectorIndex + 1) !== 124 /* Pipe */) {\n namespace = name;\n if (selector.charCodeAt(selectorIndex + 1) ===\n 42 /* Asterisk */) {\n name = \"*\";\n selectorIndex += 2;\n }\n else {\n name = getName(1);\n }\n }\n tokens.push(name === \"*\"\n ? { type: SelectorType.Universal, namespace }\n : { type: SelectorType.Tag, name, namespace });\n }\n }\n }\n finalizeSubselector();\n return selectorIndex;\n}\n", null, null, null, null, null, null, null, null, null, null, null, null, "import * as CSSselect from 'css-select';\n\nimport {ELEMENT_NODE, TEXT_NODE} from './constants.js';\nimport {ignoreCase} from './utils.js';\n\nconst {isArray} = Array;\n\n/* c8 ignore start */\nconst isTag = ({nodeType}) => nodeType === ELEMENT_NODE;\n\nconst existsOne = (test, elements) => elements.some(\n element => isTag(element) && (\n test(element) ||\n existsOne(test, getChildren(element))\n )\n);\n\nconst getAttributeValue = (element, name) => name === 'class' ?\n element.classList.value : element.getAttribute(name);\n\nconst getChildren = ({childNodes}) => childNodes;\n\nconst getName = (element) => {\n const {localName} = element;\n return ignoreCase(element) ? localName.toLowerCase() : localName;\n};\n\nconst getParent = ({parentNode}) => parentNode;\n\nconst getSiblings = element => {\n const {parentNode} = element;\n return parentNode ? getChildren(parentNode) : element;\n};\n\nconst getText = node => {\n if (isArray(node))\n return node.map(getText).join('');\n if (isTag(node))\n return getText(getChildren(node));\n if (node.nodeType === TEXT_NODE)\n return node.data;\n return '';\n};\n\nconst hasAttrib = (element, name) => element.hasAttribute(name);\n\nconst removeSubsets = nodes => {\n let {length} = nodes;\n while (length--) {\n const node = nodes[length];\n if (length && -1 < nodes.lastIndexOf(node, length - 1)) {\n nodes.splice(length, 1);\n continue;\n }\n for (let {parentNode} = node; parentNode; parentNode = parentNode.parentNode) {\n if (nodes.includes(parentNode)) {\n nodes.splice(length, 1);\n break;\n }\n }\n }\n return nodes;\n};\n\nconst findAll = (test, nodes) => {\n const matches = [];\n for (const node of nodes) {\n if (isTag(node)) {\n if (test(node))\n matches.push(node);\n matches.push(...findAll(test, getChildren(node)));\n }\n }\n return matches;\n};\n\nconst findOne = (test, nodes) => {\n for (let node of nodes)\n if (test(node) || (node = findOne(test, getChildren(node))))\n return node;\n return null;\n};\n/* c8 ignore stop */\n\nconst adapter = {\n isTag,\n existsOne,\n getAttributeValue,\n getChildren,\n getName,\n getParent,\n getSiblings,\n getText,\n hasAttrib,\n removeSubsets,\n findAll,\n findOne\n};\n\nexport const prepareMatch = (element, selectors) => CSSselect.compile(\n selectors,\n {\n context: selectors.includes(':scope') ? element : void 0,\n xmlMode: !ignoreCase(element),\n adapter\n }\n);\n\nexport const matches = (element, selectors) => CSSselect.is(\n element,\n selectors,\n {\n strict: true,\n context: selectors.includes(':scope') ? element : void 0,\n xmlMode: !ignoreCase(element),\n adapter\n }\n);\n", "import {TEXT_NODE} from '../shared/constants.js';\nimport {VALUE} from '../shared/symbols.js';\nimport {escape} from '../shared/text-escaper.js';\n\nimport {CharacterData} from './character-data.js';\n\n/**\n * @implements globalThis.Text\n */\nexport class Text extends CharacterData {\n constructor(ownerDocument, data = '') {\n super(ownerDocument, '#text', TEXT_NODE, data);\n }\n\n get wholeText() {\n const text = [];\n let {previousSibling, nextSibling} = this;\n while (previousSibling) {\n if (previousSibling.nodeType === TEXT_NODE)\n text.unshift(previousSibling[VALUE]);\n else\n break;\n previousSibling = previousSibling.previousSibling;\n }\n text.push(this[VALUE]);\n while (nextSibling) {\n if (nextSibling.nodeType === TEXT_NODE)\n text.push(nextSibling[VALUE]);\n else\n break;\n nextSibling = nextSibling.nextSibling;\n }\n return text.join('');\n }\n\n cloneNode() {\n const {ownerDocument, [VALUE]: data} = this;\n return new Text(ownerDocument, data);\n }\n\n toString() { return escape(this[VALUE]); }\n}\n", "// https://dom.spec.whatwg.org/#interface-parentnode\n// Document, DocumentFragment, Element\n\nimport {\n ATTRIBUTE_NODE,\n DOCUMENT_FRAGMENT_NODE,\n ELEMENT_NODE,\n TEXT_NODE,\n NODE_END,\n CDATA_SECTION_NODE,\n COMMENT_NODE\n} from '../shared/constants.js';\n\nimport {PRIVATE, END, NEXT, PREV, START, VALUE} from '../shared/symbols.js';\n\nimport {prepareMatch} from '../shared/matches.js';\nimport {previousSibling, nextSibling} from '../shared/node.js';\nimport {getEnd, knownAdjacent, knownBoundaries, knownSegment, knownSiblings, localCase} from '../shared/utils.js';\n\nimport {Node} from '../interface/node.js';\nimport {Text} from '../interface/text.js';\nimport {NodeList} from '../interface/node-list.js';\n\nimport {moCallback} from '../interface/mutation-observer.js';\nimport {connectedCallback} from '../interface/custom-element-registry.js';\n\nimport {nextElementSibling} from './non-document-type-child-node.js';\n\nconst isNode = node => node instanceof Node;\n\nconst insert = (parentNode, child, nodes) => {\n const {ownerDocument} = parentNode;\n for (const node of nodes)\n parentNode.insertBefore(\n isNode(node) ? node : new Text(ownerDocument, node),\n child\n );\n};\n\n/** @typedef { import('../interface/element.js').Element & {\n [typeof NEXT]: NodeStruct,\n [typeof PREV]: NodeStruct,\n [typeof START]: NodeStruct,\n nodeType: typeof ATTRIBUTE_NODE | typeof DOCUMENT_FRAGMENT_NODE | typeof ELEMENT_NODE | typeof TEXT_NODE | typeof NODE_END | typeof COMMENT_NODE | typeof CDATA_SECTION_NODE,\n ownerDocument: Document,\n parentNode: ParentNode,\n}} NodeStruct */\n\nexport class ParentNode extends Node {\n constructor(ownerDocument, localName, nodeType) {\n super(ownerDocument, localName, nodeType);\n this[PRIVATE] = null;\n /** @type {NodeStruct} */\n this[NEXT] = this[END] = {\n [NEXT]: null,\n [PREV]: this,\n [START]: this,\n nodeType: NODE_END,\n ownerDocument: this.ownerDocument,\n parentNode: null\n };\n }\n\n get childNodes() {\n const childNodes = new NodeList;\n let {firstChild} = this;\n while (firstChild) {\n childNodes.push(firstChild);\n firstChild = nextSibling(firstChild);\n }\n return childNodes;\n }\n\n get children() {\n const children = new NodeList;\n let {firstElementChild} = this;\n while (firstElementChild) {\n children.push(firstElementChild);\n firstElementChild = nextElementSibling(firstElementChild);\n }\n return children;\n }\n\n /**\n * @returns {NodeStruct | null}\n */\n get firstChild() {\n let {[NEXT]: next, [END]: end} = this;\n while (next.nodeType === ATTRIBUTE_NODE)\n next = next[NEXT];\n return next === end ? null : next;\n }\n\n /**\n * @returns {NodeStruct | null}\n */\n get firstElementChild() {\n let {firstChild} = this;\n while (firstChild) {\n if (firstChild.nodeType === ELEMENT_NODE)\n return firstChild;\n firstChild = nextSibling(firstChild);\n }\n return null;\n }\n\n get lastChild() {\n const prev = this[END][PREV];\n switch (prev.nodeType) {\n case NODE_END:\n return prev[START];\n case ATTRIBUTE_NODE:\n return null;\n }\n return prev === this ? null : prev;\n }\n\n get lastElementChild() {\n let {lastChild} = this;\n while (lastChild) {\n if (lastChild.nodeType === ELEMENT_NODE)\n return lastChild;\n lastChild = previousSibling(lastChild);\n }\n return null;\n }\n\n get childElementCount() {\n return this.children.length;\n }\n\n prepend(...nodes) {\n insert(this, this.firstChild, nodes);\n }\n\n append(...nodes) {\n insert(this, this[END], nodes);\n }\n\n replaceChildren(...nodes) {\n let {[NEXT]: next, [END]: end} = this;\n while (next !== end && next.nodeType === ATTRIBUTE_NODE)\n next = next[NEXT];\n while (next !== end) {\n const after = getEnd(next)[NEXT];\n next.remove();\n next = after;\n }\n if (nodes.length)\n insert(this, end, nodes);\n }\n\n getElementsByClassName(className) {\n const elements = new NodeList;\n let {[NEXT]: next, [END]: end} = this;\n while (next !== end) {\n if (\n next.nodeType === ELEMENT_NODE &&\n next.hasAttribute('class') &&\n next.classList.has(className)\n )\n elements.push(next);\n next = next[NEXT];\n }\n return elements;\n }\n\n getElementsByTagName(tagName) {\n const elements = new NodeList;\n let {[NEXT]: next, [END]: end} = this;\n while (next !== end) {\n if (next.nodeType === ELEMENT_NODE && (\n next.localName === tagName ||\n localCase(next) === tagName\n ))\n elements.push(next);\n next = next[NEXT];\n }\n return elements;\n }\n\n querySelector(selectors) {\n const matches = prepareMatch(this, selectors);\n let {[NEXT]: next, [END]: end} = this;\n while (next !== end) {\n if (next.nodeType === ELEMENT_NODE && matches(next))\n return next;\n next = next.nodeType === ELEMENT_NODE && next.localName === 'template' ? next[END] : next[NEXT];\n }\n return null;\n }\n\n querySelectorAll(selectors) {\n const matches = prepareMatch(this, selectors);\n const elements = new NodeList;\n let {[NEXT]: next, [END]: end} = this;\n while (next !== end) {\n if (next.nodeType === ELEMENT_NODE && matches(next))\n elements.push(next);\n next = next.nodeType === ELEMENT_NODE && next.localName === 'template' ? next[END] : next[NEXT];\n }\n return elements;\n }\n\n appendChild(node) {\n return this.insertBefore(node, this[END]);\n }\n\n contains(node) {\n let parentNode = node;\n while (parentNode && parentNode !== this)\n parentNode = parentNode.parentNode;\n return parentNode === this;\n }\n\n insertBefore(node, before = null) {\n if (node === before)\n return node;\n if (node === this)\n throw new Error('unable to append a node to itself');\n const next = before || this[END];\n switch (node.nodeType) {\n case ELEMENT_NODE:\n node.remove();\n node.parentNode = this;\n knownBoundaries(next[PREV], node, next);\n moCallback(node, null);\n connectedCallback(node);\n break;\n case DOCUMENT_FRAGMENT_NODE: {\n let {[PRIVATE]: parentNode, firstChild, lastChild} = node;\n if (firstChild) {\n knownSegment(next[PREV], firstChild, lastChild, next);\n knownAdjacent(node, node[END]);\n if (parentNode)\n parentNode.replaceChildren();\n do {\n firstChild.parentNode = this;\n moCallback(firstChild, null);\n if (firstChild.nodeType === ELEMENT_NODE)\n connectedCallback(firstChild);\n } while (\n firstChild !== lastChild &&\n (firstChild = nextSibling(firstChild))\n );\n }\n break;\n }\n case TEXT_NODE:\n case COMMENT_NODE:\n case CDATA_SECTION_NODE:\n node.remove();\n /* eslint no-fallthrough:0 */\n // this covers DOCUMENT_TYPE_NODE too\n default:\n node.parentNode = this;\n knownSiblings(next[PREV], node, next);\n moCallback(node, null);\n break;\n }\n return node;\n }\n\n normalize() {\n let {[NEXT]: next, [END]: end} = this;\n while (next !== end) {\n const {[NEXT]: $next, [PREV]: $prev, nodeType} = next;\n if (nodeType === TEXT_NODE) {\n if (!next[VALUE])\n next.remove();\n else if ($prev && $prev.nodeType === TEXT_NODE) {\n $prev.textContent += next.textContent;\n next.remove();\n }\n }\n next = $next;\n }\n }\n\n removeChild(node) {\n if (node.parentNode !== this)\n throw new Error('node is not a child');\n node.remove();\n return node;\n }\n\n replaceChild(node, replaced) {\n const next = getEnd(replaced)[NEXT];\n replaced.remove();\n this.insertBefore(node, next);\n return replaced;\n }\n}\n", "// https://dom.spec.whatwg.org/#interface-nonelementparentnode\n// Document, DocumentFragment\n\nimport {ELEMENT_NODE} from '../shared/constants.js';\nimport {END, NEXT} from '../shared/symbols.js';\nimport {nonElementAsJSON} from '../shared/jsdon.js';\n\nimport {ParentNode} from './parent-node.js';\n\nexport class NonElementParentNode extends ParentNode {\n getElementById(id) {\n let {[NEXT]: next, [END]: end} = this;\n while (next !== end) {\n if (next.nodeType === ELEMENT_NODE && next.id === id)\n return next;\n next = next[NEXT];\n }\n return null;\n }\n\n cloneNode(deep) {\n const {ownerDocument, constructor} = this;\n const nonEPN = new constructor(ownerDocument);\n if (deep) {\n const {[END]: end} = nonEPN;\n for (const node of this.childNodes)\n nonEPN.insertBefore(node.cloneNode(deep), end);\n }\n return nonEPN; \n }\n\n toString() {\n const {childNodes, localName} = this;\n return `<${localName}>${childNodes.join('')}</${localName}>`;\n }\n\n toJSON() {\n const json = [];\n nonElementAsJSON(this, json);\n return json;\n }\n}\n", "import {DOCUMENT_FRAGMENT_NODE} from '../shared/constants.js';\nimport {NonElementParentNode} from '../mixin/non-element-parent-node.js';\n\n/**\n * @implements globalThis.DocumentFragment\n */\nexport class DocumentFragment extends NonElementParentNode {\n constructor(ownerDocument) {\n super(ownerDocument, '#document-fragment', DOCUMENT_FRAGMENT_NODE);\n }\n}\n", "import {DOCUMENT_TYPE_NODE} from '../shared/constants.js';\nimport {documentTypeAsJSON} from '../shared/jsdon.js';\n\nimport {Node} from './node.js';\n\n/**\n * @implements globalThis.DocumentType\n */\nexport class DocumentType extends Node {\n constructor(ownerDocument, name, publicId = '', systemId = '') {\n super(ownerDocument, '#document-type', DOCUMENT_TYPE_NODE);\n this.name = name;\n this.publicId = publicId;\n this.systemId = systemId;\n }\n\n cloneNode() {\n const {ownerDocument, name, publicId, systemId} = this;\n return new DocumentType(ownerDocument, name, publicId, systemId);\n }\n\n toString() {\n const {name, publicId, systemId} = this;\n const hasPublic = 0 < publicId.length;\n const str = [name];\n if (hasPublic)\n str.push('PUBLIC', `\"${publicId}\"`);\n if (systemId.length) {\n if (!hasPublic)\n str.push('SYSTEM');\n str.push(`\"${systemId}\"`);\n }\n return `<!DOCTYPE ${str.join(' ')}>`;\n }\n\n toJSON() {\n const json = [];\n documentTypeAsJSON(this, json);\n return json;\n }\n}\n", "import {ELEMENT_NODE, DOCUMENT_FRAGMENT_NODE} from '../shared/constants.js';\nimport {CUSTOM_ELEMENTS} from '../shared/symbols.js';\nimport {parseFromString} from '../shared/parse-from-string.js';\nimport {ignoreCase} from '../shared/utils.js';\n\n\n/**\n * @param {Node} node\n * @returns {String}\n */\nexport const getInnerHtml = node => node.childNodes.join('');\n\n/**\n * @param {Node} node\n * @param {String} html\n */\nexport const setInnerHtml = (node, html) => {\n const {ownerDocument} = node;\n const {constructor} = ownerDocument;\n const document = new constructor;\n document[CUSTOM_ELEMENTS] = ownerDocument[CUSTOM_ELEMENTS];\n const {childNodes} = parseFromString(document, ignoreCase(node), html);\n\n node.replaceChildren(...childNodes.map(setOwnerDocument, ownerDocument));\n};\n\nfunction setOwnerDocument(node) {\n node.ownerDocument = this;\n switch (node.nodeType) {\n case ELEMENT_NODE:\n case DOCUMENT_FRAGMENT_NODE:\n node.childNodes.forEach(setOwnerDocument, this);\n break;\n }\n return node;\n}\n", "export default camel => camel.replace(/(([A-Z0-9])([A-Z0-9][a-z]))|(([a-z0-9]+)([A-Z]))/g, '$2$5-$3$6')\n .toLowerCase();\n", "import uhyphen from 'uhyphen';\nimport {setPrototypeOf} from '../shared/object.js';\n\nconst refs = new WeakMap;\n\nconst key = name => `data-${uhyphen(name)}`;\nconst prop = name => name.slice(5).replace(/-([a-z])/g, (_, $1) => $1.toUpperCase());\n\nconst handler = {\n get(dataset, name) {\n if (name in dataset)\n return refs.get(dataset).getAttribute(key(name));\n },\n\n set(dataset, name, value) {\n dataset[name] = value;\n refs.get(dataset).setAttribute(key(name), value);\n return true;\n },\n\n deleteProperty(dataset, name) {\n if (name in dataset)\n refs.get(dataset).removeAttribute(key(name));\n return delete dataset[name];\n }\n};\n\n/**\n * @implements globalThis.DOMStringMap\n */\nexport class DOMStringMap {\n /**\n * @param {Element} ref\n */\n constructor(ref) {\n for (const {name, value} of ref.attributes) {\n if (/^data-/.test(name))\n this[prop(name)] = value;\n }\n refs.set(this, ref);\n return new Proxy(this, handler);\n }\n}\n\nsetPrototypeOf(DOMStringMap.prototype, null);\n", "import {OWNER_ELEMENT} from '../shared/symbols.js';\nimport {setAttribute} from '../shared/attributes.js';\n\nimport {Attr} from '../interface/attr.js';\n\nconst {add} = Set.prototype;\nconst addTokens = (self, tokens) => {\n for (const token of tokens) {\n if (token)\n add.call(self, token);\n }\n};\n\nconst update = ({[OWNER_ELEMENT]: ownerElement, value}) => {\n const attribute = ownerElement.getAttributeNode('class');\n if (attribute)\n attribute.value = value;\n else\n setAttribute(\n ownerElement,\n new Attr(ownerElement.ownerDocument, 'class', value)\n );\n};\n\n/**\n * @implements globalThis.DOMTokenList\n */\nexport class DOMTokenList extends Set {\n\n constructor(ownerElement) {\n super();\n this[OWNER_ELEMENT] = ownerElement;\n const attribute = ownerElement.getAttributeNode('class');\n if (attribute)\n addTokens(this, attribute.value.split(/\\s+/));\n }\n\n get length() { return this.size; }\n\n get value() { return [...this].join(' '); }\n\n /**\n * @param {...string} tokens\n */\n add(...tokens) {\n addTokens(this, tokens);\n update(this);\n }\n\n /**\n * @param {string} token\n */\n contains(token) { return this.has(token); }\n\n /**\n * @param {...string} tokens\n */\n remove(...tokens) {\n for (const token of tokens)\n this.delete(token);\n update(this);\n }\n\n /**\n * @param {string} token\n * @param {boolean?} force\n */\n toggle(token, force) {\n if (this.has(token)) {\n if (force)\n return true;\n this.delete(token);\n update(this);\n }\n else if (force || arguments.length === 1) {\n super.add(token);\n update(this);\n return true;\n }\n return false;\n }\n\n /**\n * @param {string} token\n * @param {string} newToken\n */\n replace(token, newToken) {\n if (this.has(token)) {\n this.delete(token);\n super.add(newToken);\n update(this);\n return true;\n }\n return false;\n }\n\n /**\n * @param {string} token\n */\n supports() { return true; }\n}\n", "import uhyphen from 'uhyphen';\n\nimport {CHANGED, PRIVATE, VALUE} from '../shared/symbols.js';\n\nconst refs = new WeakMap;\n\nconst getKeys = style => [...style.keys()].filter(key => key !== PRIVATE);\n\nconst updateKeys = style => {\n const attr = refs.get(style).getAttributeNode('style');\n if (!attr || attr[CHANGED] || style.get(PRIVATE) !== attr) {\n style.clear();\n if (attr) {\n style.set(PRIVATE, attr);\n for (const rule of attr[VALUE].split(/\\s*;\\s*/)) {\n let [key, ...rest] = rule.split(':');\n if (rest.length > 0) {\n key = key.trim();\n const value = rest.join(':').trim();\n if (key && value)\n style.set(key, value);\n }\n }\n }\n }\n return attr;\n};\n\nconst handler = {\n get(style, name) {\n if (name in prototype)\n return style[name];\n updateKeys(style);\n if (name === 'length')\n return getKeys(style).length;\n if (/^\\d+$/.test(name))\n return getKeys(style)[name];\n return style.get(uhyphen(name));\n },\n\n set(style, name, value) {\n if (name === 'cssText')\n style[name] = value;\n else {\n let attr = updateKeys(style);\n if (value == null)\n style.delete(uhyphen(name));\n else\n style.set(uhyphen(name), value);\n if (!attr) {\n const element = refs.get(style);\n attr = element.ownerDocument.createAttribute('style');\n element.setAttributeNode(attr);\n style.set(PRIVATE, attr);\n }\n attr[CHANGED] = false;\n attr[VALUE] = style.toString();\n }\n return true;\n }\n};\n\n/**\n * @implements globalThis.CSSStyleDeclaration\n */\nexport class CSSStyleDeclaration extends Map {\n constructor(element) {\n super();\n refs.set(this, element);\n /* c8 ignore start */\n return new Proxy(this, handler);\n /* c8 ignore stop */\n }\n\n get cssText() {\n return this.toString();\n }\n\n set cssText(value) {\n refs.get(this).setAttribute('style', value);\n }\n\n getPropertyValue(name) {\n const self = this[PRIVATE];\n return handler.get(self, name);\n }\n\n setProperty(name, value) {\n const self = this[PRIVATE];\n handler.set(self, name, value);\n }\n\n removeProperty(name) {\n const self = this[PRIVATE];\n handler.set(self, name, null);\n }\n\n [Symbol.iterator]() {\n const self = this[PRIVATE];\n updateKeys(self);\n const keys = getKeys(self);\n const {length} = keys;\n let i = 0;\n return {\n next() {\n const done = i === length;\n return {done, value: done ? null : keys[i++]};\n }\n };\n }\n\n get[PRIVATE]() { return this; }\n\n toString() {\n const self = this[PRIVATE];\n updateKeys(self);\n const cssText = [];\n self.forEach(push, cssText);\n return cssText.join(';');\n }\n}\n\nconst {prototype} = CSSStyleDeclaration;\n\nfunction push(value, key) {\n if (key !== PRIVATE)\n this.push(`${key}:${value}`);\n}\n", "// https://dom.spec.whatwg.org/#interface-event\n\n/* c8 ignore start */\n\n// Node 15 has Event but 14 and 12 don't\nconst BUBBLING_PHASE = 3;\nconst AT_TARGET = 2;\nconst CAPTURING_PHASE = 1;\nconst NONE = 0;\n\nfunction getCurrentTarget(ev) {\n return ev.currentTarget;\n}\n\n/**\n * @implements globalThis.Event\n */\nclass GlobalEvent {\n static get BUBBLING_PHASE() { return BUBBLING_PHASE; }\n static get AT_TARGET() { return AT_TARGET; }\n static get CAPTURING_PHASE() { return CAPTURING_PHASE; }\n static get NONE() { return NONE; }\n\n constructor(type, eventInitDict = {}) {\n this.type = type;\n this.bubbles = !!eventInitDict.bubbles;\n this.cancelBubble = false;\n this._stopImmediatePropagationFlag = false;\n this.cancelable = !!eventInitDict.cancelable;\n this.eventPhase = this.NONE;\n this.timeStamp = Date.now();\n this.defaultPrevented = false;\n this.originalTarget = null;\n this.returnValue = null;\n this.srcElement = null;\n this.target = null;\n this._path = [];\n }\n\n get BUBBLING_PHASE() { return BUBBLING_PHASE; }\n get AT_TARGET() { return AT_TARGET; }\n get CAPTURING_PHASE() { return CAPTURING_PHASE; }\n get NONE() { return NONE; }\n\n preventDefault() { this.defaultPrevented = true; }\n\n // simplified implementation, should be https://dom.spec.whatwg.org/#dom-event-composedpath\n composedPath() {\n return this._path.map(getCurrentTarget);\n }\n\n stopPropagation() {\n this.cancelBubble = true;\n }\n \n stopImmediatePropagation() {\n this.stopPropagation();\n this._stopImmediatePropagationFlag = true;\n }\n }\n\nexport {GlobalEvent as Event};\n\n/* c8 ignore stop */\n", "/**\n * @implements globalThis.NamedNodeMap\n */\nexport class NamedNodeMap extends Array {\n constructor(ownerElement) {\n super();\n this.ownerElement = ownerElement;\n }\n\n getNamedItem(name) {\n return this.ownerElement.getAttributeNode(name);\n }\n\n setNamedItem(attr) {\n this.ownerElement.setAttributeNode(attr);\n this.unshift(attr);\n }\n\n removeNamedItem(name) {\n const item = this.getNamedItem(name);\n this.ownerElement.removeAttribute(name);\n this.splice(this.indexOf(item), 1);\n }\n\n item(index) {\n return index < this.length ? this[index] : null;\n }\n\n /* c8 ignore start */\n getNamedItemNS(_, name) {\n return this.getNamedItem(name);\n }\n\n setNamedItemNS(_, attr) {\n return this.setNamedItem(attr);\n }\n\n removeNamedItemNS(_, name) {\n return this.removeNamedItem(name);\n }\n /* c8 ignore stop */\n}\n", "import {DOCUMENT_FRAGMENT_NODE} from '../shared/constants.js';\nimport {getInnerHtml, setInnerHtml} from '../mixin/inner-html.js';\nimport {NonElementParentNode} from '../mixin/non-element-parent-node.js';\n\n/**\n * @implements globalThis.ShadowRoot\n */\nexport class ShadowRoot extends NonElementParentNode {\n constructor(host) {\n super(host.ownerDocument, '#shadow-root', DOCUMENT_FRAGMENT_NODE);\n this.host = host;\n }\n\n get innerHTML() {\n return getInnerHtml(this);\n }\n set innerHTML(html) {\n setInnerHtml(this, html);\n }\n}\n", "// https://dom.spec.whatwg.org/#interface-element\n\nimport {\n ATTRIBUTE_NODE,\n BLOCK_ELEMENTS,\n CDATA_SECTION_NODE,\n COMMENT_NODE,\n ELEMENT_NODE,\n NODE_END,\n TEXT_NODE,\n SVG_NAMESPACE\n} from '../shared/constants.js';\n\nimport {\n setAttribute, removeAttribute,\n numericAttribute, stringAttribute\n} from '../shared/attributes.js';\n\nimport {\n CLASS_LIST, DATASET, STYLE,\n END, NEXT, PREV, START,\n MIME\n} from '../shared/symbols.js';\n\nimport {\n htmlToFragment,\n ignoreCase,\n knownAdjacent,\n localCase,\n String\n} from '../shared/utils.js';\n\nimport {elementAsJSON} from '../shared/jsdon.js';\nimport {matches, prepareMatch} from '../shared/matches.js';\nimport {shadowRoots} from '../shared/shadow-roots.js';\n\nimport {isConnected, parentElement, previousSibling, nextSibling} from '../shared/node.js';\nimport {previousElementSibling, nextElementSibling} from '../mixin/non-document-type-child-node.js';\n\nimport {before, after, replaceWith, remove} from '../mixin/child-node.js';\nimport {getInnerHtml, setInnerHtml} from '../mixin/inner-html.js';\nimport {ParentNode} from '../mixin/parent-node.js';\n\nimport {DOMStringMap} from '../dom/string-map.js';\nimport {DOMTokenList} from '../dom/token-list.js';\n\nimport {CSSStyleDeclaration} from './css-style-declaration.js';\nimport {Event} from './event.js';\nimport {NamedNodeMap} from './named-node-map.js';\nimport {ShadowRoot} from './shadow-root.js';\nimport {NodeList} from './node-list.js';\nimport {Attr} from './attr.js';\nimport {Text} from './text.js';\nimport {escape} from '../shared/text-escaper.js';\n\n// <utils>\nconst attributesHandler = {\n get(target, key) {\n return key in target ? target[key] : target.find(({name}) => name === key);\n }\n};\n\nconst create = (ownerDocument, element, localName) => {\n if ('ownerSVGElement' in element) {\n const svg = ownerDocument.createElementNS(SVG_NAMESPACE, localName);\n svg.ownerSVGElement = element.ownerSVGElement;\n return svg;\n }\n return ownerDocument.createElement(localName);\n};\n\nconst isVoid = ({localName, ownerDocument}) => {\n return ownerDocument[MIME].voidElements.test(localName);\n};\n\n// </utils>\n\n/**\n * @implements globalThis.Element\n */\nexport class Element extends ParentNode {\n constructor(ownerDocument, localName) {\n super(ownerDocument, localName, ELEMENT_NODE);\n this[CLASS_LIST] = null;\n this[DATASET] = null;\n this[STYLE] = null;\n }\n\n // <Mixins>\n get isConnected() { return isConnected(this); }\n get parentElement() { return parentElement(this); }\n get previousSibling() { return previousSibling(this); }\n get nextSibling() { return nextSibling(this); }\n get namespaceURI() {\n return 'http://www.w3.org/1999/xhtml';\n }\n\n get previousElementSibling() { return previousElementSibling(this); }\n get nextElementSibling() { return nextElementSibling(this); }\n\n before(...nodes) { before(this, nodes); }\n after(...nodes) { after(this, nodes); }\n replaceWith(...nodes) { replaceWith(this, nodes); }\n remove() { remove(this[PREV], this, this[END][NEXT]); }\n // </Mixins>\n\n // <specialGetters>\n get id() { return stringAttribute.get(this, 'id'); }\n set id(value) { stringAttribute.set(this, 'id', value); }\n\n get className() { return this.classList.value; }\n set className(value) {\n const {classList} = this;\n classList.clear();\n classList.add(...(String(value).split(/\\s+/)));\n }\n\n get nodeName() { return localCase(this); }\n get tagName() { return localCase(this); }\n\n get classList() {\n return this[CLASS_LIST] || (\n this[CLASS_LIST] = new DOMTokenList(this)\n );\n }\n\n get dataset() {\n return this[DATASET] || (\n this[DATASET] = new DOMStringMap(this)\n );\n }\n\n getBoundingClientRect() {\n return {\n x: 0,\n y: 0,\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0\n };\n }\n\n get nonce() { return stringAttribute.get(this, 'nonce'); }\n set nonce(value) { stringAttribute.set(this, 'nonce', value); }\n\n get style() {\n return this[STYLE] || (\n this[STYLE] = new CSSStyleDeclaration(this)\n );\n }\n\n get tabIndex() { return numericAttribute.get(this, 'tabindex') || -1; }\n set tabIndex(value) { numericAttribute.set(this, 'tabindex', value); }\n\n get slot() { return stringAttribute.get(this, 'slot'); }\n set slot(value) { stringAttribute.set(this, 'slot', value); }\n // </specialGetters>\n\n\n // <contentRelated>\n get innerText() {\n const text = [];\n let {[NEXT]: next, [END]: end} = this;\n while (next !== end) {\n if (next.nodeType === TEXT_NODE) {\n text.push(next.textContent.replace(/\\s+/g, ' '));\n } else if(\n text.length && next[NEXT] != end &&\n BLOCK_ELEMENTS.has(next.tagName)\n ) {\n text.push('\\n');\n }\n next = next[NEXT];\n }\n return text.join('');\n }\n\n /**\n * @returns {String}\n */\n get textContent() {\n const text = [];\n let {[NEXT]: next, [END]: end} = this;\n while (next !== end) {\n const nodeType = next.nodeType;\n if (nodeType === TEXT_NODE || nodeType === CDATA_SECTION_NODE)\n text.push(next.textContent);\n next = next[NEXT];\n }\n return text.join('');\n }\n\n set textContent(text) {\n this.replaceChildren();\n if (text != null && text !== '')\n this.appendChild(new Text(this.ownerDocument, text));\n }\n\n get innerHTML() {\n return getInnerHtml(this);\n }\n set innerHTML(html) {\n setInnerHtml(this, html);\n }\n\n get outerHTML() { return this.toString(); }\n set outerHTML(html) {\n const template = this.ownerDocument.createElement('');\n template.innerHTML = html;\n this.replaceWith(...template.childNodes);\n }\n // </contentRelated>\n\n // <attributes>\n get attributes() {\n const attributes = new NamedNodeMap(this);\n let next = this[NEXT];\n while (next.nodeType === ATTRIBUTE_NODE) {\n attributes.push(next);\n next = next[NEXT];\n }\n return new Proxy(attributes, attributesHandler);\n }\n\n focus() { this.dispatchEvent(new Event('focus')); }\n\n getAttribute(name) {\n if (name === 'class')\n return this.className;\n const attribute = this.getAttributeNode(name);\n return attribute && (ignoreCase(this) ? attribute.value : escape(attribute.value));\n }\n\n getAttributeNode(name) {\n let next = this[NEXT];\n while (next.nodeType === ATTRIBUTE_NODE) {\n if (next.name === name)\n return next;\n next = next[NEXT];\n }\n return null;\n }\n\n getAttributeNames() {\n const attributes = new NodeList;\n let next = this[NEXT];\n while (next.nodeType === ATTRIBUTE_NODE) {\n attributes.push(next.name);\n next = next[NEXT];\n }\n return attributes;\n }\n\n hasAttribute(name) { return !!this.getAttributeNode(name); }\n hasAttributes() { return this[NEXT].nodeType === ATTRIBUTE_NODE; }\n\n removeAttribute(name) {\n if (name === 'class' && this[CLASS_LIST])\n this[CLASS_LIST].clear();\n let next = this[NEXT];\n while (next.nodeType === ATTRIBUTE_NODE) {\n if (next.name === name) {\n removeAttribute(this, next);\n return;\n }\n next = next[NEXT];\n }\n }\n\n removeAttributeNode(attribute) {\n let next = this[NEXT];\n while (next.nodeType === ATTRIBUTE_NODE) {\n if (next === attribute) {\n removeAttribute(this, next);\n return;\n }\n next = next[NEXT];\n }\n }\n\n setAttribute(name, value) {\n if (name === 'class')\n this.className = value;\n else {\n const attribute = this.getAttributeNode(name);\n if (attribute)\n attribute.value = value;\n else\n setAttribute(this, new Attr(this.ownerDocument, name, value));\n }\n }\n\n setAttributeNode(attribute) {\n const {name} = attribute;\n const previously = this.getAttributeNode(name);\n if (previously !== attribute) {\n if (previously)\n this.removeAttributeNode(previously);\n const {ownerElement} = attribute;\n if (ownerElement)\n ownerElement.removeAttributeNode(attribute);\n setAttribute(this, attribute);\n }\n return previously;\n }\n\n toggleAttribute(name, force) {\n if (this.hasAttribute(name)) {\n if (!force) {\n this.removeAttribute(name);\n return false;\n }\n return true;\n }\n else if (force || arguments.length === 1) {\n this.setAttribute(name, '');\n return true;\n }\n return false;\n }\n // </attributes>\n\n // <ShadowDOM>\n get shadowRoot() {\n if (shadowRoots.has(this)) {\n const {mode, shadowRoot} = shadowRoots.get(this);\n if (mode === 'open')\n return shadowRoot;\n }\n return null;\n }\n\n attachShadow(init) {\n if (shadowRoots.has(this))\n throw new Error('operation not supported');\n // TODO: shadowRoot should be likely a specialized class that extends DocumentFragment\n // but until DSD is out, I am not sure I should spend time on this.\n const shadowRoot = new ShadowRoot(this);\n shadowRoots.set(this, {\n mode: init.mode,\n shadowRoot\n });\n return shadowRoot;\n }\n // </ShadowDOM>\n\n // <selectors>\n matches(selectors) { return matches(this, selectors); }\n closest(selectors) {\n let parentElement = this;\n const matches = prepareMatch(parentElement, selectors);\n while (parentElement && !matches(parentElement))\n parentElement = parentElement.parentElement;\n return parentElement;\n }\n // </selectors>\n\n // <insertAdjacent>\n insertAdjacentElement(position, element) {\n const {parentElement} = this;\n switch (position) {\n case 'beforebegin':\n if (parentElement) {\n parentElement.insertBefore(element, this);\n break;\n }\n return null;\n case 'afterbegin':\n this.insertBefore(element, this.firstChild);\n break;\n case 'beforeend':\n this.insertBefore(element, null);\n break;\n case 'afterend':\n if (parentElement) {\n parentElement.insertBefore(element, this.nextSibling);\n break;\n }\n return null;\n }\n return element;\n }\n\n insertAdjacentHTML(position, html) {\n this.insertAdjacentElement(position, htmlToFragment(this.ownerDocument, html));\n }\n\n insertAdjacentText(position, text) {\n const node = this.ownerDocument.createTextNode(text);\n this.insertAdjacentElement(position, node);\n }\n // </insertAdjacent>\n\n cloneNode(deep = false) {\n const {ownerDocument, localName} = this;\n const addNext = next => {\n next.parentNode = parentNode;\n knownAdjacent($next, next);\n $next = next;\n };\n const clone = create(ownerDocument, this, localName);\n let parentNode = clone, $next = clone;\n let {[NEXT]: next, [END]: prev} = this;\n while (next !== prev && (deep || next.nodeType === ATTRIBUTE_NODE)) {\n switch (next.nodeType) {\n case NODE_END:\n knownAdjacent($next, parentNode[END]);\n $next = parentNode[END];\n parentNode = parentNode.parentNode;\n break;\n case ELEMENT_NODE: {\n const node = create(ownerDocument, next, next.localName);\n addNext(node);\n parentNode = node;\n break;\n }\n case ATTRIBUTE_NODE: {\n const attr = next.cloneNode(deep);\n attr.ownerElement = parentNode;\n addNext(attr);\n break;\n }\n case TEXT_NODE:\n case COMMENT_NODE:\n case CDATA_SECTION_NODE:\n addNext(next.cloneNode(deep));\n break;\n }\n next = next[NEXT];\n }\n knownAdjacent($next, clone[END]);\n return clone;\n }\n\n // <custom>\n toString() {\n const out = [];\n const {[END]: end} = this;\n let next = {[NEXT]: this};\n let isOpened = false;\n do {\n next = next[NEXT];\n switch (next.nodeType) {\n case ATTRIBUTE_NODE: {\n const attr = ' ' + next;\n switch (attr) {\n case ' id':\n case ' class':\n case ' style':\n break;\n default:\n out.push(attr);\n }\n break;\n }\n case NODE_END: {\n const start = next[START];\n if (isOpened) {\n if ('ownerSVGElement' in start)\n out.push(' />');\n else if (isVoid(start))\n out.push(ignoreCase(start) ? '>' : ' />');\n else\n out.push(`></${start.localName}>`);\n isOpened = false;\n }\n else\n out.push(`</${start.localName}>`);\n break;\n }\n case ELEMENT_NODE:\n if (isOpened)\n out.push('>');\n if (next.toString !== this.toString) {\n out.push(next.toString());\n next = next[END];\n isOpened = false;\n }\n else {\n out.push(`<${next.localName}`);\n isOpened = true;\n }\n break;\n case TEXT_NODE:\n case COMMENT_NODE:\n case CDATA_SECTION_NODE:\n out.push((isOpened ? '>' : '') + next);\n isOpened = false;\n break;\n }\n } while (next !== end);\n return out.join('');\n }\n\n toJSON() {\n const json = [];\n elementAsJSON(this, json);\n return json;\n }\n // </custom>\n\n\n /* c8 ignore start */\n getAttributeNS(_, name) { return this.getAttribute(name); }\n getElementsByTagNameNS(_, name) { return this.getElementsByTagName(name); }\n hasAttributeNS(_, name) { return this.hasAttribute(name); }\n removeAttributeNS(_, name) { this.removeAttribute(name); }\n setAttributeNS(_, name, value) { this.setAttribute(name, value); }\n setAttributeNodeNS(attr) { return this.setAttributeNode(attr); }\n /* c8 ignore stop */\n}\n", "import {Element} from '../interface/element.js';\nimport {String} from '../shared/utils.js';\n\nconst classNames = new WeakMap;\n\nconst handler = {\n get(target, name) {\n return target[name];\n },\n set(target, name, value) {\n target[name] = value;\n return true;\n }\n};\n\n/**\n * @implements globalThis.SVGElement\n */\nexport class SVGElement extends Element {\n constructor(ownerDocument, localName, ownerSVGElement = null) {\n super(ownerDocument, localName);\n this.ownerSVGElement = ownerSVGElement;\n }\n\n get className() {\n if (!classNames.has(this))\n classNames.set(this, new Proxy({baseVal: '', animVal: ''}, handler));\n return classNames.get(this);\n }\n\n /* c8 ignore start */\n set className(value) {\n const {classList} = this;\n classList.clear();\n classList.add(...(String(value).split(/\\s+/)));\n }\n /* c8 ignore stop */\n\n get namespaceURI() {\n return 'http://www.w3.org/2000/svg';\n }\n\n getAttribute(name) {\n return name === 'class' ?\n [...this.classList].join(' ') :\n super.getAttribute(name);\n }\n\n setAttribute(name, value) {\n if (name === 'class')\n this.className = value;\n else if (name === 'style') {\n const {className} = this;\n className.baseVal = className.animVal = value;\n }\n super.setAttribute(name, value);\n }\n}\n", "import {Attr as _Attr} from '../interface/attr.js';\nimport {CharacterData as _CharacterData} from '../interface/character-data.js';\nimport {CDATASection as _CDATASection} from '../interface/cdata-section.js';\nimport {Comment as _Comment} from '../interface/comment.js';\nimport {DocumentFragment as _DocumentFragment} from '../interface/document-fragment.js';\nimport {DocumentType as _DocumentType} from '../interface/document-type.js';\nimport {Element as _Element} from '../interface/element.js';\nimport {Node as _Node} from '../interface/node.js';\nimport {ShadowRoot as _ShadowRoot} from '../interface/shadow-root.js';\nimport {Text as _Text} from '../interface/text.js';\nimport {SVGElement as _SVGElement} from '../svg/element.js';\n\nimport {setPrototypeOf} from './object.js';\n\n/* c8 ignore start */\nexport const illegalConstructor = () => {\n throw new TypeError('Illegal constructor');\n};\n\nexport function Attr() { illegalConstructor(); }\nsetPrototypeOf(Attr, _Attr);\nAttr.prototype = _Attr.prototype;\n\nexport function CDATASection() { illegalConstructor(); }\nsetPrototypeOf(CDATASection, _CDATASection);\nCDATASection.prototype = _CDATASection.prototype;\n\nexport function CharacterData() { illegalConstructor(); }\nsetPrototypeOf(CharacterData, _CharacterData);\nCharacterData.prototype = _CharacterData.prototype;\n\nexport function Comment() { illegalConstructor(); }\nsetPrototypeOf(Comment, _Comment);\nComment.prototype = _Comment.prototype;\n\nexport function DocumentFragment() { illegalConstructor(); }\nsetPrototypeOf(DocumentFragment, _DocumentFragment);\nDocumentFragment.prototype = _DocumentFragment.prototype;\n\nexport function DocumentType() { illegalConstructor(); }\nsetPrototypeOf(DocumentType, _DocumentType);\nDocumentType.prototype = _DocumentType.prototype;\n\nexport function Element() { illegalConstructor(); }\nsetPrototypeOf(Element, _Element);\nElement.prototype = _Element.prototype;\n\nexport function Node() { illegalConstructor(); }\nsetPrototypeOf(Node, _Node);\nNode.prototype = _Node.prototype;\n\nexport function ShadowRoot() { illegalConstructor(); }\nsetPrototypeOf(ShadowRoot, _ShadowRoot);\nShadowRoot.prototype = _ShadowRoot.prototype;\n\nexport function Text() { illegalConstructor(); }\nsetPrototypeOf(Text, _Text);\nText.prototype = _Text.prototype;\n\nexport function SVGElement() { illegalConstructor(); }\nsetPrototypeOf(SVGElement, _SVGElement);\nSVGElement.prototype = _SVGElement.prototype;\n/* c8 ignore stop */\n\nexport const Facades = {\n Attr,\n CDATASection,\n CharacterData,\n Comment,\n DocumentFragment,\n DocumentType,\n Element,\n Node,\n ShadowRoot,\n Text,\n SVGElement\n};\n", "import {END, UPGRADE} from '../shared/symbols.js';\nimport {booleanAttribute, stringAttribute} from '../shared/attributes.js';\n\nimport {Event} from '../interface/event.js';\nimport {Element} from '../interface/element.js';\nimport {Classes, customElements} from '../interface/custom-element-registry.js';\n\nconst Level0 = new WeakMap;\nconst level0 = {\n get(element, name) {\n return Level0.has(element) && Level0.get(element)[name] || null;\n },\n set(element, name, value) {\n if (!Level0.has(element))\n Level0.set(element, {});\n const handlers = Level0.get(element);\n const type = name.slice(2);\n if (handlers[name])\n element.removeEventListener(type, handlers[name], false);\n if ((handlers[name] = value))\n element.addEventListener(type, value, false);\n }\n};\n\n/**\n * @implements globalThis.HTMLElement\n */\nexport class HTMLElement extends Element {\n\n static get observedAttributes() { return []; }\n\n constructor(ownerDocument = null, localName = '') {\n super(ownerDocument, localName);\n\n const ownerLess = !ownerDocument;\n let options;\n\n if (ownerLess) {\n const {constructor: Class} = this;\n if (!Classes.has(Class))\n throw new Error('unable to initialize this Custom Element');\n ({ownerDocument, localName, options} = Classes.get(Class));\n }\n\n if (ownerDocument[UPGRADE]) {\n const {element, values} = ownerDocument[UPGRADE];\n ownerDocument[UPGRADE] = null;\n for (const [key, value] of values)\n element[key] = value;\n return element;\n }\n\n if (ownerLess) {\n this.ownerDocument = this[END].ownerDocument = ownerDocument;\n this.localName = localName;\n customElements.set(this, {connected: false});\n if (options.is)\n this.setAttribute('is', options.is);\n }\n }\n\n /* c8 ignore start */\n\n /* TODO: what about these?\n offsetHeight\n offsetLeft\n offsetParent\n offsetTop\n offsetWidth\n */\n\n blur() { this.dispatchEvent(new Event('blur')); }\n click() {\n const clickEvent = new Event('click', {bubbles: true, cancelable: true});\n clickEvent.button = 0;\n\n this.dispatchEvent(clickEvent);\n }\n\n // Boolean getters\n get accessKeyLabel() {\n const {accessKey} = this;\n return accessKey && `Alt+Shift+${accessKey}`;\n }\n get isContentEditable() { return this.hasAttribute('contenteditable'); }\n\n // Boolean Accessors\n get contentEditable() { return booleanAttribute.get(this, 'contenteditable'); }\n set contentEditable(value) { booleanAttribute.set(this, 'contenteditable', value); }\n get draggable() { return booleanAttribute.get(this, 'draggable'); }\n set draggable(value) { booleanAttribute.set(this, 'draggable', value); }\n get hidden() { return booleanAttribute.get(this, 'hidden'); }\n set hidden(value) { booleanAttribute.set(this, 'hidden', value); }\n get spellcheck() { return booleanAttribute.get(this, 'spellcheck'); }\n set spellcheck(value) { booleanAttribute.set(this, 'spellcheck', value); }\n\n // String Accessors\n get accessKey() { return stringAttribute.get(this, 'accesskey'); }\n set accessKey(value) { stringAttribute.set(this, 'accesskey', value); }\n get dir() { return stringAttribute.get(this, 'dir'); }\n set dir(value) { stringAttribute.set(this, 'dir', value); }\n get lang() { return stringAttribute.get(this, 'lang'); }\n set lang(value) { stringAttribute.set(this, 'lang', value); }\n get title() { return stringAttribute.get(this, 'title'); }\n set title(value) { stringAttribute.set(this, 'title', value); }\n\n // DOM Level 0\n get onabort() { return level0.get(this, 'onabort'); }\n set onabort(value) { level0.set(this, 'onabort', value); }\n\n get onblur() { return level0.get(this, 'onblur'); }\n set onblur(value) { level0.set(this, 'onblur', value); }\n\n get oncancel() { return level0.get(this, 'oncancel'); }\n set oncancel(value) { level0.set(this, 'oncancel', value); }\n\n get oncanplay() { return level0.get(this, 'oncanplay'); }\n set oncanplay(value) { level0.set(this, 'oncanplay', value); }\n\n get oncanplaythrough() { return level0.get(this, 'oncanplaythrough'); }\n set oncanplaythrough(value) { level0.set(this, 'oncanplaythrough', value); }\n\n get onchange() { return level0.get(this, 'onchange'); }\n set onchange(value) { level0.set(this, 'onchange', value); }\n\n get onclick() { return level0.get(this, 'onclick'); }\n set onclick(value) { level0.set(this, 'onclick', value); }\n\n get onclose() { return level0.get(this, 'onclose'); }\n set onclose(value) { level0.set(this, 'onclose', value); }\n\n get oncontextmenu() { return level0.get(this, 'oncontextmenu'); }\n set oncontextmenu(value) { level0.set(this, 'oncontextmenu', value); }\n\n get oncuechange() { return level0.get(this, 'oncuechange'); }\n set oncuechange(value) { level0.set(this, 'oncuechange', value); }\n\n get ondblclick() { return level0.get(this, 'ondblclick'); }\n set ondblclick(value) { level0.set(this, 'ondblclick', value); }\n\n get ondrag() { return level0.get(this, 'ondrag'); }\n set ondrag(value) { level0.set(this, 'ondrag', value); }\n\n get ondragend() { return level0.get(this, 'ondragend'); }\n set ondragend(value) { level0.set(this, 'ondragend', value); }\n\n get ondragenter() { return level0.get(this, 'ondragenter'); }\n set ondragenter(value) { level0.set(this, 'ondragenter', value); }\n\n get ondragleave() { return level0.get(this, 'ondragleave'); }\n set ondragleave(value) { level0.set(this, 'ondragleave', value); }\n\n get ondragover() { return level0.get(this, 'ondragover'); }\n set ondragover(value) { level0.set(this, 'ondragover', value); }\n\n get ondragstart() { return level0.get(this, 'ondragstart'); }\n set ondragstart(value) { level0.set(this, 'ondragstart', value); }\n\n get ondrop() { return level0.get(this, 'ondrop'); }\n set ondrop(value) { level0.set(this, 'ondrop', value); }\n\n get ondurationchange() { return level0.get(this, 'ondurationchange'); }\n set ondurationchange(value) { level0.set(this, 'ondurationchange', value); }\n\n get onemptied() { return level0.get(this, 'onemptied'); }\n set onemptied(value) { level0.set(this, 'onemptied', value); }\n\n get onended() { return level0.get(this, 'onended'); }\n set onended(value) { level0.set(this, 'onended', value); }\n\n get onerror() { return level0.get(this, 'onerror'); }\n set onerror(value) { level0.set(this, 'onerror', value); }\n\n get onfocus() { return level0.get(this, 'onfocus'); }\n set onfocus(value) { level0.set(this, 'onfocus', value); }\n\n get oninput() { return level0.get(this, 'oninput'); }\n set oninput(value) { level0.set(this, 'oninput', value); }\n\n get oninvalid() { return level0.get(this, 'oninvalid'); }\n set oninvalid(value) { level0.set(this, 'oninvalid', value); }\n\n get onkeydown() { return level0.get(this, 'onkeydown'); }\n set onkeydown(value) { level0.set(this, 'onkeydown', value); }\n\n get onkeypress() { return level0.get(this, 'onkeypress'); }\n set onkeypress(value) { level0.set(this, 'onkeypress', value); }\n\n get onkeyup() { return level0.get(this, 'onkeyup'); }\n set onkeyup(value) { level0.set(this, 'onkeyup', value); }\n\n get onload() { return level0.get(this, 'onload'); }\n set onload(value) { level0.set(this, 'onload', value); }\n\n get onloadeddata() { return level0.get(this, 'onloadeddata'); }\n set onloadeddata(value) { level0.set(this, 'onloadeddata', value); }\n\n get onloadedmetadata() { return level0.get(this, 'onloadedmetadata'); }\n set onloadedmetadata(value) { level0.set(this, 'onloadedmetadata', value); }\n\n get onloadstart() { return level0.get(this, 'onloadstart'); }\n set onloadstart(value) { level0.set(this, 'onloadstart', value); }\n\n get onmousedown() { return level0.get(this, 'onmousedown'); }\n set onmousedown(value) { level0.set(this, 'onmousedown', value); }\n\n get onmouseenter() { return level0.get(this, 'onmouseenter'); }\n set onmouseenter(value) { level0.set(this, 'onmouseenter', value); }\n\n get onmouseleave() { return level0.get(this, 'onmouseleave'); }\n set onmouseleave(value) { level0.set(this, 'onmouseleave', value); }\n\n get onmousemove() { return level0.get(this, 'onmousemove'); }\n set onmousemove(value) { level0.set(this, 'onmousemove', value); }\n\n get onmouseout() { return level0.get(this, 'onmouseout'); }\n set onmouseout(value) { level0.set(this, 'onmouseout', value); }\n\n get onmouseover() { return level0.get(this, 'onmouseover'); }\n set onmouseover(value) { level0.set(this, 'onmouseover', value); }\n\n get onmouseup() { return level0.get(this, 'onmouseup'); }\n set onmouseup(value) { level0.set(this, 'onmouseup', value); }\n\n get onmousewheel() { return level0.get(this, 'onmousewheel'); }\n set onmousewheel(value) { level0.set(this, 'onmousewheel', value); }\n\n get onpause() { return level0.get(this, 'onpause'); }\n set onpause(value) { level0.set(this, 'onpause', value); }\n\n get onplay() { return level0.get(this, 'onplay'); }\n set onplay(value) { level0.set(this, 'onplay', value); }\n\n get onplaying() { return level0.get(this, 'onplaying'); }\n set onplaying(value) { level0.set(this, 'onplaying', value); }\n\n get onprogress() { return level0.get(this, 'onprogress'); }\n set onprogress(value) { level0.set(this, 'onprogress', value); }\n\n get onratechange() { return level0.get(this, 'onratechange'); }\n set onratechange(value) { level0.set(this, 'onratechange', value); }\n\n get onreset() { return level0.get(this, 'onreset'); }\n set onreset(value) { level0.set(this, 'onreset', value); }\n\n get onresize() { return level0.get(this, 'onresize'); }\n set onresize(value) { level0.set(this, 'onresize', value); }\n\n get onscroll() { return level0.get(this, 'onscroll'); }\n set onscroll(value) { level0.set(this, 'onscroll', value); }\n\n get onseeked() { return level0.get(this, 'onseeked'); }\n set onseeked(value) { level0.set(this, 'onseeked', value); }\n\n get onseeking() { return level0.get(this, 'onseeking'); }\n set onseeking(value) { level0.set(this, 'onseeking', value); }\n\n get onselect() { return level0.get(this, 'onselect'); }\n set onselect(value) { level0.set(this, 'onselect', value); }\n\n get onshow() { return level0.get(this, 'onshow'); }\n set onshow(value) { level0.set(this, 'onshow', value); }\n\n get onstalled() { return level0.get(this, 'onstalled'); }\n set onstalled(value) { level0.set(this, 'onstalled', value); }\n\n get onsubmit() { return level0.get(this, 'onsubmit'); }\n set onsubmit(value) { level0.set(this, 'onsubmit', value); }\n\n get onsuspend() { return level0.get(this, 'onsuspend'); }\n set onsuspend(value) { level0.set(this, 'onsuspend', value); }\n\n get ontimeupdate() { return level0.get(this, 'ontimeupdate'); }\n set ontimeupdate(value) { level0.set(this, 'ontimeupdate', value); }\n\n get ontoggle() { return level0.get(this, 'ontoggle'); }\n set ontoggle(value) { level0.set(this, 'ontoggle', value); }\n\n get onvolumechange() { return level0.get(this, 'onvolumechange'); }\n set onvolumechange(value) { level0.set(this, 'onvolumechange', value); }\n\n get onwaiting() { return level0.get(this, 'onwaiting'); }\n set onwaiting(value) { level0.set(this, 'onwaiting', value); }\n\n get onauxclick() { return level0.get(this, 'onauxclick'); }\n set onauxclick(value) { level0.set(this, 'onauxclick', value); }\n\n get ongotpointercapture() { return level0.get(this, 'ongotpointercapture'); }\n set ongotpointercapture(value) { level0.set(this, 'ongotpointercapture', value); }\n\n get onlostpointercapture() { return level0.get(this, 'onlostpointercapture'); }\n set onlostpointercapture(value) { level0.set(this, 'onlostpointercapture', value); }\n\n get onpointercancel() { return level0.get(this, 'onpointercancel'); }\n set onpointercancel(value) { level0.set(this, 'onpointercancel', value); }\n\n get onpointerdown() { return level0.get(this, 'onpointerdown'); }\n set onpointerdown(value) { level0.set(this, 'onpointerdown', value); }\n\n get onpointerenter() { return level0.get(this, 'onpointerenter'); }\n set onpointerenter(value) { level0.set(this, 'onpointerenter', value); }\n\n get onpointerleave() { return level0.get(this, 'onpointerleave'); }\n set onpointerleave(value) { level0.set(this, 'onpointerleave', value); }\n\n get onpointermove() { return level0.get(this, 'onpointermove'); }\n set onpointermove(value) { level0.set(this, 'onpointermove', value); }\n\n get onpointerout() { return level0.get(this, 'onpointerout'); }\n set onpointerout(value) { level0.set(this, 'onpointerout', value); }\n\n get onpointerover() { return level0.get(this, 'onpointerover'); }\n set onpointerover(value) { level0.set(this, 'onpointerover', value); }\n\n get onpointerup() { return level0.get(this, 'onpointerup'); }\n set onpointerup(value) { level0.set(this, 'onpointerup', value); }\n /* c8 ignore stop */\n\n}\n", "import {CONTENT, PRIVATE} from '../shared/symbols.js';\n\nimport {registerHTMLClass} from '../shared/register-html-class.js';\n\nimport {HTMLElement} from './element.js';\n\nconst tagName = 'template';\n\n/**\n * @implements globalThis.HTMLTemplateElement\n */\nclass HTMLTemplateElement extends HTMLElement {\n constructor(ownerDocument) {\n super(ownerDocument, tagName);\n const content = this.ownerDocument.createDocumentFragment();\n (this[CONTENT] = content)[PRIVATE] = this;\n }\n\n get content() {\n if (this.hasChildNodes() && !this[CONTENT].hasChildNodes()) {\n for (const node of this.childNodes)\n this[CONTENT].appendChild(node.cloneNode(true));\n }\n return this[CONTENT];\n }\n}\n\nregisterHTMLClass(tagName, HTMLTemplateElement);\n\nexport {HTMLTemplateElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLHtmlElement\n */\nexport class HTMLHtmlElement extends HTMLElement {\n constructor(ownerDocument, localName = 'html') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\nconst {toString} = HTMLElement.prototype;\n\nexport class TextElement extends HTMLElement {\n\n get innerHTML() { return this.textContent; }\n set innerHTML(html) { this.textContent = html; }\n\n toString() {\n const outerHTML = toString.call(this.cloneNode());\n return outerHTML.replace('><', () => `>${this.textContent}<`);\n }\n}\n", "import { booleanAttribute, stringAttribute } from '../shared/attributes.js';\nimport { registerHTMLClass } from '../shared/register-html-class.js';\n\nimport { TextElement } from './text-element.js';\n\nconst tagName = 'script';\n\n/**\n * @implements globalThis.HTMLScriptElement\n */\nclass HTMLScriptElement extends TextElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n get type() {\n return stringAttribute.get(this, 'type');\n }\n set type(value) {\n stringAttribute.set(this, 'type', value);\n }\n\n get src() {\n return stringAttribute.get(this, 'src');\n }\n set src(value) {\n stringAttribute.set(this, 'src', value);\n }\n\n get defer() {\n return booleanAttribute.get(this, 'defer');\n }\n\n set defer(value) {\n booleanAttribute.set(this, 'defer', value);\n }\n\n get crossOrigin() {\n return stringAttribute.get(this, 'crossorigin');\n }\n set crossOrigin(value) {\n stringAttribute.set(this, 'crossorigin', value);\n }\n\n get nomodule() {\n return booleanAttribute.get(this, 'nomodule');\n }\n set nomodule(value) {\n booleanAttribute.set(this, 'nomodule', value);\n }\n\n get referrerPolicy() {\n return stringAttribute.get(this, 'referrerpolicy');\n }\n set referrerPolicy(value) {\n stringAttribute.set(this, 'referrerpolicy', value);\n }\n\n get nonce() {\n return stringAttribute.get(this, 'nonce');\n }\n set nonce(value) {\n stringAttribute.set(this, 'nonce', value);\n }\n\n get async() {\n return booleanAttribute.get(this, 'async');\n }\n set async(value) {\n booleanAttribute.set(this, 'async', value);\n }\n\n get text() { return this.textContent; }\n set text(content) { this.textContent = content; }\n}\n\nregisterHTMLClass(tagName, HTMLScriptElement);\n\nexport { HTMLScriptElement };\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLFrameElement\n */\nexport class HTMLFrameElement extends HTMLElement {\n constructor(ownerDocument, localName = 'frame') {\n super(ownerDocument, localName);\n }\n}\n", "import {registerHTMLClass} from '../shared/register-html-class.js';\nimport {booleanAttribute, stringAttribute} from '../shared/attributes.js';\n\nimport {HTMLElement} from './element.js';\n\nconst tagName = 'iframe';\n\n/**\n * @implements globalThis.HTMLIFrameElement\n */\nclass HTMLIFrameElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n /* c8 ignore start */\n get src() { return stringAttribute.get(this, 'src'); }\n set src(value) { stringAttribute.set(this, 'src', value); }\n\n get srcdoc() { return stringAttribute.get(this, \"srcdoc\"); }\n set srcdoc(value) { stringAttribute.set(this, \"srcdoc\", value); }\n\n get name() { return stringAttribute.get(this, \"name\"); }\n set name(value) { stringAttribute.set(this, \"name\", value); }\n\n get allow() { return stringAttribute.get(this, \"allow\"); }\n set allow(value) { stringAttribute.set(this, \"allow\", value); }\n\n get allowFullscreen() { return booleanAttribute.get(this, \"allowfullscreen\"); }\n set allowFullscreen(value) { booleanAttribute.set(this, \"allowfullscreen\", value); }\n \n get referrerPolicy() { return stringAttribute.get(this, \"referrerpolicy\"); }\n set referrerPolicy(value) { stringAttribute.set(this, \"referrerpolicy\", value); }\n \n get loading() { return stringAttribute.get(this, \"loading\"); }\n set loading(value) { stringAttribute.set(this, \"loading\", value); }\n /* c8 ignore stop */\n}\n\nregisterHTMLClass(tagName, HTMLIFrameElement);\n\nexport {HTMLIFrameElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLObjectElement\n */\nexport class HTMLObjectElement extends HTMLElement {\n constructor(ownerDocument, localName = 'object') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLHeadElement\n */\nexport class HTMLHeadElement extends HTMLElement {\n constructor(ownerDocument, localName = 'head') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLBodyElement\n */\nexport class HTMLBodyElement extends HTMLElement {\n constructor(ownerDocument, localName = 'body') {\n super(ownerDocument, localName);\n }\n}\n", "import {parse} from 'cssom';\n\nimport {registerHTMLClass} from '../shared/register-html-class.js';\nimport {SHEET} from '../shared/symbols.js';\n\nimport {TextElement} from './text-element.js';\n\nconst tagName = 'style';\n\n/**\n * @implements globalThis.HTMLStyleElement\n */\nclass HTMLStyleElement extends TextElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n this[SHEET] = null;\n }\n\n get sheet() {\n const sheet = this[SHEET];\n if (sheet !== null) {\n return sheet;\n }\n return this[SHEET] = parse(this.textContent);\n }\n\n get innerHTML() {\n return super.innerHTML || '';\n }\n set innerHTML(value) {\n super.textContent = value;\n this[SHEET] = null;\n }\n get innerText() {\n return super.innerText || '';\n }\n set innerText(value) {\n super.textContent = value;\n this[SHEET] = null;\n }\n get textContent() {\n return super.textContent || '';\n }\n set textContent(value) {\n super.textContent = value;\n this[SHEET] = null;\n }\n}\n\nregisterHTMLClass(tagName, HTMLStyleElement);\n\nexport {HTMLStyleElement};\n", "import {stringAttribute} from '../shared/attributes.js';\nimport {registerHTMLClass} from '../shared/register-html-class.js';\n\nimport {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLTimeElement\n */\nclass HTMLTimeElement extends HTMLElement {\n constructor(ownerDocument, localName = 'time') {\n super(ownerDocument, localName);\n }\n\n /**\n * @type {string}\n */\n get dateTime() { return stringAttribute.get(this, 'datetime'); }\n set dateTime(value) { stringAttribute.set(this, 'datetime', value); }\n}\n\nregisterHTMLClass('time', HTMLTimeElement)\n\nexport {HTMLTimeElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLFieldSetElement\n */\nexport class HTMLFieldSetElement extends HTMLElement {\n constructor(ownerDocument, localName = 'fieldset') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLEmbedElement\n */\nexport class HTMLEmbedElement extends HTMLElement {\n constructor(ownerDocument, localName = 'embed') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLHRElement\n */\nexport class HTMLHRElement extends HTMLElement {\n constructor(ownerDocument, localName = 'hr') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLProgressElement\n */\nexport class HTMLProgressElement extends HTMLElement {\n constructor(ownerDocument, localName = 'progress') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLParagraphElement\n */\nexport class HTMLParagraphElement extends HTMLElement {\n constructor(ownerDocument, localName = 'p') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLTableElement\n */\nexport class HTMLTableElement extends HTMLElement {\n constructor(ownerDocument, localName = 'table') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLFrameSetElement\n */\nexport class HTMLFrameSetElement extends HTMLElement {\n constructor(ownerDocument, localName = 'frameset') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLLIElement\n */\nexport class HTMLLIElement extends HTMLElement {\n constructor(ownerDocument, localName = 'li') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLBaseElement\n */\nexport class HTMLBaseElement extends HTMLElement {\n constructor(ownerDocument, localName = 'base') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLDataListElement\n */\nexport class HTMLDataListElement extends HTMLElement {\n constructor(ownerDocument, localName = 'datalist') {\n super(ownerDocument, localName);\n }\n}\n", "import {registerHTMLClass} from '../shared/register-html-class.js';\nimport {booleanAttribute, stringAttribute} from '../shared/attributes.js';\n\nimport {HTMLElement} from './element.js';\n\nconst tagName = 'input';\n\n/**\n * @implements globalThis.HTMLInputElement\n */\nclass HTMLInputElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n /* c8 ignore start */\n get autofocus() { return booleanAttribute.get(this, 'autofocus') || -1; }\n set autofocus(value) { booleanAttribute.set(this, 'autofocus', value); }\n\n get disabled() { return booleanAttribute.get(this, 'disabled'); }\n set disabled(value) { booleanAttribute.set(this, 'disabled', value); }\n\n get name() { return this.getAttribute('name'); }\n set name(value) { this.setAttribute('name', value); }\n\n get placeholder() { return this.getAttribute('placeholder'); }\n set placeholder(value) { this.setAttribute('placeholder', value); }\n\n get type() { return this.getAttribute('type'); }\n set type(value) { this.setAttribute('type', value); }\n\n get value() { return stringAttribute.get(this, 'value'); }\n set value(value) { stringAttribute.set(this, 'value', value); }\n /* c8 ignore stop */\n}\n\nregisterHTMLClass(tagName, HTMLInputElement);\n\nexport {HTMLInputElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLParamElement\n */\nexport class HTMLParamElement extends HTMLElement {\n constructor(ownerDocument, localName = 'param') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLMediaElement\n */\nexport class HTMLMediaElement extends HTMLElement {\n constructor(ownerDocument, localName = 'media') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLAudioElement\n */\nexport class HTMLAudioElement extends HTMLElement {\n constructor(ownerDocument, localName = 'audio') {\n super(ownerDocument, localName);\n }\n}\n", "import {registerHTMLClass} from '../shared/register-html-class.js';\n\nimport {HTMLElement} from './element.js';\n\nconst tagName = 'h1';\n\n/**\n * @implements globalThis.HTMLHeadingElement\n */\nclass HTMLHeadingElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n}\n\nregisterHTMLClass([tagName, 'h2', 'h3', 'h4', 'h5', 'h6'], HTMLHeadingElement);\n\nexport {HTMLHeadingElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLDirectoryElement\n */\nexport class HTMLDirectoryElement extends HTMLElement {\n constructor(ownerDocument, localName = 'dir') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLQuoteElement\n */\nexport class HTMLQuoteElement extends HTMLElement {\n constructor(ownerDocument, localName = 'quote') {\n super(ownerDocument, localName);\n }\n}\n", "import {IMAGE} from '../shared/symbols.js';\n\nimport {registerHTMLClass} from '../shared/register-html-class.js';\nimport {numericAttribute} from '../shared/attributes.js';\n\nimport Canvas from '../../commonjs/canvas.cjs';\n\nimport {HTMLElement} from './element.js';\n\nconst {createCanvas} = Canvas;\n\nconst tagName = 'canvas';\n\n/**\n * @implements globalThis.HTMLCanvasElement\n */\nclass HTMLCanvasElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n this[IMAGE] = createCanvas(300, 150);\n }\n\n get width() {\n return this[IMAGE].width;\n }\n\n set width(value) {\n numericAttribute.set(this, 'width', value);\n this[IMAGE].width = value;\n }\n\n get height() {\n return this[IMAGE].height;\n }\n\n set height(value) {\n numericAttribute.set(this, 'height', value);\n this[IMAGE].height = value;\n }\n\n getContext(type) {\n return this[IMAGE].getContext(type);\n }\n\n toDataURL(...args) {\n return this[IMAGE].toDataURL(...args);\n }\n}\n\nregisterHTMLClass(tagName, HTMLCanvasElement);\n\nexport {HTMLCanvasElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLLegendElement\n */\nexport class HTMLLegendElement extends HTMLElement {\n constructor(ownerDocument, localName = 'legend') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\nimport {booleanAttribute, stringAttribute} from '../shared/attributes.js';\nimport {registerHTMLClass} from '../shared/register-html-class.js';\n\nconst tagName = 'option';\n\n/**\n * @implements globalThis.HTMLOptionElement\n */\nclass HTMLOptionElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n /* c8 ignore start */\n get value() { return stringAttribute.get(this, 'value'); }\n set value(value) { stringAttribute.set(this, 'value', value); }\n /* c8 ignore stop */\n\n get selected() { return booleanAttribute.get(this, 'selected'); }\n set selected(value) {\n const option = this.parentElement?.querySelector('option[selected]');\n if (option && option !== this)\n option.selected = false;\n booleanAttribute.set(this, 'selected', value);\n }\n}\n\nregisterHTMLClass(tagName, HTMLOptionElement);\n\nexport {HTMLOptionElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLSpanElement\n */\nexport class HTMLSpanElement extends HTMLElement {\n constructor(ownerDocument, localName = 'span') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLMeterElement\n */\nexport class HTMLMeterElement extends HTMLElement {\n constructor(ownerDocument, localName = 'meter') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLVideoElement\n */\nexport class HTMLVideoElement extends HTMLElement {\n constructor(ownerDocument, localName = 'video') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLTableCellElement\n */\nexport class HTMLTableCellElement extends HTMLElement {\n constructor(ownerDocument, localName = 'td') {\n super(ownerDocument, localName);\n }\n}\n", "import {registerHTMLClass} from '../shared/register-html-class.js';\n\nimport {TextElement} from './text-element.js';\n\nconst tagName = 'title';\n\n/**\n * @implements globalThis.HTMLTitleElement\n */\nclass HTMLTitleElement extends TextElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n}\n\nregisterHTMLClass(tagName, HTMLTitleElement);\n\nexport {HTMLTitleElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLOutputElement\n */\nexport class HTMLOutputElement extends HTMLElement {\n constructor(ownerDocument, localName = 'output') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLTableRowElement\n */\nexport class HTMLTableRowElement extends HTMLElement {\n constructor(ownerDocument, localName = 'tr') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLDataElement\n */\nexport class HTMLDataElement extends HTMLElement {\n constructor(ownerDocument, localName = 'data') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLMenuElement\n */\nexport class HTMLMenuElement extends HTMLElement {\n constructor(ownerDocument, localName = 'menu') {\n super(ownerDocument, localName);\n }\n}\n", "import {registerHTMLClass} from '../shared/register-html-class.js';\nimport {booleanAttribute} from '../shared/attributes.js';\n\nimport {HTMLElement} from './element.js';\nimport {NodeList} from '../interface/node-list.js';\n\nconst tagName = 'select';\n\n/**\n * @implements globalThis.HTMLSelectElement\n */\nclass HTMLSelectElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n get options() {\n let children = new NodeList;\n let {firstElementChild} = this;\n while (firstElementChild) {\n if (firstElementChild.tagName === 'OPTGROUP')\n children.push(...firstElementChild.children);\n else\n children.push(firstElementChild);\n firstElementChild = firstElementChild.nextElementSibling;\n }\n return children;\n }\n\n /* c8 ignore start */\n get disabled() { return booleanAttribute.get(this, 'disabled'); }\n set disabled(value) { booleanAttribute.set(this, 'disabled', value); }\n\n get name() { return this.getAttribute('name'); }\n set name(value) { this.setAttribute('name', value); }\n /* c8 ignore stop */\n\n get value() { return this.querySelector('option[selected]')?.value; }\n}\n\nregisterHTMLClass(tagName, HTMLSelectElement);\n\nexport {HTMLSelectElement};\n\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLBRElement\n */\nexport class HTMLBRElement extends HTMLElement {\n constructor(ownerDocument, localName = 'br') {\n super(ownerDocument, localName);\n }\n}\n", "import {registerHTMLClass} from '../shared/register-html-class.js';\nimport {booleanAttribute} from '../shared/attributes.js';\n\nimport {HTMLElement} from './element.js';\n\nconst tagName = 'button';\n\n/**\n * @implements globalThis.HTMLButtonElement\n */\nclass HTMLButtonElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n /* c8 ignore start */\n get disabled() { return booleanAttribute.get(this, 'disabled'); }\n set disabled(value) { booleanAttribute.set(this, 'disabled', value); }\n\n get name() { return this.getAttribute('name'); }\n set name(value) { this.setAttribute('name', value); }\n\n get type() { return this.getAttribute('type'); }\n set type(value) { this.setAttribute('type', value); }\n /* c8 ignore stop */\n}\n\nregisterHTMLClass(tagName, HTMLButtonElement);\n\nexport {HTMLButtonElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLMapElement\n */\nexport class HTMLMapElement extends HTMLElement {\n constructor(ownerDocument, localName = 'map') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLOptGroupElement\n */\nexport class HTMLOptGroupElement extends HTMLElement {\n constructor(ownerDocument, localName = 'optgroup') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLDListElement\n */\nexport class HTMLDListElement extends HTMLElement {\n constructor(ownerDocument, localName = 'dl') {\n super(ownerDocument, localName);\n }\n}\n", "import {registerHTMLClass} from '../shared/register-html-class.js';\nimport {booleanAttribute} from '../shared/attributes.js';\n\nimport {TextElement} from './text-element.js';\n\nconst tagName = 'textarea';\n\n/**\n * @implements globalThis.HTMLTextAreaElement\n */\nclass HTMLTextAreaElement extends TextElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n /* c8 ignore start */\n get disabled() { return booleanAttribute.get(this, 'disabled'); }\n set disabled(value) { booleanAttribute.set(this, 'disabled', value); }\n\n get name() { return this.getAttribute('name'); }\n set name(value) { this.setAttribute('name', value); }\n\n get placeholder() { return this.getAttribute('placeholder'); }\n set placeholder(value) { this.setAttribute('placeholder', value); }\n\n get type() { return this.getAttribute('type'); }\n set type(value) { this.setAttribute('type', value); }\n\n get value() { return this.textContent; }\n set value(content) { this.textContent = content; }\n /* c8 ignore stop */\n}\n\nregisterHTMLClass(tagName, HTMLTextAreaElement);\n\nexport {HTMLTextAreaElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLFontElement\n */\nexport class HTMLFontElement extends HTMLElement {\n constructor(ownerDocument, localName = 'font') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLDivElement\n */\nexport class HTMLDivElement extends HTMLElement {\n constructor(ownerDocument, localName = 'div') {\n super(ownerDocument, localName);\n }\n}\n", "import {registerHTMLClass} from '../shared/register-html-class.js';\nimport {booleanAttribute, stringAttribute} from '../shared/attributes.js';\n\nimport {HTMLElement} from './element.js';\n\nconst tagName = 'link';\n\n/**\n * @implements globalThis.HTMLLinkElement\n */\nclass HTMLLinkElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n /* c8 ignore start */ // copy paste from img.src, already covered\n get disabled() { return booleanAttribute.get(this, 'disabled'); }\n set disabled(value) { booleanAttribute.set(this, 'disabled', value); }\n\n get href() { return stringAttribute.get(this, 'href').trim(); }\n set href(value) { stringAttribute.set(this, 'href', value); }\n\n get hreflang() { return stringAttribute.get(this, 'hreflang'); }\n set hreflang(value) { stringAttribute.set(this, 'hreflang', value); }\n\n get media() { return stringAttribute.get(this, 'media'); }\n set media(value) { stringAttribute.set(this, 'media', value); }\n\n get rel() { return stringAttribute.get(this, 'rel'); }\n set rel(value) { stringAttribute.set(this, 'rel', value); }\n\n get type() { return stringAttribute.get(this, 'type'); }\n set type(value) { stringAttribute.set(this, 'type', value); }\n /* c8 ignore stop */\n\n}\n\nregisterHTMLClass(tagName, HTMLLinkElement);\n\nexport {HTMLLinkElement};\n", "import {HTMLElement} from './element.js';\nimport {registerHTMLClass} from '../shared/register-html-class.js';\n\nconst tagName = 'slot';\n\n/**\n * @implements globalThis.HTMLSlotElement\n */\nclass HTMLSlotElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n /* c8 ignore start */\n get name() { return this.getAttribute('name'); }\n set name(value) { this.setAttribute('name', value); }\n\n assign() {}\n\n assignedNodes(options) {\n const isNamedSlot = !!this.name;\n const hostChildNodes = this.getRootNode().host?.childNodes ?? [];\n let slottables;\n\n if (isNamedSlot) {\n slottables = [...hostChildNodes].filter(node => node.slot === this.name);\n } else {\n slottables = [...hostChildNodes].filter(node => !node.slot);\n }\n\n if (options?.flatten) {\n const result = [];\n\n // Element and Text nodes are slottables. A slot can be a slottable.\n for (let slottable of slottables) {\n if (slottable.localName === 'slot') {\n result.push(...slottable.assignedNodes({ flatten: true }));\n } else {\n result.push(slottable);\n }\n }\n\n slottables = result;\n }\n\n // If no assigned nodes are found, it returns the slot's fallback content.\n return slottables.length ? slottables : [...this.childNodes];\n }\n\n assignedElements(options) {\n const slottables = this.assignedNodes(options).filter(n => n.nodeType === 1);\n\n // If no assigned elements are found, it returns the slot's fallback content.\n return slottables.length ? slottables : [...this.children];\n }\n /* c8 ignore stop */\n}\n\nregisterHTMLClass(tagName, HTMLSlotElement);\n\nexport {HTMLSlotElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLFormElement\n */\nexport class HTMLFormElement extends HTMLElement {\n constructor(ownerDocument, localName = 'form') {\n super(ownerDocument, localName);\n }\n}\n", "import {registerHTMLClass} from '../shared/register-html-class.js';\nimport {numericAttribute, stringAttribute} from '../shared/attributes.js';\n\nimport {HTMLElement} from './element.js';\n\nconst tagName = 'img';\n\n/**\n * @implements globalThis.HTMLImageElement\n */\nclass HTMLImageElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n /* c8 ignore start */\n get alt() { return stringAttribute.get(this, 'alt'); }\n set alt(value) { stringAttribute.set(this, 'alt', value); }\n\n get sizes() { return stringAttribute.get(this, 'sizes'); }\n set sizes(value) { stringAttribute.set(this, 'sizes', value); }\n\n get src() { return stringAttribute.get(this, 'src'); }\n set src(value) { stringAttribute.set(this, 'src', value); }\n\n get srcset() { return stringAttribute.get(this, 'srcset'); }\n set srcset(value) { stringAttribute.set(this, 'srcset', value); }\n\n get title() { return stringAttribute.get(this, 'title'); }\n set title(value) { stringAttribute.set(this, 'title', value); }\n\n get width() { return numericAttribute.get(this, 'width'); }\n set width(value) { numericAttribute.set(this, 'width', value); }\n\n get height() { return numericAttribute.get(this, 'height'); }\n set height(value) { numericAttribute.set(this, 'height', value); }\n /* c8 ignore stop */\n}\n\nregisterHTMLClass(tagName, HTMLImageElement);\n\nexport {HTMLImageElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLPreElement\n */\nexport class HTMLPreElement extends HTMLElement {\n constructor(ownerDocument, localName = 'pre') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLUListElement\n */\nexport class HTMLUListElement extends HTMLElement {\n constructor(ownerDocument, localName = 'ul') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\nimport {registerHTMLClass} from '../shared/register-html-class.js';\nimport { stringAttribute } from '../shared/attributes.js';\n\nconst tagName = 'meta'\n/**\n * @implements globalThis.HTMLMetaElement\n */\nexport class HTMLMetaElement extends HTMLElement {\n constructor(ownerDocument, localName =tagName) {\n super(ownerDocument, localName);\n }\n\n /* c8 ignore start */\n get name() { return stringAttribute.get(this, 'name'); }\n set name(value) { stringAttribute.set(this, 'name', value); }\n\n get httpEquiv() { return stringAttribute.get(this, 'http-equiv'); }\n set httpEquiv(value) { stringAttribute.set(this, 'http-equiv', value); }\n\n get content() { return stringAttribute.get(this, 'content'); }\n set content(value) { stringAttribute.set(this, 'content', value); }\n\n get charset() { return stringAttribute.get(this, 'charset'); }\n set charset(value) { stringAttribute.set(this, 'charset', value); }\n\n get media() { return stringAttribute.get(this, 'media'); }\n set media(value) { stringAttribute.set(this, 'media', value); }\n /* c8 ignore stop */\n\n}\n\nregisterHTMLClass(tagName, HTMLMetaElement);\n\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLPictureElement\n */\nexport class HTMLPictureElement extends HTMLElement {\n constructor(ownerDocument, localName = 'picture') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLAreaElement\n */\nexport class HTMLAreaElement extends HTMLElement {\n constructor(ownerDocument, localName = 'area') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLOListElement\n */\nexport class HTMLOListElement extends HTMLElement {\n constructor(ownerDocument, localName = 'ol') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLTableCaptionElement\n */\nexport class HTMLTableCaptionElement extends HTMLElement {\n constructor(ownerDocument, localName = 'caption') {\n super(ownerDocument, localName);\n }\n}\n", "import {registerHTMLClass} from '../shared/register-html-class.js';\nimport {stringAttribute} from '../shared/attributes.js';\n\nimport {HTMLElement} from './element.js';\n\nconst tagName = 'a';\n\n/**\n * @implements globalThis.HTMLAnchorElement\n */\nclass HTMLAnchorElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n /* c8 ignore start */ // copy paste from img.src, already covered\n get href() { return encodeURI(decodeURI(stringAttribute.get(this, 'href'))).trim(); }\n set href(value) { stringAttribute.set(this, 'href', decodeURI(value)); }\n\n get download() { return encodeURI(decodeURI(stringAttribute.get(this, 'download'))); }\n set download(value) { stringAttribute.set(this, 'download', decodeURI(value)); }\n\n get target() { return stringAttribute.get(this, 'target'); }\n set target(value) { stringAttribute.set(this, 'target', value); }\n\n get type() { return stringAttribute.get(this, 'type'); }\n set type(value) { stringAttribute.set(this, 'type', value); }\n\n get rel() { return stringAttribute.get(this, 'rel'); }\n set rel(value) { stringAttribute.set(this, 'rel', value); }\n /* c8 ignore stop */\n\n}\n\nregisterHTMLClass(tagName, HTMLAnchorElement);\n\nexport {HTMLAnchorElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLLabelElement\n */\nexport class HTMLLabelElement extends HTMLElement {\n constructor(ownerDocument, localName = 'label') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLUnknownElement\n */\nexport class HTMLUnknownElement extends HTMLElement {\n constructor(ownerDocument, localName = 'unknown') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLModElement\n */\nexport class HTMLModElement extends HTMLElement {\n constructor(ownerDocument, localName = 'mod') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLDetailsElement\n */\nexport class HTMLDetailsElement extends HTMLElement {\n constructor(ownerDocument, localName = 'details') {\n super(ownerDocument, localName);\n }\n}\n", "import {registerHTMLClass} from '../shared/register-html-class.js';\nimport {stringAttribute} from '../shared/attributes.js';\n\nimport {HTMLElement} from './element.js';\n\nconst tagName = 'source';\n\n/**\n * @implements globalThis.HTMLSourceElement\n */\nclass HTMLSourceElement extends HTMLElement {\n constructor(ownerDocument, localName = tagName) {\n super(ownerDocument, localName);\n }\n\n /* c8 ignore start */\n get src() { return stringAttribute.get(this, 'src'); }\n set src(value) { stringAttribute.set(this, 'src', value); }\n\n get srcset() { return stringAttribute.get(this, 'srcset'); }\n set srcset(value) { stringAttribute.set(this, 'srcset', value); }\n\n get sizes() { return stringAttribute.get(this, 'sizes'); }\n set sizes(value) { stringAttribute.set(this, 'sizes', value); }\n\n get type() { return stringAttribute.get(this, 'type'); }\n set type(value) { stringAttribute.set(this, 'type', value); }\n /* c8 ignore stop */\n}\n\nregisterHTMLClass(tagName, HTMLSourceElement);\n\nexport {HTMLSourceElement};\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLTrackElement\n */\nexport class HTMLTrackElement extends HTMLElement {\n constructor(ownerDocument, localName = 'track') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from './element.js';\n\n/**\n * @implements globalThis.HTMLMarqueeElement\n */\nexport class HTMLMarqueeElement extends HTMLElement {\n constructor(ownerDocument, localName = 'marquee') {\n super(ownerDocument, localName);\n }\n}\n", "import {HTMLElement} from '../html/element.js';\nimport {HTMLTemplateElement} from '../html/template-element.js';\nimport {HTMLHtmlElement} from '../html/html-element.js';\nimport {HTMLScriptElement} from '../html/script-element.js';\nimport {HTMLFrameElement} from '../html/frame-element.js';\nimport {HTMLIFrameElement} from '../html/i-frame-element.js';\nimport {HTMLObjectElement} from '../html/object-element.js';\nimport {HTMLHeadElement} from '../html/head-element.js';\nimport {HTMLBodyElement} from '../html/body-element.js';\nimport {HTMLStyleElement} from '../html/style-element.js';\nimport {HTMLTimeElement} from '../html/time-element.js';\nimport {HTMLFieldSetElement} from '../html/field-set-element.js';\nimport {HTMLEmbedElement} from '../html/embed-element.js';\nimport {HTMLHRElement} from '../html/hr-element.js';\nimport {HTMLProgressElement} from '../html/progress-element.js';\nimport {HTMLParagraphElement} from '../html/paragraph-element.js';\nimport {HTMLTableElement} from '../html/table-element.js';\nimport {HTMLFrameSetElement} from '../html/frame-set-element.js';\nimport {HTMLLIElement} from '../html/li-element.js';\nimport {HTMLBaseElement} from '../html/base-element.js';\nimport {HTMLDataListElement} from '../html/data-list-element.js';\nimport {HTMLInputElement} from '../html/input-element.js';\nimport {HTMLParamElement} from '../html/param-element.js';\nimport {HTMLMediaElement} from '../html/media-element.js';\nimport {HTMLAudioElement} from '../html/audio-element.js';\nimport {HTMLHeadingElement} from '../html/heading-element.js';\nimport {HTMLDirectoryElement} from '../html/directory-element.js';\nimport {HTMLQuoteElement} from '../html/quote-element.js';\nimport {HTMLCanvasElement} from '../html/canvas-element.js';\nimport {HTMLLegendElement} from '../html/legend-element.js';\nimport {HTMLOptionElement} from '../html/option-element.js';\nimport {HTMLSpanElement} from '../html/span-element.js';\nimport {HTMLMeterElement} from '../html/meter-element.js';\nimport {HTMLVideoElement} from '../html/video-element.js';\nimport {HTMLTableCellElement} from '../html/table-cell-element.js';\nimport {HTMLTitleElement} from '../html/title-element.js';\nimport {HTMLOutputElement} from '../html/output-element.js';\nimport {HTMLTableRowElement} from '../html/table-row-element.js';\nimport {HTMLDataElement} from '../html/data-element.js';\nimport {HTMLMenuElement} from '../html/menu-element.js';\nimport {HTMLSelectElement} from '../html/select-element.js';\nimport {HTMLBRElement} from '../html/br-element.js';\nimport {HTMLButtonElement} from '../html/button-element.js';\nimport {HTMLMapElement} from '../html/map-element.js';\nimport {HTMLOptGroupElement} from '../html/opt-group-element.js';\nimport {HTMLDListElement} from '../html/d-list-element.js';\nimport {HTMLTextAreaElement} from '../html/text-area-element.js';\nimport {HTMLFontElement} from '../html/font-element.js';\nimport {HTMLDivElement} from '../html/div-element.js';\nimport {HTMLLinkElement} from '../html/link-element.js';\nimport {HTMLSlotElement} from '../html/slot-element.js';\nimport {HTMLFormElement} from '../html/form-element.js';\nimport {HTMLImageElement} from '../html/image-element.js';\nimport {HTMLPreElement} from '../html/pre-element.js';\nimport {HTMLUListElement} from '../html/u-list-element.js';\nimport {HTMLMetaElement} from '../html/meta-element.js';\nimport {HTMLPictureElement} from '../html/picture-element.js';\nimport {HTMLAreaElement} from '../html/area-element.js';\nimport {HTMLOListElement} from '../html/o-list-element.js';\nimport {HTMLTableCaptionElement} from '../html/table-caption-element.js';\nimport {HTMLAnchorElement} from '../html/anchor-element.js';\nimport {HTMLLabelElement} from '../html/label-element.js';\nimport {HTMLUnknownElement} from '../html/unknown-element.js';\nimport {HTMLModElement} from '../html/mod-element.js';\nimport {HTMLDetailsElement} from '../html/details-element.js';\nimport {HTMLSourceElement} from '../html/source-element.js';\nimport {HTMLTrackElement} from '../html/track-element.js';\nimport {HTMLMarqueeElement} from '../html/marquee-element.js';\n\nexport {\n HTMLElement,\n HTMLTemplateElement,\n HTMLHtmlElement,\n HTMLScriptElement,\n HTMLFrameElement,\n HTMLIFrameElement,\n HTMLObjectElement,\n HTMLHeadElement,\n HTMLBodyElement,\n HTMLStyleElement,\n HTMLTimeElement,\n HTMLFieldSetElement,\n HTMLEmbedElement,\n HTMLHRElement,\n HTMLProgressElement,\n HTMLParagraphElement,\n HTMLTableElement,\n HTMLFrameSetElement,\n HTMLLIElement,\n HTMLBaseElement,\n HTMLDataListElement,\n HTMLInputElement,\n HTMLParamElement,\n HTMLMediaElement,\n HTMLAudioElement,\n HTMLHeadingElement,\n HTMLDirectoryElement,\n HTMLQuoteElement,\n HTMLCanvasElement,\n HTMLLegendElement,\n HTMLOptionElement,\n HTMLSpanElement,\n HTMLMeterElement,\n HTMLVideoElement,\n HTMLTableCellElement,\n HTMLTitleElement,\n HTMLOutputElement,\n HTMLTableRowElement,\n HTMLDataElement,\n HTMLMenuElement,\n HTMLSelectElement,\n HTMLBRElement,\n HTMLButtonElement,\n HTMLMapElement,\n HTMLOptGroupElement,\n HTMLDListElement,\n HTMLTextAreaElement,\n HTMLFontElement,\n HTMLDivElement,\n HTMLLinkElement,\n HTMLSlotElement,\n HTMLFormElement,\n HTMLImageElement,\n HTMLPreElement,\n HTMLUListElement,\n HTMLMetaElement,\n HTMLPictureElement,\n HTMLAreaElement,\n HTMLOListElement,\n HTMLTableCaptionElement,\n HTMLAnchorElement,\n HTMLLabelElement,\n HTMLUnknownElement,\n HTMLModElement,\n HTMLDetailsElement,\n HTMLSourceElement,\n HTMLTrackElement,\n HTMLMarqueeElement\n};\n\nexport const HTMLClasses = {\n HTMLElement,\n HTMLTemplateElement,\n HTMLHtmlElement,\n HTMLScriptElement,\n HTMLFrameElement,\n HTMLIFrameElement,\n HTMLObjectElement,\n HTMLHeadElement,\n HTMLBodyElement,\n HTMLStyleElement,\n HTMLTimeElement,\n HTMLFieldSetElement,\n HTMLEmbedElement,\n HTMLHRElement,\n HTMLProgressElement,\n HTMLParagraphElement,\n HTMLTableElement,\n HTMLFrameSetElement,\n HTMLLIElement,\n HTMLBaseElement,\n HTMLDataListElement,\n HTMLInputElement,\n HTMLParamElement,\n HTMLMediaElement,\n HTMLAudioElement,\n HTMLHeadingElement,\n HTMLDirectoryElement,\n HTMLQuoteElement,\n HTMLCanvasElement,\n HTMLLegendElement,\n HTMLOptionElement,\n HTMLSpanElement,\n HTMLMeterElement,\n HTMLVideoElement,\n HTMLTableCellElement,\n HTMLTitleElement,\n HTMLOutputElement,\n HTMLTableRowElement,\n HTMLDataElement,\n HTMLMenuElement,\n HTMLSelectElement,\n HTMLBRElement,\n HTMLButtonElement,\n HTMLMapElement,\n HTMLOptGroupElement,\n HTMLDListElement,\n HTMLTextAreaElement,\n HTMLFontElement,\n HTMLDivElement,\n HTMLLinkElement,\n HTMLSlotElement,\n HTMLFormElement,\n HTMLImageElement,\n HTMLPreElement,\n HTMLUListElement,\n HTMLMetaElement,\n HTMLPictureElement,\n HTMLAreaElement,\n HTMLOListElement,\n HTMLTableCaptionElement,\n HTMLAnchorElement,\n HTMLLabelElement,\n HTMLUnknownElement,\n HTMLModElement,\n HTMLDetailsElement,\n HTMLSourceElement,\n HTMLTrackElement,\n HTMLMarqueeElement\n};\n", "// TODO: ensure all these are text only\n// /^(?:plaintext|script|style|textarea|title|xmp)$/i\n\nconst voidElements = {test: () => true};\nexport const Mime = {\n 'text/html': {\n docType: '<!DOCTYPE html>',\n ignoreCase: true,\n voidElements: /^(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr)$/i\n },\n 'image/svg+xml': {\n docType: '<?xml version=\"1.0\" encoding=\"utf-8\"?>',\n ignoreCase: false,\n voidElements\n },\n 'text/xml': {\n docType: '<?xml version=\"1.0\" encoding=\"utf-8\"?>',\n ignoreCase: false,\n voidElements\n },\n 'application/xml': {\n docType: '<?xml version=\"1.0\" encoding=\"utf-8\"?>',\n ignoreCase: false,\n voidElements\n },\n 'application/xhtml+xml': {\n docType: '<?xml version=\"1.0\" encoding=\"utf-8\"?>',\n ignoreCase: false,\n voidElements\n }\n};\n", "// https://dom.spec.whatwg.org/#interface-customevent\n\n/* c8 ignore start */\n\n// One day Node might have CustomEvent too\n\nimport {Event} from './event.js';\n\n/**\n * @implements globalThis.CustomEvent\n */\nexport class CustomEvent extends Event {\n constructor(type, eventInitDict = {}) {\n super(type, eventInitDict);\n this.detail = eventInitDict.detail;\n }\n}\n\n/* c8 ignore stop */\n", "// https://dom.spec.whatwg.org/#interface-customevent\n\n/* c8 ignore start */\n\n// One day Node might have CustomEvent too\n\nimport {Event} from './event.js';\n\n/**\n * @implements globalThis.InputEvent\n */\nexport class InputEvent extends Event {\n constructor(type, inputEventInit = {}) {\n super(type, inputEventInit);\n this.inputType = inputEventInit.inputType;\n this.data = inputEventInit.data;\n this.dataTransfer = inputEventInit.dataTransfer;\n this.isComposing = inputEventInit.isComposing || false;\n this.ranges = inputEventInit.ranges;\n }\n}\n/* c8 ignore stop */\n", "import {HTMLImageElement} from '../html/image-element.js';\n\nexport const ImageClass = ownerDocument =>\n/**\n * @implements globalThis.Image\n */\nclass Image extends HTMLImageElement {\n constructor(width, height) {\n super(ownerDocument);\n switch (arguments.length) {\n case 1:\n this.height = width;\n this.width = width;\n break;\n case 2:\n this.height = height;\n this.width = width;\n break;\n }\n }\n};\n", "// https://dom.spec.whatwg.org/#concept-live-range\n\nimport {END, NEXT, PREV, START} from '../shared/symbols.js';\n\nimport {SVGElement} from '../svg/element.js';\n\nimport {getEnd, htmlToFragment, setAdjacent} from '../shared/utils.js';\n\nconst deleteContents = ({[START]: start, [END]: end}, fragment = null) => {\n setAdjacent(start[PREV], end[NEXT]);\n do {\n const after = getEnd(start);\n const next = after === end ? after : after[NEXT];\n if (fragment)\n fragment.insertBefore(start, fragment[END]);\n else\n start.remove();\n start = next;\n } while (start !== end);\n};\n\n/**\n * @implements globalThis.Range\n */\nexport class Range {\n constructor() {\n this[START] = null;\n this[END] = null;\n this.commonAncestorContainer = null;\n }\n\n /* TODO: this is more complicated than it looks\n setStart(node, offset) {\n this[START] = node.childNodes[offset];\n }\n\n setEnd(node, offset) {\n this[END] = getEnd(node.childNodes[offset]);\n }\n //*/\n\n insertNode(newNode) {\n this[END].parentNode.insertBefore(newNode, this[START]);\n }\n\n selectNode(node) {\n this[START] = node;\n this[END] = getEnd(node);\n }\n\n // TODO: SVG elements should then create contextual fragments\n // that return SVG nodes\n selectNodeContents(node) {\n this.selectNode(node);\n this.commonAncestorContainer = node;\n }\n\n surroundContents(parentNode) {\n parentNode.replaceChildren(this.extractContents());\n }\n\n setStartBefore(node) {\n this[START] = node;\n }\n\n setStartAfter(node) {\n this[START] = node.nextSibling;\n }\n\n setEndBefore(node) {\n this[END] = getEnd(node.previousSibling);\n }\n\n setEndAfter(node) {\n this[END] = getEnd(node);\n }\n\n cloneContents() {\n let {[START]: start, [END]: end} = this;\n const fragment = start.ownerDocument.createDocumentFragment();\n while (start !== end) {\n fragment.insertBefore(start.cloneNode(true), fragment[END]);\n start = getEnd(start);\n if (start !== end)\n start = start[NEXT];\n }\n return fragment;\n }\n\n deleteContents() {\n deleteContents(this);\n }\n\n extractContents() {\n const fragment = this[START].ownerDocument.createDocumentFragment();\n deleteContents(this, fragment);\n return fragment;\n }\n\n createContextualFragment(html) {\n const { commonAncestorContainer: doc } = this;\n const isSVG = 'ownerSVGElement' in doc;\n const document = isSVG ? doc.ownerDocument : doc;\n let content = htmlToFragment(document, html);\n if (isSVG) {\n const childNodes = [...content.childNodes];\n content = document.createDocumentFragment();\n Object.setPrototypeOf(content, SVGElement.prototype);\n content.ownerSVGElement = document;\n for (const child of childNodes) {\n Object.setPrototypeOf(child, SVGElement.prototype);\n child.ownerSVGElement = document;\n content.appendChild(child);\n }\n }\n else\n this.selectNode(content);\n return content;\n }\n\n cloneRange() {\n const range = new Range;\n range[START] = this[START];\n range[END] = this[END];\n return range;\n }\n}\n", "import {\n DOCUMENT_NODE,\n ELEMENT_NODE,\n TEXT_NODE,\n CDATA_SECTION_NODE,\n COMMENT_NODE,\n SHOW_ALL,\n SHOW_ELEMENT,\n SHOW_CDATA_SECTION,\n SHOW_COMMENT,\n SHOW_TEXT\n} from '../shared/constants.js';\n\nimport {PRIVATE, END, NEXT} from '../shared/symbols.js';\n\nconst isOK = ({nodeType}, mask) => {\n switch (nodeType) {\n case ELEMENT_NODE:\n return mask & SHOW_ELEMENT;\n case TEXT_NODE:\n return mask & SHOW_TEXT;\n case COMMENT_NODE:\n return mask & SHOW_COMMENT;\n case CDATA_SECTION_NODE:\n return mask & SHOW_CDATA_SECTION;\n }\n return 0;\n};\n\n/**\n * @implements globalThis.TreeWalker\n */\nexport class TreeWalker {\n constructor(root, whatToShow = SHOW_ALL) {\n this.root = root;\n this.currentNode = root;\n this.whatToShow = whatToShow;\n let {[NEXT]: next, [END]: end} = root;\n if (root.nodeType === DOCUMENT_NODE) {\n const {documentElement} = root;\n next = documentElement;\n end = documentElement[END];\n }\n const nodes = [];\n while (next && next !== end) {\n if (isOK(next, whatToShow))\n nodes.push(next);\n next = next[NEXT];\n }\n this[PRIVATE] = {i: 0, nodes};\n }\n\n nextNode() {\n const $ = this[PRIVATE];\n this.currentNode = $.i < $.nodes.length ? $.nodes[$.i++] : null;\n return this.currentNode;\n }\n}\n", "import {DOCUMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, SVG_NAMESPACE} from '../shared/constants.js';\n\nimport {\n CUSTOM_ELEMENTS, DOM_PARSER, GLOBALS, IMAGE, MUTATION_OBSERVER,\n DOCTYPE, END, NEXT, MIME, EVENT_TARGET, UPGRADE\n} from '../shared/symbols.js';\n\nimport {Facades, illegalConstructor} from '../shared/facades.js';\nimport {HTMLClasses} from '../shared/html-classes.js';\nimport {Mime} from '../shared/mime.js';\nimport {knownSiblings} from '../shared/utils.js';\nimport {assign, create, defineProperties, setPrototypeOf} from '../shared/object.js';\n\nimport {NonElementParentNode} from '../mixin/non-element-parent-node.js';\n\nimport {SVGElement} from '../svg/element.js';\n\nimport {Attr} from './attr.js';\nimport {CDATASection} from './cdata-section.js'\nimport {Comment} from './comment.js';\nimport {CustomElementRegistry} from './custom-element-registry.js';\nimport {CustomEvent} from './custom-event.js';\nimport {DocumentFragment} from './document-fragment.js';\nimport {DocumentType} from './document-type.js';\nimport {Element} from './element.js';\nimport {Event} from './event.js';\nimport {EventTarget} from './event-target.js';\nimport {InputEvent} from './input-event.js';\nimport {ImageClass} from './image.js';\nimport {MutationObserverClass} from './mutation-observer.js';\nimport {NamedNodeMap} from './named-node-map.js';\nimport {NodeList} from './node-list.js';\nimport {Range} from './range.js';\nimport {Text} from './text.js';\nimport {TreeWalker} from './tree-walker.js';\n\nconst query = (method, ownerDocument, selectors) => {\n let {[NEXT]: next, [END]: end} = ownerDocument;\n return method.call({ownerDocument, [NEXT]: next, [END]: end}, selectors);\n};\n\nconst globalExports = assign(\n {},\n Facades,\n HTMLClasses,\n {\n CustomEvent,\n Event,\n EventTarget,\n InputEvent,\n NamedNodeMap,\n NodeList\n }\n);\n\nconst window = new WeakMap;\n\n/**\n * @implements globalThis.Document\n */\nexport class Document extends NonElementParentNode {\n constructor(type) {\n super(null, '#document', DOCUMENT_NODE);\n this[CUSTOM_ELEMENTS] = {active: false, registry: null};\n this[MUTATION_OBSERVER] = {active: false, class: null};\n this[MIME] = Mime[type];\n /** @type {DocumentType} */\n this[DOCTYPE] = null;\n this[DOM_PARSER] = null;\n this[GLOBALS] = null;\n this[IMAGE] = null;\n this[UPGRADE] = null;\n }\n\n /**\n * @type {globalThis.Document['defaultView']}\n */\n get defaultView() {\n if (!window.has(this))\n window.set(this, new Proxy(globalThis, {\n set: (target, name, value) => {\n switch (name) {\n case 'addEventListener':\n case 'removeEventListener':\n case 'dispatchEvent':\n this[EVENT_TARGET][name] = value;\n break;\n default:\n target[name] = value;\n break;\n }\n return true;\n },\n get: (globalThis, name) => {\n switch (name) {\n case 'addEventListener':\n case 'removeEventListener':\n case 'dispatchEvent':\n if (!this[EVENT_TARGET]) {\n const et = this[EVENT_TARGET] = new EventTarget;\n et.dispatchEvent = et.dispatchEvent.bind(et);\n et.addEventListener = et.addEventListener.bind(et);\n et.removeEventListener = et.removeEventListener.bind(et);\n }\n return this[EVENT_TARGET][name];\n case 'document':\n return this;\n /* c8 ignore start */\n case 'navigator':\n return {\n userAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36'\n };\n /* c8 ignore stop */\n case 'window':\n return window.get(this);\n case 'customElements':\n if (!this[CUSTOM_ELEMENTS].registry)\n this[CUSTOM_ELEMENTS] = new CustomElementRegistry(this);\n return this[CUSTOM_ELEMENTS];\n case 'performance':\n return globalThis.performance;\n case 'DOMParser':\n return this[DOM_PARSER];\n case 'Image':\n if (!this[IMAGE])\n this[IMAGE] = ImageClass(this);\n return this[IMAGE];\n case 'MutationObserver':\n if (!this[MUTATION_OBSERVER].class)\n this[MUTATION_OBSERVER] = new MutationObserverClass(this);\n return this[MUTATION_OBSERVER].class;\n }\n return (this[GLOBALS] && this[GLOBALS][name]) ||\n globalExports[name] ||\n globalThis[name];\n }\n }));\n return window.get(this);\n }\n\n get doctype() {\n const docType = this[DOCTYPE];\n if (docType)\n return docType;\n const {firstChild} = this;\n if (firstChild && firstChild.nodeType === DOCUMENT_TYPE_NODE)\n return (this[DOCTYPE] = firstChild);\n return null;\n }\n\n set doctype(value) {\n if (/^([a-z:]+)(\\s+system|\\s+public(\\s+\"([^\"]+)\")?)?(\\s+\"([^\"]+)\")?/i.test(value)) {\n const {$1: name, $4: publicId, $6: systemId} = RegExp;\n this[DOCTYPE] = new DocumentType(this, name, publicId, systemId);\n knownSiblings(this, this[DOCTYPE], this[NEXT]);\n }\n }\n\n get documentElement() {\n return this.firstElementChild;\n }\n\n get isConnected() { return true; }\n\n /**\n * @protected\n */\n _getParent() {\n return this[EVENT_TARGET];\n }\n\n createAttribute(name) { return new Attr(this, name); }\n createCDATASection(data) { return new CDATASection(this, data); }\n createComment(textContent) { return new Comment(this, textContent); }\n createDocumentFragment() { return new DocumentFragment(this); }\n createDocumentType(name, publicId, systemId) { return new DocumentType(this, name, publicId, systemId); }\n createElement(localName) { return new Element(this, localName); }\n createRange() {\n const range = new Range;\n range.commonAncestorContainer = this;\n return range;\n }\n createTextNode(textContent) { return new Text(this, textContent); }\n createTreeWalker(root, whatToShow = -1) { return new TreeWalker(root, whatToShow); }\n createNodeIterator(root, whatToShow = -1) { return this.createTreeWalker(root, whatToShow); }\n\n createEvent(name) {\n const event = create(name === 'Event' ? new Event('') : new CustomEvent(''));\n event.initEvent = event.initCustomEvent = (\n type,\n canBubble = false,\n cancelable = false,\n detail\n ) => {\n event.bubbles = !!canBubble;\n\n defineProperties(event, {\n type: {value: type},\n canBubble: {value: canBubble},\n cancelable: {value: cancelable},\n detail: {value: detail}\n });\n };\n return event;\n }\n\n cloneNode(deep = false) {\n const {\n constructor,\n [CUSTOM_ELEMENTS]: customElements,\n [DOCTYPE]: doctype\n } = this;\n const document = new constructor();\n document[CUSTOM_ELEMENTS] = customElements;\n if (deep) {\n const end = document[END];\n const {childNodes} = this;\n for (let {length} = childNodes, i = 0; i < length; i++)\n document.insertBefore(childNodes[i].cloneNode(true), end);\n if (doctype)\n document[DOCTYPE] = childNodes[0];\n }\n return document;\n }\n\n importNode(externalNode) {\n // important: keep the signature length as *one*\n // or it would behave like old IE or Edge with polyfills\n const deep = 1 < arguments.length && !!arguments[1];\n const node = externalNode.cloneNode(deep);\n const {[CUSTOM_ELEMENTS]: customElements} = this;\n const {active} = customElements;\n const upgrade = element => {\n const {ownerDocument, nodeType} = element;\n element.ownerDocument = this;\n if (active && ownerDocument !== this && nodeType === ELEMENT_NODE)\n customElements.upgrade(element);\n };\n upgrade(node);\n if (deep) {\n switch (node.nodeType) {\n case ELEMENT_NODE:\n case DOCUMENT_FRAGMENT_NODE: {\n let {[NEXT]: next, [END]: end} = node;\n while (next !== end) {\n if (next.nodeType === ELEMENT_NODE)\n upgrade(next);\n next = next[NEXT];\n }\n break;\n }\n }\n }\n return node;\n }\n\n toString() { return this.childNodes.join(''); }\n\n querySelector(selectors) {\n return query(super.querySelector, this, selectors);\n }\n\n querySelectorAll(selectors) {\n return query(super.querySelectorAll, this, selectors);\n }\n\n /* c8 ignore start */\n getElementsByTagNameNS(_, name) {\n return this.getElementsByTagName(name);\n }\n createAttributeNS(_, name) {\n return this.createAttribute(name);\n }\n createElementNS(nsp, localName, options) {\n return nsp === SVG_NAMESPACE ?\n new SVGElement(this, localName, null) :\n this.createElement(localName, options);\n }\n /* c8 ignore stop */\n}\n\nsetPrototypeOf(\n globalExports.Document = function Document() {\n illegalConstructor();\n },\n Document\n).prototype = Document.prototype;\n", "import {ELEMENT_NODE} from '../shared/constants.js';\nimport {CUSTOM_ELEMENTS, END, NEXT} from '../shared/symbols.js';\nimport {htmlClasses} from '../shared/register-html-class.js';\n\nimport {Document} from '../interface/document.js';\nimport {NodeList} from '../interface/node-list.js';\nimport {customElements} from '../interface/custom-element-registry.js';\n\nimport {HTMLElement} from './element.js';\n\nconst createHTMLElement = (ownerDocument, builtin, localName, options) => {\n if (!builtin && htmlClasses.has(localName)) {\n const Class = htmlClasses.get(localName);\n return new Class(ownerDocument, localName);\n }\n const {[CUSTOM_ELEMENTS]: {active, registry}} = ownerDocument;\n if (active) {\n const ce = builtin ? options.is : localName;\n if (registry.has(ce)) {\n const {Class} = registry.get(ce);\n const element = new Class(ownerDocument, localName);\n customElements.set(element, {connected: false});\n return element;\n }\n }\n return new HTMLElement(ownerDocument, localName);\n};\n\n/**\n * @implements globalThis.HTMLDocument\n */\nexport class HTMLDocument extends Document {\n constructor() { super('text/html'); }\n\n get all() {\n const nodeList = new NodeList;\n let {[NEXT]: next, [END]: end} = this;\n while (next !== end) {\n switch (next.nodeType) {\n case ELEMENT_NODE:\n nodeList.push(next);\n break;\n }\n next = next[NEXT];\n }\n return nodeList;\n }\n\n /**\n * @type HTMLHeadElement\n */\n get head() {\n const {documentElement} = this;\n let {firstElementChild} = documentElement;\n if (!firstElementChild || firstElementChild.tagName !== 'HEAD') {\n firstElementChild = this.createElement('head');\n documentElement.prepend(firstElementChild);\n }\n return firstElementChild;\n }\n\n /**\n * @type HTMLBodyElement\n */\n get body() {\n const {head} = this;\n let {nextElementSibling} = head;\n if (!nextElementSibling || nextElementSibling.tagName !== 'BODY') {\n nextElementSibling = this.createElement('body');\n head.after(nextElementSibling);\n }\n return nextElementSibling;\n }\n\n /**\n * @type HTMLTitleElement\n */\n get title() {\n const {head} = this;\n return head.getElementsByTagName('title').at(0)?.textContent || '';\n }\n\n set title(textContent) {\n const {head} = this;\n let title = head.getElementsByTagName('title').at(0);\n if (title)\n title.textContent = textContent;\n else {\n head.insertBefore(\n this.createElement('title'),\n head.firstChild\n ).textContent = textContent;\n }\n }\n\n createElement(localName, options) {\n const builtin = !!(options && options.is);\n const element = createHTMLElement(this, builtin, localName, options);\n if (builtin)\n element.setAttribute('is', options.is);\n return element;\n }\n}\n", "import {MIME} from '../shared/symbols.js';\nimport {Document} from '../interface/document.js';\n\n/**\n * @implements globalThis.Document\n */\nexport class SVGDocument extends Document {\n constructor() { super('image/svg+xml'); }\n toString() {\n return this[MIME].docType + super.toString();\n }\n}\n", "import {MIME} from '../shared/symbols.js';\nimport {Document} from '../interface/document.js';\n\n/**\n * @implements globalThis.XMLDocument\n */\nexport class XMLDocument extends Document {\n constructor() { super('text/xml'); }\n toString() {\n return this[MIME].docType + super.toString();\n }\n}\n", "import {DOM_PARSER, GLOBALS} from '../shared/symbols.js';\nimport {parseFromString} from '../shared/parse-from-string.js';\n\nimport {HTMLDocument} from '../html/document.js';\nimport {SVGDocument} from '../svg/document.js';\nimport {XMLDocument} from '../xml/document.js';\n\n/**\n * @implements globalThis.DOMParser\n */\nexport class DOMParser {\n\n /** @typedef {{ \"text/html\": HTMLDocument, \"image/svg+xml\": SVGDocument, \"text/xml\": XMLDocument }} MimeToDoc */\n /**\n * @template {keyof MimeToDoc} MIME\n * @param {string} markupLanguage\n * @param {MIME} mimeType\n * @returns {MimeToDoc[MIME]}\n */\n parseFromString(markupLanguage, mimeType, globals = null) {\n let isHTML = false, document;\n if (mimeType === 'text/html') {\n isHTML = true;\n document = new HTMLDocument;\n }\n else if (mimeType === 'image/svg+xml')\n document = new SVGDocument;\n else\n document = new XMLDocument;\n document[DOM_PARSER] = DOMParser;\n if (globals)\n document[GLOBALS] = globals;\n if (isHTML && markupLanguage === '...')\n markupLanguage = '<!doctype html><html><head></head><body></body></html>';\n return markupLanguage ?\n parseFromString(document, isHTML, markupLanguage) :\n document;\n }\n}\n", "import {\n NODE_END,\n ELEMENT_NODE,\n ATTRIBUTE_NODE,\n TEXT_NODE,\n CDATA_SECTION_NODE,\n COMMENT_NODE,\n DOCUMENT_NODE,\n DOCUMENT_TYPE_NODE,\n DOCUMENT_FRAGMENT_NODE\n} from './constants.js';\n\nimport {END, PREV} from './symbols.js';\n\nimport {htmlClasses} from './register-html-class.js';\nimport {knownBoundaries, knownSiblings} from './utils.js';\n\nimport {Attr} from '../interface/attr.js';\nimport {CDATASection} from '../interface/cdata-section.js';\nimport {Comment} from '../interface/comment.js';\nimport {DocumentType} from '../interface/document-type.js';\nimport {Text} from '../interface/text.js';\n\nimport {HTMLDocument} from '../html/document.js';\nimport {HTMLElement} from '../html/element.js';\nimport {SVGElement} from '../svg/element.js';\n\nconst {parse} = JSON;\n\nconst append = (parentNode, node, end) => {\n node.parentNode = parentNode;\n knownSiblings(end[PREV], node, end);\n};\n\nconst createHTMLElement = (ownerDocument, localName) => {\n if (htmlClasses.has(localName)) {\n const Class = htmlClasses.get(localName);\n return new Class(ownerDocument, localName);\n }\n return new HTMLElement(ownerDocument, localName);\n};\n\n/**\n * @typedef {number|string} jsdonValue - either a node type or its content\n */\n\n/**\n * Given a stringified, or arrayfied DOM element, returns an HTMLDocument\n * that represent the content of such string, or array.\n * @param {string|jsdonValue[]} value\n * @returns {HTMLDocument}\n */\nexport const parseJSON = value => {\n const array = typeof value === 'string' ? parse(value) : value;\n const {length} = array;\n const document = new HTMLDocument;\n let parentNode = document, end = parentNode[END], svg = false, i = 0;\n while (i < length) {\n let nodeType = array[i++];\n switch (nodeType) {\n case ELEMENT_NODE: {\n const localName = array[i++];\n const isSVG = svg || localName === 'svg' || localName === 'SVG';\n const element = isSVG ?\n new SVGElement(document, localName, parentNode.ownerSVGElement || null) :\n createHTMLElement(document, localName);\n knownBoundaries(end[PREV], element, end);\n element.parentNode = parentNode;\n parentNode = element;\n end = parentNode[END];\n svg = isSVG;\n break;\n }\n case ATTRIBUTE_NODE: {\n const name = array[i++];\n const value = typeof array[i] === 'string' ? array[i++] : '';\n const attr = new Attr(document, name, value);\n attr.ownerElement = parentNode;\n knownSiblings(end[PREV], attr, end);\n break;\n }\n case TEXT_NODE:\n append(parentNode, new Text(document, array[i++]), end);\n break;\n case COMMENT_NODE:\n append(parentNode, new Comment(document, array[i++]), end);\n break;\n case CDATA_SECTION_NODE:\n append(parentNode, new CDATASection(document, array[i++]), end);\n break;\n case DOCUMENT_TYPE_NODE: {\n const args = [document];\n while (typeof array[i] === 'string')\n args.push(array[i++]);\n if (args.length === 3 && /\\.dtd$/i.test(args[2]))\n args.splice(2, 0, '');\n append(parentNode, new DocumentType(...args), end);\n break;\n }\n case DOCUMENT_FRAGMENT_NODE:\n parentNode = document.createDocumentFragment();\n end = parentNode[END];\n /* eslint no-fallthrough:0 */\n case DOCUMENT_NODE:\n break;\n default:\n do {\n nodeType -= NODE_END;\n if (svg && !parentNode.ownerSVGElement)\n svg = false;\n parentNode = parentNode.parentNode || parentNode;\n } while (nodeType < 0);\n end = parentNode[END];\n break;\n }\n }\n switch (i && array[0]) {\n case ELEMENT_NODE:\n return document.firstElementChild;\n case DOCUMENT_FRAGMENT_NODE:\n return parentNode;\n }\n return document;\n};\n\n/**\n * \n * @param {Document|Element} node the Document or Element to serialize\n * @returns {jsdonValue[]} the linear jsdon serialized array\n */\nexport const toJSON = node => node.toJSON();\n", "import {DOMParser} from './dom/parser.js';\nimport {Document as _Document} from './interface/document.js';\n\nimport {illegalConstructor} from './shared/facades.js';\nimport {setPrototypeOf} from './shared/object.js';\nexport {parseJSON, toJSON} from './shared/parse-json.js';\n\nexport * from './shared/facades.js';\nexport * from './shared/html-classes.js';\n\nexport {DOMParser};\n\nexport {CustomEvent} from './interface/custom-event.js';\nexport {Event} from './interface/event.js';\nexport {EventTarget} from './interface/event-target.js';\nexport {InputEvent} from './interface/input-event.js';\nexport {NodeList} from './interface/node-list.js';\nexport {NodeFilter} from './interface/node-filter.js';\n\nexport const parseHTML = (html, globals = null) => (new DOMParser).parseFromString(\n html, 'text/html', globals\n).defaultView;\n\nexport function Document() {\n illegalConstructor();\n}\n\nsetPrototypeOf(Document, _Document).prototype = _Document.prototype;\n", "import { parseHTML } from \"linkedom\";\nimport { isClassComponent, isFragment, isIntrinsicElement, JSX } from \"../jsx\";\nimport { Injector, ProviderNormalizer } from \"../module\";\nimport {\n COMPONENT,\n COMPONENT_PROVIDERS,\n ERROR_ELEMENT,\n ORCA_ELEMENT_TYPE,\n PENDING_REFERENCE_TYPE,\n} from \"../symbols\";\nimport { Constructor, Provider } from \"../types\";\n\ninterface PendingEntry {\n abortController: AbortController;\n promise: Promise<any>;\n}\n\nexport interface StreamRendererOptions {\n timeout?: number;\n}\n\nexport class StreamRenderer {\n private options: Required<StreamRendererOptions>;\n private pending = new Map<string, PendingEntry>();\n private processedIds = new Set<string>();\n private queueResolvers: ((u: JSX.Element) => void)[] = [];\n private renderingNodes!: WeakSet<object>;\n private idCounter = 0;\n\n constructor(\n private rootInjector: Injector,\n options: StreamRendererOptions = {}\n ) {\n this.options = {\n timeout: options.timeout ?? 30000,\n };\n }\n\n render(\n vnode: JSX.Element,\n parentInjector: Injector = this.rootInjector\n ): any {\n return this.stream(vnode, parentInjector);\n }\n\n private async *stream(vnode: JSX.Element, parentInjector: Injector) {\n this.pending.clear();\n this.queueResolvers = [];\n this.renderingNodes = new WeakSet();\n this.processedIds.clear();\n\n const nextUpdate = () =>\n new Promise<JSX.Element>((resolve) => this.queueResolvers.push(resolve));\n\n try {\n const root = this.buildSyncTree(vnode, parentInjector);\n yield { ...root, action: \"insert\" };\n\n while (this.pending.size > 0) {\n const update = await nextUpdate();\n yield update;\n }\n } finally {\n this.cleanup();\n }\n }\n\n private buildSyncTree(vnode: JSX.Element, injector: Injector): any {\n if (vnode == null || typeof vnode !== \"object\") return vnode;\n if (vnode.$$typeof !== ORCA_ELEMENT_TYPE) return vnode;\n\n if (this.renderingNodes.has(vnode)) {\n throw new Error(\n `Circular reference detected while rendering component \"${vnode.type?.name}\".`\n );\n }\n\n this.renderingNodes.add(vnode);\n\n try {\n if (isClassComponent(vnode)) {\n return this.renderClassComponent(vnode, injector);\n }\n\n if (isIntrinsicElement(vnode)) {\n return this.renderIntrinsicElement(vnode, injector);\n }\n\n if (isFragment(vnode)) {\n return {\n $$typeof: ORCA_ELEMENT_TYPE,\n type: null,\n id: vnode.id,\n props: {\n children: this.mapChildren(vnode.props?.children, injector),\n },\n key: null,\n };\n }\n\n return vnode;\n } finally {\n this.renderingNodes.delete(vnode);\n }\n }\n\n private renderIntrinsicElement(vnode: JSX.Element, injector: Injector): any {\n const { dangerouslySetInnerHTML, children, ...restProps } =\n vnode.props || {};\n\n let processedChildren;\n\n if (dangerouslySetInnerHTML?.__html) {\n processedChildren = this.parseHTMLToJSX(\n dangerouslySetInnerHTML.__html,\n injector\n );\n } else {\n processedChildren = this.mapChildren(children, injector);\n }\n\n return {\n $$typeof: ORCA_ELEMENT_TYPE,\n type: vnode.type,\n id: vnode.id,\n props: {\n ...restProps,\n children: processedChildren,\n },\n key: vnode.key ?? null,\n };\n }\n\n private renderClassComponent(vnode: JSX.Element, injector: Injector): any {\n const ComponentClass = vnode.type;\n const isComponent = Reflect.getMetadata(COMPONENT, ComponentClass);\n\n let componentInjector = injector;\n\n if (isComponent) {\n const localProviders: (Provider | Constructor)[] =\n Reflect.getMetadata(COMPONENT_PROVIDERS, ComponentClass) || [];\n\n if (localProviders.length > 0) {\n componentInjector = new Injector(\n localProviders.map((p) => ProviderNormalizer.normalize(p)),\n injector\n );\n }\n }\n\n const instance: any = componentInjector.resolve(ComponentClass);\n instance.props = vnode.props || {};\n\n const childVNode = instance.build();\n\n if (childVNode instanceof Promise) {\n return this.createPendingReference(vnode, childVNode, componentInjector);\n }\n\n return this.buildSyncTree(childVNode, componentInjector);\n }\n\n private mapChildren(children: any, injector: Injector): any {\n if (children == null) return undefined;\n if (typeof children === \"string\" || typeof children === \"number\") {\n return children;\n }\n\n if (Array.isArray(children)) {\n return children.map((c) => this.buildSyncTree(c, injector));\n }\n\n return this.buildSyncTree(children, injector);\n }\n\n private parseHTMLToJSX(html: string, injector: Injector): any {\n const { document } = parseHTML(\n `<!doctype html><html><body>${html}</body></html>`\n );\n\n const convertElement = (element: any): any => {\n const tagName = element.tagName.toLowerCase();\n const props: Record<string, any> = {};\n\n const attrs = element.attributes;\n if (attrs) {\n for (let i = 0; i < attrs.length; i++) {\n const attr = attrs[i];\n let name = attr.name;\n\n if (name === \"class\") {\n name = \"className\";\n } else if (name === \"for\") {\n name = \"htmlFor\";\n } else if (\n !name.startsWith(\"data-\") &&\n !name.startsWith(\"aria-\") &&\n name.includes(\"-\")\n ) {\n name = name.replace(/-([a-z])/g, (_: string, letter: string) =>\n letter.toUpperCase()\n );\n }\n\n props[name] = attr.value;\n }\n }\n\n const children: any[] = [];\n const childNodes = element.childNodes;\n\n if (childNodes) {\n for (let i = 0; i < childNodes.length; i++) {\n const child = childNodes[i];\n const converted = convertNode(child);\n if (converted != null) {\n children.push(converted);\n }\n }\n }\n\n const jsxElement = {\n $$typeof: ORCA_ELEMENT_TYPE,\n type: tagName,\n id: this.generateId(),\n props: {\n ...props,\n children:\n children.length === 0\n ? undefined\n : children.length === 1\n ? children[0]\n : children,\n },\n key: null,\n };\n\n return this.buildSyncTree(jsxElement, injector);\n };\n\n const convertNode = (node: any): any => {\n if (node.nodeType === 3) {\n const text = node.textContent || \"\";\n const trimmed = text.trim();\n return trimmed ? text : null;\n }\n\n if (node.nodeType === 1) {\n return convertElement(node);\n }\n\n return null;\n };\n\n const result: any[] = [];\n const bodyChildren = document.body?.childNodes;\n\n if (bodyChildren) {\n for (let i = 0; i < bodyChildren.length; i++) {\n const node = bodyChildren[i];\n const converted = convertNode(node);\n if (converted != null) {\n result.push(converted);\n }\n }\n }\n\n return result.length === 0\n ? undefined\n : result.length === 1\n ? result[0]\n : result;\n }\n\n private createPendingReference(\n vnode: JSX.Element,\n promise: Promise<any>,\n injector: Injector\n ) {\n const id = vnode.id;\n const abortController = new AbortController();\n\n const timeoutPromise = new Promise<never>((_, reject) => {\n const timeoutId = setTimeout(() => {\n abortController.abort();\n reject(\n new Error(\n `Component ${vnode.type.name || \"Unknown\"} timed out after ${\n this.options.timeout\n }ms`\n )\n );\n }, this.options.timeout);\n\n abortController.signal.addEventListener(\"abort\", () => {\n clearTimeout(timeoutId);\n });\n });\n\n const raced = Promise.race([promise, timeoutPromise])\n .then((result) => {\n result.id = vnode.id;\n return this.buildSyncTree(result, injector);\n })\n .catch((err) => Promise.reject({ id, error: err }));\n\n this.pending.set(id, { abortController, promise: raced });\n\n raced\n .then((resolved) => {\n if (this.processedIds.has(id)) return;\n this.processedIds.add(id);\n\n this.queueResolvers.shift()?.({\n ...resolved,\n action: \"update\",\n });\n\n this.pending.delete(id);\n })\n .catch((e) => {\n this.queueResolvers.shift()?.({\n $$typeof: ERROR_ELEMENT,\n type: \"error\",\n action: \"error\",\n id,\n props: {\n message: String(e?.error) || String(e),\n },\n key: null,\n });\n this.pending.delete(id);\n });\n\n return {\n $$typeof: PENDING_REFERENCE_TYPE,\n id,\n type: \"ref\",\n props: vnode.props,\n key: vnode.key ?? null,\n };\n }\n\n private generateId(): string {\n return `jsx_${++this.idCounter}`;\n }\n\n private cleanup() {\n for (const { abortController } of this.pending.values()) {\n abortController.abort();\n }\n this.pending.clear();\n this.processedIds.clear();\n this.queueResolvers.length = 0;\n }\n\n cancel() {\n this.cleanup();\n }\n\n async renderToCompletion(jsx: JSX.Element): Promise<JSX.Element[]> {\n const out: JSX.Element[] = [];\n for await (const upd of this.stream(jsx, this.rootInjector)) {\n out.push(upd);\n }\n return out;\n }\n}\n", "export class VNode {\n id?: string;\n parent?: VNode;\n children: VNode[] = [];\n\n constructor(public dom: Node, private cb?: (old: Node, nw: Node) => void) {}\n\n setId(id: string) {\n this.id = id;\n }\n\n addChild(child: VNode): VNode {\n child.parent = this;\n this.children.push(child);\n return child;\n }\n\n removeChild(child: VNode): void {\n const index = this.children.indexOf(child);\n if (index > -1) {\n this.children.splice(index, 1);\n child.parent = undefined;\n }\n }\n\n findById(id: string): VNode | null {\n if (this.id === id) return this;\n\n for (const child of this.children) {\n const found = child.findById(id);\n if (found) return found;\n }\n\n return null;\n }\n\n attach(nw: Node) {\n if (this.cb) {\n this.cb(this.dom, nw);\n } else {\n if (this.dom.parentNode) {\n this.dom.parentNode.replaceChild(nw, this.dom);\n }\n }\n this.dom = nw;\n }\n\n unmount(): void {\n for (const child of this.children) {\n child.unmount();\n }\n\n if (this.dom.parentNode) {\n this.dom.parentNode.removeChild(this.dom);\n }\n\n if (this.parent) {\n this.parent.removeChild(this);\n }\n }\n}\n", "export function symbolValueReplacer(key: any, value: any) {\n if (typeof value === \"symbol\") {\n return `@@Symbol:${value.description}`;\n }\n return value;\n}\n\nexport function symbolValueReviver(key: any, value: any) {\n if (typeof value === \"string\" && value.startsWith(\"@@Symbol:\")) {\n return Symbol.for(value.slice(9));\n }\n return value;\n}\n", "import { Signal, Subscriber } from \"@/shared\";\n\nlet currentEffect: Subscriber | null = null;\n\ninterface InternalSignal<T> extends Signal<T> {\n _isSignal: true;\n _subscribers: Set<Subscriber>;\n}\n\nexport function signal<T>(initialValue: T): Signal<T> {\n let value = initialValue;\n const subscribers = new Set<Subscriber>();\n\n const notify = () => {\n subscribers.forEach((sub) => sub());\n };\n\n return {\n _isSignal: true as const,\n _subscribers: subscribers,\n\n get value(): T {\n if (currentEffect) {\n subscribers.add(currentEffect);\n }\n return value;\n },\n set value(newValue: T) {\n if (value !== newValue) {\n value = newValue;\n notify();\n }\n },\n } as InternalSignal<T>;\n}\n\nexport function effect(fn: Subscriber): () => void {\n const execute = () => {\n currentEffect = execute;\n try {\n fn();\n } finally {\n currentEffect = null;\n }\n };\n\n execute();\n\n return () => {\n currentEffect = null;\n };\n}\n\nexport function computed<T>(fn: () => T): Signal<T> {\n const sig = signal(fn());\n\n effect(() => {\n sig.value = fn();\n });\n\n return sig;\n}\n\nexport function isSignal(value: any): boolean {\n return value && value._isSignal === true;\n}\n", "import { Observer, Signal } from \"@/shared\";\nimport { signal } from \"../signal\";\n\nexport interface Subscription {\n unsubscribe(): void;\n}\n\nexport type OperatorFunction<T, R> = (source: Observable<T>) => Observable<R>;\n\nexport class Observable<T> {\n __isObservable = true;\n\n private subscribers: Set<Observer<T>> = new Set();\n public _value?: T;\n\n constructor(\n private producer?: (observer: Observer<T>) => void | (() => void)\n ) {}\n\n public get $value(): T | undefined {\n return this._value;\n }\n\n public setValue(newValue: T) {\n this._value = newValue;\n }\n\n public subscribe(\n observerOrNext: Observer<T> | ((value: T) => void),\n error?: (err: any) => void,\n complete?: () => void\n ): Subscription {\n const observer: Observer<T> =\n typeof observerOrNext === \"function\"\n ? { next: observerOrNext, error, complete }\n : observerOrNext;\n\n this.subscribers.add(observer);\n\n let cleanup: (() => void) | void;\n if (this.producer) {\n try {\n cleanup = this.producer(observer);\n } catch (err) {\n if (observer.error) {\n observer.error(err);\n }\n }\n }\n\n return {\n unsubscribe: () => {\n this.subscribers.delete(observer);\n if (cleanup) cleanup();\n },\n };\n }\n\n public next(value: T): void {\n this.setValue(value);\n this.subscribers.forEach((observer) => {\n try {\n observer.next(value);\n } catch (err) {\n console.error(\"Error in observer:\", err);\n }\n });\n }\n\n public error(err: any): void {\n this.subscribers.forEach((observer) => {\n if (observer.error) {\n try {\n observer.error(err);\n } catch (e) {\n console.error(\"Error in error handler:\", e);\n }\n }\n });\n }\n\n public complete(): void {\n this.subscribers.forEach((observer) => {\n if (observer.complete) {\n try {\n observer.complete();\n } catch (err) {\n console.error(\"Error in complete handler:\", err);\n }\n }\n });\n this.subscribers.clear();\n }\n\n pipe(): Observable<T>;\n pipe<A>(op1: OperatorFunction<T, A>): Observable<A>;\n pipe<A, B>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>\n ): Observable<B>;\n pipe<A, B, C>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>\n ): Observable<C>;\n pipe<A, B, C, D>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>,\n op4: OperatorFunction<C, D>\n ): Observable<D>;\n pipe<A, B, C, D, E>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>,\n op4: OperatorFunction<C, D>,\n op5: OperatorFunction<D, E>\n ): Observable<E>;\n public pipe(...operations: OperatorFunction<any, any>[]): Observable<any> {\n if (operations.length === 0) {\n return this;\n }\n return operations.reduce((prev, fn) => fn(prev), this as any);\n }\n}\n\nexport function from<T>(iterable: Iterable<T>): Observable<T> {\n return new Observable((observer) => {\n for (const value of iterable) {\n observer.next(value);\n }\n observer.complete?.();\n });\n}\n\nexport function interval(ms: number): Observable<number> {\n return new Observable((observer) => {\n let count = 0;\n const id = setInterval(() => {\n observer.next(count++);\n }, ms);\n return () => clearInterval(id);\n });\n}\n\nexport function of<T>(...values: T[]): Observable<T> {\n return new Observable((observer) => {\n values.forEach((value) => observer.next(value));\n observer.complete?.();\n });\n}\n\nexport function observable<T>(\n producer?: ((observer: Observer<T>) => void | (() => void)) | undefined\n): Observable<T> {\n return new Observable<T>(producer);\n}\n\nexport function toSignal<T>(\n obs: Observable<T>,\n instance: any\n): Signal<T | undefined> {\n const sig = signal<T | undefined>(undefined);\n\n const subst = obs.subscribe((val) => {\n sig.value = val;\n });\n\n instance.__cleanup = [...(instance.__cleanup ?? []), () => subst.unsubscribe()];\n\n return sig;\n}\n\nexport function isObservable(value: any): boolean {\n return value && value.__isObservable === true;\n}\n", "import { JSX } from \"./jsx\";\nimport { Injector } from \"./module\";\n\nexport abstract class OrcaComponent {\n __cleanup: Array<() => void> = [];\n __injector!: Injector;\n props!: any;\n\n onDestory(): void {\n this.__cleanup.forEach((cb) => cb());\n }\n\n pushDrop(fn: () => void) {\n this.__cleanup.push(fn);\n }\n\n abstract build(): Node | JSX.Element | Promise<JSX.Element>;\n}\n", "var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { from, HttpClient, Inject, symbolValueReviver } from \"@/shared\";\nlet Navigate = class Navigate {\n constructor(oscUrl) {\n this.oscUrl = oscUrl;\n this.pages = from([]);\n this.cursor = 0;\n const initialState = history.state?.cursor ?? 0;\n this.cursor = initialState;\n if (!history.state) {\n history.replaceState({ cursor: 0 }, \"\");\n }\n window.addEventListener(\"popstate\", (e) => {\n const newIndex = e.state?.cursor ?? 0;\n this.cursor = newIndex;\n this.pages.next([...(this.pages.$value || [])]);\n });\n }\n getHome() {\n const http = new HttpClient();\n return http.post(this.oscUrl, {\n stream: \"ndjson\",\n reviver: symbolValueReviver,\n });\n }\n push(component) {\n const currentPages = this.pages.$value || [];\n const newPages = currentPages.slice(0, this.cursor + 1);\n this.cursor++;\n newPages.push(component);\n history.pushState({ cursor: this.cursor }, \"\");\n this.pages.next(newPages);\n }\n replace(component) {\n const currentPages = [...(this.pages.$value || [])];\n currentPages[this.cursor] = component;\n history.replaceState({ cursor: this.cursor }, \"\");\n this.pages.next(currentPages);\n }\n goBack() {\n if (this.cursor > 0) {\n history.back();\n }\n }\n goForward() {\n const currentPages = this.pages.$value || [];\n if (this.cursor < currentPages.length - 1) {\n history.forward();\n }\n }\n canGoBack() {\n return this.cursor > 0;\n }\n canGoForward() {\n const currentPages = this.pages.$value || [];\n return this.cursor < currentPages.length - 1;\n }\n getCurrentPage() {\n const currentPages = this.pages.$value || [];\n return currentPages[this.cursor];\n }\n clear() {\n this.cursor = 0;\n this.pages.next([]);\n history.replaceState({ cursor: 0 }, \"\");\n }\n};\nNavigate = __decorate([\n __param(0, Inject(\"OSC_URL\", { maybe: true })),\n __metadata(\"design:paramtypes\", [String])\n], Navigate);\nexport { Navigate };\n", "var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar _a;\nimport { Component, Navigate, OrcaComponent, OSC } from \"@/shared\";\nlet RouterOutlet = class RouterOutlet extends OrcaComponent {\n constructor(navigate) {\n super();\n this.navigate = navigate;\n }\n build() {\n const anchor = document.createElement(\"div\");\n const root = document.createElement(\"div\");\n anchor.appendChild(root);\n const osc = new OSC(root);\n const stream = this.navigate.getHome();\n const streamSubscription = stream.subscribe((jsx) => {\n const action = jsx.action || \"insert\";\n if (action === \"insert\") {\n osc.handleInsert(jsx);\n }\n else if (action === \"update\") {\n osc.handleUpdate(jsx);\n }\n else {\n console.warn(`Unknown action: ${action}`);\n }\n }, () => { }, () => {\n this.navigate.pages.setValue([osc.tree.dom]);\n });\n const subscription = this.navigate.pages.subscribe((pages) => {\n const top = pages[this.navigate.cursor];\n anchor.replaceChildren(top);\n });\n this.pushDrop(() => subscription.unsubscribe());\n this.pushDrop(() => streamSubscription.unsubscribe());\n return anchor;\n }\n};\nRouterOutlet = __decorate([\n Component(),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof Navigate !== \"undefined\" && Navigate) === \"function\" ? _a : Object])\n], RouterOutlet);\nexport { RouterOutlet };\n", "import { DynamicModule, HttpClientModule } from \"@/shared\";\nimport { Navigate } from \"./navigate\";\nimport { RouterOutlet } from \"./outlet\";\n\nexport class RouterModule {\n static forRoot(): DynamicModule {\n return {\n module: RouterModule,\n declarations: [RouterOutlet],\n providers: [Navigate],\n exports: [Navigate, RouterOutlet],\n };\n }\n}\n", "var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Injectable, Module, Observable } from \"@/shared\";\nlet HttpClient = class HttpClient {\n get(url, { stream = \"json\", reviver, init } = {}) {\n return new Observable((subscriber) => {\n const controller = new AbortController();\n fetch(url, {\n method: \"GET\",\n ...init,\n signal: controller.signal,\n })\n .then(async (res) => {\n if (!res.ok) {\n throw new Error(`HTTP ${res.status}: ${res.statusText}`);\n }\n if (stream === \"json\") {\n const data = await res.json();\n subscriber.next(reviver ? JSON.parse(JSON.stringify(data), reviver) : data);\n subscriber.complete?.();\n return;\n }\n if (stream === \"raw\") {\n subscriber.next(res);\n subscriber.complete?.();\n return;\n }\n const reader = res.body?.getReader();\n if (!reader) {\n throw new Error(\"ReadableStream not supported\");\n }\n const decoder = new TextDecoder();\n let buffer = \"\";\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n if (stream === \"ndjson\" && buffer.trim()) {\n try {\n subscriber.next(JSON.parse(buffer, reviver));\n }\n catch (err) {\n console.warn(\"Failed to parse remaining buffer:\", err);\n }\n }\n break;\n }\n const chunk = decoder.decode(value, { stream: true });\n if (stream === \"text\") {\n subscriber.next(chunk);\n continue;\n }\n if (stream === \"ndjson\") {\n buffer += chunk;\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop();\n for (const line of lines) {\n if (line.trim()) {\n try {\n subscriber.next(JSON.parse(line, reviver));\n }\n catch (err) {\n console.error(\"Failed to parse NDJSON line:\", line, err);\n }\n }\n }\n }\n }\n subscriber.complete?.();\n })\n .catch((err) => {\n if (err.name === \"AbortError\") {\n console.log(\"Request aborted\");\n }\n subscriber.error?.(err);\n });\n return () => {\n controller.abort();\n };\n });\n }\n post(url, { body, stream = \"json\", reviver, init } = {}) {\n const headers = new Headers(init?.headers);\n if (body && !headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json\");\n }\n const processedBody = body !== undefined\n ? typeof body === \"string\"\n ? body\n : JSON.stringify(body)\n : undefined;\n return this.get(url, {\n stream,\n reviver,\n init: {\n ...init,\n method: \"POST\",\n headers,\n body: processedBody,\n },\n });\n }\n put(url, options) {\n return this.request(url, \"PUT\", options);\n }\n patch(url, options) {\n return this.request(url, \"PATCH\", options);\n }\n delete(url, options) {\n return this.get(url, {\n ...options,\n init: {\n ...options?.init,\n method: \"DELETE\",\n },\n });\n }\n request(url, method, { body, stream = \"json\", reviver, init } = {}) {\n const headers = new Headers(init?.headers);\n if (body && !headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json\");\n }\n const processedBody = body !== undefined\n ? typeof body === \"string\"\n ? body\n : JSON.stringify(body)\n : undefined;\n return this.get(url, {\n stream,\n reviver,\n init: {\n ...init,\n method,\n headers,\n body: processedBody,\n },\n });\n }\n};\nHttpClient = __decorate([\n Injectable()\n], HttpClient);\nexport { HttpClient };\nlet HttpClientModule = class HttpClientModule {\n};\nHttpClientModule = __decorate([\n Module({\n providers: [HttpClient],\n exports: [HttpClient],\n })\n], HttpClientModule);\nexport { HttpClientModule };\n", "import {\n COMPONENT_DEPS,\n Constructor,\n DESIGN_PARAMTYPES,\n getCurrentInjector,\n Injector,\n isIntrinsicElement,\n JSX,\n ORCA_CLIENT_COMPONENT,\n PENDING_REFERENCE_TYPE,\n VNode,\n} from \"@/shared\";\n\ninterface BuildResult {\n domNode: Node;\n vnode?: VNode;\n}\n\nexport class OSC {\n public tree: VNode;\n private pendingRefs = new Map<string, JSX.Element>();\n\n constructor(private root: HTMLElement) {\n this.tree = new VNode(root, (old, nw) => {\n (old as HTMLElement).replaceWith(nw);\n });\n }\n\n public handleInsert(jsx: JSX.Element): void {\n const { domNode, vnode } = this.buildDOM(jsx, this.tree);\n\n if (jsx.id && vnode) {\n vnode.setId(jsx.id);\n }\n\n this.tree.attach(domNode);\n }\n\n public handleUpdate(jsx: JSX.Element): void {\n if (!jsx.id) {\n console.warn(\"Update action requires an id\");\n return;\n }\n\n const targetVNode = this.tree.findById(jsx.id);\n\n if (targetVNode) {\n const oldChildren = [...targetVNode.children];\n targetVNode.children = [];\n\n const { domNode, vnode } = this.buildDOM(\n jsx,\n targetVNode.parent || this.tree\n );\n\n targetVNode.attach(domNode);\n\n if (vnode) {\n targetVNode.children = vnode.children;\n }\n } else {\n console.warn(`Update target ${jsx.id} not found, inserting instead`);\n this.handleInsert(jsx);\n }\n }\n\n private buildDOM(\n jsx: JSX.Element | JSX.Element[],\n vparent: VNode\n ): BuildResult {\n if (jsx == null) {\n return { domNode: document.createDocumentFragment() };\n }\n\n if (Array.isArray(jsx)) {\n return this.buildArray(jsx, vparent);\n }\n\n if (this.isPrimitive(jsx)) {\n return this.buildTextNode(String(jsx), vparent);\n }\n\n if (jsx.$$typeof === PENDING_REFERENCE_TYPE) {\n return this.buildPendingReference(jsx, vparent);\n }\n\n if (jsx.$$typeof === ORCA_CLIENT_COMPONENT) {\n return this.buildClientComponent(jsx, vparent);\n }\n\n if (isIntrinsicElement(jsx)) {\n return this.buildIntrinsicElement(jsx, vparent);\n }\n\n console.error(\"Unsupported node:\", jsx);\n throw new Error(\n `Unsupported node type: ${typeof jsx}, $typeof: ${String(jsx.$$typeof)}`\n );\n }\n\n private buildClientComponent(jsx: any, parent: VNode): BuildResult {\n const componentInfo = jsx.props.__clientComponent;\n const { id, path, name } = componentInfo;\n\n const container = document.createElement(\"div\");\n container.dataset.clientComponent = id;\n\n const vnode = new VNode(container, (old, nw) => {\n if (old.parentNode) {\n old.parentNode.replaceChild(nw, old);\n }\n });\n\n if (jsx.id) {\n vnode.setId(jsx.id);\n }\n\n parent.addChild(vnode);\n\n this.loadClientComponent(path, name, jsx.props, container);\n\n return { domNode: container, vnode };\n }\n\n private buildPendingReference(jsx: any, parent: VNode): BuildResult {\n const refId = jsx.id;\n const div = document.createElement(\"div\");\n div.dataset.ref = refId;\n div.className = \"loading\";\n div.textContent = \"Loading...\";\n\n const vnode = new VNode(div, (old, nw) => {\n if (old.parentNode) {\n old.parentNode.replaceChild(nw, old);\n }\n });\n vnode.setId(refId);\n parent.addChild(vnode);\n\n const pendingContent = this.pendingRefs.get(refId);\n if (pendingContent) {\n setTimeout(() => this.resolvePendingReference(refId, pendingContent), 0);\n }\n\n return { domNode: div, vnode };\n }\n\n resolvePendingReference(refId: string, content: JSX.Element): void {\n const vnode = this.tree.findById(refId);\n if (!vnode) {\n console.warn(`Reference ${refId} not found`);\n this.pendingRefs.set(refId, content);\n return;\n }\n\n try {\n vnode.children = [];\n\n const { domNode, vnode: newVNode } = this.buildDOM(content, vnode);\n\n vnode.attach(domNode);\n\n if (newVNode) {\n vnode.children = newVNode.children;\n }\n\n this.pendingRefs.delete(refId);\n } catch (error) {\n console.error(`Error resolving reference ${refId}:`, error);\n }\n }\n\n private buildTextNode(text: string, parent: VNode): BuildResult {\n const textNode = document.createTextNode(text);\n const vnode = new VNode(textNode, (old, nw) => {\n if (old.parentNode) {\n old.parentNode.replaceChild(nw, old);\n }\n });\n parent.addChild(vnode);\n return { domNode: textNode, vnode };\n }\n\n private isPrimitive(node: any): boolean {\n return (\n typeof node === \"string\" ||\n typeof node === \"number\" ||\n typeof node === \"boolean\"\n );\n }\n\n private buildArray(nodes: JSX.Element[], parent: VNode): BuildResult {\n const fragment = document.createDocumentFragment();\n const vnodes: VNode[] = [];\n\n nodes.forEach((child) => {\n const { domNode, vnode } = this.buildDOM(child, parent);\n fragment.appendChild(domNode);\n if (vnode) {\n vnodes.push(vnode);\n }\n });\n\n return { domNode: fragment };\n }\n\n private buildIntrinsicElement(jsx: JSX.Element, parent: VNode): BuildResult {\n const tag = jsx.type;\n const dom = document.createElement(tag);\n\n const vnode = new VNode(dom, (old, nw) => {\n if (old.parentNode) {\n old.parentNode.replaceChild(nw, old);\n }\n });\n\n parent.addChild(vnode);\n\n if (jsx.id) {\n vnode.setId(jsx.id);\n }\n\n if (jsx.props) {\n this.buildAttributes(jsx.props, dom, vnode);\n }\n\n if (jsx.props?.children != null) {\n const { domNode: childDom } = this.buildDOM(jsx.props.children, vnode);\n dom.appendChild(childDom);\n }\n\n return { domNode: dom, vnode };\n }\n\n private buildAttributes(\n props: Record<string, any>,\n dom: HTMLElement,\n vnode: VNode\n ): void {\n for (const [key, value] of Object.entries(props)) {\n if (key === \"children\" || value == null) {\n continue;\n }\n\n const attrKey = this.normalizeAttributeKey(key);\n\n if (attrKey === \"style\" && typeof value === \"object\") {\n this.applyStyles(value, dom);\n continue;\n }\n\n if (typeof value === \"boolean\") {\n this.setBooleanAttribute(attrKey, value, dom);\n continue;\n }\n\n dom.setAttribute(attrKey, String(value));\n }\n }\n\n private normalizeAttributeKey(key: string): string {\n if (key === \"className\") return \"class\";\n if (key === \"htmlFor\") return \"for\";\n return key;\n }\n\n private applyStyles(styles: Record<string, any>, dom: HTMLElement): void {\n const styleString = Object.entries(styles)\n .map(([k, v]) => {\n const kebabKey = k.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);\n return `${kebabKey}:${v}`;\n })\n .join(\";\");\n dom.setAttribute(\"style\", styleString);\n }\n\n private setBooleanAttribute(\n key: string,\n value: boolean,\n dom: HTMLElement\n ): void {\n if (value) {\n dom.setAttribute(key, \"\");\n } else {\n dom.removeAttribute(key);\n }\n }\n\n private async loadClientComponent(\n path: string,\n name: string,\n props: Record<string, any>,\n container: HTMLElement\n ): Promise<void> {\n try {\n const module = await import(path);\n const ComponentClass: Constructor = module[name];\n\n if (!ComponentClass) {\n throw new Error(`Component ${name} not found in ${path}`);\n }\n\n const injector = getCurrentInjector();\n if (injector == null) {\n throw new Error(\"Couldn't find an injector\");\n }\n\n const seen = new Set<Constructor>();\n\n function register(Cls: Constructor, injector: Injector) {\n if (seen.has(Cls)) return;\n seen.add(Cls);\n\n injector.addProvider({\n provide: Cls,\n useClass: Cls,\n scope: \"transient\",\n });\n\n const paramDeps: Constructor[] =\n Reflect.getMetadata(DESIGN_PARAMTYPES, Cls) ?? [];\n\n const explicitDeps: Constructor[] =\n Reflect.getMetadata(COMPONENT_DEPS, Cls) ?? [];\n\n paramDeps\n .filter((d) => d && d !== Object)\n .forEach((d) => injector.addProvider(d));\n\n explicitDeps.forEach((deps) => register(deps, injector));\n }\n\n register(ComponentClass, injector);\n\n const cleanProps = { ...props };\n delete cleanProps.__clientComponent;\n\n const instance = injector.resolve(ComponentClass);\n instance.__injector = injector;\n instance.props = cleanProps;\n\n if (typeof instance.build !== \"function\") {\n throw new Error(`Component ${name} does not implement build()`);\n }\n\n const rendered = instance.build();\n\n container.replaceWith(rendered);\n } catch (error) {\n console.error(`Failed to load client component ${name}:`, error);\n\n container.textContent = `Error loading component: ${name}`;\n container.className = \"client-component-error\";\n }\n }\n}\n", "export function assert$(context?: any) {\n return context?.factory.createStringLiteral(\"assert\");\n}\n", "export * from \"./factory\";\nexport * from \"./dom\";\n", "import {\n BOOTSTRAP,\n collectAllProvidersFromNode,\n Compiler,\n Constructor,\n Injector,\n setCurrentInjector,\n} from \"@/shared\";\n\nexport class BrowserFactory {\n public static create(rootModule: Constructor, rootElement: HTMLElement) {\n const compiler = new Compiler();\n const appNode = compiler.compile(rootModule);\n\n const validation = compiler.validate(appNode);\n\n if (!validation.valid) {\n throw new Error(\n \"\u274C Validation failed:\\n\" + validation.errors.join(\"\\n\\n\")\n );\n }\n\n const allProviders = collectAllProvidersFromNode(appNode);\n\n const rootInjector = new Injector([\n ...allProviders,\n {\n provide: \"OSC_URL\",\n useValue: \"/osc\",\n },\n ]);\n\n setCurrentInjector(rootInjector);\n\n appNode.traverse((node) => {\n const providers = [...node.getProviders().values()];\n providers\n .filter((provider) => provider.eager)\n .forEach((p) => rootInjector.resolve(p.provide));\n });\n\n const bootstrap = Reflect.getMetadata(BOOTSTRAP, rootModule);\n\n const instance: any = rootInjector.resolve(bootstrap);\n\n instance.__injector = rootInjector;\n\n const childDom = instance.build();\n\n rootElement.appendChild(childDom);\n }\n}\n", "import { COMPONENT, COMPONENT_PROVIDERS, getCurrentInjector, Injector, ProviderNormalizer, } from \"@/shared\";\nimport { isObservable } from \"../../shared/observable\";\nimport { effect, isSignal } from \"../../shared/signal\";\nconst elementEffects = new WeakMap();\nconst cleanupObserver = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n mutation.removedNodes.forEach((node) => {\n cleanupElement(node);\n });\n });\n});\nif (typeof document !== \"undefined\" && document.body) {\n cleanupObserver.observe(document.body, {\n childList: true,\n subtree: true,\n });\n}\nelse if (typeof document !== \"undefined\") {\n document.addEventListener(\"DOMContentLoaded\", () => {\n cleanupObserver.observe(document.body, {\n childList: true,\n subtree: true,\n });\n });\n}\nfunction cleanupElement(node) {\n const cleanups = elementEffects.get(node);\n if (cleanups) {\n cleanups.forEach((cleanup, idx) => {\n cleanup();\n });\n elementEffects.delete(node);\n }\n if (node.childNodes && node.childNodes.length > 0) {\n node.childNodes.forEach((child) => cleanupElement(child));\n }\n}\nfunction registerEffect(el, cleanup) {\n if (!elementEffects.has(el)) {\n elementEffects.set(el, []);\n }\n elementEffects.get(el).push(cleanup);\n}\nfunction buildDOM(value) {\n if (value instanceof Node) {\n return value;\n }\n if (typeof value === \"string\" || typeof value === \"number\") {\n return document.createTextNode(String(value));\n }\n if (value == null || typeof value === \"boolean\") {\n return document.createTextNode(\"\");\n }\n if (Array.isArray(value)) {\n const fragment = document.createDocumentFragment();\n for (const item of value) {\n const node = buildDOM(item);\n fragment.appendChild(node);\n }\n return fragment;\n }\n console.log(\"Unhandled value:\", value);\n throw new Error(`Cannot build DOM from value: ${value}`);\n}\nexport function insert(parent, value) {\n if (value == null)\n return;\n let currentDOM;\n function attach(value) {\n const newDOM = buildDOM(value);\n if (currentDOM) {\n if (Array.isArray(currentDOM)) {\n currentDOM.forEach((node) => {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n });\n }\n else {\n if (currentDOM.parentNode) {\n currentDOM.parentNode.removeChild(currentDOM);\n }\n }\n }\n if (newDOM instanceof DocumentFragment) {\n const nodes = Array.from(newDOM.childNodes);\n parent.appendChild(newDOM);\n currentDOM = nodes;\n }\n else {\n parent.appendChild(newDOM);\n currentDOM = newDOM;\n }\n }\n if (isSignal(value)) {\n const cleanup = effect(() => {\n attach(value.value);\n });\n registerEffect(parent, cleanup);\n }\n else if (isObservable(value)) {\n const obs = value;\n const subst = obs.subscribe((val) => {\n attach(val);\n });\n registerEffect(parent, () => subst.unsubscribe());\n }\n else if (typeof value == \"function\") {\n const cleanup = effect(() => {\n attach(value());\n });\n registerEffect(parent, cleanup);\n }\n else {\n const node = buildDOM(value);\n parent.appendChild(node);\n }\n}\nfunction autoCleanup(element, callback) {\n const observer = new MutationObserver(() => {\n if (!document.contains(element)) {\n callback();\n observer.disconnect();\n }\n });\n setTimeout(() => {\n if (element.parentNode) {\n observer.observe(document.body, { childList: true, subtree: true });\n }\n }, 0);\n}\nexport function createComponent(ComponentClass, props = {}, parentComponent) {\n let injector = getCurrentInjector();\n if (!injector) {\n throw new Error(`Cannot create component ${ComponentClass.name} outside injection context. ` +\n `No injector available from current context or parent component.`);\n }\n const isComponent = Reflect.getMetadata(COMPONENT, ComponentClass);\n if (!isComponent) {\n throw new Error(`${ComponentClass.name} is not decorated with @Component()`);\n }\n let instance;\n try {\n instance = injector.resolve(ComponentClass);\n }\n catch (e) {\n throw new Error(e.message);\n }\n const localProviders = Reflect.getMetadata(COMPONENT_PROVIDERS, ComponentClass) || [];\n if (localProviders.length > 0) {\n injector = new Injector(localProviders.map((p) => ProviderNormalizer.normalize(p)), parentComponent.__injector);\n instance.__injector = injector;\n }\n instance.props = props;\n const root = instance.build();\n if (!(root instanceof Node)) {\n throw new Error(\"Root is not instance of node\");\n }\n const cleanup = () => {\n instance.__cleanup?.forEach((cb) => cb());\n instance.onDestory?.();\n };\n if (root.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n const firstChild = root.firstChild;\n if (firstChild) {\n autoCleanup(firstChild, cleanup);\n }\n }\n else {\n autoCleanup(root, cleanup);\n }\n return root;\n}\nexport function style(el, styleObj) {\n if (typeof styleObj === \"function\") {\n const cleanup = effect(() => {\n const styles = styleObj();\n if (!styles)\n return;\n for (const key in styles) {\n const value = styles[key];\n const actualValue = isSignal(value) ? value.value : value;\n const cssKey = key.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);\n el.style.setProperty(cssKey, actualValue);\n }\n });\n registerEffect(el, cleanup);\n return;\n }\n if (!styleObj)\n return;\n for (const key in styleObj) {\n const cssKey = key.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);\n el.style.setProperty(cssKey, styleObj[key]);\n }\n}\nexport function spread(el, attrs) {\n if (!attrs)\n return;\n for (const key in attrs) {\n const value = attrs[key];\n if (/^on[A-Z]/.test(key)) {\n const eventName = key.slice(2).toLowerCase();\n el.addEventListener(eventName, value);\n continue;\n }\n if (key === \"style\" && typeof value === \"object\") {\n style(el, value);\n continue;\n }\n const attrName = key === \"className\" ? \"class\" : key;\n el.setAttribute(attrName, value);\n }\n}\n"],
5
+ "mappings": "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E,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,YAAY,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,aAAa,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,aAAa,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAA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,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ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E,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,OAAO,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,GAAE,CAAC,GAAE,QAAQ,CAAC,CAAC,CAAC,EAAC,CAAC,GAAE,CAAC,MAAK,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,SAAS,GAAE,CAAC,GAAE,UAAU,GAAE,CAAC,GAAE,UAAU,CAAC,CAAC,CAAC;;;AChB39tB,IAAM,cAAc;AAE3B,IAAM,aAAa,oBAAI,IAAI;EACvB,CAAC,IAAI,QAAQ;EACb,CAAC,IAAI,OAAO;EACZ,CAAC,IAAI,QAAQ;EACb,CAAC,IAAI,MAAM;EACX,CAAC,IAAI,MAAM;CACd;AAGM,IAAM;;EAET,OAAO,UAAU,eAAe,OAC1B,CAAC,KAAa,UAA0B,IAAI,YAAY,KAAK;;IAE7D,CAAC,GAAW,WACP,EAAE,WAAW,KAAK,IAAI,WAAY,SAC5B,EAAE,WAAW,KAAK,IAAI,SAAU,OACjC,EAAE,WAAW,QAAQ,CAAC,IACtB,QACA,QACA,EAAE,WAAW,KAAK;;;AAShC,SAAU,UAAU,KAAW;AACjC,MAAI,MAAM;AACV,MAAI,UAAU;AACd,MAAI;AAEJ,UAAQ,QAAQ,YAAY,KAAK,GAAG,OAAO,MAAM;AAC7C,UAAM,IAAI,MAAM;AAChB,UAAM,OAAO,IAAI,WAAW,CAAC;AAC7B,UAAM,OAAO,WAAW,IAAI,IAAI;AAEhC,QAAI,SAAS,QAAW;AACpB,aAAO,IAAI,UAAU,SAAS,CAAC,IAAI;AACnC,gBAAU,IAAI;WACX;AACH,aAAO,GAAG,IAAI,UAAU,SAAS,CAAC,CAAC,MAAM,aACrC,KACA,CAAC,EACH,SAAS,EAAE,CAAC;AAEd,gBAAU,YAAY,aAAa,QAC9B,OAAO,WAAY,KAAM;;;AAKtC,SAAO,MAAM,IAAI,OAAO,OAAO;AACnC;AAuBA,SAAS,WACL,OACA,KAAwB;AAExB,SAAO,SAASY,QAAO,MAAY;AAC/B,QAAI;AACJ,QAAI,UAAU;AACd,QAAI,SAAS;AAEb,WAAQ,QAAQ,MAAM,KAAK,IAAI,GAAI;AAC/B,UAAI,YAAY,MAAM,OAAO;AACzB,kBAAU,KAAK,UAAU,SAAS,MAAM,KAAK;;AAIjD,gBAAU,IAAI,IAAI,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC;AAGxC,gBAAU,MAAM,QAAQ;;AAG5B,WAAO,SAAS,KAAK,UAAU,OAAO;EAC1C;AACJ;AASO,IAAM,aAAa,WAAW,YAAY,UAAU;AAQpD,IAAM,kBAAkB,WAC3B,eACA,oBAAI,IAAI;EACJ,CAAC,IAAI,QAAQ;EACb,CAAC,IAAI,OAAO;EACZ,CAAC,KAAK,QAAQ;CACjB,CAAC;AASC,IAAM,aAAa,WACtB,gBACA,oBAAI,IAAI;EACJ,CAAC,IAAI,OAAO;EACZ,CAAC,IAAI,MAAM;EACX,CAAC,IAAI,MAAM;EACX,CAAC,KAAK,QAAQ;CACjB,CAAC;;;ACpIN,IAAY;CAAZ,SAAYC,cAAW;AAEnB,EAAAA,aAAAA,aAAA,KAAA,IAAA,CAAA,IAAA;AAEA,EAAAA,aAAAA,aAAA,MAAA,IAAA,CAAA,IAAA;AACJ,GALY,gBAAA,cAAW,CAAA,EAAA;AAOvB,IAAY;CAAZ,SAAYC,eAAY;AAKpB,EAAAA,cAAAA,cAAA,MAAA,IAAA,CAAA,IAAA;AAMA,EAAAA,cAAAA,cAAA,OAAA,IAAA,CAAA,IAAA;AAKA,EAAAA,cAAAA,cAAA,WAAA,IAAA,CAAA,IAAA;AAKA,EAAAA,cAAAA,cAAA,WAAA,IAAA,CAAA,IAAA;AAKA,EAAAA,cAAAA,cAAA,MAAA,IAAA,CAAA,IAAA;AACJ,GA3BY,iBAAA,eAAY,CAAA,EAAA;;;ACjBjB,IAAM,eAAe,IAAI,IAAI;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,YAAY,GAAG,GAAG,CAAC,CAAC;AACjC,IAAM,iBAAiB,IAAI,IAAI;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,YAAY,GAAG,GAAG,CAAC,CAAC;;;ACvFxC,IAAM,oBAAoB,oBAAI,IAAI;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,CAAC;AACD,SAAS,cAAc,OAAO;AAC1B,SAAO,MAAM,QAAQ,MAAM,QAAQ;AACvC;AAIA,SAAS,iBAAiBC,aAAY,MAAM;AACxC,MAAIC;AACJ,MAAI,CAACD;AACD;AACJ,QAAM,WAAWC,MAAK,KAAK,oBAAoB,QAAQA,QAAO,SAASA,MAAK,KAAK,oBAAoB,QAC/F,gBACA,KAAK,WAAW,KAAK,mBAAmB,SACpC,YACA;AACV,SAAO,OAAO,KAAKD,WAAU,EACxB,IAAI,CAACE,SAAQ;AACd,QAAID,KAAI;AACR,UAAM,SAASA,MAAKD,YAAWE,IAAG,OAAO,QAAQD,QAAO,SAASA,MAAK;AACtE,QAAI,KAAK,YAAY,WAAW;AAE5B,MAAAC,QAAO,KAAK,eAAe,IAAIA,IAAG,OAAO,QAAQ,OAAO,SAAS,KAAKA;AAAA,IAC1E;AACA,QAAI,CAAC,KAAK,cAAc,CAAC,KAAK,WAAW,UAAU,IAAI;AACnD,aAAOA;AAAA,IACX;AACA,WAAO,GAAGA,IAAG,KAAK,OAAO,KAAK,CAAC;AAAA,EACnC,CAAC,EACI,KAAK,GAAG;AACjB;AAIA,IAAM,YAAY,oBAAI,IAAI;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,CAAC;AASM,SAAS,OAAO,MAAM,UAAU,CAAC,GAAG;AACvC,QAAM,QAAQ,YAAY,OAAO,OAAO,CAAC,IAAI;AAC7C,MAAI,SAAS;AACb,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,cAAU,WAAW,MAAM,CAAC,GAAG,OAAO;AAAA,EAC1C;AACA,SAAO;AACX;AACA,IAAO,cAAQ;AACf,SAAS,WAAW,MAAM,SAAS;AAC/B,UAAQ,KAAK,MAAM;AAAA,IACf,KAAiB;AACb,aAAO,OAAO,KAAK,UAAU,OAAO;AAAA,IAExC,KAAiB;AAAA,IACjB,KAAiB;AACb,aAAO,gBAAgB,IAAI;AAAA,IAC/B,KAAiB;AACb,aAAO,cAAc,IAAI;AAAA,IAC7B,KAAiB;AACb,aAAO,YAAY,IAAI;AAAA,IAC3B,KAAiB;AAAA,IACjB,KAAiB;AAAA,IACjB,KAAiB;AACb,aAAO,UAAU,MAAM,OAAO;AAAA,IAClC,KAAiB;AACb,aAAO,WAAW,MAAM,OAAO;AAAA,EACvC;AACJ;AACA,IAAM,+BAA+B,oBAAI,IAAI;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,CAAC;AACD,IAAM,kBAAkB,oBAAI,IAAI,CAAC,OAAO,MAAM,CAAC;AAC/C,SAAS,UAAU,MAAM,MAAM;AAC3B,MAAID;AAEJ,MAAI,KAAK,YAAY,WAAW;AAE5B,SAAK,QAAQA,MAAK,aAAa,IAAI,KAAK,IAAI,OAAO,QAAQA,QAAO,SAASA,MAAK,KAAK;AAErF,QAAI,KAAK,UACL,6BAA6B,IAAI,KAAK,OAAO,IAAI,GAAG;AACpD,aAAO,EAAE,GAAG,MAAM,SAAS,MAAM;AAAA,IACrC;AAAA,EACJ;AACA,MAAI,CAAC,KAAK,WAAW,gBAAgB,IAAI,KAAK,IAAI,GAAG;AACjD,WAAO,EAAE,GAAG,MAAM,SAAS,UAAU;AAAA,EACzC;AACA,MAAI,MAAM,IAAI,KAAK,IAAI;AACvB,QAAM,UAAU,iBAAiB,KAAK,SAAS,IAAI;AACnD,MAAI,SAAS;AACT,WAAO,IAAI,OAAO;AAAA,EACtB;AACA,MAAI,KAAK,SAAS,WAAW,MACxB,KAAK;AAAA;AAAA,IAEE,KAAK,oBAAoB;AAAA;AAAA;AAAA,IAEzB,KAAK,mBAAmB,UAAU,IAAI,KAAK,IAAI;AAAA,MAAI;AAC3D,QAAI,CAAC,KAAK;AACN,aAAO;AACX,WAAO;AAAA,EACX,OACK;AACD,WAAO;AACP,QAAI,KAAK,SAAS,SAAS,GAAG;AAC1B,aAAO,OAAO,KAAK,UAAU,IAAI;AAAA,IACrC;AACA,QAAI,KAAK,WAAW,CAAC,UAAU,IAAI,KAAK,IAAI,GAAG;AAC3C,aAAO,KAAK,KAAK,IAAI;AAAA,IACzB;AAAA,EACJ;AACA,SAAO;AACX;AACA,SAAS,gBAAgB,MAAM;AAC3B,SAAO,IAAI,KAAK,IAAI;AACxB;AACA,SAAS,WAAW,MAAM,MAAM;AAC5B,MAAIA;AACJ,MAAI,OAAO,KAAK,QAAQ;AAExB,QAAMA,MAAK,KAAK,oBAAoB,QAAQA,QAAO,SAASA,MAAK,KAAK,oBAAoB,SACtF,EAAE,CAAC,KAAK,WACJ,KAAK,UACL,kBAAkB,IAAI,KAAK,OAAO,IAAI,IAAI;AAC9C,WACI,KAAK,WAAW,KAAK,mBAAmB,SAClC,UAAU,IAAI,IACd,WAAW,IAAI;AAAA,EAC7B;AACA,SAAO;AACX;AACA,SAAS,YAAY,MAAM;AACvB,SAAO,YAAY,KAAK,SAAS,CAAC,EAAE,IAAI;AAC5C;AACA,SAAS,cAAc,MAAM;AACzB,SAAO,OAAO,KAAK,IAAI;AAC3B;;;AC3KM,SAAU,aACZ,MACA,SAA8B;AAE9B,SAAO,YAAW,MAAM,OAAO;AACnC;AASM,SAAU,aACZ,MACA,SAA8B;AAE9B,SAAO,YAAY,IAAI,IACjB,KAAK,SAAS,IAAI,CAACE,UAAS,aAAaA,OAAM,OAAO,CAAC,EAAE,KAAK,EAAE,IAChE;AACV;AAUM,SAAU,QAAQ,MAAyB;AAC7C,MAAI,MAAM,QAAQ,IAAI;AAAG,WAAO,KAAK,IAAI,OAAO,EAAE,KAAK,EAAE;AACzD,MAAIC,OAAM,IAAI;AAAG,WAAO,KAAK,SAAS,OAAO,OAAO,QAAQ,KAAK,QAAQ;AACzE,MAAI,QAAQ,IAAI;AAAG,WAAO,QAAQ,KAAK,QAAQ;AAC/C,MAAI,OAAO,IAAI;AAAG,WAAO,KAAK;AAC9B,SAAO;AACX;AAUM,SAAU,YAAY,MAAyB;AACjD,MAAI,MAAM,QAAQ,IAAI;AAAG,WAAO,KAAK,IAAI,WAAW,EAAE,KAAK,EAAE;AAC7D,MAAI,YAAY,IAAI,KAAK,CAAC,UAAU,IAAI,GAAG;AACvC,WAAO,YAAY,KAAK,QAAQ;EACpC;AACA,MAAI,OAAO,IAAI;AAAG,WAAO,KAAK;AAC9B,SAAO;AACX;AAUM,SAAU,UAAU,MAAyB;AAC/C,MAAI,MAAM,QAAQ,IAAI;AAAG,WAAO,KAAK,IAAI,SAAS,EAAE,KAAK,EAAE;AAC3D,MAAI,YAAY,IAAI,MAAM,KAAK,SAAS,YAAY,OAAO,QAAQ,IAAI,IAAI;AACvE,WAAO,UAAU,KAAK,QAAQ;EAClC;AACA,MAAI,OAAO,IAAI;AAAG,WAAO,KAAK;AAC9B,SAAO;AACX;;;ACzEM,SAAU,YAAY,MAAa;AACrC,SAAO,YAAY,IAAI,IAAI,KAAK,WAAW,CAAA;AAC/C;AAUM,SAAU,UAAU,MAAa;AACnC,SAAO,KAAK,UAAU;AAC1B;AAaM,SAAU,YAAY,MAAa;AACrC,QAAM,SAAS,UAAU,IAAI;AAC7B,MAAI,UAAU;AAAM,WAAO,YAAY,MAAM;AAE7C,QAAM,WAAW,CAAC,IAAI;AACtB,MAAI,EAAE,MAAM,KAAI,IAAK;AACrB,SAAO,QAAQ,MAAM;AACjB,aAAS,QAAQ,IAAI;AACrB,KAAC,EAAE,KAAI,IAAK;EAChB;AACA,SAAO,QAAQ,MAAM;AACjB,aAAS,KAAK,IAAI;AAClB,KAAC,EAAE,KAAI,IAAK;EAChB;AACA,SAAO;AACX;AAUM,SAAU,kBACZ,MACA,MAAY;;AAEZ,UAAOC,MAAA,KAAK,aAAO,QAAAA,QAAA,SAAA,SAAAA,IAAG,IAAI;AAC9B;AAUM,SAAU,UAAU,MAAe,MAAY;AACjD,SACI,KAAK,WAAW,QAChB,OAAO,UAAU,eAAe,KAAK,KAAK,SAAS,IAAI,KACvD,KAAK,QAAQ,IAAI,KAAK;AAE9B;AASM,SAAU,QAAQ,MAAa;AACjC,SAAO,KAAK;AAChB;AAUM,SAAU,mBAAmB,MAAa;AAC5C,MAAI,EAAE,KAAI,IAAK;AACf,SAAO,SAAS,QAAQ,CAACC,OAAM,IAAI;AAAG,KAAC,EAAE,KAAI,IAAK;AAClD,SAAO;AACX;AAUM,SAAU,mBAAmB,MAAa;AAC5C,MAAI,EAAE,KAAI,IAAK;AACf,SAAO,SAAS,QAAQ,CAACA,OAAM,IAAI;AAAG,KAAC,EAAE,KAAI,IAAK;AAClD,SAAO;AACX;;;ACxHM,SAAU,cAAc,MAAe;AACzC,MAAI,KAAK;AAAM,SAAK,KAAK,OAAO,KAAK;AACrC,MAAI,KAAK;AAAM,SAAK,KAAK,OAAO,KAAK;AAErC,MAAI,KAAK,QAAQ;AACb,UAAM,SAAS,KAAK,OAAO;AAC3B,UAAM,cAAc,OAAO,YAAY,IAAI;AAC3C,QAAI,eAAe,GAAG;AAClB,aAAO,OAAO,aAAa,CAAC;IAChC;EACJ;AACA,OAAK,OAAO;AACZ,OAAK,OAAO;AACZ,OAAK,SAAS;AAClB;AASM,SAAU,eAAe,MAAiB,aAAsB;AAClE,QAAM,OAAQ,YAAY,OAAO,KAAK;AACtC,MAAI,MAAM;AACN,SAAK,OAAO;EAChB;AAEA,QAAM,OAAQ,YAAY,OAAO,KAAK;AACtC,MAAI,MAAM;AACN,SAAK,OAAO;EAChB;AAEA,QAAM,SAAU,YAAY,SAAS,KAAK;AAC1C,MAAI,QAAQ;AACR,UAAM,SAAS,OAAO;AACtB,WAAO,OAAO,YAAY,IAAI,CAAC,IAAI;AACnC,SAAK,SAAS;EAClB;AACJ;AASM,SAAU,YAAY,QAAoB,OAAgB;AAC5D,gBAAc,KAAK;AAEnB,QAAM,OAAO;AACb,QAAM,SAAS;AAEf,MAAI,OAAO,SAAS,KAAK,KAAK,IAAI,GAAG;AACjC,UAAM,UAAU,OAAO,SAAS,OAAO,SAAS,SAAS,CAAC;AAC1D,YAAQ,OAAO;AACf,UAAM,OAAO;EACjB,OAAO;AACH,UAAM,OAAO;EACjB;AACJ;AASM,SAAU,OAAO,MAAiB,MAAe;AACnD,gBAAc,IAAI;AAElB,QAAM,EAAE,OAAM,IAAK;AACnB,QAAM,WAAW,KAAK;AAEtB,OAAK,OAAO;AACZ,OAAK,OAAO;AACZ,OAAK,OAAO;AACZ,OAAK,SAAS;AAEd,MAAI,UAAU;AACV,aAAS,OAAO;AAChB,QAAI,QAAQ;AACR,YAAM,SAAS,OAAO;AACtB,aAAO,OAAO,OAAO,YAAY,QAAQ,GAAG,GAAG,IAAI;IACvD;EACJ,WAAW,QAAQ;AACf,WAAO,SAAS,KAAK,IAAI;EAC7B;AACJ;AASM,SAAU,aAAa,QAAoB,OAAgB;AAC7D,gBAAc,KAAK;AAEnB,QAAM,SAAS;AACf,QAAM,OAAO;AAEb,MAAI,OAAO,SAAS,QAAQ,KAAK,MAAM,GAAG;AACtC,UAAM,UAAU,OAAO,SAAS,CAAC;AACjC,YAAQ,OAAO;AACf,UAAM,OAAO;EACjB,OAAO;AACH,UAAM,OAAO;EACjB;AACJ;AASM,SAAU,QAAQ,MAAiB,MAAe;AACpD,gBAAc,IAAI;AAElB,QAAM,EAAE,OAAM,IAAK;AACnB,MAAI,QAAQ;AACR,UAAM,SAAS,OAAO;AACtB,WAAO,OAAO,OAAO,QAAQ,IAAI,GAAG,GAAG,IAAI;EAC/C;AAEA,MAAI,KAAK,MAAM;AACX,SAAK,KAAK,OAAO;EACrB;AAEA,OAAK,SAAS;AACd,OAAK,OAAO,KAAK;AACjB,OAAK,OAAO;AACZ,OAAK,OAAO;AAChB;;;ACvIM,SAAU,OACZ,MACA,MACA,UAAU,MACV,QAAgB,UAAQ;AAExB,SAAO,KAAK,MAAM,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI,GAAG,SAAS,KAAK;AACzE;AAYM,SAAU,KACZ,MACA,OACA,SACA,OAAa;AAEb,QAAM,SAAoB,CAAA;AAE1B,QAAM,YAAyB,CAAC,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC;AAEtE,QAAM,aAAa,CAAC,CAAC;AAErB,aAAS;AAEL,QAAI,WAAW,CAAC,KAAK,UAAU,CAAC,EAAE,QAAQ;AAEtC,UAAI,WAAW,WAAW,GAAG;AACzB,eAAO;MACX;AAGA,gBAAU,MAAK;AACf,iBAAW,MAAK;AAGhB;IACJ;AAEA,UAAM,OAAO,UAAU,CAAC,EAAE,WAAW,CAAC,GAAG;AAEzC,QAAI,KAAK,IAAI,GAAG;AACZ,aAAO,KAAK,IAAI;AAChB,UAAI,EAAE,SAAS;AAAG,eAAO;IAC7B;AAEA,QAAI,WAAW,YAAY,IAAI,KAAK,KAAK,SAAS,SAAS,GAAG;AAK1D,iBAAW,QAAQ,CAAC;AACpB,gBAAU,QAAQ,KAAK,QAAQ;IACnC;EACJ;AACJ;AAWM,SAAU,aACZ,MACA,OAAU;AAEV,SAAO,MAAM,KAAK,IAAI;AAC1B;AAWM,SAAU,QACZ,MACA,OACA,UAAU,MAAI;AAEd,QAAM,gBAAgB,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAC3D,WAAS,IAAI,GAAG,IAAI,cAAc,QAAQ,KAAK;AAC3C,UAAM,OAAO,cAAc,CAAC;AAC5B,QAAIC,OAAM,IAAI,KAAK,KAAK,IAAI,GAAG;AAC3B,aAAO;IACX;AACA,QAAI,WAAW,YAAY,IAAI,KAAK,KAAK,SAAS,SAAS,GAAG;AAC1D,YAAM,QAAQ,QAAQ,MAAM,KAAK,UAAU,IAAI;AAC/C,UAAI;AAAO,eAAO;IACtB;EACJ;AAEA,SAAO;AACX;AAUM,SAAU,UACZ,MACA,OAA6B;AAE7B,UAAQ,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK,GAAG,KAC5C,CAAC,SACIA,OAAM,IAAI,KAAK,KAAK,IAAI,KACxB,YAAY,IAAI,KAAK,UAAU,MAAM,KAAK,QAAQ,CAAE;AAEjE;AAYM,SAAU,QACZ,MACA,OAA6B;AAE7B,QAAM,SAAS,CAAA;AACf,QAAM,YAAY,CAAC,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC;AACzD,QAAM,aAAa,CAAC,CAAC;AAErB,aAAS;AACL,QAAI,WAAW,CAAC,KAAK,UAAU,CAAC,EAAE,QAAQ;AACtC,UAAI,UAAU,WAAW,GAAG;AACxB,eAAO;MACX;AAGA,gBAAU,MAAK;AACf,iBAAW,MAAK;AAGhB;IACJ;AAEA,UAAM,OAAO,UAAU,CAAC,EAAE,WAAW,CAAC,GAAG;AAEzC,QAAIA,OAAM,IAAI,KAAK,KAAK,IAAI;AAAG,aAAO,KAAK,IAAI;AAE/C,QAAI,YAAY,IAAI,KAAK,KAAK,SAAS,SAAS,GAAG;AAC/C,iBAAW,QAAQ,CAAC;AACpB,gBAAU,QAAQ,KAAK,QAAQ;IACnC;EACJ;AACJ;;;AC5JA,IAAM,SAGF;EACA,SAAS,MAAI;AACT,QAAI,OAAO,SAAS,YAAY;AAC5B,aAAO,CAAC,SAAkBC,OAAM,IAAI,KAAK,KAAK,KAAK,IAAI;IAC3D,WAAW,SAAS,KAAK;AACrB,aAAOA;IACX;AACA,WAAO,CAAC,SAAkBA,OAAM,IAAI,KAAK,KAAK,SAAS;EAC3D;EACA,SAAS,MAAI;AACT,QAAI,OAAO,SAAS,YAAY;AAC5B,aAAO,CAAC,SAAkB,KAAK,KAAK,IAAI;IAC5C;AACA,WAAO,CAAC,SAAkB,KAAK,SAAS;EAC5C;EACA,aAAa,MAAI;AACb,QAAI,OAAO,SAAS,YAAY;AAC5B,aAAO,CAAC,SAAkB,OAAO,IAAI,KAAK,KAAK,KAAK,IAAI;IAC5D;AACA,WAAO,CAAC,SAAkB,OAAO,IAAI,KAAK,KAAK,SAAS;EAC5D;;AAYJ,SAAS,eACL,QACA,OAAwD;AAExD,MAAI,OAAO,UAAU,YAAY;AAC7B,WAAO,CAAC,SAAkBA,OAAM,IAAI,KAAK,MAAM,KAAK,QAAQ,MAAM,CAAC;EACvE;AACA,SAAO,CAAC,SAAkBA,OAAM,IAAI,KAAK,KAAK,QAAQ,MAAM,MAAM;AACtE;AAWA,SAAS,aAAa,GAAa,GAAW;AAC1C,SAAO,CAAC,SAAkB,EAAE,IAAI,KAAK,EAAE,IAAI;AAC/C;AAUA,SAAS,YAAY,SAAwB;AACzC,QAAM,QAAQ,OAAO,KAAK,OAAO,EAAE,IAAI,CAACC,SAAO;AAC3C,UAAM,QAAQ,QAAQA,IAAG;AACzB,WAAO,OAAO,UAAU,eAAe,KAAK,QAAQA,IAAG,IACjD,OAAOA,IAAG,EAAE,KAAK,IACjB,eAAeA,MAAK,KAAK;EACnC,CAAC;AAED,SAAO,MAAM,WAAW,IAAI,OAAO,MAAM,OAAO,YAAY;AAChE;AAUM,SAAU,YAAY,SAA0B,MAAa;AAC/D,QAAM,OAAO,YAAY,OAAO;AAChC,SAAO,OAAO,KAAK,IAAI,IAAI;AAC/B;AAYM,SAAU,YACZ,SACA,OACA,SACA,QAAgB,UAAQ;AAExB,QAAM,OAAO,YAAY,OAAO;AAChC,SAAO,OAAO,OAAO,MAAM,OAAO,SAAS,KAAK,IAAI,CAAA;AACxD;AAWM,SAAU,eACZ,IACA,OACA,UAAU,MAAI;AAEd,MAAI,CAAC,MAAM,QAAQ,KAAK;AAAG,YAAQ,CAAC,KAAK;AACzC,SAAO,QAAQ,eAAe,MAAM,EAAE,GAAG,OAAO,OAAO;AAC3D;AAYM,SAAU,qBACZC,WACA,OACA,UAAU,MACV,QAAgB,UAAQ;AAExB,SAAO,OACH,OAAO,UAAU,EAAEA,SAAO,GAC1B,OACA,SACA,KAAK;AAEb;AAYM,SAAU,uBACZ,WACA,OACA,UAAU,MACV,QAAgB,UAAQ;AAExB,SAAO,OACH,eAAe,SAAS,SAAS,GACjC,OACA,SACA,KAAK;AAEb;AAYM,SAAU,qBACZ,MACA,OACA,UAAU,MACV,QAAgB,UAAQ;AAExB,SAAO,OAAO,OAAO,UAAU,EAAE,IAAc,GAAG,OAAO,SAAS,KAAK;AAC3E;;;ACjNM,SAAU,cAAc,OAAgB;AAC1C,MAAI,MAAM,MAAM;AAMhB,SAAO,EAAE,OAAO,GAAG;AACf,UAAM,OAAO,MAAM,GAAG;AAOtB,QAAI,MAAM,KAAK,MAAM,YAAY,MAAM,MAAM,CAAC,KAAK,GAAG;AAClD,YAAM,OAAO,KAAK,CAAC;AACnB;IACJ;AAEA,aAAS,WAAW,KAAK,QAAQ,UAAU,WAAW,SAAS,QAAQ;AACnE,UAAI,MAAM,SAAS,QAAQ,GAAG;AAC1B,cAAM,OAAO,KAAK,CAAC;AACnB;MACJ;IACJ;EACJ;AAEA,SAAO;AACX;AAKA,IAAkB;CAAlB,SAAkBC,mBAAgB;AAC9B,EAAAA,kBAAAA,kBAAA,cAAA,IAAA,CAAA,IAAA;AACA,EAAAA,kBAAAA,kBAAA,WAAA,IAAA,CAAA,IAAA;AACA,EAAAA,kBAAAA,kBAAA,WAAA,IAAA,CAAA,IAAA;AACA,EAAAA,kBAAAA,kBAAA,UAAA,IAAA,CAAA,IAAA;AACA,EAAAA,kBAAAA,kBAAA,cAAA,IAAA,EAAA,IAAA;AACJ,GANkB,qBAAA,mBAAgB,CAAA,EAAA;AAkC5B,SAAU,wBACZ,OACA,OAAc;AAEd,QAAM,WAAyB,CAAA;AAC/B,QAAM,WAAyB,CAAA;AAE/B,MAAI,UAAU,OAAO;AACjB,WAAO;EACX;AAEA,MAAI,UAAU,YAAY,KAAK,IAAI,QAAQ,MAAM;AACjD,SAAO,SAAS;AACZ,aAAS,QAAQ,OAAO;AACxB,cAAU,QAAQ;EACtB;AACA,YAAU,YAAY,KAAK,IAAI,QAAQ,MAAM;AAC7C,SAAO,SAAS;AACZ,aAAS,QAAQ,OAAO;AACxB,cAAU,QAAQ;EACtB;AAEA,QAAM,SAAS,KAAK,IAAI,SAAS,QAAQ,SAAS,MAAM;AACxD,MAAI,MAAM;AACV,SAAO,MAAM,UAAU,SAAS,GAAG,MAAM,SAAS,GAAG,GAAG;AACpD;EACJ;AAEA,MAAI,QAAQ,GAAG;AACX,WAAO,iBAAiB;EAC5B;AAEA,QAAM,eAAe,SAAS,MAAM,CAAC;AACrC,QAAM,WAAsB,aAAa;AACzC,QAAM,WAAW,SAAS,GAAG;AAC7B,QAAM,WAAW,SAAS,GAAG;AAE7B,MAAI,SAAS,QAAQ,QAAQ,IAAI,SAAS,QAAQ,QAAQ,GAAG;AACzD,QAAI,iBAAiB,OAAO;AACxB,aAAO,iBAAiB,YAAY,iBAAiB;IACzD;AACA,WAAO,iBAAiB;EAC5B;AACA,MAAI,iBAAiB,OAAO;AACxB,WAAO,iBAAiB,YAAY,iBAAiB;EACzD;AACA,SAAO,iBAAiB;AAC5B;AAWM,SAAU,WAA8B,OAAU;AACpD,UAAQ,MAAM,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,SAAS,MAAM,IAAI,CAAC,CAAC;AAEjE,QAAM,KAAK,CAAC,GAAG,MAAK;AAChB,UAAM,WAAW,wBAAwB,GAAG,CAAC;AAC7C,QAAI,WAAW,iBAAiB,WAAW;AACvC,aAAO;IACX,WAAW,WAAW,iBAAiB,WAAW;AAC9C,aAAO;IACX;AACA,WAAO;EACX,CAAC;AAED,SAAO;AACX;;;ACpEM,SAAU,QAAQ,KAAc;AAClC,QAAM,WAAW,cAAc,aAAa,GAAG;AAE/C,SAAO,CAAC,WACF,OACA,SAAS,SAAS,SAChB,YAAY,QAAQ,IACpB,WAAW,QAAQ;AAC/B;AAQA,SAAS,YAAY,UAAiB;;AAClC,QAAM,SAAS,SAAS;AAExB,QAAM,OAAa;IACf,MAAM;IACN,OAAO,qBAAqB,SAAS,MAAM,EAAE,IAAI,CAAC,SAAQ;;AACtD,YAAM,EAAE,SAAQ,IAAK;AACrB,YAAM,QAAkB,EAAE,OAAO,iBAAiB,QAAQ,EAAC;AAE3D,uBAAiB,OAAO,MAAM,MAAM,QAAQ;AAC5C,uBAAiB,OAAO,SAAS,SAAS,QAAQ;AAElD,YAAMC,SAAOC,MAAA,cAAc,QAAQ,QAAQ,OAAC,QAAAA,QAAA,SAAA,SAAAA,IAAE,QAAQ,MAAM;AAC5D,UAAID,OAAM;AACN,cAAM,OAAOA;MACjB;AAEA,YAAM,cACFE,OAAM,WAAW,QAAQ,KAAKA,OAAM,WAAW,QAAQ;AAC3D,UAAI,aAAa;AACb,cAAM,cAAc;MACxB;AAEA,YAAM,UAAUA,OAAM,WAAW,QAAQ;AACzC,UAAI,SAAS;AACT,cAAM,UAAU,IAAI,KAAK,OAAO;MACpC;AAEA,aAAO;IACX,CAAC;;AAGL,mBAAiB,MAAM,MAAM,MAAM,MAAM;AACzC,mBAAiB,MAAM,SAAS,SAAS,MAAM;AAC/C,QAAM,QAAOD,MAAA,cAAc,QAAQ,MAAM,OAAC,QAAAA,QAAA,SAAA,SAAAA,IAAE,QAAQ,MAAM;AAC1D,MAAI,MAAM;AACN,SAAK,OAAO;EAChB;AACA,mBAAiB,MAAM,eAAe,YAAY,MAAM;AAExD,QAAM,UAAUC,OAAM,WAAW,MAAM;AACvC,MAAI,SAAS;AACT,SAAK,UAAU,IAAI,KAAK,OAAO;EACnC;AAEA,mBAAiB,MAAM,UAAU,SAAS,QAAQ,IAAI;AAEtD,SAAO;AACX;AAQA,SAAS,WAAW,UAAiB;;AACjC,QAAM,UAAS,MAAAD,MAAA,cAAc,WAAW,SAAS,QAAQ,OAAC,QAAAA,QAAA,SAAA,SAAAA,IAAE,cAAQ,QAAA,OAAA,SAAA,KAAI,CAAA;AAExE,QAAM,OAAa;IACf,MAAM,SAAS,KAAK,OAAO,GAAG,CAAC;IAC/B,IAAI;IACJ,OAAO,qBAAqB,QAAQ,SAAS,QAAQ,EAAE,IACnD,CAAC,SAAiB;AACd,YAAM,EAAE,SAAQ,IAAK;AACrB,YAAM,QAAkB,EAAE,OAAO,iBAAiB,QAAQ,EAAC;AAC3D,uBAAiB,OAAO,MAAM,QAAQ,QAAQ;AAC9C,uBAAiB,OAAO,SAAS,SAAS,QAAQ;AAClD,uBAAiB,OAAO,QAAQ,QAAQ,QAAQ;AAChD,uBAAiB,OAAO,eAAe,eAAe,QAAQ;AAC9D,YAAM,UACFC,OAAM,WAAW,QAAQ,KAAKA,OAAM,WAAW,QAAQ;AAC3D,UAAI;AAAS,cAAM,UAAU,IAAI,KAAK,OAAO;AAE7C,aAAO;IACX,CAAC;;AAIT,mBAAiB,MAAM,SAAS,SAAS,MAAM;AAC/C,mBAAiB,MAAM,QAAQ,QAAQ,MAAM;AAC7C,mBAAiB,MAAM,eAAe,eAAe,MAAM;AAE3D,QAAM,UAAUA,OAAM,iBAAiB,MAAM;AAC7C,MAAI,SAAS;AACT,SAAK,UAAU,IAAI,KAAK,OAAO;EACnC;AAEA,mBAAiB,MAAM,UAAU,kBAAkB,QAAQ,IAAI;AAE/D,SAAO;AACX;AAEA,IAAM,oBAAoB,CAAC,OAAO,QAAQ,MAAM;AAChD,IAAM,iBAAiB;EACnB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AASJ,SAAS,iBAAiB,OAAgB;AACtC,SAAO,qBAAqB,iBAAiB,KAAK,EAAE,IAAI,CAAC,SAAQ;AAC7D,UAAM,EAAE,QAAO,IAAK;AAEpB,UAAM,QAAuB;MACzB,QAAQ,QAAQ,QAAQ;MAGxB,WAAW,CAAC,CAAC,QAAQ,WAAW;;AAGpC,eAAW,UAAU,mBAAmB;AACpC,UAAI,QAAQ,MAAM,GAAG;AACjB,cAAM,MAAM,IAAI,QAAQ,MAAM;MAClC;IACJ;AAEA,eAAW,UAAU,gBAAgB;AACjC,UAAI,QAAQ,MAAM,GAAG;AACjB,cAAM,MAAM,IAAI,SAAS,QAAQ,MAAM,GAAG,EAAE;MAChD;IACJ;AAEA,QAAI,QAAQ,YAAY,GAAG;AACvB,YAAM,aAAa,QACf,YAAY;IAEpB;AAEA,WAAO;EACX,CAAC;AACL;AASA,SAAS,cACLC,WACA,MAAe;AAEf,SAAO,qBAAqBA,WAAS,MAAM,MAAM,CAAC,EAAE,CAAC;AACzD;AAUA,SAASD,OACLC,WACA,OACA,UAAU,OAAK;AAEf,SAAO,YAAY,qBAAqBA,WAAS,OAAO,SAAS,CAAC,CAAC,EAAE,KAAI;AAC7E;AAWA,SAAS,iBACL,KACAC,OACAD,WACA,OACA,UAAU,OAAK;AAEf,QAAM,MAAMD,OAAMC,WAAS,OAAO,OAAO;AACzC,MAAI;AAAK,QAAIC,KAAI,IAAI;AACzB;AAQA,SAAS,YAAY,OAAa;AAC9B,SAAO,UAAU,SAAS,UAAU,UAAU,UAAU;AAC5D;;;A1B/QM,SAAU,cAAc,MAAc,SAAiB;AACzD,QAAMC,WAAU,IAAI,WAAW,QAAW,OAAO;AACjD,MAAI,OAAOA,UAAS,OAAO,EAAE,IAAI,IAAI;AACrC,SAAOA,SAAQ;AACnB;AAWM,SAAU,SAAS,MAAc,SAAiB;AACpD,SAAO,cAAc,MAAM,OAAO,EAAE;AACxC;AAQM,SAAU,qBACZ,UACA,SACA,iBAA4C;AAE5C,QAAMA,WAAsB,IAAI,WAC5B,CAAC,UAAwB,SAAS,OAAOA,SAAQ,IAAI,GACrD,SACA,eAAe;AAEnB,SAAO,IAAI,OAAOA,UAAS,OAAO;AACtC;AASM,SAAU,gBACZ,UACA,SACA,iBAA4C;AAE5C,QAAMA,WAAU,IAAI,WAAW,UAAU,SAAS,eAAe;AACjE,SAAO,IAAI,OAAOA,UAAS,OAAO;AACtC;AAkBA,IAAM,0BAA0B,EAAE,SAAS,KAAI;AAQzC,SAAU,UACZ,MACA,UAAmB,yBAAuB;AAE1C,SAAO,QAAQ,SAAS,MAAM,OAAO,CAAC;AAC1C;;;A2B/GO,IAAM,WAAW;AAGjB,IAAM,eAAe;AACrB,IAAM,iBAAiB;AACvB,IAAM,YAAY;AAClB,IAAM,qBAAqB;AAC3B,IAAM,eAAe;AACrB,IAAM,gBAAgB;AACtB,IAAM,qBAAqB;AAC3B,IAAM,yBAAyB;AAG/B,IAAM,iBAAiB,oBAAI,IAAI,CAAC,WAAW,SAAS,cAAc,QAAQ,MAAM,UAAU,UAAU,WAAW,OAAO,YAAY,MAAM,OAAO,MAAM,MAAM,SAAS,YAAY,cAAc,UAAU,UAAU,QAAQ,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,CAAC;AAGpR,IAAM,WAAW;AACjB,IAAM,eAAe;AACrB,IAAM,YAAY;AAClB,IAAM,qBAAqB;AAC3B,IAAM,eAAe;AAGrB,IAAM,iCAAiC;AACvC,IAAM,8BAA8B;AACpC,IAAM,8BAA8B;AACpC,IAAM,6BAA6B;AACnC,IAAM,iCAAiC;AACvC,IAAM,4CAA4C;AAGlD,IAAM,gBAAgB;;;AChC7B,IAAM;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,IAAI;;;ACLJ,IAAM,UAAU;AAGT,IAAM,SAAS,UAAQ,KAAK,aAAa,eAAe,KAAK,GAAG,IAAI;AAEpE,IAAM,aAAa,CAAC,EAAC,cAAa,MAAM,cAAc,IAAI,EAAE;AAE5D,IAAM,gBAAgB,CAAC,MAAM,SAAS;AAC3C,OAAK,IAAI,IAAI;AACb,OAAK,IAAI,IAAI;AACf;AAEO,IAAM,kBAAkB,CAAC,MAAM,SAAS,SAAS;AACtD,gBAAc,MAAM,OAAO;AAC3B,gBAAc,OAAO,OAAO,GAAG,IAAI;AACrC;AAEO,IAAM,eAAe,CAAC,MAAM,OAAO,KAAK,SAAS;AACtD,gBAAc,MAAM,KAAK;AACzB,gBAAc,OAAO,GAAG,GAAG,IAAI;AACjC;AAEO,IAAM,gBAAgB,CAAC,MAAM,SAAS,SAAS;AACpD,gBAAc,MAAM,OAAO;AAC3B,gBAAc,SAAS,IAAI;AAC7B;AAEO,IAAM,YAAY,CAAC,EAAC,WAAW,cAAa,MAAM;AACvD,SAAO,cAAc,IAAI,EAAE,aAAa,UAAU,YAAY,IAAI;AACpE;AAEO,IAAM,cAAc,CAAC,MAAM,SAAS;AACzC,MAAI;AACF,SAAK,IAAI,IAAI;AACf,MAAI;AACF,SAAK,IAAI,IAAI;AACjB;AAOO,IAAM,iBAAiB,CAAC,eAAe,SAAS;AACrD,QAAM,WAAW,cAAc,uBAAuB;AAEtD,QAAM,OAAO,cAAc,cAAc,EAAE;AAC3C,OAAK,YAAY;AACjB,QAAM,EAAE,YAAY,UAAU,IAAI;AAElC,MAAI,YAAY;AACd,iBAAa,UAAU,YAAY,WAAW,SAAS,GAAG,CAAC;AAE3D,QAAI,QAAQ;AACZ,OAAG;AACD,YAAM,aAAa;AAAA,IACrB,SAAS,UAAU,cAAc,QAAQ,OAAO,KAAK,EAAE,IAAI;AAAA,EAC7D;AAEA,SAAO;AACT;;;AC/DO,IAAM,cAAc,oBAAI;;;ACK/B,IAAI,WAAW;AAER,IAAM,UAAU,oBAAI;AAEpB,IAAM,iBAAiB,oBAAI;AAE3B,IAAM,2BAA2B,CAAC,SAAS,eAAe,UAAU,aAAa;AACtF,MACE,YACA,eAAe,IAAI,OAAO,KAC1B,QAAQ,4BACR,QAAQ,YAAY,mBAAmB,SAAS,aAAa,GAC7D;AACA,YAAQ,yBAAyB,eAAe,UAAU,QAAQ;AAAA,EACpE;AACF;AAEA,IAAM,gBAAgB,CAAC,QAAQC,iBAAgB,aAAW;AACxD,MAAI,eAAe,IAAI,OAAO,GAAG;AAC/B,UAAM,OAAO,eAAe,IAAI,OAAO;AACvC,QAAI,KAAK,cAAcA,gBAAe,QAAQ,gBAAgBA,cAAa;AACzE,WAAK,YAAYA;AACjB,UAAI,UAAU;AACZ,gBAAQ,MAAM,EAAE;AAAA,IACpB;AAAA,EACF;AACF;AAEA,IAAM,mBAAmB,cAAc,qBAAqB,IAAI;AACzD,IAAM,oBAAoB,aAAW;AAC1C,MAAI,UAAU;AACZ,qBAAiB,OAAO;AACxB,QAAI,YAAY,IAAI,OAAO;AACzB,gBAAU,YAAY,IAAI,OAAO,EAAE;AACrC,QAAI,EAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,IAAG,IAAI;AACjC,WAAO,SAAS,KAAK;AACnB,UAAI,KAAK,aAAa;AACpB,yBAAiB,IAAI;AACvB,aAAO,KAAK,IAAI;AAAA,IAClB;AAAA,EACF;AACF;AAEA,IAAM,sBAAsB,cAAc,wBAAwB,KAAK;AAChE,IAAM,uBAAuB,aAAW;AAC7C,MAAI,UAAU;AACZ,wBAAoB,OAAO;AAC3B,QAAI,YAAY,IAAI,OAAO;AACzB,gBAAU,YAAY,IAAI,OAAO,EAAE;AACrC,QAAI,EAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,IAAG,IAAI;AACjC,WAAO,SAAS,KAAK;AACnB,UAAI,KAAK,aAAa;AACpB,4BAAoB,IAAI;AAC1B,aAAO,KAAK,IAAI;AAAA,IAClB;AAAA,EACF;AACF;AAKO,IAAM,wBAAN,MAA4B;AAAA;AAAA;AAAA;AAAA,EAKjC,YAAY,eAAe;AAIzB,SAAK,gBAAgB;AAKrB,SAAK,WAAW,oBAAI;AAKpB,SAAK,UAAU,oBAAI;AAKnB,SAAK,SAAS;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,WAAW,OAAO,UAAU,CAAC,GAAG;AACrC,UAAM,EAAC,eAAe,UAAU,QAAO,IAAI;AAE3C,QAAI,SAAS,IAAI,SAAS;AACxB,YAAM,IAAI,MAAM,wBAAwB,SAAS;AAEnD,QAAI,QAAQ,IAAI,KAAK;AACnB,YAAM,IAAI,MAAM,wCAAwC,KAAK;AAE/D,SAAK,SAAU,WAAW;AAE1B,UAAM,EAAC,SAAS,OAAM,IAAI;AAE1B,YAAQ,IAAI,OAAO;AAAA,MACjB;AAAA,MACA,SAAS,EAAC,IAAI,SAAS,YAAY,GAAE;AAAA,MACrC,WAAW,UAAU;AAAA,IACvB,CAAC;AAED,UAAM,QAAQ,SACZ,aAAW;AACT,aAAO,QAAQ,cAAc,UACtB,QAAQ,aAAa,IAAI,MAAM;AAAA,IACxC,IACA,aAAW,QAAQ,cAAc;AACnC,aAAS,IAAI,WAAW,EAAC,OAAO,MAAK,CAAC;AACtC,QAAI,QAAQ,IAAI,SAAS,GAAG;AAC1B,iBAAW,WAAW,QAAQ,IAAI,SAAS;AACzC,gBAAQ,KAAK;AACf,cAAQ,OAAO,SAAS;AAAA,IAC1B;AACA,kBAAc;AAAA,MACZ,SAAS,GAAG,MAAM,QAAQ,SAAS,OAAO;AAAA,IAC5C,EAAE,QAAQ,KAAK,SAAS,IAAI;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA,EAKA,QAAQ,SAAS;AACf,QAAI,eAAe,IAAI,OAAO;AAC5B;AACF,UAAM,EAAC,eAAe,SAAQ,IAAI;AAClC,UAAM,KAAK,QAAQ,aAAa,IAAI,KAAK,QAAQ;AACjD,QAAI,SAAS,IAAI,EAAE,GAAG;AACpB,YAAM,EAAC,OAAO,MAAK,IAAI,SAAS,IAAI,EAAE;AACtC,UAAI,MAAM,OAAO,GAAG;AAClB,cAAM,EAAC,YAAAC,aAAY,aAAAD,aAAW,IAAI;AAClC,mBAAW,QAAQC;AACjB,kBAAQ,oBAAoB,IAAI;AAElC,cAAM,SAAS,QAAQ,OAAO;AAC9B,mBAAW,CAACC,IAAG,KAAK;AAClB,iBAAO,QAAQA,IAAG;AAEpB,uBAAe,SAAS,MAAM,SAAS;AACvC,sBAAc,OAAO,IAAI,EAAC,SAAS,OAAM;AACzC,YAAI,MAAM,eAAe,EAAE;AAE3B,uBAAe,IAAI,SAAS,EAAC,WAAWF,aAAW,CAAC;AAEpD,mBAAW,QAAQC;AACjB,kBAAQ,iBAAiB,IAAI;AAE/B,YAAID,gBAAe,QAAQ;AACzB,kBAAQ,kBAAkB;AAAA,MAC9B;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,YAAY,WAAW;AACrB,UAAM,EAAC,UAAU,QAAO,IAAI;AAC5B,WAAO,IAAI,QAAQ,aAAW;AAC5B,UAAI,SAAS,IAAI,SAAS;AACxB,gBAAQ,SAAS,IAAI,SAAS,EAAE,KAAK;AAAA,WAClC;AACH,YAAI,CAAC,QAAQ,IAAI,SAAS;AACxB,kBAAQ,IAAI,WAAW,CAAC,CAAC;AAC3B,gBAAQ,IAAI,SAAS,EAAE,KAAK,OAAO;AAAA,MACrC;AAAA,IACF,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,WAAW;AACb,UAAM,OAAO,KAAK,SAAS,IAAI,SAAS;AACxC,WAAO,QAAQ,KAAK;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,QAAQ,OAAO;AACb,QAAI,QAAQ,IAAI,KAAK,GAAG;AACtB,YAAM,EAAE,UAAU,IAAI,QAAQ,IAAI,KAAK;AACvC,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AACF;;;ACnMA,IAAM,EAAC,QAAAG,QAAM,IAAIC;AAQjB,IAAI,aAAa;AAEjB,IAAMC,UAAS,CAACC,OAAM,MAAM,WAAW;AACrC,QAAM,MAAMA,MAAK,GAAG;AACpB,OAAK,aAAaA;AAClB,kBAAgB,IAAI,IAAI,GAAG,MAAM,GAAG;AACpC,MAAI,UAAU,KAAK,aAAa;AAC9B,sBAAkB,IAAI;AACxB,SAAO;AACT;AAEA,IAAM,YAAY,CAAC,SAAS,KAAKC,YAAW,OAAO,WAAW;AAC5D,EAAAA,WAAU,KAAK,IAAI;AACnB,EAAAA,WAAU,eAAe;AACzB,gBAAc,IAAI,IAAI,GAAGA,YAAW,GAAG;AACvC,MAAIA,WAAU,SAAS;AACrB,YAAQ,YAAY;AACtB,MAAI;AACF,6BAAyB,SAASA,WAAU,MAAM,MAAM,KAAK;AACjE;AAIO,IAAM,kBAAkB,CAACC,WAAU,QAAQ,mBAAmB;AACnE,QAAM,EAAC,QAAQ,SAAQ,IAAIA,UAAS,eAAe;AAEnD,MAAI,OAAOA;AACX,MAAI,kBAAkB;AACtB,MAAI,eAAe;AAEnB,eAAa;AAEb,QAAM,UAAU,IAAIC,QAAO;AAAA;AAAA,IAEzB,wBAAwB,MAAM,MAAM;AAClC,UAAI,KAAK,YAAY,MAAM;AACzB,QAAAD,UAAS,UAAU,KAAK,MAAM,KAAK,MAAM,EAAE,KAAK;AAAA,IACpD;AAAA;AAAA,IAGA,UAAU,MAAME,aAAY;AAC1B,UAAIC,UAAS;AACb,UAAI,QAAQ;AACV,YAAI,iBAAiB;AACnB,iBAAOC,QAAO,MAAMJ,UAAS,gBAAgB,eAAe,IAAI,GAAG,MAAM;AACzE,eAAK,kBAAkB;AACvB,UAAAG,UAAS;AAAA,QACX,WACS,SAAS,SAAS,SAAS,OAAO;AACzC,4BAAkBH,UAAS,gBAAgB,eAAe,IAAI;AAC9D,iBAAOI,QAAO,MAAM,iBAAiB,MAAM;AAC3C,UAAAD,UAAS;AAAA,QACX,WACS,QAAQ;AACf,gBAAM,KAAK,KAAK,SAAS,GAAG,IAAI,OAAQD,YAAW,MAAM;AACzD,cAAI,MAAM,SAAS,IAAI,EAAE,GAAG;AAC1B,kBAAM,EAAC,MAAK,IAAI,SAAS,IAAI,EAAE;AAC/B,mBAAOE,QAAO,MAAM,IAAI,SAAO,MAAM;AACrC,mBAAOF,YAAW;AAClB,YAAAC,UAAS;AAAA,UACX;AAAA,QACF;AAAA,MACF;AAEA,UAAIA;AACF,eAAOC,QAAO,MAAMJ,UAAS,cAAc,IAAI,GAAG,KAAK;AAEzD,UAAI,MAAM,KAAK,GAAG;AAClB,iBAAWK,SAAQ,KAAKH,WAAU;AAChC,kBAAU,MAAM,KAAKF,UAAS,gBAAgBK,KAAI,GAAGH,YAAWG,KAAI,GAAG,MAAM;AAAA,IACjF;AAAA;AAAA,IAGA,UAAU,MAAM;AAAE,MAAAD,QAAO,MAAMJ,UAAS,cAAc,IAAI,GAAG,MAAM;AAAA,IAAG;AAAA,IACtE,OAAO,MAAM;AACX,UAAI,cAAc;AAChB,QAAAI,QAAO,MAAMJ,UAAS,mBAAmB,IAAI,GAAG,MAAM;AAAA,MACxD,OAAO;AACL,QAAAI,QAAO,MAAMJ,UAAS,eAAe,IAAI,GAAG,MAAM;AAAA,MACpD;AAAA,IACF;AAAA;AAAA,IAGA,eAAe;AAAE,qBAAe;AAAA,IAAM;AAAA,IACtC,aAAa;AAAE,qBAAe;AAAA,IAAO;AAAA;AAAA,IAGrC,aAAa;AACX,UAAI,UAAU,SAAS;AACrB,0BAAkB;AACpB,aAAO,KAAK;AAAA,IACd;AAAA,EACF,GAAG;AAAA,IACD,yBAAyB;AAAA,IACzB,gBAAgB;AAAA,IAChB,SAAS,CAAC;AAAA,EACZ,CAAC;AAED,UAAQ,MAAM,cAAc;AAC5B,UAAQ,IAAI;AAEZ,eAAa;AAEb,SAAOA;AACT;;;ACzHO,IAAM,cAAc,oBAAI;AAExB,IAAM,oBAAoB,CAAC,OAAO,UAAU;AACjD,aAAW,QAAQ,CAAC,EAAE,OAAO,KAAK,GAAG;AACnC,gBAAY,IAAI,MAAM,KAAK;AAC3B,gBAAY,IAAI,KAAK,YAAY,GAAG,KAAK;AAAA,EAC3C;AACF;;;ACOA,IAAM,cAAc,CAAC,EAAC,CAAC,OAAO,MAAM,CAAC,MAAM,IAAG,GAAG,SAAS;AACxD,SAAO,SAAS,KAAK;AACnB,YAAQ,KAAK,UAAU;AAAA,MACrB,KAAK;AACH,mBAAW,MAAM,IAAI;AACrB;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,4BAAoB,MAAM,IAAI;AAC9B;AAAA,MACF,KAAK;AACH,sBAAc,MAAM,IAAI;AACxB,eAAO,OAAO,IAAI;AAClB;AAAA,MACF,KAAK;AACH,2BAAmB,MAAM,IAAI;AAC7B;AAAA,IACJ;AACA,WAAO,KAAK,IAAI;AAAA,EAClB;AACA,QAAM,OAAO,KAAK,SAAS;AAC3B,QAAM,QAAQ,KAAK,IAAI;AACvB,MAAI,OAAO,UAAU,YAAY,QAAQ;AACvC,SAAK,IAAI,KAAK;AAAA;AAEd,SAAK,KAAK,QAAQ;AACtB;AAEO,IAAM,aAAa,CAAC,MAAM,SAAS;AACxC,OAAK,KAAK,gBAAgB,KAAK,IAAI;AACnC,QAAM,QAAQ,KAAK,KAAK,EAAE,KAAK;AAC/B,MAAI;AACF,SAAK,KAAK,KAAK;AACnB;AAEO,IAAM,sBAAsB,CAAC,MAAM,SAAS;AACjD,QAAM,QAAQ,KAAK,KAAK;AACxB,MAAI,MAAM,KAAK;AACb,SAAK,KAAK,KAAK,UAAU,KAAK;AAClC;AAEO,IAAM,mBAAmB,CAAC,MAAM,SAAS;AAC9C,OAAK,KAAK,KAAK,QAAQ;AACvB,cAAY,MAAM,IAAI;AACxB;AAEO,IAAM,qBAAqB,CAAC,EAAC,MAAM,UAAU,SAAQ,GAAG,SAAS;AACtE,OAAK,KAAK,oBAAoB,IAAI;AAClC,MAAI;AACF,SAAK,KAAK,QAAQ;AACpB,MAAI;AACF,SAAK,KAAK,QAAQ;AACtB;AAEO,IAAM,gBAAgB,CAAC,SAAS,SAAS;AAC9C,OAAK,KAAK,cAAc,QAAQ,SAAS;AACzC,cAAY,SAAS,IAAI;AAC3B;;;ACtEA,IAAM,eACJ,CAAC,MAAM,QAAQ,SAAS,YAAY,cAAc,eAAe,cACjE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAiB,SAAS,mBAAmB;AAAA,EAC7C,aAAa,SAAS,eAAe;AACvC;AAEA,IAAM,iBAAiB,CACrB,UAAU,QAAQ,eAAe,iBAAiB,mBAAmB,aAClE;AACH,MAAK,CAAC,mBAAmB,gBAAgB,SAAS,aAAa,GAAI;AACjE,UAAM,EAAC,UAAU,SAAS,UAAS,IAAI;AACvC,YAAQ,KAAK;AAAA,MACX;AAAA,MAAc;AAAA,MAAQ;AAAA,MACtB,CAAC;AAAA,MAAG,CAAC;AAAA,MACL;AAAA,MAAe,oBAAoB,WAAW;AAAA,IAChD,CAAC;AACD,QAAI,CAAC,WAAW;AACd,eAAS,YAAY;AACrB,cAAQ,QAAQ,EAAE,KAAK,MAAM;AAC3B,iBAAS,YAAY;AACrB,iBAAS,QAAQ,OAAO,CAAC,GAAG,QAAQ;AAAA,MACtC,CAAC;AAAA,IACH;AAAA,EACF;AACF;AAEO,IAAMM,4BAA2B,CAAC,SAAS,eAAe,aAAa;AAC5E,QAAM,EAAC,cAAa,IAAI;AACxB,QAAM,EAAC,QAAQ,UAAS,IAAI,cAAc,iBAAiB;AAC3D,MAAI,QAAQ;AACV,eAAW,YAAY,WAAW;AAChC,iBAAW;AAAA,QACT;AAAA,QACA;AAAA,UACE;AAAA,UACA;AAAA,UACA,YAAAC;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF,KAAK,SAAS,OAAO;AACnB,YAAI,WAAW;AACb,cACG,YAAY,WAAW,iBAAiB,OAAO,SAAS,OAAO,MAC/D,CAAC,WAAW,OAAO,SAAS,SAAS,OAAO,GAC7C;AACA;AAAA,cACE;AAAA,cAAU;AAAA,cACV;AAAA,cAAe;AAAA,cAAiB;AAAA,cAAmB;AAAA,YACrD;AACA;AAAA,UACF;AAAA,QACF,WAEEA,eACA,WAAW,SACX;AACA;AAAA,YACE;AAAA,YAAU;AAAA,YACV;AAAA,YAAe;AAAA,YAAiB;AAAA,YAAmB;AAAA,UACrD;AACA;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,aAAa,CAAC,SAAS,eAAe;AACjD,QAAM,EAAC,cAAa,IAAI;AACxB,QAAM,EAAC,QAAQ,UAAS,IAAI,cAAc,iBAAiB;AAC3D,MAAI,QAAQ;AACV,eAAW,YAAY,WAAW;AAChC,iBAAW,CAAC,QAAQ,EAAC,SAAS,WAAW,cAAa,CAAC,KAAK,SAAS,OAAO;AAC1E,YAAI,WAAW;AACb,cACG,eAAe,WAAW;AAAA,UAAmC,WAAW,OAAO,SAAS,UAAU,MAClG,CAAC,eAAgB,YAAY,WAAW;AAAA,UAAqC,OAAO,SAAS,OAAO,MACpF,CAAC,WAAW,OAAO,gBAAgB,eAAe,UAAU,EAAE,SAAS,OAAO,IAC/F;AACA,kBAAM,EAAC,UAAU,SAAS,UAAS,IAAI;AACvC,oBAAQ,KAAK;AAAA,cACX;AAAA,cAAa;AAAA,cAAQ;AAAA,cACrB,aAAa,CAAC,IAAI,CAAC,OAAO;AAAA,cAAG,aAAa,CAAC,OAAO,IAAI,CAAC;AAAA,YACzD,CAAC;AACD,gBAAI,CAAC,WAAW;AACd,uBAAS,YAAY;AACrB,sBAAQ,QAAQ,EAAE,KAAK,MAAM;AAC3B,yBAAS,YAAY;AACrB,yBAAS,QAAQ,OAAO,CAAC,GAAG,QAAQ;AAAA,cACtC,CAAC;AAAA,YACH;AACA;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,wBAAN,MAA4B;AAAA,EACjC,YAAY,eAAe;AACzB,UAAM,YAAY,oBAAI;AACtB,SAAK,YAAY;AACjB,SAAK,SAAS;AAKd,SAAK,QAAQ,MAAM,iBAAiB;AAAA,MAElC,YAAY,UAAU;AAIpB,aAAK,WAAW;AAKhB,aAAK,QAAQ,oBAAI;AAKjB,aAAK,UAAU,CAAC;AAKhB,aAAK,YAAY;AAAA,MACnB;AAAA,MAEA,aAAa;AACX,aAAK,QAAQ,OAAO,CAAC;AACrB,aAAK,MAAM,MAAM;AACjB,kBAAU,OAAO,IAAI;AACrB,sBAAc,iBAAiB,EAAE,SAAS,CAAC,CAAC,UAAU;AAAA,MACxD;AAAA;AAAA;AAAA;AAAA;AAAA,MAMA,QAAQ,QAAQ,UAAU;AAAA,QACxB,SAAS;AAAA,QACT,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,eAAe;AAAA;AAAA;AAAA,MAGjB,GAAG;AACD,YAAK,uBAAuB,WAAa,qBAAqB;AAC5D,kBAAQ,aAAa;AAGvB,gBAAQ,YAAY,CAAC,CAAC,QAAQ;AAC9B,gBAAQ,UAAU,CAAC,CAAC,QAAQ;AAC5B,aAAK,MAAM,IAAI,QAAQ,OAAO;AAC9B,kBAAU,IAAI,IAAI;AAClB,sBAAc,iBAAiB,EAAE,SAAS;AAAA,MAC5C;AAAA;AAAA;AAAA;AAAA,MAKA,cAAc;AAAE,eAAO,KAAK,QAAQ,OAAO,CAAC;AAAA,MAAG;AAAA,IACjD;AAAA,EACF;AACF;;;AC7KO,IAAM,kBAAkB,oBAAI,IAAI;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,eAAe,CAAC,SAASC,eAAc;AAClD,QAAM,EAAC,CAAC,KAAK,GAAG,OAAO,KAAI,IAAIA;AAC/B,EAAAA,WAAU,eAAe;AACzB,gBAAc,SAASA,YAAW,QAAQ,IAAI,CAAC;AAC/C,MAAI,SAAS;AACX,YAAQ,YAAY;AACtB,EAAAC,0BAAa,SAAS,MAAM,IAAI;AAChC,2BAAa,SAAS,MAAM,MAAM,KAAK;AACzC;AAEO,IAAM,kBAAkB,CAAC,SAASD,eAAc;AACrD,QAAM,EAAC,CAAC,KAAK,GAAG,OAAO,KAAI,IAAIA;AAC/B,gBAAcA,WAAU,IAAI,GAAGA,WAAU,IAAI,CAAC;AAC9C,EAAAA,WAAU,eAAeA,WAAU,IAAI,IAAIA,WAAU,IAAI,IAAI;AAC7D,MAAI,SAAS;AACX,YAAQ,UAAU,IAAI;AACxB,EAAAC,0BAAa,SAAS,MAAM,KAAK;AACjC,2BAAa,SAAS,MAAM,OAAO,IAAI;AACzC;AAEO,IAAM,mBAAmB;AAAA,EAC9B,IAAI,SAAS,MAAM;AACjB,WAAO,QAAQ,aAAa,IAAI;AAAA,EAClC;AAAA,EACA,IAAI,SAAS,MAAM,OAAO;AACxB,QAAI;AACF,cAAQ,aAAa,MAAM,EAAE;AAAA;AAE7B,cAAQ,gBAAgB,IAAI;AAAA,EAChC;AACF;AAEO,IAAM,mBAAmB;AAAA,EAC9B,IAAI,SAAS,MAAM;AACjB,WAAO,WAAW,QAAQ,aAAa,IAAI,KAAK,CAAC;AAAA,EACnD;AAAA,EACA,IAAI,SAAS,MAAM,OAAO;AACxB,YAAQ,aAAa,MAAM,KAAK;AAAA,EAClC;AACF;AAEO,IAAM,kBAAkB;AAAA,EAC7B,IAAI,SAAS,MAAM;AACjB,WAAO,QAAQ,aAAa,IAAI,KAAK;AAAA,EACvC;AAAA,EACA,IAAI,SAAS,MAAM,OAAO;AACxB,YAAQ,aAAa,MAAM,KAAK;AAAA,EAClC;AACF;;;ACvFA,IAAM,KAAK,oBAAI,QAAQ;AAEvB,SAAS,SAAS,OAAO,UAAU;AACjC,MAAI,OAAO,aAAa;AACtB,aAAS,KAAK,MAAM,QAAQ,KAAK;AAAA;AAEjC,aAAS,YAAY,KAAK;AAC5B,SAAO,MAAM;AACf;AAEA,SAAS,gBAAgB,EAAC,eAAe,OAAM,GAAG;AAChD,QAAM,MAAM,GAAG,IAAI,aAAa;AAChC,MAAI,OAAO,IAAI,IAAI,KAAK,IAAI,GAAG;AAC7B,UAAM,YAAY,IAAI,IAAI,KAAK,IAAI;AACnC,QAAI,kBAAkB,QAAQ;AAC5B,WAAK,aAAa,KAAK;AAAA,IACzB,OAAO;AACL,WAAK,aAAa,KAAK;AAAA,IACzB;AAEA,SAAK,gBAAgB;AACrB,SAAK,SAAS;AACd,eAAW,CAAC,UAAU,OAAO,KAAK,WAAW;AAC3C,UAAI,WAAW,QAAQ;AACrB,kBAAU,OAAO,QAAQ;AAC3B,UAAI,SAAS,MAAM,QAAQ;AACzB;AAAA,IACJ;AACA,WAAO,KAAK;AACZ,WAAO,KAAK;AACZ,WAAO,KAAK;AAAA,EACd;AACF;AAMA,IAAM,iBAAN,MAAqB;AAAA,EAEnB,cAAc;AACZ,OAAG,IAAI,MAAM,oBAAI,KAAG;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa;AACX,WAAO;AAAA,EACT;AAAA,EAEA,iBAAiB,MAAM,UAAU,SAAS;AACxC,UAAM,MAAM,GAAG,IAAI,IAAI;AACvB,QAAI,CAAC,IAAI,IAAI,IAAI;AACf,UAAI,IAAI,MAAM,oBAAI,KAAG;AACvB,QAAI,IAAI,IAAI,EAAE,IAAI,UAAU,OAAO;AAAA,EACrC;AAAA,EAEA,oBAAoB,MAAM,UAAU;AAClC,UAAM,MAAM,GAAG,IAAI,IAAI;AACvB,QAAI,IAAI,IAAI,IAAI,GAAG;AACjB,YAAM,YAAY,IAAI,IAAI,IAAI;AAC9B,UAAI,UAAU,OAAO,QAAQ,KAAK,CAAC,UAAU;AAC3C,YAAI,OAAO,IAAI;AAAA,IACnB;AAAA,EACF;AAAA,EAEA,cAAc,OAAO;AACnB,QAAI,OAAO;AACX,UAAM,aAAa,MAAM;AAGzB,WAAO,MAAM;AACX,UAAI,KAAK;AACP,cAAM,MAAM,KAAK,EAAC,eAAe,MAAM,QAAQ,KAAI,CAAC;AACtD,aAAO,MAAM,WAAW,KAAK,cAAc,KAAK,WAAW;AAAA,IAC7D;AACA,UAAM,MAAM,KAAK,iBAAiB,KAAK;AACvC,UAAM,QAAQ,CAAC;AACf,UAAM,aAAa,MAAM;AACzB,WAAO,CAAC,MAAM;AAAA,EAChB;AAEF;;;AChFO,IAAM,WAAN,cAAuB,MAAM;AAAA,EAClC,KAAK,GAAG;AAAE,WAAO,IAAI,KAAK,SAAS,KAAK,CAAC,IAAI;AAAA,EAAM;AACrD;;;ACkBA,IAAM,qBAAqB,CAAC,EAAC,WAAU,MAAM;AAC3C,MAAI,QAAQ;AACZ,SAAO,YAAY;AACjB;AACA,iBAAa,WAAW;AAAA,EAC1B;AACA,SAAO;AACT;AAKO,IAAMC,QAAN,cAAmB,eAAY;AAAA,EAEpC,WAAW,eAAe;AAAE,WAAO;AAAA,EAAc;AAAA,EACjD,WAAW,iBAAiB;AAAE,WAAO;AAAA,EAAgB;AAAA,EACrD,WAAW,YAAY;AAAE,WAAO;AAAA,EAAW;AAAA,EAC3C,WAAW,qBAAqB;AAAE,WAAO;AAAA,EAAoB;AAAA,EAC7D,WAAW,eAAe;AAAE,WAAO;AAAA,EAAc;AAAA,EACjD,WAAW,gBAAgB;AAAE,WAAO;AAAA,EAAe;AAAA,EACnD,WAAW,yBAAyB;AAAE,WAAO;AAAA,EAAwB;AAAA,EACrE,WAAW,qBAAqB;AAAE,WAAO;AAAA,EAAoB;AAAA,EAE7D,YAAY,eAAe,WAAW,UAAU;AAC9C,UAAM;AACN,SAAK,gBAAgB;AACrB,SAAK,YAAY;AACjB,SAAK,WAAW;AAChB,SAAK,aAAa;AAClB,SAAK,IAAI,IAAI;AACb,SAAK,IAAI,IAAI;AAAA,EACf;AAAA,EAEA,IAAI,eAAe;AAAE,WAAO;AAAA,EAAc;AAAA,EAC1C,IAAI,iBAAiB;AAAE,WAAO;AAAA,EAAgB;AAAA,EAC9C,IAAI,YAAY;AAAE,WAAO;AAAA,EAAW;AAAA,EACpC,IAAI,qBAAqB;AAAE,WAAO;AAAA,EAAoB;AAAA,EACtD,IAAI,eAAe;AAAE,WAAO;AAAA,EAAc;AAAA,EAC1C,IAAI,gBAAgB;AAAE,WAAO;AAAA,EAAe;AAAA,EAC5C,IAAI,yBAAyB;AAAE,WAAO;AAAA,EAAwB;AAAA,EAC9D,IAAI,qBAAqB;AAAE,WAAO;AAAA,EAAoB;AAAA,EAEtD,IAAI,UAAU;AACZ,UAAM,gBAAgB,KAAK,aAAa,gBAChB,OAAO,KAAK;AACpC,QAAI,eAAe;AACjB,YAAM,OAAO,cAAc,cAAc,MAAM;AAC/C,UAAI;AACF,eAAO,KAAK,aAAa,MAAM;AAEjC,YAAM,EAAC,SAAQ,IAAI,cAAc;AACjC,UAAI;AACF,eAAO,SAAS;AAAA,IACpB;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA,EAIA,IAAI,cAAc;AAAE,WAAO;AAAA,EAAO;AAAA,EAClC,IAAI,WAAW;AAAE,WAAO,KAAK;AAAA,EAAW;AAAA,EACxC,IAAI,gBAAgB;AAAE,WAAO;AAAA,EAAM;AAAA,EACnC,IAAI,kBAAkB;AAAE,WAAO;AAAA,EAAM;AAAA,EACrC,IAAI,yBAAyB;AAAE,WAAO;AAAA,EAAM;AAAA,EAC5C,IAAI,cAAc;AAAE,WAAO;AAAA,EAAM;AAAA,EACjC,IAAI,qBAAqB;AAAE,WAAO;AAAA,EAAM;AAAA,EACxC,IAAI,aAAa;AAAE,WAAO,IAAI;AAAA,EAAU;AAAA,EACxC,IAAI,aAAa;AAAE,WAAO;AAAA,EAAM;AAAA,EAChC,IAAI,YAAY;AAAE,WAAO;AAAA,EAAM;AAAA;AAAA,EAG/B,IAAI,YAAY;AAAE,WAAO;AAAA,EAAM;AAAA,EAC/B,IAAI,UAAU,OAAO;AAAA,EAAC;AAAA,EACtB,IAAI,cAAc;AAAE,WAAO;AAAA,EAAM;AAAA,EACjC,IAAI,YAAY,OAAO;AAAA,EAAC;AAAA,EACxB,YAAY;AAAA,EAAC;AAAA,EACb,YAAY;AAAE,WAAO;AAAA,EAAM;AAAA,EAC3B,WAAW;AAAE,WAAO;AAAA,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ3B,aAAa,SAAS,eAAe;AAAE,WAAO;AAAA,EAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMtD,YAAY,OAAO;AAAE,WAAO;AAAA,EAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOlC,aAAa,UAAU,UAAU;AAAE,WAAO;AAAA,EAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMnD,YAAY,OAAO;AAAE,WAAO;AAAA,EAAM;AAAA,EAClC,WAAW;AAAE,WAAO;AAAA,EAAI;AAAA;AAAA,EAGxB,gBAAgB;AAAE,WAAO,CAAC,CAAC,KAAK;AAAA,EAAW;AAAA,EAC3C,WAAW,MAAM;AAAE,WAAO,SAAS;AAAA,EAAM;AAAA;AAAA,EAGzC,wBAAwB,QAAQ;AAC9B,QAAI,SAAS;AACb,QAAI,SAAS,QAAQ;AACnB,UAAIC,QAAO,mBAAmB,IAAI;AAClC,UAAI,QAAQ,mBAAmB,MAAM;AACrC,UAAIA,QAAO,OAAO;AAChB,kBAAU;AACV,YAAI,KAAK,SAAS,MAAM;AACtB,oBAAU;AAAA,MACd,WACS,QAAQA,OAAM;AACrB,kBAAU;AACV,YAAI,OAAO,SAAS,IAAI;AACtB,oBAAU;AAAA,MACd,WACSA,SAAQ,OAAO;AACtB,cAAM,EAAC,WAAU,IAAI,KAAK;AAC1B,YAAI,WAAW,QAAQ,IAAI,IAAI,WAAW,QAAQ,MAAM;AACtD,oBAAU;AAAA;AAEV,oBAAU;AAAA,MACd;AACA,UAAI,CAACA,SAAQ,CAAC,OAAO;AACnB,kBAAU;AACV,kBAAU;AAAA,MACZ;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,YAAY,MAAM;AAChB,QAAI,SAAS;AACX,aAAO;AACT,QAAI,KAAK,aAAa,KAAK,UAAU;AACnC,cAAQ,KAAK,UAAU;AAAA,QACrB,KAAK;AAAA,QACL,KAAK,wBAAwB;AAC3B,gBAAM,SAAS,KAAK;AACpB,gBAAM,SAAS,KAAK;AACpB,iBAAO,OAAO,WAAW,OAAO,UAAU,OAAO,MAAM,CAACC,OAAM,MAAMA,MAAK,YAAY,OAAO,CAAC,CAAC,CAAC;AAAA,QACjG;AAAA,MACF;AACA,aAAO,KAAK,SAAS,MAAM,KAAK,SAAS;AAAA,IAC3C;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa;AACX,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,cAAc;AACZ,QAAI,OAAO;AACX,WAAO,KAAK;AACV,aAAO,KAAK;AACd,WAAO;AAAA,EACT;AACF;;;AC3MA,IAAM,EAAC,QAAO,IAAI;AAGlB,IAAM,KAAK;AAEX,IAAM,OAAO;AAAA,EACX,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;AAEA,IAAM,KAAK,OAAK,KAAK,CAAC;AASf,IAAMC,UAAS,QAAM,QAAQ,KAAK,IAAI,IAAI,EAAE;;;ACTnD,IAAM,QAAQ;AAKP,IAAM,OAAN,MAAM,cAAaC,MAAK;AAAA,EAC7B,YAAY,eAAe,MAAM,QAAQ,IAAI;AAC3C,UAAM,eAAe,MAAM,cAAc;AACzC,SAAK,eAAe;AACpB,SAAK,OAAO,QAAO,IAAI;AACvB,SAAK,KAAK,IAAI,QAAO,KAAK;AAC1B,SAAK,OAAO,IAAI;AAAA,EAClB;AAAA,EAEA,IAAI,QAAQ;AAAE,WAAO,KAAK,KAAK;AAAA,EAAG;AAAA,EAClC,IAAI,MAAM,UAAU;AAClB,UAAM,EAAC,CAAC,KAAK,GAAG,UAAU,MAAM,aAAY,IAAI;AAChD,SAAK,KAAK,IAAI,QAAO,QAAQ;AAC7B,SAAK,OAAO,IAAI;AAChB,QAAI,cAAc;AAChB,MAAAC,0BAAa,cAAc,MAAM,QAAQ;AACzC,+BAAa,cAAc,MAAM,UAAU,KAAK,KAAK,CAAC;AAAA,IACxD;AAAA,EACF;AAAA,EAEA,YAAY;AACV,UAAM,EAAC,eAAe,MAAM,CAAC,KAAK,GAAG,MAAK,IAAI;AAC9C,WAAO,IAAI,MAAK,eAAe,MAAM,KAAK;AAAA,EAC5C;AAAA,EAEA,WAAW;AACT,UAAM,EAAC,MAAM,CAAC,KAAK,GAAG,MAAK,IAAI;AAC/B,QAAI,gBAAgB,IAAI,IAAI,KAAK,CAAC,OAAO;AACvC,aAAO,WAAW,IAAI,IAAI,OAAO,GAAG,IAAI;AAAA,IAC1C;AACA,UAAM,gBAAgB,WAAW,IAAI,IAAI,QAAQC,QAAO,KAAK,GAAG,QAAQ,OAAO,QAAQ;AACvF,WAAO,GAAG,IAAI,KAAK,YAAY;AAAA,EACjC;AAAA,EAEA,SAAS;AACP,UAAM,OAAO,CAAC;AACd,eAAW,MAAM,IAAI;AACrB,WAAO;AAAA,EACT;AACF;;;AC5CO,IAAM,cAAc,CAAC,EAAC,eAAe,WAAU,MAAM;AAC1D,SAAO,YAAY;AACjB,QAAI,eAAe;AACjB,aAAO;AACT,iBAAa,WAAW,cAAc,WAAW;AAAA,EACnD;AACA,SAAO;AACT;AAEO,IAAM,gBAAgB,CAAC,EAAC,WAAU,MAAM;AAC7C,MAAI,YAAY;AACd,YAAQ,WAAW,UAAU;AAAA,MAC3B,KAAK;AAAA,MACL,KAAK;AACH,eAAO;AAAA,IACX;AAAA,EACF;AACA,SAAO;AACT;AAEO,IAAM,kBAAkB,CAAC,EAAC,CAAC,OAAO,KAAI,MAAM;AACjD,UAAQ,OAAO,KAAK,WAAW,GAAG;AAAA,IAChC,KAAK;AACH,aAAO,KAAK,KAAK;AAAA,IACnB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,EACX;AACA,SAAO;AACT;AAEO,IAAM,cAAc,UAAQ;AACjC,QAAM,OAAO,OAAO,IAAI,EAAE,IAAI;AAC9B,SAAO,SAAS,KAAK,aAAa,WAAW,OAAO;AACtD;;;ACxCO,IAAMC,sBAAqB,UAAQ;AACxC,MAAI,OAAO,YAAY,IAAI;AAC3B,SAAO,QAAQ,KAAK,aAAa;AAC/B,WAAO,YAAY,IAAI;AACzB,SAAO;AACT;AAEO,IAAM,yBAAyB,UAAQ;AAC5C,MAAI,OAAO,gBAAgB,IAAI;AAC/B,SAAO,QAAQ,KAAK,aAAa;AAC/B,WAAO,gBAAgB,IAAI;AAC7B,SAAO;AACT;;;ACRA,IAAM,aAAa,CAAC,eAAe,UAAU;AAC3C,QAAM,WAAW,cAAc,uBAAuB;AACtD,WAAS,OAAO,GAAG,KAAK;AACxB,SAAO;AACT;AAEO,IAAM,SAAS,CAAC,MAAM,UAAU;AACrC,QAAM,EAAC,eAAe,WAAU,IAAI;AACpC,MAAI;AACF,eAAW;AAAA,MACT,WAAW,eAAe,KAAK;AAAA,MAC/B;AAAA,IACF;AACJ;AAEO,IAAM,QAAQ,CAAC,MAAM,UAAU;AACpC,QAAM,EAAC,eAAe,WAAU,IAAI;AACpC,MAAI;AACF,eAAW;AAAA,MACT,WAAW,eAAe,KAAK;AAAA,MAC/B,OAAO,IAAI,EAAE,IAAI;AAAA,IACnB;AACJ;AAEO,IAAM,cAAc,CAAC,MAAM,UAAU;AAC1C,QAAM,EAAC,eAAe,WAAU,IAAI;AACpC,MAAI,YAAY;AACd,QAAI,MAAM,SAAS,IAAI;AACrB,kBAAY,MAAM,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC;AAC7C,eAAW;AAAA,MACT,WAAW,eAAe,KAAK;AAAA,MAC/B;AAAA,IACF;AACA,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,SAAS,CAAC,MAAM,SAAS,SAAS;AAC7C,QAAM,EAAC,YAAY,SAAQ,IAAI;AAC/B,MAAI,QAAQ,MAAM;AAChB,gBAAY,MAAM,IAAI;AACtB,YAAQ,IAAI,IAAI;AAChB,WAAO,OAAO,EAAE,IAAI,IAAI;AAAA,EAC1B;AACA,MAAI,YAAY;AACd,YAAQ,aAAa;AACrB,eAAW,SAAS,UAAU;AAC9B,QAAI,aAAa;AACf,2BAAqB,OAAO;AAAA,EAChC;AACF;;;AC7CO,IAAM,gBAAN,cAA4BC,MAAK;AAAA,EAEtC,YAAY,eAAe,WAAW,UAAU,MAAM;AACpD,UAAM,eAAe,WAAW,QAAQ;AACxC,SAAK,KAAK,IAAI,QAAO,IAAI;AAAA,EAC3B;AAAA;AAAA,EAGA,IAAI,cAAc;AAAE,WAAO,YAAY,IAAI;AAAA,EAAG;AAAA,EAC9C,IAAI,gBAAgB;AAAE,WAAO,cAAc,IAAI;AAAA,EAAG;AAAA,EAClD,IAAI,kBAAkB;AAAE,WAAO,gBAAgB,IAAI;AAAA,EAAG;AAAA,EACtD,IAAI,cAAc;AAAE,WAAO,YAAY,IAAI;AAAA,EAAG;AAAA,EAE9C,IAAI,yBAAyB;AAAE,WAAO,uBAAuB,IAAI;AAAA,EAAG;AAAA,EACpE,IAAI,qBAAqB;AAAE,WAAOC,oBAAmB,IAAI;AAAA,EAAG;AAAA,EAE5D,UAAU,OAAO;AAAE,WAAO,MAAM,KAAK;AAAA,EAAG;AAAA,EACxC,SAAS,OAAO;AAAE,UAAM,MAAM,KAAK;AAAA,EAAG;AAAA,EACtC,eAAe,OAAO;AAAE,gBAAY,MAAM,KAAK;AAAA,EAAG;AAAA,EAClD,SAAS;AAAE,WAAO,KAAK,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC;AAAA,EAAG;AAAA;AAAA;AAAA;AAAA,EAKjD,IAAI,OAAO;AAAE,WAAO,KAAK,KAAK;AAAA,EAAG;AAAA,EACjC,IAAI,KAAK,OAAO;AACd,SAAK,KAAK,IAAI,QAAO,KAAK;AAC1B,eAAW,MAAM,KAAK,UAAU;AAAA,EAClC;AAAA,EAEA,IAAI,YAAY;AAAE,WAAO,KAAK;AAAA,EAAM;AAAA,EACpC,IAAI,UAAU,OAAO;AAAE,SAAK,OAAO;AAAA,EAAO;AAAA,EAE1C,IAAI,cAAc;AAAE,WAAO,KAAK;AAAA,EAAM;AAAA,EACtC,IAAI,YAAY,OAAO;AAAE,SAAK,OAAO;AAAA,EAAO;AAAA,EAE5C,IAAI,SAAS;AAAE,WAAO,KAAK,KAAK;AAAA,EAAQ;AAAA,EAExC,cAAc,QAAQ,OAAO;AAC3B,WAAO,KAAK,KAAK,OAAO,QAAQ,KAAK;AAAA,EACvC;AAAA,EAEA,WAAW,MAAM;AACf,SAAK,QAAQ;AAAA,EACf;AAAA,EAEA,WAAW,QAAQ,MAAM;AACvB,UAAM,EAAC,MAAM,EAAC,IAAI;AAClB,SAAK,OAAO,EAAE,MAAM,GAAG,MAAM,IAAI,OAAO,EAAE,MAAM,MAAM;AAAA,EACxD;AAAA,EAEA,WAAW,QAAQ,OAAO;AACxB,UAAM,EAAC,MAAM,EAAC,IAAI;AAClB,SAAK,OAAO,EAAE,MAAM,GAAG,MAAM,IAAI,EAAE,MAAM,SAAS,KAAK;AAAA,EACzD;AAAA,EAEA,YAAY,QAAQ,OAAO,MAAM;AAC/B,UAAM,EAAC,MAAM,EAAC,IAAI;AAClB,SAAK,OAAO,EAAE,MAAM,GAAG,MAAM,IAAI,OAAO,EAAE,MAAM,SAAS,KAAK;AAAA,EAChE;AAAA;AAAA,EAGA,SAAS;AACP,UAAM,OAAO,CAAC;AACd,wBAAoB,MAAM,IAAI;AAC9B,WAAO;AAAA,EACT;AACF;;;AC3EO,IAAM,eAAN,MAAM,sBAAqB,cAAc;AAAA,EAC9C,YAAY,eAAe,OAAO,IAAI;AACpC,UAAM,eAAe,iBAAiB,oBAAoB,IAAI;AAAA,EAChE;AAAA,EAEA,YAAY;AACV,UAAM,EAAC,eAAe,CAAC,KAAK,GAAG,KAAI,IAAI;AACvC,WAAO,IAAI,cAAa,eAAe,IAAI;AAAA,EAC7C;AAAA,EAEA,WAAW;AAAE,WAAO,YAAY,KAAK,KAAK,CAAC;AAAA,EAAO;AACpD;;;ACXO,IAAMC,WAAN,MAAM,iBAAgB,cAAc;AAAA,EACzC,YAAY,eAAe,OAAO,IAAI;AACpC,UAAM,eAAe,YAAY,cAAc,IAAI;AAAA,EACrD;AAAA,EAEA,YAAY;AACV,UAAM,EAAC,eAAe,CAAC,KAAK,GAAG,KAAI,IAAI;AACvC,WAAO,IAAI,SAAQ,eAAe,IAAI;AAAA,EACxC;AAAA,EAEA,WAAW;AAAE,WAAO,OAAO,KAAK,KAAK,CAAC;AAAA,EAAO;AAC/C;;;AClBA,IAAAC,mBAAqB;;;ACDd,IAAI;AAAA,CACV,SAAUC,eAAc;AACrB,EAAAA,cAAa,WAAW,IAAI;AAC5B,EAAAA,cAAa,QAAQ,IAAI;AACzB,EAAAA,cAAa,eAAe,IAAI;AAChC,EAAAA,cAAa,KAAK,IAAI;AACtB,EAAAA,cAAa,WAAW,IAAI;AAE5B,EAAAA,cAAa,UAAU,IAAI;AAC3B,EAAAA,cAAa,OAAO,IAAI;AACxB,EAAAA,cAAa,YAAY,IAAI;AAC7B,EAAAA,cAAa,QAAQ,IAAI;AACzB,EAAAA,cAAa,SAAS,IAAI;AAC1B,EAAAA,cAAa,kBAAkB,IAAI;AACvC,GAAG,iBAAiB,eAAe,CAAC,EAAE;AAc/B,IAAI;AAAA,CACV,SAAUC,kBAAiB;AACxB,EAAAA,iBAAgB,KAAK,IAAI;AACzB,EAAAA,iBAAgB,SAAS,IAAI;AAC7B,EAAAA,iBAAgB,KAAK,IAAI;AACzB,EAAAA,iBAAgB,QAAQ,IAAI;AAC5B,EAAAA,iBAAgB,QAAQ,IAAI;AAC5B,EAAAA,iBAAgB,QAAQ,IAAI;AAC5B,EAAAA,iBAAgB,KAAK,IAAI;AACzB,EAAAA,iBAAgB,OAAO,IAAI;AAC/B,GAAG,oBAAoB,kBAAkB,CAAC,EAAE;;;ACrC5C,IAAM,SAAS;AACf,IAAM,WAAW;AACjB,IAAM,cAAc,oBAAI,IAAI;AAAA,EACxB,CAAC,KAAiB,gBAAgB,OAAO;AAAA,EACzC,CAAC,IAAqB,gBAAgB,KAAK;AAAA,EAC3C,CAAC,IAAiB,gBAAgB,GAAG;AAAA,EACrC,CAAC,IAAmB,gBAAgB,GAAG;AAAA,EACvC,CAAC,IAA0B,gBAAgB,GAAG;AAAA,EAC9C,CAAC,KAAgB,gBAAgB,MAAM;AAC3C,CAAC;AAED,IAAM,gBAAgB,oBAAI,IAAI;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,CAAC;AAQM,SAAS,YAAY,UAAU;AAClC,UAAQ,SAAS,MAAM;AAAA,IACnB,KAAK,aAAa;AAAA,IAClB,KAAK,aAAa;AAAA,IAClB,KAAK,aAAa;AAAA,IAClB,KAAK,aAAa;AAAA,IAClB,KAAK,aAAa;AAAA,IAClB,KAAK,aAAa;AACd,aAAO;AAAA,IACX;AACI,aAAO;AAAA,EACf;AACJ;AACA,IAAM,yBAAyB,oBAAI,IAAI,CAAC,YAAY,WAAW,CAAC;AAEhE,SAAS,UAAU,GAAG,SAAS,mBAAmB;AAC9C,QAAM,OAAO,SAAS,SAAS,EAAE,IAAI;AAErC,SAAO,SAAS,QAAQ,oBAClB,UACA,OAAO;AAAA;AAAA,IAED,OAAO,aAAa,OAAO,KAAO;AAAA;AAAA;AAAA,IAElC,OAAO,aAAc,QAAQ,KAAM,OAAS,OAAO,OAAS,KAAM;AAAA;AAClF;AACA,SAAS,YAAY,KAAK;AACtB,SAAO,IAAI,QAAQ,UAAU,SAAS;AAC1C;AACA,SAAS,QAAQ,GAAG;AAChB,SAAO,MAAM,MAAwB,MAAM;AAC/C;AACA,SAASC,cAAa,GAAG;AACrB,SAAQ,MAAM,MACV,MAAM,KACN,MAAM,MACN,MAAM,MACN,MAAM;AACd;AAUO,SAAS,MAAM,UAAU;AAC5B,QAAMC,cAAa,CAAC;AACpB,QAAM,WAAW,cAAcA,aAAY,GAAG,QAAQ,IAAI,CAAC;AAC3D,MAAI,WAAW,SAAS,QAAQ;AAC5B,UAAM,IAAI,MAAM,uBAAuB,SAAS,MAAM,QAAQ,CAAC,EAAE;AAAA,EACrE;AACA,SAAOA;AACX;AACA,SAAS,cAAcA,aAAY,UAAU,eAAe;AACxD,MAAI,SAAS,CAAC;AACd,WAASC,SAAQ,QAAQ;AACrB,UAAM,QAAQ,SAAS,MAAM,gBAAgB,MAAM,EAAE,MAAM,MAAM;AACjE,QAAI,CAAC,OAAO;AACR,YAAM,IAAI,MAAM,wBAAwB,SAAS,MAAM,aAAa,CAAC,EAAE;AAAA,IAC3E;AACA,UAAM,CAAC,IAAI,IAAI;AACf,qBAAiB,SAAS,KAAK;AAC/B,WAAO,YAAY,IAAI;AAAA,EAC3B;AACA,WAAS,gBAAgB,QAAQ;AAC7B,qBAAiB;AACjB,WAAO,gBAAgB,SAAS,UAC5BF,cAAa,SAAS,WAAW,aAAa,CAAC,GAAG;AAClD;AAAA,IACJ;AAAA,EACJ;AACA,WAAS,2BAA2B;AAChC,qBAAiB;AACjB,UAAM,QAAQ;AACd,QAAI,UAAU;AACd,WAAO,UAAU,KAAK,gBAAgB,SAAS,QAAQ,iBAAiB;AACpE,UAAI,SAAS,WAAW,aAAa,MACjC,MACA,CAAC,UAAU,aAAa,GAAG;AAC3B;AAAA,MACJ,WACS,SAAS,WAAW,aAAa,MACtC,MACA,CAAC,UAAU,aAAa,GAAG;AAC3B;AAAA,MACJ;AAAA,IACJ;AACA,QAAI,SAAS;AACT,YAAM,IAAI,MAAM,yBAAyB;AAAA,IAC7C;AACA,WAAO,YAAY,SAAS,MAAM,OAAO,gBAAgB,CAAC,CAAC;AAAA,EAC/D;AACA,WAAS,UAAU,KAAK;AACpB,QAAI,aAAa;AACjB,WAAO,SAAS,WAAW,EAAE,GAAG,MAAM;AAClC;AACJ,YAAQ,aAAa,OAAO;AAAA,EAChC;AACA,WAAS,qBAAqB;AAC1B,QAAI,OAAO,SAAS,KAAK,YAAY,OAAO,OAAO,SAAS,CAAC,CAAC,GAAG;AAC7D,YAAM,IAAI,MAAM,uCAAuC;AAAA,IAC3D;AAAA,EACJ;AACA,WAAS,aAAa,MAAM;AACxB,QAAI,OAAO,SAAS,KAChB,OAAO,OAAO,SAAS,CAAC,EAAE,SAAS,aAAa,YAAY;AAC5D,aAAO,OAAO,SAAS,CAAC,EAAE,OAAO;AACjC;AAAA,IACJ;AACA,uBAAmB;AACnB,WAAO,KAAK,EAAE,KAAK,CAAC;AAAA,EACxB;AACA,WAAS,oBAAoB,MAAM,QAAQ;AACvC,WAAO,KAAK;AAAA,MACR,MAAM,aAAa;AAAA,MACnB;AAAA,MACA;AAAA,MACA,OAAOE,SAAQ,CAAC;AAAA,MAChB,WAAW;AAAA,MACX,YAAY;AAAA,IAChB,CAAC;AAAA,EACL;AAQA,WAAS,sBAAsB;AAC3B,QAAI,OAAO,UACP,OAAO,OAAO,SAAS,CAAC,EAAE,SAAS,aAAa,YAAY;AAC5D,aAAO,IAAI;AAAA,IACf;AACA,QAAI,OAAO,WAAW,GAAG;AACrB,YAAM,IAAI,MAAM,oBAAoB;AAAA,IACxC;AACA,IAAAD,YAAW,KAAK,MAAM;AAAA,EAC1B;AACA,kBAAgB,CAAC;AACjB,MAAI,SAAS,WAAW,eAAe;AACnC,WAAO;AAAA,EACX;AACA;AAAM,WAAO,gBAAgB,SAAS,QAAQ;AAC1C,YAAM,YAAY,SAAS,WAAW,aAAa;AACnD,cAAQ,WAAW;AAAA,QAEf,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK,IAAyB;AAC1B,cAAI,OAAO,WAAW,KAClB,OAAO,CAAC,EAAE,SAAS,aAAa,YAAY;AAC5C,+BAAmB;AACnB,mBAAO,KAAK,EAAE,MAAM,aAAa,WAAW,CAAC;AAAA,UACjD;AACA,0BAAgB,CAAC;AACjB;AAAA,QACJ;AAAA,QAEA,KAAK,IAAsB;AACvB,uBAAa,aAAa,KAAK;AAC/B,0BAAgB,CAAC;AACjB;AAAA,QACJ;AAAA,QACA,KAAK,IAAmB;AACpB,uBAAa,aAAa,MAAM;AAChC,0BAAgB,CAAC;AACjB;AAAA,QACJ;AAAA,QACA,KAAK,KAAiB;AAClB,uBAAa,aAAa,OAAO;AACjC,0BAAgB,CAAC;AACjB;AAAA,QACJ;AAAA,QACA,KAAK,IAAe;AAChB,uBAAa,aAAa,QAAQ;AAClC,0BAAgB,CAAC;AACjB;AAAA,QACJ;AAAA,QAEA,KAAK,IAAiB;AAClB,8BAAoB,SAAS,gBAAgB,OAAO;AACpD;AAAA,QACJ;AAAA,QACA,KAAK,IAAe;AAChB,8BAAoB,MAAM,gBAAgB,MAAM;AAChD;AAAA,QACJ;AAAA,QACA,KAAK,IAA4B;AAC7B,0BAAgB,CAAC;AAEjB,cAAI;AACJ,cAAI,YAAY;AAChB,cAAI,SAAS,WAAW,aAAa,MAAM,KAAgB;AAEvD,mBAAOC,SAAQ,CAAC;AAAA,UACpB,WACS,SAAS,WAAW,MAAM,aAAa,GAAG;AAC/C,wBAAY;AACZ,mBAAOA,SAAQ,CAAC;AAAA,UACpB,OACK;AACD,mBAAOA,SAAQ,CAAC;AAChB,gBAAI,SAAS,WAAW,aAAa,MAAM,OACvC,SAAS,WAAW,gBAAgB,CAAC,MACjC,IAAgB;AACpB,0BAAY;AACZ,qBAAOA,SAAQ,CAAC;AAAA,YACpB;AAAA,UACJ;AACA,0BAAgB,CAAC;AAEjB,cAAI,SAAS,gBAAgB;AAC7B,gBAAM,iBAAiB,YAAY,IAAI,SAAS,WAAW,aAAa,CAAC;AACzE,cAAI,gBAAgB;AAChB,qBAAS;AACT,gBAAI,SAAS,WAAW,gBAAgB,CAAC,MACrC,IAAgB;AAChB,oBAAM,IAAI,MAAM,cAAc;AAAA,YAClC;AACA,4BAAgB,CAAC;AAAA,UACrB,WACS,SAAS,WAAW,aAAa,MAAM,IAAgB;AAC5D,qBAAS,gBAAgB;AACzB,4BAAgB,CAAC;AAAA,UACrB;AAEA,cAAI,QAAQ;AACZ,cAAIC,cAAa;AACjB,cAAI,WAAW,UAAU;AACrB,gBAAI,QAAQ,SAAS,WAAW,aAAa,CAAC,GAAG;AAC7C,oBAAM,QAAQ,SAAS,WAAW,aAAa;AAC/C,kBAAI,aAAa,gBAAgB;AACjC,qBAAO,aAAa,SAAS,WACxB,SAAS,WAAW,UAAU,MAAM,SACjC,UAAU,UAAU,IAAI;AAC5B,8BAAc;AAAA,cAClB;AACA,kBAAI,SAAS,WAAW,UAAU,MAAM,OAAO;AAC3C,sBAAM,IAAI,MAAM,4BAA4B;AAAA,cAChD;AACA,sBAAQ,YAAY,SAAS,MAAM,gBAAgB,GAAG,UAAU,CAAC;AACjE,8BAAgB,aAAa;AAAA,YACjC,OACK;AACD,oBAAM,aAAa;AACnB,qBAAO,gBAAgB,SAAS,WAC1B,CAACH,cAAa,SAAS,WAAW,aAAa,CAAC,KAC9C,SAAS,WAAW,aAAa,MAC7B,MACJ,UAAU,aAAa,IAAI;AAC/B,iCAAiB;AAAA,cACrB;AACA,sBAAQ,YAAY,SAAS,MAAM,YAAY,aAAa,CAAC;AAAA,YACjE;AACA,4BAAgB,CAAC;AAEjB,kBAAM,cAAc,SAAS,WAAW,aAAa,IAAI;AAEzD,gBAAI,gBAAgB,KAAkB;AAClC,cAAAG,cAAa;AACb,8BAAgB,CAAC;AAAA,YACrB,WACS,gBAAgB,KAAkB;AACvC,cAAAA,cAAa;AACb,8BAAgB,CAAC;AAAA,YACrB;AAAA,UACJ;AACA,cAAI,SAAS,WAAW,aAAa,MACjC,IAA6B;AAC7B,kBAAM,IAAI,MAAM,qCAAqC;AAAA,UACzD;AACA,2BAAiB;AACjB,gBAAM,oBAAoB;AAAA,YACtB,MAAM,aAAa;AAAA,YACnB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,YAAAA;AAAA,UACJ;AACA,iBAAO,KAAK,iBAAiB;AAC7B;AAAA,QACJ;AAAA,QACA,KAAK,IAAgB;AACjB,cAAI,SAAS,WAAW,gBAAgB,CAAC,MAAM,IAAgB;AAC3D,mBAAO,KAAK;AAAA,cACR,MAAM,aAAa;AAAA,cACnB,MAAMD,SAAQ,CAAC,EAAE,YAAY;AAAA,cAC7B,MAAM,SAAS,WAAW,aAAa,MACnC,KACE,yBAAyB,IACzB;AAAA,YACV,CAAC;AACD;AAAA,UACJ;AACA,gBAAM,OAAOA,SAAQ,CAAC,EAAE,YAAY;AACpC,cAAI,OAAO;AACX,cAAI,SAAS,WAAW,aAAa,MACjC,IAA0B;AAC1B,gBAAI,cAAc,IAAI,IAAI,GAAG;AACzB,kBAAI,QAAQ,SAAS,WAAW,gBAAgB,CAAC,CAAC,GAAG;AACjD,sBAAM,IAAI,MAAM,mBAAmB,IAAI,mBAAmB;AAAA,cAC9D;AACA,qBAAO,CAAC;AACR,8BAAgB,cAAc,MAAM,UAAU,gBAAgB,CAAC;AAC/D,kBAAI,SAAS,WAAW,aAAa,MACjC,IAA2B;AAC3B,sBAAM,IAAI,MAAM,mCAAmC,IAAI,KAAK,QAAQ,GAAG;AAAA,cAC3E;AACA,+BAAiB;AAAA,YACrB,OACK;AACD,qBAAO,yBAAyB;AAChC,kBAAI,uBAAuB,IAAI,IAAI,GAAG;AAClC,sBAAM,OAAO,KAAK,WAAW,CAAC;AAC9B,oBAAI,SAAS,KAAK,WAAW,KAAK,SAAS,CAAC,KACxC,QAAQ,IAAI,GAAG;AACf,yBAAO,KAAK,MAAM,GAAG,EAAE;AAAA,gBAC3B;AAAA,cACJ;AACA,qBAAO,YAAY,IAAI;AAAA,YAC3B;AAAA,UACJ;AACA,iBAAO,KAAK,EAAE,MAAM,aAAa,QAAQ,MAAM,KAAK,CAAC;AACrD;AAAA,QACJ;AAAA,QACA,KAAK,IAAgB;AACjB,8BAAoB;AACpB,mBAAS,CAAC;AACV,0BAAgB,CAAC;AACjB;AAAA,QACJ;AAAA,QACA,SAAS;AACL,cAAI,SAAS,WAAW,MAAM,aAAa,GAAG;AAC1C,kBAAM,WAAW,SAAS,QAAQ,MAAM,gBAAgB,CAAC;AACzD,gBAAI,WAAW,GAAG;AACd,oBAAM,IAAI,MAAM,4BAA4B;AAAA,YAChD;AACA,4BAAgB,WAAW;AAE3B,gBAAI,OAAO,WAAW,GAAG;AACrB,8BAAgB,CAAC;AAAA,YACrB;AACA;AAAA,UACJ;AACA,cAAI,YAAY;AAChB,cAAI;AACJ,cAAI,cAAc,IAAmB;AACjC,6BAAiB;AACjB,mBAAO;AAAA,UACX,WACS,cAAc,KAAgB;AACnC,mBAAO;AACP,gBAAI,SAAS,WAAW,gBAAgB,CAAC,MAAM,KAAgB;AAC3D,2BAAa,aAAa,gBAAgB;AAC1C,8BAAgB,CAAC;AACjB;AAAA,YACJ;AAAA,UACJ,WACS,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC,GAAG;AACjD,mBAAOA,SAAQ,CAAC;AAAA,UACpB,OACK;AACD,kBAAM;AAAA,UACV;AACA,cAAI,SAAS,WAAW,aAAa,MAAM,OACvC,SAAS,WAAW,gBAAgB,CAAC,MAAM,KAAgB;AAC3D,wBAAY;AACZ,gBAAI,SAAS,WAAW,gBAAgB,CAAC,MACrC,IAAmB;AACnB,qBAAO;AACP,+BAAiB;AAAA,YACrB,OACK;AACD,qBAAOA,SAAQ,CAAC;AAAA,YACpB;AAAA,UACJ;AACA,iBAAO,KAAK,SAAS,MACf,EAAE,MAAM,aAAa,WAAW,UAAU,IAC1C,EAAE,MAAM,aAAa,KAAK,MAAM,UAAU,CAAC;AAAA,QACrD;AAAA,MACJ;AAAA,IACJ;AACA,sBAAoB;AACpB,SAAO;AACX;;;AClaA,IAAAE,mBAAqB;;;ACErB,IAAM,YAAY,oBAAI,IAAsC;EACxD,CAAC,aAAa,WAAW,EAAE;EAC3B,CAAC,aAAa,KAAK,EAAE;EACrB,CAAC,aAAa,WAAW,CAAC;EAC1B,CAAC,aAAa,QAAQ,CAAC;CAC1B;AAEK,SAAUC,aAAY,OAAuB;AAC/C,SAAO,CAAC,UAAU,IAAI,MAAM,IAAI;AACpC;AAEA,IAAM,aAAa,oBAAI,IAA6B;EAChD,CAAC,gBAAgB,QAAQ,EAAE;EAC3B,CAAC,gBAAgB,QAAQ,CAAC;EAC1B,CAAC,gBAAgB,KAAK,CAAC;EACvB,CAAC,gBAAgB,OAAO,CAAC;EACzB,CAAC,gBAAgB,KAAK,CAAC;EACvB,CAAC,gBAAgB,KAAK,CAAC;CAC1B;AASa,SAAP,gBAAiC,KAAuB;AAC3D,QAAM,QAAQ,IAAI,IAAI,YAAY;AAClC,WAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACjC,UAAM,UAAU,MAAM,CAAC;AAEvB,QAAI,UAAU;AAAG;AAEjB,aAAS,IAAI,IAAI,GAAG,KAAK,KAAK,UAAU,MAAM,CAAC,GAAG,KAAK;AACnD,YAAM,QAAQ,IAAI,IAAI,CAAC;AACvB,UAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AAClB,UAAI,CAAC,IAAI;AACT,YAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACtB,YAAM,CAAC,IAAI;;;AAGvB;AAEA,SAAS,aAAa,OAAuB;;AACzC,MAAI,QAAOC,MAAA,UAAU,IAAI,MAAM,IAAI,OAAC,QAAAA,QAAA,SAAAA,MAAI;AAExC,MAAI,MAAM,SAAS,aAAa,WAAW;AACvC,YAAO,KAAA,WAAW,IAAI,MAAM,MAAM,OAAC,QAAA,OAAA,SAAA,KAAI;AAEvC,QAAI,MAAM,WAAW,gBAAgB,UAAU,MAAM,SAAS,MAAM;AAEhE,aAAO;;AAGX,QAAI,MAAM,YAAY;AAKlB,eAAS;;aAEN,MAAM,SAAS,aAAa,QAAQ;AAC3C,QAAI,CAAC,MAAM,MAAM;AACb,aAAO;eACA,MAAM,SAAS,SAAS,MAAM,SAAS,YAAY;AAC1D,aAAO;eACA,MAAM,QAAQ,MAAM,IAAI,GAAG;AAElC,aAAO,KAAK,IACR,GAAG,MAAM,KAAK,IAAI,CAAC,MAAM,KAAK,IAAI,GAAG,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC;AAI9D,UAAI,OAAO,GAAG;AACV,eAAO;;WAER;AACH,aAAO;;;AAGf,SAAO;AACX;;;ACrFA,sBAAqB;AAUrB,IAAM,UAAU;AAChB,SAAS,YAAY,OAAa;AAC9B,SAAO,MAAM,QAAQ,SAAS,MAAM;AACxC;AAQA,IAAM,4BAA4B,oBAAI,IAAI;EACtC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACH;AAED,SAAS,iBACL,UACA,SAA2C;AAE3C,SAAO,OAAO,SAAS,eAAe,YAChC,SAAS,aACT,SAAS,eAAe,WACxB,CAAC,CAAC,QAAQ,aACV,CAAC,QAAQ,WAAW,0BAA0B,IAAI,SAAS,IAAI;AACzE;AAKO,IAAM,iBAOT;EACA,OAAO,MAAM,MAAM,SAAO;AACtB,UAAM,EAAE,SAAAC,SAAO,IAAK;AACpB,UAAM,EAAE,KAAI,IAAK;AACjB,QAAI,EAAE,MAAK,IAAK;AAEhB,QAAI,iBAAiB,MAAM,OAAO,GAAG;AACjC,cAAQ,MAAM,YAAW;AAEzB,aAAO,CAAC,SAAQ;AACZ,cAAM,OAAOA,SAAQ,kBAAkB,MAAM,IAAI;AACjD,eACI,QAAQ,QACR,KAAK,WAAW,MAAM,UACtB,KAAK,YAAW,MAAO,SACvB,KAAK,IAAI;MAEjB;;AAGJ,WAAO,CAAC,SACJA,SAAQ,kBAAkB,MAAM,IAAI,MAAM,SAAS,KAAK,IAAI;EACpE;EACA,OAAO,MAAM,MAAM,SAAO;AACtB,UAAM,EAAE,SAAAA,SAAO,IAAK;AACpB,UAAM,EAAE,KAAI,IAAK;AACjB,QAAI,EAAE,MAAK,IAAK;AAChB,UAAM,MAAM,MAAM;AAElB,QAAI,iBAAiB,MAAM,OAAO,GAAG;AACjC,cAAQ,MAAM,YAAW;AAEzB,aAAO,SAAS,SAAS,MAAI;AACzB,cAAM,OAAOA,SAAQ,kBAAkB,MAAM,IAAI;AACjD,eACI,QAAQ,SACP,KAAK,WAAW,OAAO,KAAK,OAAO,GAAG,MAAM,QAC7C,KAAK,OAAO,GAAG,GAAG,EAAE,YAAW,MAAO,SACtC,KAAK,IAAI;MAEjB;;AAGJ,WAAO,SAAS,OAAO,MAAI;AACvB,YAAM,OAAOA,SAAQ,kBAAkB,MAAM,IAAI;AACjD,aACI,QAAQ,SACP,KAAK,WAAW,OAAO,KAAK,OAAO,GAAG,MAAM,QAC7C,KAAK,OAAO,GAAG,GAAG,MAAM,SACxB,KAAK,IAAI;IAEjB;EACJ;EACA,QAAQ,MAAM,MAAM,SAAO;AACvB,UAAM,EAAE,SAAAA,SAAO,IAAK;AACpB,UAAM,EAAE,MAAM,MAAK,IAAK;AACxB,QAAI,KAAK,KAAK,KAAK,GAAG;AAClB,aAAO,gBAAAC,QAAS;;AAGpB,UAAM,QAAQ,IAAI,OACd,YAAY,YAAY,KAAK,CAAC,aAC9B,iBAAiB,MAAM,OAAO,IAAI,MAAM,EAAE;AAG9C,WAAO,SAAS,QAAQ,MAAI;AACxB,YAAM,OAAOD,SAAQ,kBAAkB,MAAM,IAAI;AACjD,aACI,QAAQ,QACR,KAAK,UAAU,MAAM,UACrB,MAAM,KAAK,IAAI,KACf,KAAK,IAAI;IAEjB;EACJ;EACA,OAAO,MAAM,EAAE,KAAI,GAAI,EAAE,SAAAA,SAAO,GAAE;AAC9B,WAAO,CAAC,SAASA,SAAQ,UAAU,MAAM,IAAI,KAAK,KAAK,IAAI;EAC/D;EACA,MAAM,MAAM,MAAM,SAAO;AACrB,UAAM,EAAE,SAAAA,SAAO,IAAK;AACpB,UAAM,EAAE,KAAI,IAAK;AACjB,QAAI,EAAE,MAAK,IAAK;AAChB,UAAM,MAAM,MAAM;AAElB,QAAI,QAAQ,GAAG;AACX,aAAO,gBAAAC,QAAS;;AAGpB,QAAI,iBAAiB,MAAM,OAAO,GAAG;AACjC,cAAQ,MAAM,YAAW;AAEzB,aAAO,CAAC,SAAQ;AACZ,cAAM,OAAOD,SAAQ,kBAAkB,MAAM,IAAI;AACjD,eACI,QAAQ,QACR,KAAK,UAAU,OACf,KAAK,OAAO,GAAG,GAAG,EAAE,YAAW,MAAO,SACtC,KAAK,IAAI;MAEjB;;AAGJ,WAAO,CAAC,SAAQ;;AACZ,aAAA,CAAC,GAACE,MAAAF,SAAQ,kBAAkB,MAAM,IAAI,OAAC,QAAAE,QAAA,SAAA,SAAAA,IAAE,WAAW,KAAK,MACzD,KAAK,IAAI;;EACjB;EACA,IAAI,MAAM,MAAM,SAAO;AACnB,UAAM,EAAE,SAAAF,SAAO,IAAK;AACpB,UAAM,EAAE,KAAI,IAAK;AACjB,QAAI,EAAE,MAAK,IAAK;AAChB,UAAM,MAAM,CAAC,MAAM;AAEnB,QAAI,QAAQ,GAAG;AACX,aAAO,gBAAAC,QAAS;;AAGpB,QAAI,iBAAiB,MAAM,OAAO,GAAG;AACjC,cAAQ,MAAM,YAAW;AAEzB,aAAO,CAAC,SAAQ;;AACZ,iBAAAC,MAAAF,SACK,kBAAkB,MAAM,IAAI,OAAC,QAAAE,QAAA,SAAA,SAAAA,IAC5B,OAAO,GAAG,EACX,YAAW,OAAO,SAAS,KAAK,IAAI;;;AAGjD,WAAO,CAAC,SAAQ;;AACZ,aAAA,CAAC,GAACA,MAAAF,SAAQ,kBAAkB,MAAM,IAAI,OAAC,QAAAE,QAAA,SAAA,SAAAA,IAAE,SAAS,KAAK,MACvD,KAAK,IAAI;;EACjB;EACA,IAAI,MAAM,MAAM,SAAO;AACnB,UAAM,EAAE,SAAAF,SAAO,IAAK;AACpB,UAAM,EAAE,MAAM,MAAK,IAAK;AAExB,QAAI,UAAU,IAAI;AACd,aAAO,gBAAAC,QAAS;;AAGpB,QAAI,iBAAiB,MAAM,OAAO,GAAG;AACjC,YAAM,QAAQ,IAAI,OAAO,YAAY,KAAK,GAAG,GAAG;AAEhD,aAAO,SAAS,MAAM,MAAI;AACtB,cAAM,OAAOD,SAAQ,kBAAkB,MAAM,IAAI;AACjD,eACI,QAAQ,QACR,KAAK,UAAU,MAAM,UACrB,MAAM,KAAK,IAAI,KACf,KAAK,IAAI;MAEjB;;AAGJ,WAAO,CAAC,SAAQ;;AACZ,aAAA,CAAC,GAACE,MAAAF,SAAQ,kBAAkB,MAAM,IAAI,OAAC,QAAAE,QAAA,SAAA,SAAAA,IAAE,SAAS,KAAK,MACvD,KAAK,IAAI;;EACjB;EACA,IAAI,MAAM,MAAM,SAAO;AACnB,UAAM,EAAE,SAAAF,SAAO,IAAK;AACpB,UAAM,EAAE,KAAI,IAAK;AACjB,QAAI,EAAE,MAAK,IAAK;AAEhB,QAAI,UAAU,IAAI;AACd,aAAO,CAAC,SACJ,CAAC,CAACA,SAAQ,kBAAkB,MAAM,IAAI,KAAK,KAAK,IAAI;eACjD,iBAAiB,MAAM,OAAO,GAAG;AACxC,cAAQ,MAAM,YAAW;AAEzB,aAAO,CAAC,SAAQ;AACZ,cAAM,OAAOA,SAAQ,kBAAkB,MAAM,IAAI;AACjD,gBACK,QAAQ,QACL,KAAK,WAAW,MAAM,UACtB,KAAK,YAAW,MAAO,UAC3B,KAAK,IAAI;MAEjB;;AAGJ,WAAO,CAAC,SACJA,SAAQ,kBAAkB,MAAM,IAAI,MAAM,SAAS,KAAK,IAAI;EACpE;;;;AC5QJ,IAAM,aAAa,oBAAI,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;AAC9C,IAAM,OAAO,IAAI,WAAW,CAAC;AAC7B,IAAM,OAAO,IAAI,WAAW,CAAC;AASvB,SAAUG,OAAM,SAAe;AACjC,YAAU,QAAQ,KAAI,EAAG,YAAW;AAEpC,MAAI,YAAY,QAAQ;AACpB,WAAO,CAAC,GAAG,CAAC;aACL,YAAY,OAAO;AAC1B,WAAO,CAAC,GAAG,CAAC;;AAKhB,MAAI,MAAM;AAEV,MAAI,IAAI;AACR,MAAI,OAAO,SAAQ;AACnB,MAAI,SAAS,WAAU;AAEvB,MAAI,MAAM,QAAQ,UAAU,QAAQ,OAAO,GAAG,MAAM,KAAK;AACrD;AACA,QAAI,QAAQ,WAAM,QAAN,WAAM,SAAN,SAAU;AAEtB,mBAAc;AAEd,QAAI,MAAM,QAAQ,QAAQ;AACtB,aAAO,SAAQ;AACf,qBAAc;AACd,eAAS,WAAU;WAChB;AACH,aAAO,SAAS;;;AAKxB,MAAI,WAAW,QAAQ,MAAM,QAAQ,QAAQ;AACzC,UAAM,IAAI,MAAM,kCAAkC,OAAO,IAAI;;AAGjE,SAAO,CAAC,GAAG,OAAO,MAAM;AAExB,WAAS,WAAQ;AACb,QAAI,QAAQ,OAAO,GAAG,MAAM,KAAK;AAC7B;AACA,aAAO;;AAGX,QAAI,QAAQ,OAAO,GAAG,MAAM,KAAK;AAC7B;;AAGJ,WAAO;EACX;AAEA,WAAS,aAAU;AACf,UAAM,QAAQ;AACd,QAAI,QAAQ;AAEZ,WACI,MAAM,QAAQ,UACd,QAAQ,WAAW,GAAG,KAAK,QAC3B,QAAQ,WAAW,GAAG,KAAK,MAC7B;AACE,cAAQ,QAAQ,MAAM,QAAQ,WAAW,GAAG,IAAI;AAChD;;AAIJ,WAAO,QAAQ,QAAQ,OAAO;EAClC;AAEA,WAAS,iBAAc;AACnB,WACI,MAAM,QAAQ,UACd,WAAW,IAAI,QAAQ,WAAW,GAAG,CAAC,GACxC;AACE;;EAER;AACJ;;;AC3FA,IAAAC,mBAAqB;AAsBf,SAAU,QACZ,QAA8B;AAE9B,QAAM,IAAI,OAAO,CAAC;AAElB,QAAM,IAAI,OAAO,CAAC,IAAI;AAStB,MAAI,IAAI,KAAK,KAAK;AAAG,WAAO,iBAAAC,QAAS;AAGrC,MAAI,MAAM;AAAI,WAAO,CAAC,UAAU,SAAS;AACzC,MAAI,MAAM;AAAG,WAAO,CAAC,UAAU,UAAU;AAEzC,MAAI,MAAM;AAAG,WAAO,IAAI,IAAI,iBAAAA,QAAS,WAAW,CAAC,UAAU,SAAS;AAOpE,QAAM,OAAO,KAAK,IAAI,CAAC;AAEvB,QAAM,QAAS,IAAI,OAAQ,QAAQ;AAEnC,SAAO,IAAI,IACL,CAAC,UAAU,SAAS,KAAK,QAAQ,SAAS,OAC1C,CAAC,UAAU,SAAS,KAAK,QAAQ,SAAS;AACpD;;;AC5Bc,SAAP,SAA0B,SAAe;AAC5C,SAAO,QAAQC,OAAM,OAAO,CAAC;AACjC;;;AC7BA,IAAAC,mBAAqB;AAUrB,SAAS,aACL,MACAC,UAAmC;AAEnC,SAAO,CAAC,SAAQ;AACZ,UAAM,SAASA,SAAQ,UAAU,IAAI;AACrC,WAAO,UAAU,QAAQA,SAAQ,MAAM,MAAM,KAAK,KAAK,IAAI;EAC/D;AACJ;AAEO,IAAM,UAAkC;EAC3C,SAAS,MAAM,MAAM,EAAE,SAAAA,SAAO,GAAE;AAC5B,WAAO,SAAS,SAAS,MAAI;AACzB,aAAO,KAAK,IAAI,KAAKA,SAAQ,QAAQ,IAAI,EAAE,SAAS,IAAI;IAC5D;EACJ;EACA,UAAU,MAAM,MAAM,EAAE,SAAAA,SAAO,GAAE;AAC7B,UAAM,QAAQ,KAAK,YAAW;AAE9B,WAAO,SAAS,UAAU,MAAI;AAC1B,aACI,KAAK,IAAI,KACTA,SAAQ,QAAQ,IAAI,EAAE,YAAW,EAAG,SAAS,KAAK;IAE1D;EACJ;;EAGA,YAAY,MAAM,MAAM,EAAE,SAAAA,UAAS,OAAM,GAAE;AACvC,UAAM,OAAO,SAAU,IAAI;AAE3B,QAAI,SAAS,iBAAAC,QAAS;AAAW,aAAO,iBAAAA,QAAS;AACjD,QAAI,SAAS,iBAAAA,QAAS;AAAU,aAAO,aAAa,MAAMD,QAAO;AAEjE,WAAO,SAAS,SAAS,MAAI;AACzB,YAAM,WAAWA,SAAQ,YAAY,IAAI;AACzC,UAAI,MAAM;AAEV,eAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACtC,YAAI,OAAO,MAAM,SAAS,CAAC,CAAC;AAAG;AAC/B,YAAIA,SAAQ,MAAM,SAAS,CAAC,CAAC,GAAG;AAC5B;;;AAIR,aAAO,KAAK,GAAG,KAAK,KAAK,IAAI;IACjC;EACJ;EACA,iBAAiB,MAAM,MAAM,EAAE,SAAAA,UAAS,OAAM,GAAE;AAC5C,UAAM,OAAO,SAAU,IAAI;AAE3B,QAAI,SAAS,iBAAAC,QAAS;AAAW,aAAO,iBAAAA,QAAS;AACjD,QAAI,SAAS,iBAAAA,QAAS;AAAU,aAAO,aAAa,MAAMD,QAAO;AAEjE,WAAO,SAAS,aAAa,MAAI;AAC7B,YAAM,WAAWA,SAAQ,YAAY,IAAI;AACzC,UAAI,MAAM;AAEV,eAAS,IAAI,SAAS,SAAS,GAAG,KAAK,GAAG,KAAK;AAC3C,YAAI,OAAO,MAAM,SAAS,CAAC,CAAC;AAAG;AAC/B,YAAIA,SAAQ,MAAM,SAAS,CAAC,CAAC,GAAG;AAC5B;;;AAIR,aAAO,KAAK,GAAG,KAAK,KAAK,IAAI;IACjC;EACJ;EACA,cAAc,MAAM,MAAM,EAAE,SAAAA,UAAS,OAAM,GAAE;AACzC,UAAM,OAAO,SAAU,IAAI;AAE3B,QAAI,SAAS,iBAAAC,QAAS;AAAW,aAAO,iBAAAA,QAAS;AACjD,QAAI,SAAS,iBAAAA,QAAS;AAAU,aAAO,aAAa,MAAMD,QAAO;AAEjE,WAAO,SAAS,UAAU,MAAI;AAC1B,YAAM,WAAWA,SAAQ,YAAY,IAAI;AACzC,UAAI,MAAM;AAEV,eAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACtC,cAAM,iBAAiB,SAAS,CAAC;AACjC,YAAI,OAAO,MAAM,cAAc;AAAG;AAClC,YACIA,SAAQ,MAAM,cAAc,KAC5BA,SAAQ,QAAQ,cAAc,MAAMA,SAAQ,QAAQ,IAAI,GAC1D;AACE;;;AAIR,aAAO,KAAK,GAAG,KAAK,KAAK,IAAI;IACjC;EACJ;EACA,mBAAmB,MAAM,MAAM,EAAE,SAAAA,UAAS,OAAM,GAAE;AAC9C,UAAM,OAAO,SAAU,IAAI;AAE3B,QAAI,SAAS,iBAAAC,QAAS;AAAW,aAAO,iBAAAA,QAAS;AACjD,QAAI,SAAS,iBAAAA,QAAS;AAAU,aAAO,aAAa,MAAMD,QAAO;AAEjE,WAAO,SAAS,cAAc,MAAI;AAC9B,YAAM,WAAWA,SAAQ,YAAY,IAAI;AACzC,UAAI,MAAM;AAEV,eAAS,IAAI,SAAS,SAAS,GAAG,KAAK,GAAG,KAAK;AAC3C,cAAM,iBAAiB,SAAS,CAAC;AACjC,YAAI,OAAO,MAAM,cAAc;AAAG;AAClC,YACIA,SAAQ,MAAM,cAAc,KAC5BA,SAAQ,QAAQ,cAAc,MAAMA,SAAQ,QAAQ,IAAI,GAC1D;AACE;;;AAIR,aAAO,KAAK,GAAG,KAAK,KAAK,IAAI;IACjC;EACJ;;EAGA,KAAK,MAAM,OAAO,EAAE,SAAAA,SAAO,GAAE;AACzB,WAAO,CAAC,SAAQ;AACZ,YAAM,SAASA,SAAQ,UAAU,IAAI;AACrC,cAAQ,UAAU,QAAQ,CAACA,SAAQ,MAAM,MAAM,MAAM,KAAK,IAAI;IAClE;EACJ;EAEA,MACI,MACA,MACA,SACA,SAAgB;AAEhB,UAAM,EAAE,OAAM,IAAK;AAEnB,QAAI,CAAC,WAAW,QAAQ,WAAW,GAAG;AAElC,aAAO,QAAQ,MAAM,EAAE,MAAM,MAAM,OAAO;;AAG9C,QAAI,QAAQ,WAAW,GAAG;AAEtB,aAAO,CAAC,SAAS,OAAO,QAAQ,CAAC,GAAG,IAAI,KAAK,KAAK,IAAI;;AAG1D,WAAO,CAAC,SAAS,QAAQ,SAAS,IAAI,KAAK,KAAK,IAAI;EACxD;EAEA,OAAO,mBAAmB,WAAW;EACrC,SAAS,mBAAmB,WAAW;EACvC,QAAQ,mBAAmB,UAAU;;AASzC,SAAS,mBACL,MAA4C;AAE5C,SAAO,SAAS,cAAc,MAAM,OAAO,EAAE,SAAAA,SAAO,GAAE;AAClD,UAAM,OAAOA,SAAQ,IAAI;AAEzB,QAAI,OAAO,SAAS,YAAY;AAC5B,aAAO,iBAAAC,QAAS;;AAGpB,WAAO,SAAS,OAAO,MAAI;AACvB,aAAO,KAAK,IAAI,KAAK,KAAK,IAAI;IAClC;EACJ;AACJ;;;AC5KO,IAAM,UAAkC;EAC3C,MAAM,MAAM,EAAE,SAAAC,SAAO,GAAE;AACnB,WAAO,CAACA,SAAQ,YAAY,IAAI,EAAE,KAC9B,CAACC;;MAEGD,SAAQ,MAAMC,KAAI,KAAKD,SAAQ,QAAQC,KAAI,MAAM;KAAE;EAE/D;EAEA,cAAc,MAAM,EAAE,SAAAD,UAAS,OAAM,GAAE;AACnC,QAAIA,SAAQ,oBAAoB;AAC5B,aAAOA,SAAQ,mBAAmB,IAAI,KAAK;;AAG/C,UAAM,aAAaA,SACd,YAAY,IAAI,EAChB,KAAK,CAACC,UAASD,SAAQ,MAAMC,KAAI,CAAC;AACvC,WAAO,cAAc,QAAQ,OAAO,MAAM,UAAU;EACxD;EACA,aAAa,MAAM,EAAE,SAAAD,UAAS,OAAM,GAAE;AAClC,UAAM,WAAWA,SAAQ,YAAY,IAAI;AAEzC,aAAS,IAAI,SAAS,SAAS,GAAG,KAAK,GAAG,KAAK;AAC3C,UAAI,OAAO,MAAM,SAAS,CAAC,CAAC;AAAG,eAAO;AACtC,UAAIA,SAAQ,MAAM,SAAS,CAAC,CAAC;AAAG;;AAGpC,WAAO;EACX;EACA,gBAAgB,MAAM,EAAE,SAAAA,UAAS,OAAM,GAAE;AACrC,UAAM,WAAWA,SAAQ,YAAY,IAAI;AACzC,UAAM,WAAWA,SAAQ,QAAQ,IAAI;AAErC,aAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACtC,YAAM,iBAAiB,SAAS,CAAC;AACjC,UAAI,OAAO,MAAM,cAAc;AAAG,eAAO;AACzC,UACIA,SAAQ,MAAM,cAAc,KAC5BA,SAAQ,QAAQ,cAAc,MAAM,UACtC;AACE;;;AAIR,WAAO;EACX;EACA,eAAe,MAAM,EAAE,SAAAA,UAAS,OAAM,GAAE;AACpC,UAAM,WAAWA,SAAQ,YAAY,IAAI;AACzC,UAAM,WAAWA,SAAQ,QAAQ,IAAI;AAErC,aAAS,IAAI,SAAS,SAAS,GAAG,KAAK,GAAG,KAAK;AAC3C,YAAM,iBAAiB,SAAS,CAAC;AACjC,UAAI,OAAO,MAAM,cAAc;AAAG,eAAO;AACzC,UACIA,SAAQ,MAAM,cAAc,KAC5BA,SAAQ,QAAQ,cAAc,MAAM,UACtC;AACE;;;AAIR,WAAO;EACX;EACA,eAAe,MAAM,EAAE,SAAAA,UAAS,OAAM,GAAE;AACpC,UAAM,WAAWA,SAAQ,QAAQ,IAAI;AAErC,WAAOA,SACF,YAAY,IAAI,EAChB,MACG,CAAC,YACG,OAAO,MAAM,OAAO,KACpB,CAACA,SAAQ,MAAM,OAAO,KACtBA,SAAQ,QAAQ,OAAO,MAAM,QAAQ;EAErD;EACA,aAAa,MAAM,EAAE,SAAAA,UAAS,OAAM,GAAE;AAClC,WAAOA,SACF,YAAY,IAAI,EAChB,MACG,CAAC,YAAY,OAAO,MAAM,OAAO,KAAK,CAACA,SAAQ,MAAM,OAAO,CAAC;EAEzE;;AAGE,SAAU,iBACZ,MACA,MACA,WACA,UAAgB;AAEhB,MAAI,cAAc,MAAM;AACpB,QAAI,KAAK,SAAS,UAAU;AACxB,YAAM,IAAI,MAAM,iBAAiB,IAAI,uBAAuB;;aAEzD,KAAK,WAAW,UAAU;AACjC,UAAM,IAAI,MAAM,iBAAiB,IAAI,6BAA6B;;AAE1E;;;ACxGO,IAAM,UAAkC;;EAG3C,YAAY;EACZ,MAAM;;;EAKN,UAAU;;;;;EAKV,SAAS;EACT,SACI;EACJ,UAAU;EACV,UAAU;;;EAKV,UACI;EAEJ,UAAU;EACV,MAAM;EACN,UAAU;EACV,OAAO;EACP,OAAO;EACP,OAAO;EACP,QAAQ;EAER,QAAQ;EACR,QAAQ;EAER,QAAQ;EACR,OAAO;EACP,MAAM;;;;ACzCV,IAAAE,mBAAqB;AAUd,IAAM,sBAAsB,CAAA;AAE7B,SAAU,YACZ,MACAC,UAAmC;AAEnC,MAAI,SAAS,iBAAAC,QAAS;AAAW,WAAO,iBAAAA,QAAS;AACjD,SAAO,CAAC,SAAeD,SAAQ,MAAM,IAAI,KAAK,KAAK,IAAI;AAC3D;AAUM,SAAU,gBACZ,MACAA,UAAmC;AAEnC,QAAM,WAAWA,SAAQ,YAAY,IAAI;AACzC,MAAI,SAAS,UAAU;AAAG,WAAO,CAAA;AACjC,QAAM,YAAY,SAAS,QAAQ,IAAI;AACvC,MAAI,YAAY,KAAK,cAAc,SAAS,SAAS;AAAG,WAAO,CAAA;AAC/D,SAAO,SAAS,MAAM,YAAY,CAAC,EAAE,OAAOA,SAAQ,KAAK;AAC7D;AAEA,SAAS,YACL,SAA2C;AAG3C,SAAO;IACH,SAAS,CAAC,CAAC,QAAQ;IACnB,yBAAyB,CAAC,CAAC,QAAQ;IACnC,eAAe,CAAC,CAAC,QAAQ;IACzB,YAAY,CAAC,CAAC,QAAQ;IACtB,cAAc,CAAC,CAAC,QAAQ;IACxB,SAAS,QAAQ;IACjB,SAAS,QAAQ;IACjB,QAAQ,QAAQ;;AAExB;AAEA,IAAM,KAAgB,CAAC,MAAM,OAAO,SAAS,SAASE,kBAAgB;AAClE,QAAM,OAAOA,cAAa,OAAO,YAAY,OAAO,GAAG,OAAO;AAE9D,SAAO,SAAS,iBAAAD,QAAS,WACnB,OACA,SAAS,iBAAAA,QAAS,YAClB,iBAAAA,QAAS,YACT,CAAC,SAAS,KAAK,IAAI,KAAK,KAAK,IAAI;AAC3C;AAOO,IAAM,aAAwC;EACjD;;;;EAIA,SAAS;EACT,OAAO;EACP,IAAI,MAAM,OAAO,SAAS,SAASC,eAAY;AAC3C,UAAM,OAAOA,cAAa,OAAO,YAAY,OAAO,GAAG,OAAO;AAE9D,WAAO,SAAS,iBAAAD,QAAS,YACnB,OACA,SAAS,iBAAAA,QAAS,WAClB,iBAAAA,QAAS,YACT,CAAC,SAAS,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI;EAC5C;EACA,IACI,MACA,WACA,SACA,UACAC,eAA6C;AAE7C,UAAM,EAAE,SAAAF,SAAO,IAAK;AAEpB,UAAM,OAAO,YAAY,OAAO;AAChC,SAAK,mBAAmB;AAExB,UAAM,UAAU,UAAU,KAAK,CAAC,MAAM,EAAE,KAAKG,YAAW,CAAC;;MAElD,CAAC,mBAAmB;QACrB;AAEN,UAAM,WAAWD,cAAa,WAAW,MAAM,OAAO;AAEtD,QAAI,aAAa,iBAAAD,QAAS;AAAW,aAAO,iBAAAA,QAAS;AAErD,UAAM,aAAa,YAAY,UAAUD,QAAO;AAGhD,QAAI,WAAW,aAAa,iBAAAC,QAAS,UAAU;AAK3C,YAAM,EAAE,yBAAyB,MAAK,IAAK;AAE3C,aAAO,CAAC,SAAQ;AACZ,YAAI,CAAC,KAAK,IAAI;AAAG,iBAAO;AAExB,gBAAQ,CAAC,IAAI;AACb,cAAM,SAASD,SAAQ,YAAY,IAAI;AACvC,cAAM,eAAe,yBACf,CAAC,GAAG,QAAQ,GAAG,gBAAgB,MAAMA,QAAO,CAAC,IAC7C;AAEN,eAAOA,SAAQ,UAAU,YAAY,YAAY;MACrD;;AAGJ,WAAO,CAAC,SACJ,KAAK,IAAI,KACTA,SAAQ,UAAU,YAAYA,SAAQ,YAAY,IAAI,CAAC;EAC/D;;;;AC/GE,SAAU,sBACZ,MACA,UACA,SACA,SACAI,eAA6C;;AAE7C,QAAM,EAAE,MAAM,KAAI,IAAK;AAEvB,MAAI,MAAM,QAAQ,IAAI,GAAG;AACrB,QAAI,EAAE,QAAQ,aAAa;AACvB,YAAM,IAAI,MAAM,yBAAyB,IAAI,IAAI,IAAI,GAAG;;AAG5D,WAAO,WAAW,IAAI,EAAE,MAAM,MAAM,SAAS,SAASA,aAAY;;AAGtE,QAAM,cAAaC,MAAA,QAAQ,aAAO,QAAAA,QAAA,SAAA,SAAAA,IAAG,IAAI;AAEzC,QAAM,eACF,OAAO,eAAe,WAAW,aAAa,QAAQ,IAAI;AAE9D,MAAI,OAAO,iBAAiB,UAAU;AAClC,QAAI,QAAQ,MAAM;AACd,YAAM,IAAI,MAAM,UAAU,IAAI,6BAA6B;;AAI/D,UAAM,QAAQ,MAAM,YAAY;AAChC,WAAO,WAAW,IAAI,EAAE,MAAM,OAAO,SAAS,SAASD,aAAY;;AAGvE,MAAI,OAAO,eAAe,YAAY;AAClC,qBAAiB,YAAY,MAAM,MAAM,CAAC;AAE1C,WAAO,CAAC,SAAS,WAAW,MAAM,IAAI,KAAK,KAAK,IAAI;;AAGxD,MAAI,QAAQ,SAAS;AACjB,WAAO,QAAQ,IAAI,EAAE,MAAM,MAAgB,SAAS,OAAO;;AAG/D,MAAI,QAAQ,SAAS;AACjB,UAAM,SAAS,QAAQ,IAAI;AAC3B,qBAAiB,QAAQ,MAAM,MAAM,CAAC;AAEtC,WAAO,CAAC,SAAS,OAAO,MAAM,SAAS,IAAI,KAAK,KAAK,IAAI;;AAG7D,QAAM,IAAI,MAAM,yBAAyB,IAAI,EAAE;AACnD;;;AC9DA,SAAS,iBACL,MACAE,UAAmC;AAEnC,QAAM,SAASA,SAAQ,UAAU,IAAI;AACrC,MAAI,UAAUA,SAAQ,MAAM,MAAM,GAAG;AACjC,WAAO;;AAEX,SAAO;AACX;AAMM,SAAU,uBACZ,MACA,UACA,SACA,SACAC,eAA6C;AAE7C,QAAM,EAAE,SAAAD,UAAS,OAAM,IAAK;AAE5B,UAAQ,SAAS,MAAM;IACnB,KAAK,aAAa,eAAe;AAC7B,YAAM,IAAI,MAAM,iDAAiD;;IAErE,KAAK,aAAa,kBAAkB;AAChC,YAAM,IAAI,MACN,wDAAwD;;IAGhE,KAAK,aAAa,WAAW;AACzB,UAAI,SAAS,aAAa,MAAM;AAC5B,cAAM,IAAI,MACN,2DAA2D;;AAInE,UAAI,CAAC,QAAQ,WAAW,QAAQ,yBAAyB;AACrD,iBAAS,OAAO,SAAS,KAAK,YAAW;;AAE7C,aAAO,eAAe,SAAS,MAAM,EAAE,MAAM,UAAU,OAAO;;IAElE,KAAK,aAAa,QAAQ;AACtB,aAAO,sBACH,MACA,UACA,SACA,SACAC,aAAY;;IAIpB,KAAK,aAAa,KAAK;AACnB,UAAI,SAAS,aAAa,MAAM;AAC5B,cAAM,IAAI,MACN,0DAA0D;;AAIlE,UAAI,EAAE,KAAI,IAAK;AAEf,UAAI,CAAC,QAAQ,WAAW,QAAQ,eAAe;AAC3C,eAAO,KAAK,YAAW;;AAG3B,aAAO,SAAS,IAAI,MAAiB;AACjC,eAAOD,SAAQ,QAAQ,IAAI,MAAM,QAAQ,KAAK,IAAI;MACtD;;IAIJ,KAAK,aAAa,YAAY;AAC1B,UACI,QAAQ,iBAAiB,SACzB,OAAO,YAAY,aACrB;AACE,eAAO,SAAS,WAAW,MAAiB;AACxC,cAAI,UAA8B;AAElC,iBAAQ,UAAU,iBAAiB,SAASA,QAAO,GAAI;AACnD,gBAAI,KAAK,OAAO,GAAG;AACf,qBAAO;;;AAIf,iBAAO;QACX;;AAIJ,YAAM,eAAe,oBAAI,QAAO;AAChC,aAAO,SAAS,iBAAiB,MAAiB;AAC9C,YAAI,UAA8B;AAElC,eAAQ,UAAU,iBAAiB,SAASA,QAAO,GAAI;AACnD,cAAI,CAAC,aAAa,IAAI,OAAO,GAAG;AAC5B,gBAAIA,SAAQ,MAAM,OAAO,KAAK,KAAK,OAAO,GAAG;AACzC,qBAAO;;AAEX,yBAAa,IAAI,OAAO;;;AAIhC,eAAO;MACX;;IAEJ,KAAK,uBAAuB;AAExB,aAAO,SAAS,mBAAmB,MAAiB;AAChD,YAAI,UAA8B;AAElC,WAAG;AACC,cAAI,KAAK,OAAO;AAAG,mBAAO;iBACpB,UAAU,iBAAiB,SAASA,QAAO;AAErD,eAAO;MACX;;IAEJ,KAAK,aAAa,QAAQ;AACtB,aAAO,SAAS,OAAO,MAAiB;AACpC,eAAOA,SACF,YAAY,IAAI,EAChB,KAAK,CAACE,UAASF,SAAQ,MAAME,KAAI,KAAK,KAAKA,KAAI,CAAC;MACzD;;IAEJ,KAAK,aAAa,OAAO;AACrB,aAAO,SAAS,MAAM,MAAiB;AACnC,cAAM,SAASF,SAAQ,UAAU,IAAI;AACrC,eAAO,UAAU,QAAQA,SAAQ,MAAM,MAAM,KAAK,KAAK,MAAM;MACjE;;IAEJ,KAAK,aAAa,SAAS;AACvB,aAAO,SAAS,QAAQ,MAAiB;AACrC,cAAM,WAAWA,SAAQ,YAAY,IAAI;AAEzC,iBAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACtC,gBAAM,iBAAiB,SAAS,CAAC;AACjC,cAAI,OAAO,MAAM,cAAc;AAAG;AAClC,cAAIA,SAAQ,MAAM,cAAc,KAAK,KAAK,cAAc,GAAG;AACvD,mBAAO;;;AAIf,eAAO;MACX;;IAEJ,KAAK,aAAa,UAAU;AACxB,UAAIA,SAAQ,oBAAoB;AAC5B,eAAO,SAAS,SAAS,MAAiB;AACtC,gBAAM,WAAWA,SAAQ,mBAAoB,IAAI;AACjD,iBAAO,YAAY,QAAQ,KAAK,QAAQ;QAC5C;;AAGJ,aAAO,SAAS,SAAS,MAAiB;AACtC,cAAM,WAAWA,SAAQ,YAAY,IAAI;AACzC,YAAI;AAEJ,iBAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACtC,gBAAM,iBAAiB,SAAS,CAAC;AACjC,cAAI,OAAO,MAAM,cAAc;AAAG;AAClC,cAAIA,SAAQ,MAAM,cAAc,GAAG;AAC/B,0BAAc;;;AAItB,eAAO,CAAC,CAAC,eAAe,KAAK,WAAW;MAC5C;;IAEJ,KAAK,aAAa,WAAW;AACzB,UAAI,SAAS,aAAa,QAAQ,SAAS,cAAc,KAAK;AAC1D,cAAM,IAAI,MACN,oEAAoE;;AAI5E,aAAO;;;AAGnB;;;AX5KM,SAAUG,SACZ,UACA,SACA,SAAuB;AAEvB,QAAM,OAAO,cAAc,UAAU,SAAS,OAAO;AACrD,SAAO,YAAY,MAAM,QAAQ,OAAO;AAC5C;AAEM,SAAU,cACZ,UACA,SACA,SAAuB;AAEvB,QAAM,QAAQ,OAAO,aAAa,WAAW,MAAM,QAAQ,IAAI;AAC/D,SAAO,aAAgC,OAAO,SAAS,OAAO;AAClE;AAEA,SAAS,oBAAoB,GAAmB;AAC5C,SACI,EAAE,SAAS,aAAa,WACvB,EAAE,SAAS,WACP,MAAM,QAAQ,EAAE,IAAI,KACjB,EAAE,KAAK,KAAK,CAAC,SAAS,KAAK,KAAK,mBAAmB,CAAC;AAEpE;AAEA,IAAM,mBAA6B,EAAE,MAAM,aAAa,WAAU;AAClE,IAAM,4BAA8C;EAChD,MAAM;;AAEV,IAAM,cAAwB;EAC1B,MAAM,aAAa;EACnB,MAAM;EACN,MAAM;;AAOV,SAAS,WACL,OACA,EAAE,SAAAC,SAAO,GACT,SAAgB;AAGhB,QAAM,aAAa,CAAC,EAAC,YAAO,QAAP,YAAO,SAAA,SAAP,QAAS,MAAM,CAAC,MAAK;AACtC,UAAM,SAASA,SAAQ,MAAM,CAAC,KAAKA,SAAQ,UAAU,CAAC;AACtD,WAAO,MAAM,uBAAwB,UAAUA,SAAQ,MAAM,MAAM;EACvE,CAAC;AAED,aAAW,KAAK,OAAO;AACnB,QACI,EAAE,SAAS,KACXC,aAAY,EAAE,CAAC,CAAC,KAChB,EAAE,CAAC,EAAE,SAAS,aAAa,YAC7B;eAES,cAAc,CAAC,EAAE,KAAK,mBAAmB,GAAG;AACnD,QAAE,QAAQ,gBAAgB;WACvB;AACH;;AAGJ,MAAE,QAAQ,WAAW;;AAE7B;AAEM,SAAU,aACZ,OACA,SACA,SAAuB;;AAEvB,QAAM,QAAQ,eAAS;AAEvB,aAAUC,MAAA,QAAQ,aAAO,QAAAA,QAAA,SAAAA,MAAI;AAC7B,QAAM,iBAAiB,MAAM,QAAQ,OAAO;AAE5C,QAAM,eACF,YAAY,MAAM,QAAQ,OAAO,IAAI,UAAU,CAAC,OAAO;AAG3D,MAAI,QAAQ,qBAAqB,OAAO;AACpC,eAAW,OAAO,SAAS,YAAY;aAChC,MAAM,KAAK,CAAC,MAAM,EAAE,SAAS,KAAKD,aAAY,EAAE,CAAC,CAAC,CAAC,GAAG;AAC7D,UAAM,IAAI,MACN,mFAAmF;;AAI3F,MAAI,yBAAyB;AAE7B,QAAME,SAAQ,MACT,IAAI,CAAC,UAAS;AACX,QAAI,MAAM,UAAU,GAAG;AACnB,YAAM,CAAC,OAAO,MAAM,IAAI;AAExB,UACI,MAAM,SAAS,aAAa,UAC5B,MAAM,SAAS,SACjB;iBAGE,kBACA,OAAO,SAAS,aAAa,YAC/B;AACE,cAAM,CAAC,IAAI;iBAEX,OAAO,SAAS,aAAa,YAC7B,OAAO,SAAS,aAAa,SAC/B;AACE,iCAAyB;;;AAIjC,WAAO,aACH,OACA,SACA,YAAY;EAEpB,CAAC,EACA,OAAO,aAAa,iBAAAC,QAAS,SAAS;AAE3C,EAAAD,OAAM,yBAAyB;AAE/B,SAAOA;AACX;AAEA,SAAS,aACL,OACA,SACA,SAAgB;;AAEhB,SAAO,MAAM,OACT,CAAC,UAAU,SACP,aAAa,iBAAAC,QAAS,YAChB,iBAAAA,QAAS,YACT,uBACI,UACA,MACA,SACA,SACA,YAAY,IAE1BF,MAAA,QAAQ,cAAQ,QAAAA,QAAA,SAAAA,MAAI,iBAAAE,QAAS,QAAQ;AAE7C;AAEA,SAAS,YACL,GACA,GAA6B;AAE7B,MAAI,MAAM,iBAAAA,QAAS,aAAa,MAAM,iBAAAA,QAAS,UAAU;AACrD,WAAO;;AAEX,MAAI,MAAM,iBAAAA,QAAS,aAAa,MAAM,iBAAAA,QAAS,UAAU;AACrD,WAAO;;AAGX,SAAO,SAAS,QAAQ,MAAI;AACxB,WAAO,EAAE,IAAI,KAAK,EAAE,IAAI;EAC5B;AACJ;;;AHjKA,IAAM,gBAAgB,CAAO,GAAS,MAAY,MAAM;AACxD,IAAM,iBAAqE;EACvE,SAASC;EACT,QAAQ;;AAGZ,SAAS,qBACL,SAAoC;;AAMpC,QAAM,OAAmC,YAAO,QAAP,YAAO,SAAP,UAAW;AAEpD,GAAAC,MAAA,KAAK,aAAO,QAAAA,QAAA,SAAAA,MAAZ,KAAK,UAAYD;AAEjB,GAAA,KAAA,KAAK,YAAM,QAAA,OAAA,SAAA,KAAX,KAAK,UAAW,MAAA,KAAA,KAAK,aAAO,QAAA,OAAA,SAAA,SAAA,GAAE,YAAM,QAAA,OAAA,SAAA,KAAI;AAExC,SAAO;AACX;AAEA,SAAS,YACL,MAIqB;AAErB,SAAO,SAAS,WACZ,UACA,SACA,SAAuB;AAEvB,UAAM,OAAO,qBAAqB,OAAO;AAEzC,WAAO,KAAK,UAAU,MAAM,OAAO;EACvC;AACJ;AAKO,IAAME,WAAU,YAAYA,QAAU;AACtC,IAAM,iBAAiB,YAAY,aAAa;AAChD,IAAM,gBAAgB,YAAY,YAAY;AAErD,SAAS,gBACL,YAIM;AAEN,SAAO,SAAS,OACZC,QACA,UACA,SAAoC;AAEpC,UAAM,OAAO,qBAAqB,OAAO;AAEzC,QAAI,OAAOA,WAAU,YAAY;AAC7B,MAAAA,SAAQ,cAAiCA,QAAO,MAAM,QAAQ;;AAGlE,UAAM,mBAAmB,eACrB,UACA,KAAK,SACLA,OAAM,sBAAsB;AAEhC,WAAO,WAAWA,QAAO,kBAAkB,IAAI;EACnD;AACJ;AAEM,SAAU,eACZ,OACAC,UACA,yBAAyB,OAAK;AAM9B,MAAI,wBAAwB;AACxB,YAAQ,mBAAmB,OAAOA,QAAO;;AAG7C,SAAO,MAAM,QAAQ,KAAK,IACpBA,SAAQ,cAAc,KAAK,IAC3BA,SAAQ,YAAY,KAAK;AACnC;AAEA,SAAS,mBACL,MACAA,UAAmC;AAGnC,QAAM,QAAQ,MAAM,QAAQ,IAAI,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI;AACzD,QAAM,cAAc,MAAM;AAE1B,WAAS,IAAI,GAAG,IAAI,aAAa,KAAK;AAClC,UAAM,eAAe,gBAAgB,MAAM,CAAC,GAAGA,QAAO;AACtD,UAAM,KAAK,GAAG,YAAY;;AAE9B,SAAO;AACX;AAYO,IAAM,YAAY,gBACrB,CACID,QACA,OACA,YAEAA,WAAU,iBAAAE,QAAS,aAAa,CAAC,SAAS,MAAM,WAAW,IACrD,CAAA,IACA,QAAQ,QAAQ,QAAQF,QAAO,KAAK,CAAC;AAY5C,IAAM,YAAY,gBACrB,CACIA,QACA,OACA,YAEAA,WAAU,iBAAAE,QAAS,aAAa,CAAC,SAAS,MAAM,WAAW,IACrD,OACA,QAAQ,QAAQ,QAAQF,QAAO,KAAK,CAAC;AAc7C,SAAUG,IACZ,MACAH,QACA,SAAoC;AAEpC,QAAM,OAAO,qBAAqB,OAAO;AACzC,UAAQ,OAAOA,WAAU,aAAaA,SAAQD,SAAWC,QAAO,IAAI,GAChE,IAAI;AAEZ;;;Ae1LA,IAAM,EAAC,QAAO,IAAI;AAGlB,IAAMI,SAAQ,CAAC,EAAC,SAAQ,MAAM,aAAa;AAE3C,IAAMC,aAAY,CAAC,MAAM,aAAa,SAAS;AAAA,EAC7C,aAAWD,OAAM,OAAO,MACtB,KAAK,OAAO,KACZC,WAAU,MAAMC,aAAY,OAAO,CAAC;AAExC;AAEA,IAAMC,qBAAoB,CAAC,SAAS,SAAS,SAAS,UAC1B,QAAQ,UAAU,QAAQ,QAAQ,aAAa,IAAI;AAE/E,IAAMD,eAAc,CAAC,EAAC,WAAU,MAAM;AAEtC,IAAME,WAAU,CAAC,YAAY;AAC3B,QAAM,EAAC,UAAS,IAAI;AACpB,SAAO,WAAW,OAAO,IAAI,UAAU,YAAY,IAAI;AACzD;AAEA,IAAMC,aAAY,CAAC,EAAC,WAAU,MAAM;AAEpC,IAAMC,eAAc,aAAW;AAC7B,QAAM,EAAC,WAAU,IAAI;AACrB,SAAO,aAAaJ,aAAY,UAAU,IAAI;AAChD;AAEA,IAAMK,WAAU,UAAQ;AACtB,MAAI,QAAQ,IAAI;AACd,WAAO,KAAK,IAAIA,QAAO,EAAE,KAAK,EAAE;AAClC,MAAIP,OAAM,IAAI;AACZ,WAAOO,SAAQL,aAAY,IAAI,CAAC;AAClC,MAAI,KAAK,aAAa;AACpB,WAAO,KAAK;AACd,SAAO;AACT;AAEA,IAAMM,aAAY,CAAC,SAAS,SAAS,QAAQ,aAAa,IAAI;AAE9D,IAAMC,iBAAgB,WAAS;AAC7B,MAAI,EAAC,OAAM,IAAI;AACf,SAAO,UAAU;AACf,UAAM,OAAO,MAAM,MAAM;AACzB,QAAI,UAAU,KAAK,MAAM,YAAY,MAAM,SAAS,CAAC,GAAG;AACtD,YAAM,OAAO,QAAQ,CAAC;AACtB;AAAA,IACF;AACA,aAAS,EAAC,WAAU,IAAI,MAAM,YAAY,aAAa,WAAW,YAAY;AAC5E,UAAI,MAAM,SAAS,UAAU,GAAG;AAC9B,cAAM,OAAO,QAAQ,CAAC;AACtB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAEA,IAAMC,WAAU,CAAC,MAAM,UAAU;AAC/B,QAAMC,WAAU,CAAC;AACjB,aAAW,QAAQ,OAAO;AACxB,QAAIX,OAAM,IAAI,GAAG;AACf,UAAI,KAAK,IAAI;AACX,QAAAW,SAAQ,KAAK,IAAI;AACnB,MAAAA,SAAQ,KAAK,GAAGD,SAAQ,MAAMR,aAAY,IAAI,CAAC,CAAC;AAAA,IAClD;AAAA,EACF;AACA,SAAOS;AACT;AAEA,IAAMC,WAAU,CAAC,MAAM,UAAU;AAC/B,WAAS,QAAQ;AACf,QAAI,KAAK,IAAI,MAAM,OAAOA,SAAQ,MAAMV,aAAY,IAAI,CAAC;AACvD,aAAO;AACX,SAAO;AACT;AAGA,IAAM,UAAU;AAAA,EACd,OAAAF;AAAA,EACA,WAAAC;AAAA,EACA,mBAAAE;AAAA,EACA,aAAAD;AAAA,EACA,SAAAE;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAE;AACF;AAEO,IAAM,eAAe,CAAC,SAAS,cAAwBC;AAAA,EAC5D;AAAA,EACA;AAAA,IACE,SAAS,UAAU,SAAS,QAAQ,IAAI,UAAU;AAAA,IAClD,SAAS,CAAC,WAAW,OAAO;AAAA,IAC5B;AAAA,EACF;AACF;AAEO,IAAM,UAAU,CAAC,SAAS,cAAwBC;AAAA,EACvD;AAAA,EACA;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,SAAS,UAAU,SAAS,QAAQ,IAAI,UAAU;AAAA,IAClD,SAAS,CAAC,WAAW,OAAO;AAAA,IAC5B;AAAA,EACF;AACF;;;AC5GO,IAAMC,QAAN,MAAM,cAAa,cAAc;AAAA,EACtC,YAAY,eAAe,OAAO,IAAI;AACpC,UAAM,eAAe,SAAS,WAAW,IAAI;AAAA,EAC/C;AAAA,EAEA,IAAI,YAAY;AACd,UAAM,OAAO,CAAC;AACd,QAAI,EAAC,iBAAAC,kBAAiB,aAAAC,aAAW,IAAI;AACrC,WAAOD,kBAAiB;AACtB,UAAIA,iBAAgB,aAAa;AAC/B,aAAK,QAAQA,iBAAgB,KAAK,CAAC;AAAA;AAEnC;AACF,MAAAA,mBAAkBA,iBAAgB;AAAA,IACpC;AACA,SAAK,KAAK,KAAK,KAAK,CAAC;AACrB,WAAOC,cAAa;AAClB,UAAIA,aAAY,aAAa;AAC3B,aAAK,KAAKA,aAAY,KAAK,CAAC;AAAA;AAE5B;AACF,MAAAA,eAAcA,aAAY;AAAA,IAC5B;AACA,WAAO,KAAK,KAAK,EAAE;AAAA,EACrB;AAAA,EAEA,YAAY;AACV,UAAM,EAAC,eAAe,CAAC,KAAK,GAAG,KAAI,IAAI;AACvC,WAAO,IAAI,MAAK,eAAe,IAAI;AAAA,EACrC;AAAA,EAEA,WAAW;AAAE,WAAOC,QAAO,KAAK,KAAK,CAAC;AAAA,EAAG;AAC3C;;;ACbA,IAAM,SAAS,UAAQ,gBAAgBC;AAEvC,IAAM,SAAS,CAAC,YAAY,OAAO,UAAU;AAC3C,QAAM,EAAC,cAAa,IAAI;AACxB,aAAW,QAAQ;AACjB,eAAW;AAAA,MACT,OAAO,IAAI,IAAI,OAAO,IAAIC,MAAK,eAAe,IAAI;AAAA,MAClD;AAAA,IACF;AACJ;AAWO,IAAM,aAAN,cAAyBD,MAAK;AAAA,EACnC,YAAY,eAAe,WAAW,UAAU;AAC9C,UAAM,eAAe,WAAW,QAAQ;AACxC,SAAK,OAAO,IAAI;AAEhB,SAAK,IAAI,IAAI,KAAK,GAAG,IAAI;AAAA,MACvB,CAAC,IAAI,GAAG;AAAA,MACR,CAAC,IAAI,GAAG;AAAA,MACR,CAAC,KAAK,GAAG;AAAA,MACT,UAAU;AAAA,MACV,eAAe,KAAK;AAAA,MACpB,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EAEA,IAAI,aAAa;AACf,UAAM,aAAa,IAAI;AACvB,QAAI,EAAC,WAAU,IAAI;AACnB,WAAO,YAAY;AACjB,iBAAW,KAAK,UAAU;AAC1B,mBAAa,YAAY,UAAU;AAAA,IACrC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,WAAW;AACb,UAAM,WAAW,IAAI;AACrB,QAAI,EAAC,kBAAiB,IAAI;AAC1B,WAAO,mBAAmB;AACxB,eAAS,KAAK,iBAAiB;AAC/B,0BAAoBE,oBAAmB,iBAAiB;AAAA,IAC1D;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,aAAa;AACf,QAAI,EAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,IAAG,IAAI;AACjC,WAAO,KAAK,aAAa;AACvB,aAAO,KAAK,IAAI;AAClB,WAAO,SAAS,MAAM,OAAO;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,oBAAoB;AACtB,QAAI,EAAC,WAAU,IAAI;AACnB,WAAO,YAAY;AACjB,UAAI,WAAW,aAAa;AAC1B,eAAO;AACT,mBAAa,YAAY,UAAU;AAAA,IACrC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,YAAY;AACd,UAAM,OAAO,KAAK,GAAG,EAAE,IAAI;AAC3B,YAAQ,KAAK,UAAU;AAAA,MACrB,KAAK;AACH,eAAO,KAAK,KAAK;AAAA,MACnB,KAAK;AACH,eAAO;AAAA,IACX;AACA,WAAO,SAAS,OAAO,OAAO;AAAA,EAChC;AAAA,EAEA,IAAI,mBAAmB;AACrB,QAAI,EAAC,UAAS,IAAI;AAClB,WAAO,WAAW;AAChB,UAAI,UAAU,aAAa;AACzB,eAAO;AACT,kBAAY,gBAAgB,SAAS;AAAA,IACvC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,oBAAoB;AACtB,WAAO,KAAK,SAAS;AAAA,EACvB;AAAA,EAEA,WAAW,OAAO;AAChB,WAAO,MAAM,KAAK,YAAY,KAAK;AAAA,EACrC;AAAA,EAEA,UAAU,OAAO;AACf,WAAO,MAAM,KAAK,GAAG,GAAG,KAAK;AAAA,EAC/B;AAAA,EAEA,mBAAmB,OAAO;AACxB,QAAI,EAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,IAAG,IAAI;AACjC,WAAO,SAAS,OAAO,KAAK,aAAa;AACvC,aAAO,KAAK,IAAI;AAClB,WAAO,SAAS,KAAK;AACnB,YAAMC,SAAQ,OAAO,IAAI,EAAE,IAAI;AAC/B,WAAK,OAAO;AACZ,aAAOA;AAAA,IACT;AACA,QAAI,MAAM;AACR,aAAO,MAAM,KAAK,KAAK;AAAA,EAC3B;AAAA,EAEA,uBAAuB,WAAW;AAChC,UAAM,WAAW,IAAI;AACrB,QAAI,EAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,IAAG,IAAI;AACjC,WAAO,SAAS,KAAK;AACnB,UACE,KAAK,aAAa,gBAClB,KAAK,aAAa,OAAO,KACzB,KAAK,UAAU,IAAI,SAAS;AAE5B,iBAAS,KAAK,IAAI;AACpB,aAAO,KAAK,IAAI;AAAA,IAClB;AACA,WAAO;AAAA,EACT;AAAA,EAEA,qBAAqBC,WAAS;AAC5B,UAAM,WAAW,IAAI;AACrB,QAAI,EAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,IAAG,IAAI;AACjC,WAAO,SAAS,KAAK;AACnB,UAAI,KAAK,aAAa,iBACpB,KAAK,cAAcA,aACnB,UAAU,IAAI,MAAMA;AAEpB,iBAAS,KAAK,IAAI;AACpB,aAAO,KAAK,IAAI;AAAA,IAClB;AACA,WAAO;AAAA,EACT;AAAA,EAEA,cAAc,WAAW;AACvB,UAAMC,WAAU,aAAa,MAAM,SAAS;AAC5C,QAAI,EAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,IAAG,IAAI;AACjC,WAAO,SAAS,KAAK;AACnB,UAAI,KAAK,aAAa,gBAAgBA,SAAQ,IAAI;AAChD,eAAO;AACT,aAAO,KAAK,aAAa,gBAAgB,KAAK,cAAc,aAAa,KAAK,GAAG,IAAI,KAAK,IAAI;AAAA,IAChG;AACA,WAAO;AAAA,EACT;AAAA,EAEA,iBAAiB,WAAW;AAC1B,UAAMA,WAAU,aAAa,MAAM,SAAS;AAC5C,UAAM,WAAW,IAAI;AACrB,QAAI,EAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,IAAG,IAAI;AACjC,WAAO,SAAS,KAAK;AACnB,UAAI,KAAK,aAAa,gBAAgBA,SAAQ,IAAI;AAChD,iBAAS,KAAK,IAAI;AACpB,aAAO,KAAK,aAAa,gBAAgB,KAAK,cAAc,aAAa,KAAK,GAAG,IAAI,KAAK,IAAI;AAAA,IAChG;AACA,WAAO;AAAA,EACT;AAAA,EAEA,YAAY,MAAM;AAChB,WAAO,KAAK,aAAa,MAAM,KAAK,GAAG,CAAC;AAAA,EAC1C;AAAA,EAEA,SAAS,MAAM;AACb,QAAI,aAAa;AACjB,WAAO,cAAc,eAAe;AAClC,mBAAa,WAAW;AAC1B,WAAO,eAAe;AAAA,EACxB;AAAA,EAEA,aAAa,MAAMC,UAAS,MAAM;AAChC,QAAI,SAASA;AACX,aAAO;AACT,QAAI,SAAS;AACX,YAAM,IAAI,MAAM,mCAAmC;AACrD,UAAM,OAAOA,WAAU,KAAK,GAAG;AAC/B,YAAQ,KAAK,UAAU;AAAA,MACrB,KAAK;AACH,aAAK,OAAO;AACZ,aAAK,aAAa;AAClB,wBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI;AACtC,mBAAW,MAAM,IAAI;AACrB,0BAAkB,IAAI;AACtB;AAAA,MACF,KAAK,wBAAwB;AAC3B,YAAI,EAAC,CAAC,OAAO,GAAG,YAAY,YAAY,UAAS,IAAI;AACrD,YAAI,YAAY;AACd,uBAAa,KAAK,IAAI,GAAG,YAAY,WAAW,IAAI;AACpD,wBAAc,MAAM,KAAK,GAAG,CAAC;AAC7B,cAAI;AACF,uBAAW,gBAAgB;AAC7B,aAAG;AACD,uBAAW,aAAa;AACxB,uBAAW,YAAY,IAAI;AAC3B,gBAAI,WAAW,aAAa;AAC1B,gCAAkB,UAAU;AAAA,UAChC,SACE,eAAe,cACd,aAAa,YAAY,UAAU;AAAA,QAExC;AACA;AAAA,MACF;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,aAAK,OAAO;AAAA,MAGd;AACE,aAAK,aAAa;AAClB,sBAAc,KAAK,IAAI,GAAG,MAAM,IAAI;AACpC,mBAAW,MAAM,IAAI;AACrB;AAAA,IACJ;AACA,WAAO;AAAA,EACT;AAAA,EAEA,YAAY;AACV,QAAI,EAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,IAAG,IAAI;AACjC,WAAO,SAAS,KAAK;AACnB,YAAM,EAAC,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,SAAQ,IAAI;AACjD,UAAI,aAAa,WAAW;AAC1B,YAAI,CAAC,KAAK,KAAK;AACb,eAAK,OAAO;AAAA,iBACL,SAAS,MAAM,aAAa,WAAW;AAC9C,gBAAM,eAAe,KAAK;AAC1B,eAAK,OAAO;AAAA,QACd;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,YAAY,MAAM;AAChB,QAAI,KAAK,eAAe;AACtB,YAAM,IAAI,MAAM,qBAAqB;AACvC,SAAK,OAAO;AACZ,WAAO;AAAA,EACT;AAAA,EAEA,aAAa,MAAM,UAAU;AAC3B,UAAM,OAAO,OAAO,QAAQ,EAAE,IAAI;AAClC,aAAS,OAAO;AAChB,SAAK,aAAa,MAAM,IAAI;AAC5B,WAAO;AAAA,EACT;AACF;;;AC3RO,IAAM,uBAAN,cAAmC,WAAW;AAAA,EACnD,eAAe,IAAI;AACjB,QAAI,EAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,IAAG,IAAI;AACjC,WAAO,SAAS,KAAK;AACnB,UAAI,KAAK,aAAa,gBAAgB,KAAK,OAAO;AAChD,eAAO;AACT,aAAO,KAAK,IAAI;AAAA,IAClB;AACA,WAAO;AAAA,EACT;AAAA,EAEA,UAAU,MAAM;AACd,UAAM,EAAC,eAAe,YAAW,IAAI;AACrC,UAAM,SAAS,IAAI,YAAY,aAAa;AAC5C,QAAI,MAAM;AACR,YAAM,EAAC,CAAC,GAAG,GAAG,IAAG,IAAI;AACrB,iBAAW,QAAQ,KAAK;AACtB,eAAO,aAAa,KAAK,UAAU,IAAI,GAAG,GAAG;AAAA,IACjD;AACA,WAAO;AAAA,EACT;AAAA,EAEA,WAAW;AACT,UAAM,EAAC,YAAY,UAAS,IAAI;AAChC,WAAO,IAAI,SAAS,IAAI,WAAW,KAAK,EAAE,CAAC,KAAK,SAAS;AAAA,EAC3D;AAAA,EAEA,SAAS;AACP,UAAM,OAAO,CAAC;AACd,qBAAiB,MAAM,IAAI;AAC3B,WAAO;AAAA,EACT;AACF;;;ACnCO,IAAMC,oBAAN,cAA+B,qBAAqB;AAAA,EACzD,YAAY,eAAe;AACzB,UAAM,eAAe,sBAAsB,sBAAsB;AAAA,EACnE;AACF;;;ACFO,IAAM,eAAN,MAAM,sBAAqBC,MAAK;AAAA,EACrC,YAAY,eAAe,MAAM,WAAW,IAAI,WAAW,IAAI;AAC7D,UAAM,eAAe,kBAAkB,kBAAkB;AACzD,SAAK,OAAO;AACZ,SAAK,WAAW;AAChB,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,YAAY;AACV,UAAM,EAAC,eAAe,MAAM,UAAU,SAAQ,IAAI;AAClD,WAAO,IAAI,cAAa,eAAe,MAAM,UAAU,QAAQ;AAAA,EACjE;AAAA,EAEA,WAAW;AACT,UAAM,EAAC,MAAM,UAAU,SAAQ,IAAI;AACnC,UAAM,YAAY,IAAI,SAAS;AAC/B,UAAM,MAAM,CAAC,IAAI;AACjB,QAAI;AACF,UAAI,KAAK,UAAU,IAAI,QAAQ,GAAG;AACpC,QAAI,SAAS,QAAQ;AACnB,UAAI,CAAC;AACH,YAAI,KAAK,QAAQ;AACnB,UAAI,KAAK,IAAI,QAAQ,GAAG;AAAA,IAC1B;AACA,WAAO,aAAa,IAAI,KAAK,GAAG,CAAC;AAAA,EACnC;AAAA,EAEA,SAAS;AACP,UAAM,OAAO,CAAC;AACd,uBAAmB,MAAM,IAAI;AAC7B,WAAO;AAAA,EACT;AACF;;;AC9BO,IAAM,eAAe,UAAQ,KAAK,WAAW,KAAK,EAAE;AAMpD,IAAM,eAAe,CAAC,MAAM,SAAS;AAC1C,QAAM,EAAC,cAAa,IAAI;AACxB,QAAM,EAAC,YAAW,IAAI;AACtB,QAAMC,YAAW,IAAI;AACrB,EAAAA,UAAS,eAAe,IAAI,cAAc,eAAe;AACzD,QAAM,EAAC,WAAU,IAAI,gBAAgBA,WAAU,WAAW,IAAI,GAAG,IAAI;AAErE,OAAK,gBAAgB,GAAG,WAAW,IAAI,kBAAkB,aAAa,CAAC;AACzE;AAEA,SAAS,iBAAiB,MAAM;AAC9B,OAAK,gBAAgB;AACrB,UAAQ,KAAK,UAAU;AAAA,IACrB,KAAK;AAAA,IACL,KAAK;AACH,WAAK,WAAW,QAAQ,kBAAkB,IAAI;AAC9C;AAAA,EACJ;AACA,SAAO;AACT;;;ACnCA,IAAOC,eAAQ,WAAS,MAAM,QAAQ,qDAAqD,WAAW,EACxE,YAAY;;;ACE1C,IAAM,OAAO,oBAAI;AAEjB,IAAM,MAAM,UAAQ,QAAQC,aAAQ,IAAI,CAAC;AACzC,IAAM,OAAO,UAAQ,KAAK,MAAM,CAAC,EAAE,QAAQ,aAAa,CAAC,GAAG,OAAO,GAAG,YAAY,CAAC;AAEnF,IAAM,UAAU;AAAA,EACd,IAAI,SAAS,MAAM;AACjB,QAAI,QAAQ;AACV,aAAO,KAAK,IAAI,OAAO,EAAE,aAAa,IAAI,IAAI,CAAC;AAAA,EACnD;AAAA,EAEA,IAAI,SAAS,MAAM,OAAO;AACxB,YAAQ,IAAI,IAAI;AAChB,SAAK,IAAI,OAAO,EAAE,aAAa,IAAI,IAAI,GAAG,KAAK;AAC/C,WAAO;AAAA,EACT;AAAA,EAEA,eAAe,SAAS,MAAM;AAC5B,QAAI,QAAQ;AACV,WAAK,IAAI,OAAO,EAAE,gBAAgB,IAAI,IAAI,CAAC;AAC7C,WAAO,OAAO,QAAQ,IAAI;AAAA,EAC5B;AACF;AAKO,IAAM,eAAN,MAAmB;AAAA;AAAA;AAAA;AAAA,EAIxB,YAAY,KAAK;AACf,eAAW,EAAC,MAAM,MAAK,KAAK,IAAI,YAAY;AAC1C,UAAI,SAAS,KAAK,IAAI;AACpB,aAAK,KAAK,IAAI,CAAC,IAAI;AAAA,IACvB;AACA,SAAK,IAAI,MAAM,GAAG;AAClB,WAAO,IAAI,MAAM,MAAM,OAAO;AAAA,EAChC;AACF;AAEA,eAAe,aAAa,WAAW,IAAI;;;ACvC3C,IAAM,EAAC,IAAG,IAAI,IAAI;AAClB,IAAM,YAAY,CAACC,OAAM,WAAW;AAClC,aAAW,SAAS,QAAQ;AAC1B,QAAI;AACF,UAAI,KAAKA,OAAM,KAAK;AAAA,EACxB;AACF;AAEA,IAAM,SAAS,CAAC,EAAC,CAAC,gBAAgB,cAAc,MAAK,MAAM;AACzD,QAAMC,aAAY,aAAa,iBAAiB,OAAO;AACvD,MAAIA;AACF,IAAAA,WAAU,QAAQ;AAAA;AAElB;AAAA,MACE;AAAA,MACA,IAAI,KAAK,aAAa,eAAe,SAAS,KAAK;AAAA,IACrD;AACJ;AAKO,IAAM,eAAN,cAA2B,IAAI;AAAA,EAEpC,YAAY,cAAc;AACxB,UAAM;AACN,SAAK,aAAa,IAAI;AACtB,UAAMA,aAAY,aAAa,iBAAiB,OAAO;AACvD,QAAIA;AACF,gBAAU,MAAMA,WAAU,MAAM,MAAM,KAAK,CAAC;AAAA,EAChD;AAAA,EAEA,IAAI,SAAS;AAAE,WAAO,KAAK;AAAA,EAAM;AAAA,EAEjC,IAAI,QAAQ;AAAE,WAAO,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG;AAAA,EAAG;AAAA;AAAA;AAAA;AAAA,EAK1C,OAAO,QAAQ;AACb,cAAU,MAAM,MAAM;AACtB,WAAO,IAAI;AAAA,EACb;AAAA;AAAA;AAAA;AAAA,EAKA,SAAS,OAAO;AAAE,WAAO,KAAK,IAAI,KAAK;AAAA,EAAG;AAAA;AAAA;AAAA;AAAA,EAK1C,UAAU,QAAQ;AAChB,eAAW,SAAS;AAClB,WAAK,OAAO,KAAK;AACnB,WAAO,IAAI;AAAA,EACb;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,OAAO,OAAO;AACnB,QAAI,KAAK,IAAI,KAAK,GAAG;AACnB,UAAI;AACF,eAAO;AACT,WAAK,OAAO,KAAK;AACjB,aAAO,IAAI;AAAA,IACb,WACS,SAAS,UAAU,WAAW,GAAG;AACxC,YAAM,IAAI,KAAK;AACf,aAAO,IAAI;AACX,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,QAAQ,OAAO,UAAU;AACvB,QAAI,KAAK,IAAI,KAAK,GAAG;AACnB,WAAK,OAAO,KAAK;AACjB,YAAM,IAAI,QAAQ;AAClB,aAAO,IAAI;AACX,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW;AAAE,WAAO;AAAA,EAAM;AAC5B;;;AChGA,IAAMC,QAAO,oBAAI;AAEjB,IAAM,UAAU,CAAAC,WAAS,CAAC,GAAGA,OAAM,KAAK,CAAC,EAAE,OAAO,CAAAC,SAAOA,SAAQ,OAAO;AAExE,IAAM,aAAa,CAAAD,WAAS;AAC1B,QAAM,OAAOD,MAAK,IAAIC,MAAK,EAAE,iBAAiB,OAAO;AACrD,MAAI,CAAC,QAAQ,KAAK,OAAO,KAAKA,OAAM,IAAI,OAAO,MAAM,MAAM;AACzD,IAAAA,OAAM,MAAM;AACZ,QAAI,MAAM;AACR,MAAAA,OAAM,IAAI,SAAS,IAAI;AACvB,iBAAW,QAAQ,KAAK,KAAK,EAAE,MAAM,SAAS,GAAG;AAC/C,YAAI,CAACC,MAAK,GAAG,IAAI,IAAI,KAAK,MAAM,GAAG;AACnC,YAAI,KAAK,SAAS,GAAG;AACnB,UAAAA,OAAMA,KAAI,KAAK;AACf,gBAAM,QAAQ,KAAK,KAAK,GAAG,EAAE,KAAK;AAClC,cAAIA,QAAO;AACT,YAAAD,OAAM,IAAIC,MAAK,KAAK;AAAA,QACxB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAEA,IAAMC,WAAU;AAAA,EACd,IAAIF,QAAO,MAAM;AACf,QAAI,QAAQ;AACV,aAAOA,OAAM,IAAI;AACnB,eAAWA,MAAK;AAChB,QAAI,SAAS;AACX,aAAO,QAAQA,MAAK,EAAE;AACxB,QAAI,QAAQ,KAAK,IAAI;AACnB,aAAO,QAAQA,MAAK,EAAE,IAAI;AAC5B,WAAOA,OAAM,IAAIG,aAAQ,IAAI,CAAC;AAAA,EAChC;AAAA,EAEA,IAAIH,QAAO,MAAM,OAAO;AACtB,QAAI,SAAS;AACX,MAAAA,OAAM,IAAI,IAAI;AAAA,SACX;AACH,UAAI,OAAO,WAAWA,MAAK;AAC3B,UAAI,SAAS;AACX,QAAAA,OAAM,OAAOG,aAAQ,IAAI,CAAC;AAAA;AAE1B,QAAAH,OAAM,IAAIG,aAAQ,IAAI,GAAG,KAAK;AAChC,UAAI,CAAC,MAAM;AACT,cAAM,UAAUJ,MAAK,IAAIC,MAAK;AAC9B,eAAO,QAAQ,cAAc,gBAAgB,OAAO;AACpD,gBAAQ,iBAAiB,IAAI;AAC7B,QAAAA,OAAM,IAAI,SAAS,IAAI;AAAA,MACzB;AACA,WAAK,OAAO,IAAI;AAChB,WAAK,KAAK,IAAIA,OAAM,SAAS;AAAA,IAC/B;AACA,WAAO;AAAA,EACT;AACF;AAKO,IAAM,sBAAN,cAAkC,IAAI;AAAA,EAC3C,YAAY,SAAS;AACnB,UAAM;AACN,IAAAD,MAAK,IAAI,MAAM,OAAO;AAEtB,WAAO,IAAI,MAAM,MAAMG,QAAO;AAAA,EAEhC;AAAA,EAEA,IAAI,UAAU;AACZ,WAAO,KAAK,SAAS;AAAA,EACvB;AAAA,EAEA,IAAI,QAAQ,OAAO;AACjB,IAAAH,MAAK,IAAI,IAAI,EAAE,aAAa,SAAS,KAAK;AAAA,EAC5C;AAAA,EAEA,iBAAiB,MAAM;AACrB,UAAMK,QAAO,KAAK,OAAO;AACzB,WAAOF,SAAQ,IAAIE,OAAM,IAAI;AAAA,EAC/B;AAAA,EAEA,YAAY,MAAM,OAAO;AACvB,UAAMA,QAAO,KAAK,OAAO;AACzB,IAAAF,SAAQ,IAAIE,OAAM,MAAM,KAAK;AAAA,EAC/B;AAAA,EAEA,eAAe,MAAM;AACnB,UAAMA,QAAO,KAAK,OAAO;AACzB,IAAAF,SAAQ,IAAIE,OAAM,MAAM,IAAI;AAAA,EAC9B;AAAA,EAEA,CAAC,OAAO,QAAQ,IAAI;AAClB,UAAMA,QAAO,KAAK,OAAO;AACzB,eAAWA,KAAI;AACf,UAAMC,QAAO,QAAQD,KAAI;AACzB,UAAM,EAAC,OAAM,IAAIC;AACjB,QAAI,IAAI;AACR,WAAO;AAAA,MACL,OAAO;AACL,cAAM,OAAO,MAAM;AACnB,eAAO,EAAC,MAAM,OAAO,OAAO,OAAOA,MAAK,GAAG,EAAC;AAAA,MAC9C;AAAA,IACF;AAAA,EACF;AAAA,EAEA,KAAI,OAAO,IAAI;AAAE,WAAO;AAAA,EAAM;AAAA,EAE9B,WAAW;AACT,UAAMD,QAAO,KAAK,OAAO;AACzB,eAAWA,KAAI;AACf,UAAM,UAAU,CAAC;AACjB,IAAAA,MAAK,QAAQ,MAAM,OAAO;AAC1B,WAAO,QAAQ,KAAK,GAAG;AAAA,EACzB;AACF;AAEA,IAAM,EAAC,UAAS,IAAI;AAEpB,SAAS,KAAK,OAAOH,MAAK;AACxB,MAAIA,SAAQ;AACV,SAAK,KAAK,GAAGA,IAAG,IAAI,KAAK,EAAE;AAC/B;;;AC1HA,IAAM,iBAAiB;AACvB,IAAM,YAAY;AAClB,IAAM,kBAAkB;AACxB,IAAM,OAAO;AAEb,SAAS,iBAAiB,IAAI;AAC5B,SAAO,GAAG;AACZ;AAKA,IAAM,cAAN,MAAkB;AAAA,EACd,WAAW,iBAAiB;AAAE,WAAO;AAAA,EAAgB;AAAA,EACrD,WAAW,YAAY;AAAE,WAAO;AAAA,EAAW;AAAA,EAC3C,WAAW,kBAAkB;AAAE,WAAO;AAAA,EAAiB;AAAA,EACvD,WAAW,OAAO;AAAE,WAAO;AAAA,EAAM;AAAA,EAEjC,YAAY,MAAM,gBAAgB,CAAC,GAAG;AACpC,SAAK,OAAO;AACZ,SAAK,UAAU,CAAC,CAAC,cAAc;AAC/B,SAAK,eAAe;AACpB,SAAK,gCAAgC;AACrC,SAAK,aAAa,CAAC,CAAC,cAAc;AAClC,SAAK,aAAa,KAAK;AACvB,SAAK,YAAY,KAAK,IAAI;AAC1B,SAAK,mBAAmB;AACxB,SAAK,iBAAiB;AACtB,SAAK,cAAc;AACnB,SAAK,aAAa;AAClB,SAAK,SAAS;AACd,SAAK,QAAQ,CAAC;AAAA,EAChB;AAAA,EAEA,IAAI,iBAAiB;AAAE,WAAO;AAAA,EAAgB;AAAA,EAC9C,IAAI,YAAY;AAAE,WAAO;AAAA,EAAW;AAAA,EACpC,IAAI,kBAAkB;AAAE,WAAO;AAAA,EAAiB;AAAA,EAChD,IAAI,OAAO;AAAE,WAAO;AAAA,EAAM;AAAA,EAE1B,iBAAiB;AAAE,SAAK,mBAAmB;AAAA,EAAM;AAAA;AAAA,EAGjD,eAAe;AACb,WAAO,KAAK,MAAM,IAAI,gBAAgB;AAAA,EACxC;AAAA,EAEA,kBAAkB;AAChB,SAAK,eAAe;AAAA,EACtB;AAAA,EAEA,2BAA2B;AACzB,SAAK,gBAAgB;AACrB,SAAK,gCAAgC;AAAA,EACvC;AACF;;;ACxDK,IAAM,eAAN,cAA2B,MAAM;AAAA,EACtC,YAAY,cAAc;AACxB,UAAM;AACN,SAAK,eAAe;AAAA,EACtB;AAAA,EAEA,aAAa,MAAM;AACjB,WAAO,KAAK,aAAa,iBAAiB,IAAI;AAAA,EAChD;AAAA,EAEA,aAAa,MAAM;AACjB,SAAK,aAAa,iBAAiB,IAAI;AACvC,SAAK,QAAQ,IAAI;AAAA,EACnB;AAAA,EAEA,gBAAgB,MAAM;AACpB,UAAM,OAAO,KAAK,aAAa,IAAI;AACnC,SAAK,aAAa,gBAAgB,IAAI;AACtC,SAAK,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC;AAAA,EACnC;AAAA,EAEA,KAAK,OAAO;AACV,WAAO,QAAQ,KAAK,SAAS,KAAK,KAAK,IAAI;AAAA,EAC7C;AAAA;AAAA,EAGA,eAAe,GAAG,MAAM;AACtB,WAAO,KAAK,aAAa,IAAI;AAAA,EAC/B;AAAA,EAEA,eAAe,GAAG,MAAM;AACtB,WAAO,KAAK,aAAa,IAAI;AAAA,EAC/B;AAAA,EAEA,kBAAkB,GAAG,MAAM;AACzB,WAAO,KAAK,gBAAgB,IAAI;AAAA,EAClC;AAAA;AAEF;;;AClCO,IAAM,aAAN,cAAyB,qBAAqB;AAAA,EACnD,YAAY,MAAM;AAChB,UAAM,KAAK,eAAe,gBAAgB,sBAAsB;AAChE,SAAK,OAAO;AAAA,EACd;AAAA,EAEA,IAAI,YAAY;AACd,WAAO,aAAa,IAAI;AAAA,EAC1B;AAAA,EACA,IAAI,UAAU,MAAM;AAClB,iBAAa,MAAM,IAAI;AAAA,EACzB;AACF;;;ACqCA,IAAM,oBAAoB;AAAA,EACxB,IAAI,QAAQK,MAAK;AACf,WAAOA,QAAO,SAAS,OAAOA,IAAG,IAAI,OAAO,KAAK,CAAC,EAAC,KAAI,MAAM,SAASA,IAAG;AAAA,EAC3E;AACF;AAEA,IAAMC,UAAS,CAAC,eAAe,SAAS,cAAe;AACrD,MAAI,qBAAqB,SAAS;AAChC,UAAM,MAAM,cAAc,gBAAgB,eAAe,SAAS;AAClE,QAAI,kBAAkB,QAAQ;AAC9B,WAAO;AAAA,EACT;AACA,SAAO,cAAc,cAAc,SAAS;AAC9C;AAEA,IAAM,SAAS,CAAC,EAAC,WAAW,cAAa,MAAM;AAC7C,SAAO,cAAc,IAAI,EAAE,aAAa,KAAK,SAAS;AACxD;AAOO,IAAMC,WAAN,cAAsB,WAAW;AAAA,EACtC,YAAY,eAAe,WAAW;AACpC,UAAM,eAAe,WAAW,YAAY;AAC5C,SAAK,UAAU,IAAI;AACnB,SAAK,OAAO,IAAI;AAChB,SAAK,KAAK,IAAI;AAAA,EAChB;AAAA;AAAA,EAGA,IAAI,cAAc;AAAE,WAAO,YAAY,IAAI;AAAA,EAAG;AAAA,EAC9C,IAAI,gBAAgB;AAAE,WAAO,cAAc,IAAI;AAAA,EAAG;AAAA,EAClD,IAAI,kBAAkB;AAAE,WAAO,gBAAgB,IAAI;AAAA,EAAG;AAAA,EACtD,IAAI,cAAc;AAAE,WAAO,YAAY,IAAI;AAAA,EAAG;AAAA,EAC9C,IAAI,eAAe;AACjB,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,yBAAyB;AAAE,WAAO,uBAAuB,IAAI;AAAA,EAAG;AAAA,EACpE,IAAI,qBAAqB;AAAE,WAAOC,oBAAmB,IAAI;AAAA,EAAG;AAAA,EAE5D,UAAU,OAAO;AAAE,WAAO,MAAM,KAAK;AAAA,EAAG;AAAA,EACxC,SAAS,OAAO;AAAE,UAAM,MAAM,KAAK;AAAA,EAAG;AAAA,EACtC,eAAe,OAAO;AAAE,gBAAY,MAAM,KAAK;AAAA,EAAG;AAAA,EAClD,SAAS;AAAE,WAAO,KAAK,IAAI,GAAG,MAAM,KAAK,GAAG,EAAE,IAAI,CAAC;AAAA,EAAG;AAAA;AAAA;AAAA,EAItD,IAAI,KAAK;AAAE,WAAO,gBAAgB,IAAI,MAAM,IAAI;AAAA,EAAG;AAAA,EACnD,IAAI,GAAG,OAAO;AAAE,oBAAgB,IAAI,MAAM,MAAM,KAAK;AAAA,EAAG;AAAA,EAExD,IAAI,YAAY;AAAE,WAAO,KAAK,UAAU;AAAA,EAAO;AAAA,EAC/C,IAAI,UAAU,OAAO;AACnB,UAAM,EAAC,UAAS,IAAI;AACpB,cAAU,MAAM;AAChB,cAAU,IAAI,GAAI,QAAO,KAAK,EAAE,MAAM,KAAK,CAAE;AAAA,EAC/C;AAAA,EAEA,IAAI,WAAW;AAAE,WAAO,UAAU,IAAI;AAAA,EAAG;AAAA,EACzC,IAAI,UAAU;AAAE,WAAO,UAAU,IAAI;AAAA,EAAG;AAAA,EAExC,IAAI,YAAY;AACd,WAAO,KAAK,UAAU,MACpB,KAAK,UAAU,IAAI,IAAI,aAAa,IAAI;AAAA,EAE5C;AAAA,EAEA,IAAI,UAAU;AACZ,WAAO,KAAK,OAAO,MACjB,KAAK,OAAO,IAAI,IAAI,aAAa,IAAI;AAAA,EAEzC;AAAA,EAEA,wBAAwB;AACtB,WAAO;AAAA,MACL,GAAG;AAAA,MACH,GAAG;AAAA,MACH,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,MACP,KAAK;AAAA,MACL,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,IAAI,QAAQ;AAAE,WAAO,gBAAgB,IAAI,MAAM,OAAO;AAAA,EAAG;AAAA,EACzD,IAAI,MAAM,OAAO;AAAE,oBAAgB,IAAI,MAAM,SAAS,KAAK;AAAA,EAAG;AAAA,EAE9D,IAAI,QAAQ;AACV,WAAO,KAAK,KAAK,MACf,KAAK,KAAK,IAAI,IAAI,oBAAoB,IAAI;AAAA,EAE9C;AAAA,EAEA,IAAI,WAAW;AAAE,WAAO,iBAAiB,IAAI,MAAM,UAAU,KAAK;AAAA,EAAI;AAAA,EACtE,IAAI,SAAS,OAAO;AAAE,qBAAiB,IAAI,MAAM,YAAY,KAAK;AAAA,EAAG;AAAA,EAErE,IAAI,OAAO;AAAE,WAAO,gBAAgB,IAAI,MAAM,MAAM;AAAA,EAAG;AAAA,EACvD,IAAI,KAAK,OAAO;AAAE,oBAAgB,IAAI,MAAM,QAAQ,KAAK;AAAA,EAAG;AAAA;AAAA;AAAA,EAK5D,IAAI,YAAY;AACd,UAAM,OAAO,CAAC;AACd,QAAI,EAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,IAAG,IAAI;AACjC,WAAO,SAAS,KAAK;AACnB,UAAI,KAAK,aAAa,WAAW;AAC/B,aAAK,KAAK,KAAK,YAAY,QAAQ,QAAQ,GAAG,CAAC;AAAA,MACjD,WACE,KAAK,UAAU,KAAK,IAAI,KAAK,OAC7B,eAAe,IAAI,KAAK,OAAO,GAC/B;AACA,aAAK,KAAK,IAAI;AAAA,MAChB;AACA,aAAO,KAAK,IAAI;AAAA,IAClB;AACA,WAAO,KAAK,KAAK,EAAE;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,cAAc;AAChB,UAAM,OAAO,CAAC;AACd,QAAI,EAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,IAAG,IAAI;AACjC,WAAO,SAAS,KAAK;AACnB,YAAM,WAAW,KAAK;AACtB,UAAI,aAAa,aAAa,aAAa;AACzC,aAAK,KAAK,KAAK,WAAW;AAC5B,aAAO,KAAK,IAAI;AAAA,IAClB;AACA,WAAO,KAAK,KAAK,EAAE;AAAA,EACrB;AAAA,EAEA,IAAI,YAAY,MAAM;AACpB,SAAK,gBAAgB;AACrB,QAAI,QAAQ,QAAQ,SAAS;AAC3B,WAAK,YAAY,IAAIC,MAAK,KAAK,eAAe,IAAI,CAAC;AAAA,EACvD;AAAA,EAEA,IAAI,YAAY;AACd,WAAO,aAAa,IAAI;AAAA,EAC1B;AAAA,EACA,IAAI,UAAU,MAAM;AAClB,iBAAa,MAAM,IAAI;AAAA,EACzB;AAAA,EAEA,IAAI,YAAY;AAAE,WAAO,KAAK,SAAS;AAAA,EAAG;AAAA,EAC1C,IAAI,UAAU,MAAM;AAClB,UAAM,WAAW,KAAK,cAAc,cAAc,EAAE;AACpD,aAAS,YAAY;AACrB,SAAK,YAAY,GAAG,SAAS,UAAU;AAAA,EACzC;AAAA;AAAA;AAAA,EAIA,IAAI,aAAa;AACf,UAAMC,cAAa,IAAI,aAAa,IAAI;AACxC,QAAI,OAAO,KAAK,IAAI;AACpB,WAAO,KAAK,aAAa,gBAAgB;AACvC,MAAAA,YAAW,KAAK,IAAI;AACpB,aAAO,KAAK,IAAI;AAAA,IAClB;AACA,WAAO,IAAI,MAAMA,aAAY,iBAAiB;AAAA,EAChD;AAAA,EAEA,QAAQ;AAAE,SAAK,cAAc,IAAI,YAAM,OAAO,CAAC;AAAA,EAAG;AAAA,EAElD,aAAa,MAAM;AACjB,QAAI,SAAS;AACX,aAAO,KAAK;AACd,UAAMC,aAAY,KAAK,iBAAiB,IAAI;AAC5C,WAAOA,eAAc,WAAW,IAAI,IAAIA,WAAU,QAAQC,QAAOD,WAAU,KAAK;AAAA,EAClF;AAAA,EAEA,iBAAiB,MAAM;AACrB,QAAI,OAAO,KAAK,IAAI;AACpB,WAAO,KAAK,aAAa,gBAAgB;AACvC,UAAI,KAAK,SAAS;AAChB,eAAO;AACT,aAAO,KAAK,IAAI;AAAA,IAClB;AACA,WAAO;AAAA,EACT;AAAA,EAEA,oBAAoB;AAClB,UAAMD,cAAa,IAAI;AACvB,QAAI,OAAO,KAAK,IAAI;AACpB,WAAO,KAAK,aAAa,gBAAgB;AACvC,MAAAA,YAAW,KAAK,KAAK,IAAI;AACzB,aAAO,KAAK,IAAI;AAAA,IAClB;AACA,WAAOA;AAAA,EACT;AAAA,EAEA,aAAa,MAAM;AAAE,WAAO,CAAC,CAAC,KAAK,iBAAiB,IAAI;AAAA,EAAG;AAAA,EAC3D,gBAAgB;AAAE,WAAO,KAAK,IAAI,EAAE,aAAa;AAAA,EAAgB;AAAA,EAEjE,gBAAgB,MAAM;AACpB,QAAI,SAAS,WAAW,KAAK,UAAU;AACnC,WAAK,UAAU,EAAE,MAAM;AAC3B,QAAI,OAAO,KAAK,IAAI;AACpB,WAAO,KAAK,aAAa,gBAAgB;AACvC,UAAI,KAAK,SAAS,MAAM;AACtB,wBAAgB,MAAM,IAAI;AAC1B;AAAA,MACF;AACA,aAAO,KAAK,IAAI;AAAA,IAClB;AAAA,EACF;AAAA,EAEA,oBAAoBC,YAAW;AAC7B,QAAI,OAAO,KAAK,IAAI;AACpB,WAAO,KAAK,aAAa,gBAAgB;AACvC,UAAI,SAASA,YAAW;AACtB,wBAAgB,MAAM,IAAI;AAC1B;AAAA,MACF;AACA,aAAO,KAAK,IAAI;AAAA,IAClB;AAAA,EACF;AAAA,EAEA,aAAa,MAAM,OAAO;AACxB,QAAI,SAAS;AACX,WAAK,YAAY;AAAA,SACd;AACH,YAAMA,aAAY,KAAK,iBAAiB,IAAI;AAC5C,UAAIA;AACF,QAAAA,WAAU,QAAQ;AAAA;AAElB,qBAAa,MAAM,IAAI,KAAK,KAAK,eAAe,MAAM,KAAK,CAAC;AAAA,IAChE;AAAA,EACF;AAAA,EAEA,iBAAiBA,YAAW;AAC1B,UAAM,EAAC,KAAI,IAAIA;AACf,UAAM,aAAa,KAAK,iBAAiB,IAAI;AAC7C,QAAI,eAAeA,YAAW;AAC5B,UAAI;AACF,aAAK,oBAAoB,UAAU;AACrC,YAAM,EAAC,aAAY,IAAIA;AACvB,UAAI;AACF,qBAAa,oBAAoBA,UAAS;AAC5C,mBAAa,MAAMA,UAAS;AAAA,IAC9B;AACA,WAAO;AAAA,EACT;AAAA,EAEA,gBAAgB,MAAM,OAAO;AAC3B,QAAI,KAAK,aAAa,IAAI,GAAG;AAC3B,UAAI,CAAC,OAAO;AACV,aAAK,gBAAgB,IAAI;AACzB,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT,WACS,SAAS,UAAU,WAAW,GAAG;AACxC,WAAK,aAAa,MAAM,EAAE;AAC1B,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA,EAIA,IAAI,aAAa;AACf,QAAI,YAAY,IAAI,IAAI,GAAG;AACzB,YAAM,EAAC,MAAM,WAAU,IAAI,YAAY,IAAI,IAAI;AAC/C,UAAI,SAAS;AACX,eAAO;AAAA,IACX;AACA,WAAO;AAAA,EACT;AAAA,EAEA,aAAa,MAAM;AACjB,QAAI,YAAY,IAAI,IAAI;AACtB,YAAM,IAAI,MAAM,yBAAyB;AAG3C,UAAM,aAAa,IAAI,WAAW,IAAI;AACtC,gBAAY,IAAI,MAAM;AAAA,MACpB,MAAM,KAAK;AAAA,MACX;AAAA,IACF,CAAC;AACD,WAAO;AAAA,EACT;AAAA;AAAA;AAAA,EAIA,QAAQ,WAAW;AAAE,WAAO,QAAQ,MAAM,SAAS;AAAA,EAAG;AAAA,EACtD,QAAQ,WAAW;AACjB,QAAIE,iBAAgB;AACpB,UAAMC,WAAU,aAAaD,gBAAe,SAAS;AACrD,WAAOA,kBAAiB,CAACC,SAAQD,cAAa;AAC5C,MAAAA,iBAAgBA,eAAc;AAChC,WAAOA;AAAA,EACT;AAAA;AAAA;AAAA,EAIA,sBAAsB,UAAU,SAAS;AACvC,UAAM,EAAC,eAAAA,eAAa,IAAI;AACxB,YAAQ,UAAU;AAAA,MAChB,KAAK;AACH,YAAIA,gBAAe;AACjB,UAAAA,eAAc,aAAa,SAAS,IAAI;AACxC;AAAA,QACF;AACA,eAAO;AAAA,MACT,KAAK;AACH,aAAK,aAAa,SAAS,KAAK,UAAU;AAC1C;AAAA,MACF,KAAK;AACH,aAAK,aAAa,SAAS,IAAI;AAC/B;AAAA,MACF,KAAK;AACH,YAAIA,gBAAe;AACjB,UAAAA,eAAc,aAAa,SAAS,KAAK,WAAW;AACpD;AAAA,QACF;AACA,eAAO;AAAA,IACX;AACA,WAAO;AAAA,EACT;AAAA,EAEA,mBAAmB,UAAU,MAAM;AACjC,SAAK,sBAAsB,UAAU,eAAe,KAAK,eAAe,IAAI,CAAC;AAAA,EAC/E;AAAA,EAEA,mBAAmB,UAAU,MAAM;AACjC,UAAM,OAAO,KAAK,cAAc,eAAe,IAAI;AACnD,SAAK,sBAAsB,UAAU,IAAI;AAAA,EAC3C;AAAA;AAAA,EAGA,UAAU,OAAO,OAAO;AACtB,UAAM,EAAC,eAAe,UAAS,IAAI;AACnC,UAAM,UAAU,CAAAE,UAAQ;AACtB,MAAAA,MAAK,aAAa;AAClB,oBAAc,OAAOA,KAAI;AACzB,cAAQA;AAAA,IACV;AACA,UAAM,QAAQT,QAAO,eAAe,MAAM,SAAS;AACnD,QAAI,aAAa,OAAO,QAAQ;AAChC,QAAI,EAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,KAAI,IAAI;AAClC,WAAO,SAAS,SAAS,QAAQ,KAAK,aAAa,iBAAiB;AAClE,cAAQ,KAAK,UAAU;AAAA,QACrB,KAAK;AACH,wBAAc,OAAO,WAAW,GAAG,CAAC;AACpC,kBAAQ,WAAW,GAAG;AACtB,uBAAa,WAAW;AACxB;AAAA,QACF,KAAK,cAAc;AACjB,gBAAM,OAAOA,QAAO,eAAe,MAAM,KAAK,SAAS;AACvD,kBAAQ,IAAI;AACZ,uBAAa;AACb;AAAA,QACF;AAAA,QACA,KAAK,gBAAgB;AACnB,gBAAM,OAAO,KAAK,UAAU,IAAI;AAChC,eAAK,eAAe;AACpB,kBAAQ,IAAI;AACZ;AAAA,QACF;AAAA,QACA,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,kBAAQ,KAAK,UAAU,IAAI,CAAC;AAC5B;AAAA,MACJ;AACA,aAAO,KAAK,IAAI;AAAA,IAClB;AACA,kBAAc,OAAO,MAAM,GAAG,CAAC;AAC/B,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,WAAW;AACT,UAAM,MAAM,CAAC;AACb,UAAM,EAAC,CAAC,GAAG,GAAG,IAAG,IAAI;AACrB,QAAI,OAAO,EAAC,CAAC,IAAI,GAAG,KAAI;AACxB,QAAI,WAAW;AACf,OAAG;AACD,aAAO,KAAK,IAAI;AAChB,cAAQ,KAAK,UAAU;AAAA,QACrB,KAAK,gBAAgB;AACnB,gBAAM,OAAO,MAAM;AACnB,kBAAQ,MAAM;AAAA,YACZ,KAAK;AAAA,YACL,KAAK;AAAA,YACL,KAAK;AACH;AAAA,YACF;AACE,kBAAI,KAAK,IAAI;AAAA,UACjB;AACA;AAAA,QACF;AAAA,QACA,KAAK,UAAU;AACb,gBAAM,QAAQ,KAAK,KAAK;AACxB,cAAI,UAAU;AACZ,gBAAI,qBAAqB;AACvB,kBAAI,KAAK,KAAK;AAAA,qBACP,OAAO,KAAK;AACnB,kBAAI,KAAK,WAAW,KAAK,IAAI,MAAM,KAAK;AAAA;AAExC,kBAAI,KAAK,MAAM,MAAM,SAAS,GAAG;AACnC,uBAAW;AAAA,UACb;AAEE,gBAAI,KAAK,KAAK,MAAM,SAAS,GAAG;AAClC;AAAA,QACF;AAAA,QACA,KAAK;AACH,cAAI;AACF,gBAAI,KAAK,GAAG;AACd,cAAI,KAAK,aAAa,KAAK,UAAU;AACnC,gBAAI,KAAK,KAAK,SAAS,CAAC;AACxB,mBAAO,KAAK,GAAG;AACf,uBAAW;AAAA,UACb,OACK;AACH,gBAAI,KAAK,IAAI,KAAK,SAAS,EAAE;AAC7B,uBAAW;AAAA,UACb;AACA;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,cAAI,MAAM,WAAW,MAAM,MAAM,IAAI;AACrC,qBAAW;AACX;AAAA,MACJ;AAAA,IACF,SAAS,SAAS;AAClB,WAAO,IAAI,KAAK,EAAE;AAAA,EACpB;AAAA,EAEA,SAAS;AACP,UAAM,OAAO,CAAC;AACd,kBAAc,MAAM,IAAI;AACxB,WAAO;AAAA,EACT;AAAA;AAAA;AAAA,EAKA,eAAe,GAAG,MAAM;AAAE,WAAO,KAAK,aAAa,IAAI;AAAA,EAAG;AAAA,EAC1D,uBAAuB,GAAG,MAAM;AAAE,WAAO,KAAK,qBAAqB,IAAI;AAAA,EAAG;AAAA,EAC1E,eAAe,GAAG,MAAM;AAAE,WAAO,KAAK,aAAa,IAAI;AAAA,EAAG;AAAA,EAC1D,kBAAkB,GAAG,MAAM;AAAE,SAAK,gBAAgB,IAAI;AAAA,EAAG;AAAA,EACzD,eAAe,GAAG,MAAM,OAAO;AAAE,SAAK,aAAa,MAAM,KAAK;AAAA,EAAG;AAAA,EACjE,mBAAmB,MAAM;AAAE,WAAO,KAAK,iBAAiB,IAAI;AAAA,EAAG;AAAA;AAEjE;;;AC9fA,IAAM,aAAa,oBAAI;AAEvB,IAAMU,WAAU;AAAA,EACd,IAAI,QAAQ,MAAM;AAChB,WAAO,OAAO,IAAI;AAAA,EACpB;AAAA,EACA,IAAI,QAAQ,MAAM,OAAO;AACvB,WAAO,IAAI,IAAI;AACf,WAAO;AAAA,EACT;AACF;AAKO,IAAM,aAAN,cAAyBC,SAAQ;AAAA,EACtC,YAAY,eAAe,WAAW,kBAAkB,MAAM;AAC5D,UAAM,eAAe,SAAS;AAC9B,SAAK,kBAAkB;AAAA,EACzB;AAAA,EAEA,IAAI,YAAY;AACd,QAAI,CAAC,WAAW,IAAI,IAAI;AACtB,iBAAW,IAAI,MAAM,IAAI,MAAM,EAAC,SAAS,IAAI,SAAS,GAAE,GAAGD,QAAO,CAAC;AACrE,WAAO,WAAW,IAAI,IAAI;AAAA,EAC5B;AAAA;AAAA,EAGA,IAAI,UAAU,OAAO;AACnB,UAAM,EAAC,UAAS,IAAI;AACpB,cAAU,MAAM;AAChB,cAAU,IAAI,GAAI,QAAO,KAAK,EAAE,MAAM,KAAK,CAAE;AAAA,EAC/C;AAAA;AAAA,EAGA,IAAI,eAAe;AACjB,WAAO;AAAA,EACT;AAAA,EAEA,aAAa,MAAM;AACjB,WAAO,SAAS,UACd,CAAC,GAAG,KAAK,SAAS,EAAE,KAAK,GAAG,IAC5B,MAAM,aAAa,IAAI;AAAA,EAC3B;AAAA,EAEA,aAAa,MAAM,OAAO;AACxB,QAAI,SAAS;AACX,WAAK,YAAY;AAAA,aACV,SAAS,SAAS;AACzB,YAAM,EAAC,UAAS,IAAI;AACpB,gBAAU,UAAU,UAAU,UAAU;AAAA,IAC1C;AACA,UAAM,aAAa,MAAM,KAAK;AAAA,EAChC;AACF;;;AC1CO,IAAM,qBAAqB,MAAM;AACtC,QAAM,IAAI,UAAU,qBAAqB;AAC3C;AAEO,SAASE,QAAO;AAAE,qBAAmB;AAAG;AAC/C,eAAeA,OAAM,IAAK;AAC1BA,MAAK,YAAY,KAAM;AAEhB,SAASC,gBAAe;AAAE,qBAAmB;AAAG;AACvD,eAAeA,eAAc,YAAa;AAC1CA,cAAa,YAAY,aAAc;AAEhC,SAASC,iBAAgB;AAAE,qBAAmB;AAAG;AACxD,eAAeA,gBAAe,aAAc;AAC5CA,eAAc,YAAY,cAAe;AAElC,SAASC,WAAU;AAAE,qBAAmB;AAAG;AAClD,eAAeA,UAASA,QAAQ;AAChCA,SAAQ,YAAYA,SAAS;AAEtB,SAASC,oBAAmB;AAAE,qBAAmB;AAAG;AAC3D,eAAeA,mBAAkBA,iBAAiB;AAClDA,kBAAiB,YAAYA,kBAAkB;AAExC,SAASC,gBAAe;AAAE,qBAAmB;AAAG;AACvD,eAAeA,eAAc,YAAa;AAC1CA,cAAa,YAAY,aAAc;AAEhC,SAASC,WAAU;AAAE,qBAAmB;AAAG;AAClD,eAAeA,UAASA,QAAQ;AAChCA,SAAQ,YAAYA,SAAS;AAEtB,SAASC,QAAO;AAAE,qBAAmB;AAAG;AAC/C,eAAeA,OAAMA,KAAK;AAC1BA,MAAK,YAAYA,MAAM;AAEhB,SAASC,cAAa;AAAE,qBAAmB;AAAG;AACrD,eAAeA,aAAY,UAAW;AACtCA,YAAW,YAAY,WAAY;AAE5B,SAASC,QAAO;AAAE,qBAAmB;AAAG;AAC/C,eAAeA,OAAMA,KAAK;AAC1BA,MAAK,YAAYA,MAAM;AAEhB,SAASC,cAAa;AAAE,qBAAmB;AAAG;AACrD,eAAeA,aAAY,UAAW;AACtCA,YAAW,YAAY,WAAY;AAG5B,IAAM,UAAU;AAAA,EACrB,MAAAV;AAAA,EACA,cAAAC;AAAA,EACA,eAAAC;AAAA,EACA,SAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,YAAAC;AAAA,EACA,MAAAC;AAAA,EACA,YAAAC;AACF;;;ACrEA,IAAM,SAAS,oBAAI;AACnB,IAAM,SAAS;AAAA,EACb,IAAI,SAAS,MAAM;AACjB,WAAO,OAAO,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,EAAE,IAAI,KAAK;AAAA,EAC7D;AAAA,EACA,IAAI,SAAS,MAAM,OAAO;AACxB,QAAI,CAAC,OAAO,IAAI,OAAO;AACrB,aAAO,IAAI,SAAS,CAAC,CAAC;AACxB,UAAM,WAAW,OAAO,IAAI,OAAO;AACnC,UAAM,OAAO,KAAK,MAAM,CAAC;AACzB,QAAI,SAAS,IAAI;AACf,cAAQ,oBAAoB,MAAM,SAAS,IAAI,GAAG,KAAK;AACzD,QAAK,SAAS,IAAI,IAAI;AACpB,cAAQ,iBAAiB,MAAM,OAAO,KAAK;AAAA,EAC/C;AACF;AAKO,IAAM,cAAN,cAA0BC,SAAQ;AAAA,EAEvC,WAAW,qBAAqB;AAAE,WAAO,CAAC;AAAA,EAAG;AAAA,EAE7C,YAAY,gBAAgB,MAAM,YAAY,IAAI;AAChD,UAAM,eAAe,SAAS;AAE9B,UAAM,YAAY,CAAC;AACnB,QAAI;AAEJ,QAAI,WAAW;AACb,YAAM,EAAC,aAAa,MAAK,IAAI;AAC7B,UAAI,CAAC,QAAQ,IAAI,KAAK;AACpB,cAAM,IAAI,MAAM,0CAA0C;AAC5D,OAAC,EAAC,eAAe,WAAW,QAAO,IAAI,QAAQ,IAAI,KAAK;AAAA,IAC1D;AAEA,QAAI,cAAc,OAAO,GAAG;AAC1B,YAAM,EAAC,SAAS,OAAM,IAAI,cAAc,OAAO;AAC/C,oBAAc,OAAO,IAAI;AACzB,iBAAW,CAACC,MAAK,KAAK,KAAK;AACzB,gBAAQA,IAAG,IAAI;AACjB,aAAO;AAAA,IACT;AAEA,QAAI,WAAW;AACb,WAAK,gBAAgB,KAAK,GAAG,EAAE,gBAAgB;AAC/C,WAAK,YAAY;AACjB,qBAAe,IAAI,MAAM,EAAC,WAAW,MAAK,CAAC;AAC3C,UAAI,QAAQ;AACV,aAAK,aAAa,MAAM,QAAQ,EAAE;AAAA,IACtC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OAAO;AAAE,SAAK,cAAc,IAAI,YAAM,MAAM,CAAC;AAAA,EAAG;AAAA,EAChD,QAAQ;AACN,UAAM,aAAa,IAAI,YAAM,SAAS,EAAC,SAAS,MAAM,YAAY,KAAI,CAAC;AACvE,eAAW,SAAS;AAEpB,SAAK,cAAc,UAAU;AAAA,EAC/B;AAAA;AAAA,EAGA,IAAI,iBAAiB;AACnB,UAAM,EAAC,UAAS,IAAI;AACpB,WAAO,aAAa,aAAa,SAAS;AAAA,EAC5C;AAAA,EACA,IAAI,oBAAoB;AAAE,WAAO,KAAK,aAAa,iBAAiB;AAAA,EAAG;AAAA;AAAA,EAGvE,IAAI,kBAAkB;AAAE,WAAO,iBAAiB,IAAI,MAAM,iBAAiB;AAAA,EAAG;AAAA,EAC9E,IAAI,gBAAgB,OAAO;AAAE,qBAAiB,IAAI,MAAM,mBAAmB,KAAK;AAAA,EAAG;AAAA,EACnF,IAAI,YAAY;AAAE,WAAO,iBAAiB,IAAI,MAAM,WAAW;AAAA,EAAG;AAAA,EAClE,IAAI,UAAU,OAAO;AAAE,qBAAiB,IAAI,MAAM,aAAa,KAAK;AAAA,EAAG;AAAA,EACvE,IAAI,SAAS;AAAE,WAAO,iBAAiB,IAAI,MAAM,QAAQ;AAAA,EAAG;AAAA,EAC5D,IAAI,OAAO,OAAO;AAAE,qBAAiB,IAAI,MAAM,UAAU,KAAK;AAAA,EAAG;AAAA,EACjE,IAAI,aAAa;AAAE,WAAO,iBAAiB,IAAI,MAAM,YAAY;AAAA,EAAG;AAAA,EACpE,IAAI,WAAW,OAAO;AAAE,qBAAiB,IAAI,MAAM,cAAc,KAAK;AAAA,EAAG;AAAA;AAAA,EAGzE,IAAI,YAAY;AAAE,WAAO,gBAAgB,IAAI,MAAM,WAAW;AAAA,EAAG;AAAA,EACjE,IAAI,UAAU,OAAO;AAAE,oBAAgB,IAAI,MAAM,aAAa,KAAK;AAAA,EAAG;AAAA,EACtE,IAAI,MAAM;AAAE,WAAO,gBAAgB,IAAI,MAAM,KAAK;AAAA,EAAG;AAAA,EACrD,IAAI,IAAI,OAAO;AAAE,oBAAgB,IAAI,MAAM,OAAO,KAAK;AAAA,EAAG;AAAA,EAC1D,IAAI,OAAO;AAAE,WAAO,gBAAgB,IAAI,MAAM,MAAM;AAAA,EAAG;AAAA,EACvD,IAAI,KAAK,OAAO;AAAE,oBAAgB,IAAI,MAAM,QAAQ,KAAK;AAAA,EAAG;AAAA,EAC5D,IAAI,QAAQ;AAAE,WAAO,gBAAgB,IAAI,MAAM,OAAO;AAAA,EAAG;AAAA,EACzD,IAAI,MAAM,OAAO;AAAE,oBAAgB,IAAI,MAAM,SAAS,KAAK;AAAA,EAAG;AAAA;AAAA,EAG9D,IAAI,UAAU;AAAE,WAAO,OAAO,IAAI,MAAM,SAAS;AAAA,EAAG;AAAA,EACpD,IAAI,QAAQ,OAAO;AAAE,WAAO,IAAI,MAAM,WAAW,KAAK;AAAA,EAAG;AAAA,EAEzD,IAAI,SAAS;AAAE,WAAO,OAAO,IAAI,MAAM,QAAQ;AAAA,EAAG;AAAA,EAClD,IAAI,OAAO,OAAO;AAAE,WAAO,IAAI,MAAM,UAAU,KAAK;AAAA,EAAG;AAAA,EAEvD,IAAI,WAAW;AAAE,WAAO,OAAO,IAAI,MAAM,UAAU;AAAA,EAAG;AAAA,EACtD,IAAI,SAAS,OAAO;AAAE,WAAO,IAAI,MAAM,YAAY,KAAK;AAAA,EAAG;AAAA,EAE3D,IAAI,YAAY;AAAE,WAAO,OAAO,IAAI,MAAM,WAAW;AAAA,EAAG;AAAA,EACxD,IAAI,UAAU,OAAO;AAAE,WAAO,IAAI,MAAM,aAAa,KAAK;AAAA,EAAG;AAAA,EAE7D,IAAI,mBAAmB;AAAE,WAAO,OAAO,IAAI,MAAM,kBAAkB;AAAA,EAAG;AAAA,EACtE,IAAI,iBAAiB,OAAO;AAAE,WAAO,IAAI,MAAM,oBAAoB,KAAK;AAAA,EAAG;AAAA,EAE3E,IAAI,WAAW;AAAE,WAAO,OAAO,IAAI,MAAM,UAAU;AAAA,EAAG;AAAA,EACtD,IAAI,SAAS,OAAO;AAAE,WAAO,IAAI,MAAM,YAAY,KAAK;AAAA,EAAG;AAAA,EAE3D,IAAI,UAAU;AAAE,WAAO,OAAO,IAAI,MAAM,SAAS;AAAA,EAAG;AAAA,EACpD,IAAI,QAAQ,OAAO;AAAE,WAAO,IAAI,MAAM,WAAW,KAAK;AAAA,EAAG;AAAA,EAEzD,IAAI,UAAU;AAAE,WAAO,OAAO,IAAI,MAAM,SAAS;AAAA,EAAG;AAAA,EACpD,IAAI,QAAQ,OAAO;AAAE,WAAO,IAAI,MAAM,WAAW,KAAK;AAAA,EAAG;AAAA,EAEzD,IAAI,gBAAgB;AAAE,WAAO,OAAO,IAAI,MAAM,eAAe;AAAA,EAAG;AAAA,EAChE,IAAI,cAAc,OAAO;AAAE,WAAO,IAAI,MAAM,iBAAiB,KAAK;AAAA,EAAG;AAAA,EAErE,IAAI,cAAc;AAAE,WAAO,OAAO,IAAI,MAAM,aAAa;AAAA,EAAG;AAAA,EAC5D,IAAI,YAAY,OAAO;AAAE,WAAO,IAAI,MAAM,eAAe,KAAK;AAAA,EAAG;AAAA,EAEjE,IAAI,aAAa;AAAE,WAAO,OAAO,IAAI,MAAM,YAAY;AAAA,EAAG;AAAA,EAC1D,IAAI,WAAW,OAAO;AAAE,WAAO,IAAI,MAAM,cAAc,KAAK;AAAA,EAAG;AAAA,EAE/D,IAAI,SAAS;AAAE,WAAO,OAAO,IAAI,MAAM,QAAQ;AAAA,EAAG;AAAA,EAClD,IAAI,OAAO,OAAO;AAAE,WAAO,IAAI,MAAM,UAAU,KAAK;AAAA,EAAG;AAAA,EAEvD,IAAI,YAAY;AAAE,WAAO,OAAO,IAAI,MAAM,WAAW;AAAA,EAAG;AAAA,EACxD,IAAI,UAAU,OAAO;AAAE,WAAO,IAAI,MAAM,aAAa,KAAK;AAAA,EAAG;AAAA,EAE7D,IAAI,cAAc;AAAE,WAAO,OAAO,IAAI,MAAM,aAAa;AAAA,EAAG;AAAA,EAC5D,IAAI,YAAY,OAAO;AAAE,WAAO,IAAI,MAAM,eAAe,KAAK;AAAA,EAAG;AAAA,EAEjE,IAAI,cAAc;AAAE,WAAO,OAAO,IAAI,MAAM,aAAa;AAAA,EAAG;AAAA,EAC5D,IAAI,YAAY,OAAO;AAAE,WAAO,IAAI,MAAM,eAAe,KAAK;AAAA,EAAG;AAAA,EAEjE,IAAI,aAAa;AAAE,WAAO,OAAO,IAAI,MAAM,YAAY;AAAA,EAAG;AAAA,EAC1D,IAAI,WAAW,OAAO;AAAE,WAAO,IAAI,MAAM,cAAc,KAAK;AAAA,EAAG;AAAA,EAE/D,IAAI,cAAc;AAAE,WAAO,OAAO,IAAI,MAAM,aAAa;AAAA,EAAG;AAAA,EAC5D,IAAI,YAAY,OAAO;AAAE,WAAO,IAAI,MAAM,eAAe,KAAK;AAAA,EAAG;AAAA,EAEjE,IAAI,SAAS;AAAE,WAAO,OAAO,IAAI,MAAM,QAAQ;AAAA,EAAG;AAAA,EAClD,IAAI,OAAO,OAAO;AAAE,WAAO,IAAI,MAAM,UAAU,KAAK;AAAA,EAAG;AAAA,EAEvD,IAAI,mBAAmB;AAAE,WAAO,OAAO,IAAI,MAAM,kBAAkB;AAAA,EAAG;AAAA,EACtE,IAAI,iBAAiB,OAAO;AAAE,WAAO,IAAI,MAAM,oBAAoB,KAAK;AAAA,EAAG;AAAA,EAE3E,IAAI,YAAY;AAAE,WAAO,OAAO,IAAI,MAAM,WAAW;AAAA,EAAG;AAAA,EACxD,IAAI,UAAU,OAAO;AAAE,WAAO,IAAI,MAAM,aAAa,KAAK;AAAA,EAAG;AAAA,EAE7D,IAAI,UAAU;AAAE,WAAO,OAAO,IAAI,MAAM,SAAS;AAAA,EAAG;AAAA,EACpD,IAAI,QAAQ,OAAO;AAAE,WAAO,IAAI,MAAM,WAAW,KAAK;AAAA,EAAG;AAAA,EAEzD,IAAI,UAAU;AAAE,WAAO,OAAO,IAAI,MAAM,SAAS;AAAA,EAAG;AAAA,EACpD,IAAI,QAAQ,OAAO;AAAE,WAAO,IAAI,MAAM,WAAW,KAAK;AAAA,EAAG;AAAA,EAEzD,IAAI,UAAU;AAAE,WAAO,OAAO,IAAI,MAAM,SAAS;AAAA,EAAG;AAAA,EACpD,IAAI,QAAQ,OAAO;AAAE,WAAO,IAAI,MAAM,WAAW,KAAK;AAAA,EAAG;AAAA,EAEzD,IAAI,UAAU;AAAE,WAAO,OAAO,IAAI,MAAM,SAAS;AAAA,EAAG;AAAA,EACpD,IAAI,QAAQ,OAAO;AAAE,WAAO,IAAI,MAAM,WAAW,KAAK;AAAA,EAAG;AAAA,EAEzD,IAAI,YAAY;AAAE,WAAO,OAAO,IAAI,MAAM,WAAW;AAAA,EAAG;AAAA,EACxD,IAAI,UAAU,OAAO;AAAE,WAAO,IAAI,MAAM,aAAa,KAAK;AAAA,EAAG;AAAA,EAE7D,IAAI,YAAY;AAAE,WAAO,OAAO,IAAI,MAAM,WAAW;AAAA,EAAG;AAAA,EACxD,IAAI,UAAU,OAAO;AAAE,WAAO,IAAI,MAAM,aAAa,KAAK;AAAA,EAAG;AAAA,EAE7D,IAAI,aAAa;AAAE,WAAO,OAAO,IAAI,MAAM,YAAY;AAAA,EAAG;AAAA,EAC1D,IAAI,WAAW,OAAO;AAAE,WAAO,IAAI,MAAM,cAAc,KAAK;AAAA,EAAG;AAAA,EAE/D,IAAI,UAAU;AAAE,WAAO,OAAO,IAAI,MAAM,SAAS;AAAA,EAAG;AAAA,EACpD,IAAI,QAAQ,OAAO;AAAE,WAAO,IAAI,MAAM,WAAW,KAAK;AAAA,EAAG;AAAA,EAEzD,IAAI,SAAS;AAAE,WAAO,OAAO,IAAI,MAAM,QAAQ;AAAA,EAAG;AAAA,EAClD,IAAI,OAAO,OAAO;AAAE,WAAO,IAAI,MAAM,UAAU,KAAK;AAAA,EAAG;AAAA,EAEvD,IAAI,eAAe;AAAE,WAAO,OAAO,IAAI,MAAM,cAAc;AAAA,EAAG;AAAA,EAC9D,IAAI,aAAa,OAAO;AAAE,WAAO,IAAI,MAAM,gBAAgB,KAAK;AAAA,EAAG;AAAA,EAEnE,IAAI,mBAAmB;AAAE,WAAO,OAAO,IAAI,MAAM,kBAAkB;AAAA,EAAG;AAAA,EACtE,IAAI,iBAAiB,OAAO;AAAE,WAAO,IAAI,MAAM,oBAAoB,KAAK;AAAA,EAAG;AAAA,EAE3E,IAAI,cAAc;AAAE,WAAO,OAAO,IAAI,MAAM,aAAa;AAAA,EAAG;AAAA,EAC5D,IAAI,YAAY,OAAO;AAAE,WAAO,IAAI,MAAM,eAAe,KAAK;AAAA,EAAG;AAAA,EAEjE,IAAI,cAAc;AAAE,WAAO,OAAO,IAAI,MAAM,aAAa;AAAA,EAAG;AAAA,EAC5D,IAAI,YAAY,OAAO;AAAE,WAAO,IAAI,MAAM,eAAe,KAAK;AAAA,EAAG;AAAA,EAEjE,IAAI,eAAe;AAAE,WAAO,OAAO,IAAI,MAAM,cAAc;AAAA,EAAG;AAAA,EAC9D,IAAI,aAAa,OAAO;AAAE,WAAO,IAAI,MAAM,gBAAgB,KAAK;AAAA,EAAG;AAAA,EAEnE,IAAI,eAAe;AAAE,WAAO,OAAO,IAAI,MAAM,cAAc;AAAA,EAAG;AAAA,EAC9D,IAAI,aAAa,OAAO;AAAE,WAAO,IAAI,MAAM,gBAAgB,KAAK;AAAA,EAAG;AAAA,EAEnE,IAAI,cAAc;AAAE,WAAO,OAAO,IAAI,MAAM,aAAa;AAAA,EAAG;AAAA,EAC5D,IAAI,YAAY,OAAO;AAAE,WAAO,IAAI,MAAM,eAAe,KAAK;AAAA,EAAG;AAAA,EAEjE,IAAI,aAAa;AAAE,WAAO,OAAO,IAAI,MAAM,YAAY;AAAA,EAAG;AAAA,EAC1D,IAAI,WAAW,OAAO;AAAE,WAAO,IAAI,MAAM,cAAc,KAAK;AAAA,EAAG;AAAA,EAE/D,IAAI,cAAc;AAAE,WAAO,OAAO,IAAI,MAAM,aAAa;AAAA,EAAG;AAAA,EAC5D,IAAI,YAAY,OAAO;AAAE,WAAO,IAAI,MAAM,eAAe,KAAK;AAAA,EAAG;AAAA,EAEjE,IAAI,YAAY;AAAE,WAAO,OAAO,IAAI,MAAM,WAAW;AAAA,EAAG;AAAA,EACxD,IAAI,UAAU,OAAO;AAAE,WAAO,IAAI,MAAM,aAAa,KAAK;AAAA,EAAG;AAAA,EAE7D,IAAI,eAAe;AAAE,WAAO,OAAO,IAAI,MAAM,cAAc;AAAA,EAAG;AAAA,EAC9D,IAAI,aAAa,OAAO;AAAE,WAAO,IAAI,MAAM,gBAAgB,KAAK;AAAA,EAAG;AAAA,EAEnE,IAAI,UAAU;AAAE,WAAO,OAAO,IAAI,MAAM,SAAS;AAAA,EAAG;AAAA,EACpD,IAAI,QAAQ,OAAO;AAAE,WAAO,IAAI,MAAM,WAAW,KAAK;AAAA,EAAG;AAAA,EAEzD,IAAI,SAAS;AAAE,WAAO,OAAO,IAAI,MAAM,QAAQ;AAAA,EAAG;AAAA,EAClD,IAAI,OAAO,OAAO;AAAE,WAAO,IAAI,MAAM,UAAU,KAAK;AAAA,EAAG;AAAA,EAEvD,IAAI,YAAY;AAAE,WAAO,OAAO,IAAI,MAAM,WAAW;AAAA,EAAG;AAAA,EACxD,IAAI,UAAU,OAAO;AAAE,WAAO,IAAI,MAAM,aAAa,KAAK;AAAA,EAAG;AAAA,EAE7D,IAAI,aAAa;AAAE,WAAO,OAAO,IAAI,MAAM,YAAY;AAAA,EAAG;AAAA,EAC1D,IAAI,WAAW,OAAO;AAAE,WAAO,IAAI,MAAM,cAAc,KAAK;AAAA,EAAG;AAAA,EAE/D,IAAI,eAAe;AAAE,WAAO,OAAO,IAAI,MAAM,cAAc;AAAA,EAAG;AAAA,EAC9D,IAAI,aAAa,OAAO;AAAE,WAAO,IAAI,MAAM,gBAAgB,KAAK;AAAA,EAAG;AAAA,EAEnE,IAAI,UAAU;AAAE,WAAO,OAAO,IAAI,MAAM,SAAS;AAAA,EAAG;AAAA,EACpD,IAAI,QAAQ,OAAO;AAAE,WAAO,IAAI,MAAM,WAAW,KAAK;AAAA,EAAG;AAAA,EAEzD,IAAI,WAAW;AAAE,WAAO,OAAO,IAAI,MAAM,UAAU;AAAA,EAAG;AAAA,EACtD,IAAI,SAAS,OAAO;AAAE,WAAO,IAAI,MAAM,YAAY,KAAK;AAAA,EAAG;AAAA,EAE3D,IAAI,WAAW;AAAE,WAAO,OAAO,IAAI,MAAM,UAAU;AAAA,EAAG;AAAA,EACtD,IAAI,SAAS,OAAO;AAAE,WAAO,IAAI,MAAM,YAAY,KAAK;AAAA,EAAG;AAAA,EAE3D,IAAI,WAAW;AAAE,WAAO,OAAO,IAAI,MAAM,UAAU;AAAA,EAAG;AAAA,EACtD,IAAI,SAAS,OAAO;AAAE,WAAO,IAAI,MAAM,YAAY,KAAK;AAAA,EAAG;AAAA,EAE3D,IAAI,YAAY;AAAE,WAAO,OAAO,IAAI,MAAM,WAAW;AAAA,EAAG;AAAA,EACxD,IAAI,UAAU,OAAO;AAAE,WAAO,IAAI,MAAM,aAAa,KAAK;AAAA,EAAG;AAAA,EAE7D,IAAI,WAAW;AAAE,WAAO,OAAO,IAAI,MAAM,UAAU;AAAA,EAAG;AAAA,EACtD,IAAI,SAAS,OAAO;AAAE,WAAO,IAAI,MAAM,YAAY,KAAK;AAAA,EAAG;AAAA,EAE3D,IAAI,SAAS;AAAE,WAAO,OAAO,IAAI,MAAM,QAAQ;AAAA,EAAG;AAAA,EAClD,IAAI,OAAO,OAAO;AAAE,WAAO,IAAI,MAAM,UAAU,KAAK;AAAA,EAAG;AAAA,EAEvD,IAAI,YAAY;AAAE,WAAO,OAAO,IAAI,MAAM,WAAW;AAAA,EAAG;AAAA,EACxD,IAAI,UAAU,OAAO;AAAE,WAAO,IAAI,MAAM,aAAa,KAAK;AAAA,EAAG;AAAA,EAE7D,IAAI,WAAW;AAAE,WAAO,OAAO,IAAI,MAAM,UAAU;AAAA,EAAG;AAAA,EACtD,IAAI,SAAS,OAAO;AAAE,WAAO,IAAI,MAAM,YAAY,KAAK;AAAA,EAAG;AAAA,EAE3D,IAAI,YAAY;AAAE,WAAO,OAAO,IAAI,MAAM,WAAW;AAAA,EAAG;AAAA,EACxD,IAAI,UAAU,OAAO;AAAE,WAAO,IAAI,MAAM,aAAa,KAAK;AAAA,EAAG;AAAA,EAE7D,IAAI,eAAe;AAAE,WAAO,OAAO,IAAI,MAAM,cAAc;AAAA,EAAG;AAAA,EAC9D,IAAI,aAAa,OAAO;AAAE,WAAO,IAAI,MAAM,gBAAgB,KAAK;AAAA,EAAG;AAAA,EAEnE,IAAI,WAAW;AAAE,WAAO,OAAO,IAAI,MAAM,UAAU;AAAA,EAAG;AAAA,EACtD,IAAI,SAAS,OAAO;AAAE,WAAO,IAAI,MAAM,YAAY,KAAK;AAAA,EAAG;AAAA,EAE3D,IAAI,iBAAiB;AAAE,WAAO,OAAO,IAAI,MAAM,gBAAgB;AAAA,EAAG;AAAA,EAClE,IAAI,eAAe,OAAO;AAAE,WAAO,IAAI,MAAM,kBAAkB,KAAK;AAAA,EAAG;AAAA,EAEvE,IAAI,YAAY;AAAE,WAAO,OAAO,IAAI,MAAM,WAAW;AAAA,EAAG;AAAA,EACxD,IAAI,UAAU,OAAO;AAAE,WAAO,IAAI,MAAM,aAAa,KAAK;AAAA,EAAG;AAAA,EAE7D,IAAI,aAAa;AAAE,WAAO,OAAO,IAAI,MAAM,YAAY;AAAA,EAAG;AAAA,EAC1D,IAAI,WAAW,OAAO;AAAE,WAAO,IAAI,MAAM,cAAc,KAAK;AAAA,EAAG;AAAA,EAE/D,IAAI,sBAAsB;AAAE,WAAO,OAAO,IAAI,MAAM,qBAAqB;AAAA,EAAG;AAAA,EAC5E,IAAI,oBAAoB,OAAO;AAAE,WAAO,IAAI,MAAM,uBAAuB,KAAK;AAAA,EAAG;AAAA,EAEjF,IAAI,uBAAuB;AAAE,WAAO,OAAO,IAAI,MAAM,sBAAsB;AAAA,EAAG;AAAA,EAC9E,IAAI,qBAAqB,OAAO;AAAE,WAAO,IAAI,MAAM,wBAAwB,KAAK;AAAA,EAAG;AAAA,EAEnF,IAAI,kBAAkB;AAAE,WAAO,OAAO,IAAI,MAAM,iBAAiB;AAAA,EAAG;AAAA,EACpE,IAAI,gBAAgB,OAAO;AAAE,WAAO,IAAI,MAAM,mBAAmB,KAAK;AAAA,EAAG;AAAA,EAEzE,IAAI,gBAAgB;AAAE,WAAO,OAAO,IAAI,MAAM,eAAe;AAAA,EAAG;AAAA,EAChE,IAAI,cAAc,OAAO;AAAE,WAAO,IAAI,MAAM,iBAAiB,KAAK;AAAA,EAAG;AAAA,EAErE,IAAI,iBAAiB;AAAE,WAAO,OAAO,IAAI,MAAM,gBAAgB;AAAA,EAAG;AAAA,EAClE,IAAI,eAAe,OAAO;AAAE,WAAO,IAAI,MAAM,kBAAkB,KAAK;AAAA,EAAG;AAAA,EAEvE,IAAI,iBAAiB;AAAE,WAAO,OAAO,IAAI,MAAM,gBAAgB;AAAA,EAAG;AAAA,EAClE,IAAI,eAAe,OAAO;AAAE,WAAO,IAAI,MAAM,kBAAkB,KAAK;AAAA,EAAG;AAAA,EAEvE,IAAI,gBAAgB;AAAE,WAAO,OAAO,IAAI,MAAM,eAAe;AAAA,EAAG;AAAA,EAChE,IAAI,cAAc,OAAO;AAAE,WAAO,IAAI,MAAM,iBAAiB,KAAK;AAAA,EAAG;AAAA,EAErE,IAAI,eAAe;AAAE,WAAO,OAAO,IAAI,MAAM,cAAc;AAAA,EAAG;AAAA,EAC9D,IAAI,aAAa,OAAO;AAAE,WAAO,IAAI,MAAM,gBAAgB,KAAK;AAAA,EAAG;AAAA,EAEnE,IAAI,gBAAgB;AAAE,WAAO,OAAO,IAAI,MAAM,eAAe;AAAA,EAAG;AAAA,EAChE,IAAI,cAAc,OAAO;AAAE,WAAO,IAAI,MAAM,iBAAiB,KAAK;AAAA,EAAG;AAAA,EAErE,IAAI,cAAc;AAAE,WAAO,OAAO,IAAI,MAAM,aAAa;AAAA,EAAG;AAAA,EAC5D,IAAI,YAAY,OAAO;AAAE,WAAO,IAAI,MAAM,eAAe,KAAK;AAAA,EAAG;AAAA;AAGnE;;;ACxTA,IAAM,UAAU;AAKhB,IAAM,sBAAN,cAAkC,YAAY;AAAA,EAC5C,YAAY,eAAe;AACzB,UAAM,eAAe,OAAO;AAC5B,UAAM,UAAU,KAAK,cAAc,uBAAuB;AAC1D,KAAC,KAAK,OAAO,IAAI,SAAS,OAAO,IAAI;AAAA,EACvC;AAAA,EAEA,IAAI,UAAU;AACZ,QAAI,KAAK,cAAc,KAAK,CAAC,KAAK,OAAO,EAAE,cAAc,GAAG;AAC1D,iBAAW,QAAQ,KAAK;AACtB,aAAK,OAAO,EAAE,YAAY,KAAK,UAAU,IAAI,CAAC;AAAA,IAClD;AACA,WAAO,KAAK,OAAO;AAAA,EACrB;AACF;AAEA,kBAAkB,SAAS,mBAAmB;;;ACtBvC,IAAM,kBAAN,cAA8B,YAAY;AAAA,EAC/C,YAAY,eAAe,YAAY,QAAQ;AAC7C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACPA,IAAM,EAAC,SAAQ,IAAI,YAAY;AAExB,IAAM,cAAN,cAA0B,YAAY;AAAA,EAE3C,IAAI,YAAY;AAAE,WAAO,KAAK;AAAA,EAAa;AAAA,EAC3C,IAAI,UAAU,MAAM;AAAE,SAAK,cAAc;AAAA,EAAM;AAAA,EAE/C,WAAW;AACT,UAAM,YAAY,SAAS,KAAK,KAAK,UAAU,CAAC;AAChD,WAAO,UAAU,QAAQ,MAAM,MAAM,IAAI,KAAK,WAAW,GAAG;AAAA,EAC9D;AACF;;;ACRA,IAAMC,WAAU;AAKhB,IAAM,oBAAN,cAAgC,YAAY;AAAA,EAC1C,YAAY,eAAe,YAAYA,UAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,gBAAgB,IAAI,MAAM,MAAM;AAAA,EACzC;AAAA,EACA,IAAI,KAAK,OAAO;AACd,oBAAgB,IAAI,MAAM,QAAQ,KAAK;AAAA,EACzC;AAAA,EAEA,IAAI,MAAM;AACR,WAAO,gBAAgB,IAAI,MAAM,KAAK;AAAA,EACxC;AAAA,EACA,IAAI,IAAI,OAAO;AACb,oBAAgB,IAAI,MAAM,OAAO,KAAK;AAAA,EACxC;AAAA,EAEA,IAAI,QAAQ;AACV,WAAO,iBAAiB,IAAI,MAAM,OAAO;AAAA,EAC3C;AAAA,EAEA,IAAI,MAAM,OAAO;AACf,qBAAiB,IAAI,MAAM,SAAS,KAAK;AAAA,EAC3C;AAAA,EAEA,IAAI,cAAc;AAChB,WAAO,gBAAgB,IAAI,MAAM,aAAa;AAAA,EAChD;AAAA,EACA,IAAI,YAAY,OAAO;AACrB,oBAAgB,IAAI,MAAM,eAAe,KAAK;AAAA,EAChD;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,iBAAiB,IAAI,MAAM,UAAU;AAAA,EAC9C;AAAA,EACA,IAAI,SAAS,OAAO;AAClB,qBAAiB,IAAI,MAAM,YAAY,KAAK;AAAA,EAC9C;AAAA,EAEA,IAAI,iBAAiB;AACnB,WAAO,gBAAgB,IAAI,MAAM,gBAAgB;AAAA,EACnD;AAAA,EACA,IAAI,eAAe,OAAO;AACxB,oBAAgB,IAAI,MAAM,kBAAkB,KAAK;AAAA,EACnD;AAAA,EAEA,IAAI,QAAQ;AACV,WAAO,gBAAgB,IAAI,MAAM,OAAO;AAAA,EAC1C;AAAA,EACA,IAAI,MAAM,OAAO;AACf,oBAAgB,IAAI,MAAM,SAAS,KAAK;AAAA,EAC1C;AAAA,EAEA,IAAI,QAAQ;AACV,WAAO,iBAAiB,IAAI,MAAM,OAAO;AAAA,EAC3C;AAAA,EACA,IAAI,MAAM,OAAO;AACf,qBAAiB,IAAI,MAAM,SAAS,KAAK;AAAA,EAC3C;AAAA,EAEA,IAAI,OAAO;AAAE,WAAO,KAAK;AAAA,EAAa;AAAA,EACtC,IAAI,KAAK,SAAS;AAAE,SAAK,cAAc;AAAA,EAAS;AAClD;AAEA,kBAAkBA,UAAS,iBAAiB;;;ACvErC,IAAM,mBAAN,cAA+B,YAAY;AAAA,EAChD,YAAY,eAAe,YAAY,SAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJA,IAAMC,WAAU;AAKhB,IAAM,oBAAN,cAAgC,YAAY;AAAA,EAC1C,YAAY,eAAe,YAAYA,UAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AAAA;AAAA,EAGA,IAAI,MAAM;AAAE,WAAO,gBAAgB,IAAI,MAAM,KAAK;AAAA,EAAG;AAAA,EACrD,IAAI,IAAI,OAAO;AAAE,oBAAgB,IAAI,MAAM,OAAO,KAAK;AAAA,EAAG;AAAA,EAE1D,IAAI,SAAS;AAAE,WAAO,gBAAgB,IAAI,MAAM,QAAQ;AAAA,EAAG;AAAA,EAC3D,IAAI,OAAO,OAAO;AAAE,oBAAgB,IAAI,MAAM,UAAU,KAAK;AAAA,EAAG;AAAA,EAEhE,IAAI,OAAO;AAAE,WAAO,gBAAgB,IAAI,MAAM,MAAM;AAAA,EAAG;AAAA,EACvD,IAAI,KAAK,OAAO;AAAE,oBAAgB,IAAI,MAAM,QAAQ,KAAK;AAAA,EAAG;AAAA,EAE5D,IAAI,QAAQ;AAAE,WAAO,gBAAgB,IAAI,MAAM,OAAO;AAAA,EAAG;AAAA,EACzD,IAAI,MAAM,OAAO;AAAE,oBAAgB,IAAI,MAAM,SAAS,KAAK;AAAA,EAAG;AAAA,EAE9D,IAAI,kBAAkB;AAAE,WAAO,iBAAiB,IAAI,MAAM,iBAAiB;AAAA,EAAG;AAAA,EAC9E,IAAI,gBAAgB,OAAO;AAAE,qBAAiB,IAAI,MAAM,mBAAmB,KAAK;AAAA,EAAG;AAAA,EAEnF,IAAI,iBAAiB;AAAE,WAAO,gBAAgB,IAAI,MAAM,gBAAgB;AAAA,EAAG;AAAA,EAC3E,IAAI,eAAe,OAAO;AAAE,oBAAgB,IAAI,MAAM,kBAAkB,KAAK;AAAA,EAAG;AAAA,EAEhF,IAAI,UAAU;AAAE,WAAO,gBAAgB,IAAI,MAAM,SAAS;AAAA,EAAG;AAAA,EAC7D,IAAI,QAAQ,OAAO;AAAE,oBAAgB,IAAI,MAAM,WAAW,KAAK;AAAA,EAAG;AAAA;AAEpE;AAEA,kBAAkBA,UAAS,iBAAiB;;;AClCrC,IAAM,oBAAN,cAAgC,YAAY;AAAA,EACjD,YAAY,eAAe,YAAY,UAAU;AAC/C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,kBAAN,cAA8B,YAAY;AAAA,EAC/C,YAAY,eAAe,YAAY,QAAQ;AAC7C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,kBAAN,cAA8B,YAAY;AAAA,EAC/C,YAAY,eAAe,YAAY,QAAQ;AAC7C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACTA,mBAAoB;AAOpB,IAAMC,WAAU;AAKhB,IAAM,mBAAN,cAA+B,YAAY;AAAA,EACzC,YAAY,eAAe,YAAYA,UAAS;AAC9C,UAAM,eAAe,SAAS;AAC9B,SAAK,KAAK,IAAI;AAAA,EAChB;AAAA,EAEA,IAAI,QAAQ;AACV,UAAM,QAAQ,KAAK,KAAK;AACxB,QAAI,UAAU,MAAM;AAClB,aAAO;AAAA,IACT;AACA,WAAO,KAAK,KAAK,QAAI,oBAAM,KAAK,WAAW;AAAA,EAC7C;AAAA,EAEA,IAAI,YAAY;AACd,WAAO,MAAM,aAAa;AAAA,EAC5B;AAAA,EACA,IAAI,UAAU,OAAO;AACnB,UAAM,cAAc;AACpB,SAAK,KAAK,IAAI;AAAA,EAChB;AAAA,EACA,IAAI,YAAY;AACd,WAAO,MAAM,aAAa;AAAA,EAC5B;AAAA,EACA,IAAI,UAAU,OAAO;AACnB,UAAM,cAAc;AACpB,SAAK,KAAK,IAAI;AAAA,EAChB;AAAA,EACA,IAAI,cAAc;AAChB,WAAO,MAAM,eAAe;AAAA,EAC9B;AAAA,EACA,IAAI,YAAY,OAAO;AACrB,UAAM,cAAc;AACpB,SAAK,KAAK,IAAI;AAAA,EAChB;AACF;AAEA,kBAAkBA,UAAS,gBAAgB;;;ACzC3C,IAAM,kBAAN,cAA8B,YAAY;AAAA,EACxC,YAAY,eAAe,YAAY,QAAQ;AAC7C,UAAM,eAAe,SAAS;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAAW;AAAE,WAAO,gBAAgB,IAAI,MAAM,UAAU;AAAA,EAAG;AAAA,EAC/D,IAAI,SAAS,OAAO;AAAE,oBAAgB,IAAI,MAAM,YAAY,KAAK;AAAA,EAAG;AACtE;AAEA,kBAAkB,QAAQ,eAAe;;;ACflC,IAAM,sBAAN,cAAkC,YAAY;AAAA,EACnD,YAAY,eAAe,YAAY,YAAY;AACjD,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,mBAAN,cAA+B,YAAY;AAAA,EAChD,YAAY,eAAe,YAAY,SAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,gBAAN,cAA4B,YAAY;AAAA,EAC7C,YAAY,eAAe,YAAY,MAAM;AAC3C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,sBAAN,cAAkC,YAAY;AAAA,EACnD,YAAY,eAAe,YAAY,YAAY;AACjD,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,uBAAN,cAAmC,YAAY;AAAA,EACpD,YAAY,eAAe,YAAY,KAAK;AAC1C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,mBAAN,cAA+B,YAAY;AAAA,EAChD,YAAY,eAAe,YAAY,SAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,sBAAN,cAAkC,YAAY;AAAA,EACnD,YAAY,eAAe,YAAY,YAAY;AACjD,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,gBAAN,cAA4B,YAAY;AAAA,EAC7C,YAAY,eAAe,YAAY,MAAM;AAC3C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,kBAAN,cAA8B,YAAY;AAAA,EAC/C,YAAY,eAAe,YAAY,QAAQ;AAC7C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,sBAAN,cAAkC,YAAY;AAAA,EACnD,YAAY,eAAe,YAAY,YAAY;AACjD,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJA,IAAMC,WAAU;AAKhB,IAAM,mBAAN,cAA+B,YAAY;AAAA,EACzC,YAAY,eAAe,YAAYA,UAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AAAA;AAAA,EAGA,IAAI,YAAY;AAAE,WAAO,iBAAiB,IAAI,MAAM,WAAW,KAAK;AAAA,EAAI;AAAA,EACxE,IAAI,UAAU,OAAO;AAAE,qBAAiB,IAAI,MAAM,aAAa,KAAK;AAAA,EAAG;AAAA,EAEvE,IAAI,WAAW;AAAE,WAAO,iBAAiB,IAAI,MAAM,UAAU;AAAA,EAAG;AAAA,EAChE,IAAI,SAAS,OAAO;AAAE,qBAAiB,IAAI,MAAM,YAAY,KAAK;AAAA,EAAG;AAAA,EAErE,IAAI,OAAO;AAAE,WAAO,KAAK,aAAa,MAAM;AAAA,EAAG;AAAA,EAC/C,IAAI,KAAK,OAAO;AAAE,SAAK,aAAa,QAAQ,KAAK;AAAA,EAAG;AAAA,EAEpD,IAAI,cAAc;AAAE,WAAO,KAAK,aAAa,aAAa;AAAA,EAAG;AAAA,EAC7D,IAAI,YAAY,OAAO;AAAE,SAAK,aAAa,eAAe,KAAK;AAAA,EAAG;AAAA,EAElE,IAAI,OAAO;AAAE,WAAO,KAAK,aAAa,MAAM;AAAA,EAAG;AAAA,EAC/C,IAAI,KAAK,OAAO;AAAE,SAAK,aAAa,QAAQ,KAAK;AAAA,EAAG;AAAA,EAEpD,IAAI,QAAQ;AAAE,WAAO,gBAAgB,IAAI,MAAM,OAAO;AAAA,EAAG;AAAA,EACzD,IAAI,MAAM,OAAO;AAAE,oBAAgB,IAAI,MAAM,SAAS,KAAK;AAAA,EAAG;AAAA;AAEhE;AAEA,kBAAkBA,UAAS,gBAAgB;;;AC/BpC,IAAM,mBAAN,cAA+B,YAAY;AAAA,EAChD,YAAY,eAAe,YAAY,SAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,mBAAN,cAA+B,YAAY;AAAA,EAChD,YAAY,eAAe,YAAY,SAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,mBAAN,cAA+B,YAAY;AAAA,EAChD,YAAY,eAAe,YAAY,SAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACLA,IAAMC,WAAU;AAKhB,IAAM,qBAAN,cAAiC,YAAY;AAAA,EAC3C,YAAY,eAAe,YAAYA,UAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;AAEA,kBAAkB,CAACA,UAAS,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,kBAAkB;;;ACVtE,IAAM,uBAAN,cAAmC,YAAY;AAAA,EACpD,YAAY,eAAe,YAAY,OAAO;AAC5C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,mBAAN,cAA+B,YAAY;AAAA,EAChD,YAAY,eAAe,YAAY,SAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJA,oBAAmB;AAInB,IAAM,EAAC,aAAY,IAAI,cAAAC;AAEvB,IAAMC,WAAU;AAKhB,IAAM,oBAAN,cAAgC,YAAY;AAAA,EAC1C,YAAY,eAAe,YAAYA,UAAS;AAC9C,UAAM,eAAe,SAAS;AAC9B,SAAK,KAAK,IAAI,aAAa,KAAK,GAAG;AAAA,EACrC;AAAA,EAEA,IAAI,QAAQ;AACV,WAAO,KAAK,KAAK,EAAE;AAAA,EACrB;AAAA,EAEA,IAAI,MAAM,OAAO;AACf,qBAAiB,IAAI,MAAM,SAAS,KAAK;AACzC,SAAK,KAAK,EAAE,QAAQ;AAAA,EACtB;AAAA,EAEA,IAAI,SAAS;AACX,WAAO,KAAK,KAAK,EAAE;AAAA,EACrB;AAAA,EAEA,IAAI,OAAO,OAAO;AAChB,qBAAiB,IAAI,MAAM,UAAU,KAAK;AAC1C,SAAK,KAAK,EAAE,SAAS;AAAA,EACvB;AAAA,EAEA,WAAW,MAAM;AACf,WAAO,KAAK,KAAK,EAAE,WAAW,IAAI;AAAA,EACpC;AAAA,EAEA,aAAa,MAAM;AACjB,WAAO,KAAK,KAAK,EAAE,UAAU,GAAG,IAAI;AAAA,EACtC;AACF;AAEA,kBAAkBA,UAAS,iBAAiB;;;AC5CrC,IAAM,oBAAN,cAAgC,YAAY;AAAA,EACjD,YAAY,eAAe,YAAY,UAAU;AAC/C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACLA,IAAMC,WAAU;AAKhB,IAAM,oBAAN,cAAgC,YAAY;AAAA,EAC1C,YAAY,eAAe,YAAYA,UAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AAAA;AAAA,EAGA,IAAI,QAAQ;AAAE,WAAO,gBAAgB,IAAI,MAAM,OAAO;AAAA,EAAG;AAAA,EACzD,IAAI,MAAM,OAAO;AAAE,oBAAgB,IAAI,MAAM,SAAS,KAAK;AAAA,EAAG;AAAA;AAAA,EAG9D,IAAI,WAAW;AAAE,WAAO,iBAAiB,IAAI,MAAM,UAAU;AAAA,EAAG;AAAA,EAChE,IAAI,SAAS,OAAO;AAClB,UAAM,SAAS,KAAK,eAAe,cAAc,kBAAkB;AACnE,QAAI,UAAU,WAAW;AACvB,aAAO,WAAW;AACpB,qBAAiB,IAAI,MAAM,YAAY,KAAK;AAAA,EAC9C;AACF;AAEA,kBAAkBA,UAAS,iBAAiB;;;ACvBrC,IAAM,kBAAN,cAA8B,YAAY;AAAA,EAC/C,YAAY,eAAe,YAAY,QAAQ;AAC7C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,mBAAN,cAA+B,YAAY;AAAA,EAChD,YAAY,eAAe,YAAY,SAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,mBAAN,cAA+B,YAAY;AAAA,EAChD,YAAY,eAAe,YAAY,SAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,uBAAN,cAAmC,YAAY;AAAA,EACpD,YAAY,eAAe,YAAY,MAAM;AAC3C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACLA,IAAMC,WAAU;AAKhB,IAAM,mBAAN,cAA+B,YAAY;AAAA,EACzC,YAAY,eAAe,YAAYA,UAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;AAEA,kBAAkBA,UAAS,gBAAgB;;;ACVpC,IAAM,oBAAN,cAAgC,YAAY;AAAA,EACjD,YAAY,eAAe,YAAY,UAAU;AAC/C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,sBAAN,cAAkC,YAAY;AAAA,EACnD,YAAY,eAAe,YAAY,MAAM;AAC3C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,kBAAN,cAA8B,YAAY;AAAA,EAC/C,YAAY,eAAe,YAAY,QAAQ;AAC7C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,kBAAN,cAA8B,YAAY;AAAA,EAC/C,YAAY,eAAe,YAAY,QAAQ;AAC7C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACHA,IAAMC,YAAU;AAKhB,IAAM,oBAAN,cAAgC,YAAY;AAAA,EAC1C,YAAY,eAAe,YAAYA,WAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AAAA,EAEA,IAAI,UAAU;AACZ,QAAI,WAAW,IAAI;AACnB,QAAI,EAAC,kBAAiB,IAAI;AAC1B,WAAO,mBAAmB;AACxB,UAAI,kBAAkB,YAAY;AAChC,iBAAS,KAAK,GAAG,kBAAkB,QAAQ;AAAA;AAE3C,iBAAS,KAAK,iBAAiB;AACjC,0BAAoB,kBAAkB;AAAA,IACxC;AACA,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,IAAI,WAAW;AAAE,WAAO,iBAAiB,IAAI,MAAM,UAAU;AAAA,EAAG;AAAA,EAChE,IAAI,SAAS,OAAO;AAAE,qBAAiB,IAAI,MAAM,YAAY,KAAK;AAAA,EAAG;AAAA,EAErE,IAAI,OAAO;AAAE,WAAO,KAAK,aAAa,MAAM;AAAA,EAAG;AAAA,EAC/C,IAAI,KAAK,OAAO;AAAE,SAAK,aAAa,QAAQ,KAAK;AAAA,EAAG;AAAA;AAAA,EAGpD,IAAI,QAAQ;AAAE,WAAO,KAAK,cAAc,kBAAkB,GAAG;AAAA,EAAO;AACtE;AAEA,kBAAkBA,WAAS,iBAAiB;;;ACnCrC,IAAM,gBAAN,cAA4B,YAAY;AAAA,EAC7C,YAAY,eAAe,YAAY,MAAM;AAC3C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJA,IAAMC,YAAU;AAKhB,IAAM,oBAAN,cAAgC,YAAY;AAAA,EAC1C,YAAY,eAAe,YAAYA,WAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AAAA;AAAA,EAGA,IAAI,WAAW;AAAE,WAAO,iBAAiB,IAAI,MAAM,UAAU;AAAA,EAAG;AAAA,EAChE,IAAI,SAAS,OAAO;AAAE,qBAAiB,IAAI,MAAM,YAAY,KAAK;AAAA,EAAG;AAAA,EAErE,IAAI,OAAO;AAAE,WAAO,KAAK,aAAa,MAAM;AAAA,EAAG;AAAA,EAC/C,IAAI,KAAK,OAAO;AAAE,SAAK,aAAa,QAAQ,KAAK;AAAA,EAAG;AAAA,EAEpD,IAAI,OAAO;AAAE,WAAO,KAAK,aAAa,MAAM;AAAA,EAAG;AAAA,EAC/C,IAAI,KAAK,OAAO;AAAE,SAAK,aAAa,QAAQ,KAAK;AAAA,EAAG;AAAA;AAEtD;AAEA,kBAAkBA,WAAS,iBAAiB;;;ACtBrC,IAAM,iBAAN,cAA6B,YAAY;AAAA,EAC9C,YAAY,eAAe,YAAY,OAAO;AAC5C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,sBAAN,cAAkC,YAAY;AAAA,EACnD,YAAY,eAAe,YAAY,YAAY;AACjD,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,mBAAN,cAA+B,YAAY;AAAA,EAChD,YAAY,eAAe,YAAY,MAAM;AAC3C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJA,IAAMC,YAAU;AAKhB,IAAM,sBAAN,cAAkC,YAAY;AAAA,EAC5C,YAAY,eAAe,YAAYA,WAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AAAA;AAAA,EAGA,IAAI,WAAW;AAAE,WAAO,iBAAiB,IAAI,MAAM,UAAU;AAAA,EAAG;AAAA,EAChE,IAAI,SAAS,OAAO;AAAE,qBAAiB,IAAI,MAAM,YAAY,KAAK;AAAA,EAAG;AAAA,EAErE,IAAI,OAAO;AAAE,WAAO,KAAK,aAAa,MAAM;AAAA,EAAG;AAAA,EAC/C,IAAI,KAAK,OAAO;AAAE,SAAK,aAAa,QAAQ,KAAK;AAAA,EAAG;AAAA,EAEpD,IAAI,cAAc;AAAE,WAAO,KAAK,aAAa,aAAa;AAAA,EAAG;AAAA,EAC7D,IAAI,YAAY,OAAO;AAAE,SAAK,aAAa,eAAe,KAAK;AAAA,EAAG;AAAA,EAElE,IAAI,OAAO;AAAE,WAAO,KAAK,aAAa,MAAM;AAAA,EAAG;AAAA,EAC/C,IAAI,KAAK,OAAO;AAAE,SAAK,aAAa,QAAQ,KAAK;AAAA,EAAG;AAAA,EAEpD,IAAI,QAAQ;AAAE,WAAO,KAAK;AAAA,EAAa;AAAA,EACvC,IAAI,MAAM,SAAS;AAAE,SAAK,cAAc;AAAA,EAAS;AAAA;AAEnD;AAEA,kBAAkBA,WAAS,mBAAmB;;;AC5BvC,IAAM,kBAAN,cAA8B,YAAY;AAAA,EAC/C,YAAY,eAAe,YAAY,QAAQ;AAC7C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,iBAAN,cAA6B,YAAY;AAAA,EAC9C,YAAY,eAAe,YAAY,OAAO;AAC5C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJA,IAAMC,YAAU;AAKhB,IAAM,kBAAN,cAA8B,YAAY;AAAA,EACxC,YAAY,eAAe,YAAYA,WAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AAAA;AAAA;AAAA,EAGA,IAAI,WAAW;AAAE,WAAO,iBAAiB,IAAI,MAAM,UAAU;AAAA,EAAG;AAAA,EAChE,IAAI,SAAS,OAAO;AAAE,qBAAiB,IAAI,MAAM,YAAY,KAAK;AAAA,EAAG;AAAA,EAErE,IAAI,OAAO;AAAE,WAAO,gBAAgB,IAAI,MAAM,MAAM,EAAE,KAAK;AAAA,EAAG;AAAA,EAC9D,IAAI,KAAK,OAAO;AAAE,oBAAgB,IAAI,MAAM,QAAQ,KAAK;AAAA,EAAG;AAAA,EAE5D,IAAI,WAAW;AAAE,WAAO,gBAAgB,IAAI,MAAM,UAAU;AAAA,EAAG;AAAA,EAC/D,IAAI,SAAS,OAAO;AAAE,oBAAgB,IAAI,MAAM,YAAY,KAAK;AAAA,EAAG;AAAA,EAEpE,IAAI,QAAQ;AAAE,WAAO,gBAAgB,IAAI,MAAM,OAAO;AAAA,EAAG;AAAA,EACzD,IAAI,MAAM,OAAO;AAAE,oBAAgB,IAAI,MAAM,SAAS,KAAK;AAAA,EAAG;AAAA,EAE9D,IAAI,MAAM;AAAE,WAAO,gBAAgB,IAAI,MAAM,KAAK;AAAA,EAAG;AAAA,EACrD,IAAI,IAAI,OAAO;AAAE,oBAAgB,IAAI,MAAM,OAAO,KAAK;AAAA,EAAG;AAAA,EAE1D,IAAI,OAAO;AAAE,WAAO,gBAAgB,IAAI,MAAM,MAAM;AAAA,EAAG;AAAA,EACvD,IAAI,KAAK,OAAO;AAAE,oBAAgB,IAAI,MAAM,QAAQ,KAAK;AAAA,EAAG;AAAA;AAG9D;AAEA,kBAAkBA,WAAS,eAAe;;;AClC1C,IAAMC,YAAU;AAKhB,IAAM,kBAAN,cAA8B,YAAY;AAAA,EACxC,YAAY,eAAe,YAAYA,WAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AAAA;AAAA,EAGA,IAAI,OAAO;AAAE,WAAO,KAAK,aAAa,MAAM;AAAA,EAAG;AAAA,EAC/C,IAAI,KAAK,OAAO;AAAE,SAAK,aAAa,QAAQ,KAAK;AAAA,EAAG;AAAA,EAEpD,SAAS;AAAA,EAAC;AAAA,EAEV,cAAc,SAAS;AACrB,UAAM,cAAc,CAAC,CAAC,KAAK;AAC3B,UAAM,iBAAiB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAC/D,QAAI;AAEJ,QAAI,aAAa;AACf,mBAAa,CAAC,GAAG,cAAc,EAAE,OAAO,UAAQ,KAAK,SAAS,KAAK,IAAI;AAAA,IACzE,OAAO;AACL,mBAAa,CAAC,GAAG,cAAc,EAAE,OAAO,UAAQ,CAAC,KAAK,IAAI;AAAA,IAC5D;AAEA,QAAI,SAAS,SAAS;AACpB,YAAM,SAAS,CAAC;AAGhB,eAAS,aAAa,YAAY;AAChC,YAAI,UAAU,cAAc,QAAQ;AAClC,iBAAO,KAAK,GAAG,UAAU,cAAc,EAAE,SAAS,KAAK,CAAC,CAAC;AAAA,QAC3D,OAAO;AACL,iBAAO,KAAK,SAAS;AAAA,QACvB;AAAA,MACF;AAEA,mBAAa;AAAA,IACf;AAGA,WAAO,WAAW,SAAS,aAAa,CAAC,GAAG,KAAK,UAAU;AAAA,EAC7D;AAAA,EAEA,iBAAiB,SAAS;AACxB,UAAM,aAAa,KAAK,cAAc,OAAO,EAAE,OAAO,OAAK,EAAE,aAAa,CAAC;AAG3E,WAAO,WAAW,SAAS,aAAa,CAAC,GAAG,KAAK,QAAQ;AAAA,EAC3D;AAAA;AAEF;AAEA,kBAAkBA,WAAS,eAAe;;;ACrDnC,IAAM,kBAAN,cAA8B,YAAY;AAAA,EAC/C,YAAY,eAAe,YAAY,QAAQ;AAC7C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJA,IAAMC,YAAU;AAKhB,IAAM,mBAAN,cAA+B,YAAY;AAAA,EACzC,YAAY,eAAe,YAAYA,WAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AAAA;AAAA,EAGA,IAAI,MAAM;AAAE,WAAO,gBAAgB,IAAI,MAAM,KAAK;AAAA,EAAG;AAAA,EACrD,IAAI,IAAI,OAAO;AAAE,oBAAgB,IAAI,MAAM,OAAO,KAAK;AAAA,EAAG;AAAA,EAE1D,IAAI,QAAQ;AAAE,WAAO,gBAAgB,IAAI,MAAM,OAAO;AAAA,EAAG;AAAA,EACzD,IAAI,MAAM,OAAO;AAAE,oBAAgB,IAAI,MAAM,SAAS,KAAK;AAAA,EAAG;AAAA,EAE9D,IAAI,MAAM;AAAE,WAAO,gBAAgB,IAAI,MAAM,KAAK;AAAA,EAAG;AAAA,EACrD,IAAI,IAAI,OAAO;AAAE,oBAAgB,IAAI,MAAM,OAAO,KAAK;AAAA,EAAG;AAAA,EAE1D,IAAI,SAAS;AAAE,WAAO,gBAAgB,IAAI,MAAM,QAAQ;AAAA,EAAG;AAAA,EAC3D,IAAI,OAAO,OAAO;AAAE,oBAAgB,IAAI,MAAM,UAAU,KAAK;AAAA,EAAG;AAAA,EAEhE,IAAI,QAAQ;AAAE,WAAO,gBAAgB,IAAI,MAAM,OAAO;AAAA,EAAG;AAAA,EACzD,IAAI,MAAM,OAAO;AAAE,oBAAgB,IAAI,MAAM,SAAS,KAAK;AAAA,EAAG;AAAA,EAE9D,IAAI,QAAQ;AAAE,WAAO,iBAAiB,IAAI,MAAM,OAAO;AAAA,EAAG;AAAA,EAC1D,IAAI,MAAM,OAAO;AAAE,qBAAiB,IAAI,MAAM,SAAS,KAAK;AAAA,EAAG;AAAA,EAE/D,IAAI,SAAS;AAAE,WAAO,iBAAiB,IAAI,MAAM,QAAQ;AAAA,EAAG;AAAA,EAC5D,IAAI,OAAO,OAAO;AAAE,qBAAiB,IAAI,MAAM,UAAU,KAAK;AAAA,EAAG;AAAA;AAEnE;AAEA,kBAAkBA,WAAS,gBAAgB;;;AClCpC,IAAM,iBAAN,cAA6B,YAAY;AAAA,EAC9C,YAAY,eAAe,YAAY,OAAO;AAC5C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,mBAAN,cAA+B,YAAY;AAAA,EAChD,YAAY,eAAe,YAAY,MAAM;AAC3C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACLA,IAAMC,YAAU;AAIT,IAAM,kBAAN,cAA8B,YAAY;AAAA,EAC/C,YAAY,eAAe,YAAWA,WAAS;AAC7C,UAAM,eAAe,SAAS;AAAA,EAChC;AAAA;AAAA,EAGA,IAAI,OAAO;AAAE,WAAO,gBAAgB,IAAI,MAAM,MAAM;AAAA,EAAG;AAAA,EACvD,IAAI,KAAK,OAAO;AAAE,oBAAgB,IAAI,MAAM,QAAQ,KAAK;AAAA,EAAG;AAAA,EAE5D,IAAI,YAAY;AAAE,WAAO,gBAAgB,IAAI,MAAM,YAAY;AAAA,EAAG;AAAA,EAClE,IAAI,UAAU,OAAO;AAAE,oBAAgB,IAAI,MAAM,cAAc,KAAK;AAAA,EAAG;AAAA,EAEvE,IAAI,UAAU;AAAE,WAAO,gBAAgB,IAAI,MAAM,SAAS;AAAA,EAAG;AAAA,EAC7D,IAAI,QAAQ,OAAO;AAAE,oBAAgB,IAAI,MAAM,WAAW,KAAK;AAAA,EAAG;AAAA,EAElE,IAAI,UAAU;AAAE,WAAO,gBAAgB,IAAI,MAAM,SAAS;AAAA,EAAG;AAAA,EAC7D,IAAI,QAAQ,OAAO;AAAE,oBAAgB,IAAI,MAAM,WAAW,KAAK;AAAA,EAAG;AAAA,EAElE,IAAI,QAAQ;AAAE,WAAO,gBAAgB,IAAI,MAAM,OAAO;AAAA,EAAG;AAAA,EACzD,IAAI,MAAM,OAAO;AAAE,oBAAgB,IAAI,MAAM,SAAS,KAAK;AAAA,EAAG;AAAA;AAGhE;AAEA,kBAAkBA,WAAS,eAAe;;;AC3BnC,IAAM,qBAAN,cAAiC,YAAY;AAAA,EAClD,YAAY,eAAe,YAAY,WAAW;AAChD,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,kBAAN,cAA8B,YAAY;AAAA,EAC/C,YAAY,eAAe,YAAY,QAAQ;AAC7C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,mBAAN,cAA+B,YAAY;AAAA,EAChD,YAAY,eAAe,YAAY,MAAM;AAC3C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,0BAAN,cAAsC,YAAY;AAAA,EACvD,YAAY,eAAe,YAAY,WAAW;AAChD,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJA,IAAMC,YAAU;AAKhB,IAAM,oBAAN,cAAgC,YAAY;AAAA,EAC1C,YAAY,eAAe,YAAYA,WAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AAAA;AAAA;AAAA,EAGA,IAAI,OAAO;AAAE,WAAO,UAAU,UAAU,gBAAgB,IAAI,MAAM,MAAM,CAAC,CAAC,EAAE,KAAK;AAAA,EAAG;AAAA,EACpF,IAAI,KAAK,OAAO;AAAE,oBAAgB,IAAI,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,EAAG;AAAA,EAEvE,IAAI,WAAW;AAAE,WAAO,UAAU,UAAU,gBAAgB,IAAI,MAAM,UAAU,CAAC,CAAC;AAAA,EAAG;AAAA,EACrF,IAAI,SAAS,OAAO;AAAE,oBAAgB,IAAI,MAAM,YAAY,UAAU,KAAK,CAAC;AAAA,EAAG;AAAA,EAE/E,IAAI,SAAS;AAAE,WAAO,gBAAgB,IAAI,MAAM,QAAQ;AAAA,EAAG;AAAA,EAC3D,IAAI,OAAO,OAAO;AAAE,oBAAgB,IAAI,MAAM,UAAU,KAAK;AAAA,EAAG;AAAA,EAEhE,IAAI,OAAO;AAAE,WAAO,gBAAgB,IAAI,MAAM,MAAM;AAAA,EAAG;AAAA,EACvD,IAAI,KAAK,OAAO;AAAE,oBAAgB,IAAI,MAAM,QAAQ,KAAK;AAAA,EAAG;AAAA,EAE5D,IAAI,MAAM;AAAE,WAAO,gBAAgB,IAAI,MAAM,KAAK;AAAA,EAAG;AAAA,EACrD,IAAI,IAAI,OAAO;AAAE,oBAAgB,IAAI,MAAM,OAAO,KAAK;AAAA,EAAG;AAAA;AAG5D;AAEA,kBAAkBA,WAAS,iBAAiB;;;AC7BrC,IAAM,mBAAN,cAA+B,YAAY;AAAA,EAChD,YAAY,eAAe,YAAY,SAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,qBAAN,cAAiC,YAAY;AAAA,EAClD,YAAY,eAAe,YAAY,WAAW;AAChD,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,iBAAN,cAA6B,YAAY;AAAA,EAC9C,YAAY,eAAe,YAAY,OAAO;AAC5C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,qBAAN,cAAiC,YAAY;AAAA,EAClD,YAAY,eAAe,YAAY,WAAW;AAChD,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJA,IAAMC,YAAU;AAKhB,IAAM,oBAAN,cAAgC,YAAY;AAAA,EAC1C,YAAY,eAAe,YAAYA,WAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AAAA;AAAA,EAGA,IAAI,MAAM;AAAE,WAAO,gBAAgB,IAAI,MAAM,KAAK;AAAA,EAAG;AAAA,EACrD,IAAI,IAAI,OAAO;AAAE,oBAAgB,IAAI,MAAM,OAAO,KAAK;AAAA,EAAG;AAAA,EAE1D,IAAI,SAAS;AAAE,WAAO,gBAAgB,IAAI,MAAM,QAAQ;AAAA,EAAG;AAAA,EAC3D,IAAI,OAAO,OAAO;AAAE,oBAAgB,IAAI,MAAM,UAAU,KAAK;AAAA,EAAG;AAAA,EAEhE,IAAI,QAAQ;AAAE,WAAO,gBAAgB,IAAI,MAAM,OAAO;AAAA,EAAG;AAAA,EACzD,IAAI,MAAM,OAAO;AAAE,oBAAgB,IAAI,MAAM,SAAS,KAAK;AAAA,EAAG;AAAA,EAE9D,IAAI,OAAO;AAAE,WAAO,gBAAgB,IAAI,MAAM,MAAM;AAAA,EAAG;AAAA,EACvD,IAAI,KAAK,OAAO;AAAE,oBAAgB,IAAI,MAAM,QAAQ,KAAK;AAAA,EAAG;AAAA;AAE9D;AAEA,kBAAkBA,WAAS,iBAAiB;;;ACzBrC,IAAM,mBAAN,cAA+B,YAAY;AAAA,EAChD,YAAY,eAAe,YAAY,SAAS;AAC9C,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACJO,IAAM,qBAAN,cAAiC,YAAY;AAAA,EAClD,YAAY,eAAe,YAAY,WAAW;AAChD,UAAM,eAAe,SAAS;AAAA,EAChC;AACF;;;ACmIO,IAAM,cAAc;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;AC9MA,IAAMC,gBAAe,EAAC,MAAM,MAAM,KAAI;AAC/B,IAAM,OAAO;AAAA,EAClB,aAAa;AAAA,IACX,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,cAAc;AAAA,EAChB;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,cAAAA;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,cAAAA;AAAA,EACF;AAAA,EACA,mBAAmB;AAAA,IACjB,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,cAAAA;AAAA,EACF;AAAA,EACA,yBAAyB;AAAA,IACvB,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,cAAAA;AAAA,EACF;AACF;;;ACnBO,IAAM,cAAN,cAA0B,YAAM;AAAA,EACrC,YAAY,MAAM,gBAAgB,CAAC,GAAG;AACpC,UAAM,MAAM,aAAa;AACzB,SAAK,SAAS,cAAc;AAAA,EAC9B;AACF;;;ACLO,IAAM,aAAN,cAAyB,YAAM;AAAA,EACpC,YAAY,MAAM,iBAAiB,CAAC,GAAG;AACrC,UAAM,MAAM,cAAc;AAC1B,SAAK,YAAY,eAAe;AAChC,SAAK,OAAO,eAAe;AAC3B,SAAK,eAAe,eAAe;AACnC,SAAK,cAAc,eAAe,eAAe;AACjD,SAAK,SAAS,eAAe;AAAA,EAC/B;AACF;;;AClBO,IAAM,aAAa;AAAA;AAAA;AAAA;AAAA,EAI1B,MAAM,cAAc,iBAAiB;AAAA,IACnC,YAAY,OAAO,QAAQ;AACzB,YAAM,aAAa;AACnB,cAAQ,UAAU,QAAQ;AAAA,QACxB,KAAK;AACH,eAAK,SAAS;AACd,eAAK,QAAQ;AACb;AAAA,QACF,KAAK;AACH,eAAK,SAAS;AACd,eAAK,QAAQ;AACb;AAAA,MACJ;AAAA,IACF;AAAA,EACF;AAAA;;;ACZA,IAAM,iBAAiB,CAAC,EAAC,CAAC,QAAQ,OAAO,CAAC,MAAM,IAAG,GAAG,WAAW,SAAS;AACxE,cAAY,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC;AAClC,KAAG;AACD,UAAMC,SAAQ,OAAO,KAAK;AAC1B,UAAM,OAAOA,WAAU,MAAMA,SAAQA,OAAM,IAAI;AAC/C,QAAI;AACF,eAAS,aAAa,OAAO,SAAS,GAAG,CAAC;AAAA;AAE1C,YAAM,OAAO;AACf,YAAQ;AAAA,EACV,SAAS,UAAU;AACrB;AAKO,IAAM,QAAN,MAAM,OAAM;AAAA,EACjB,cAAc;AACZ,SAAK,KAAK,IAAI;AACd,SAAK,GAAG,IAAI;AACZ,SAAK,0BAA0B;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,WAAW,SAAS;AAClB,SAAK,GAAG,EAAE,WAAW,aAAa,SAAS,KAAK,KAAK,CAAC;AAAA,EACxD;AAAA,EAEA,WAAW,MAAM;AACf,SAAK,KAAK,IAAI;AACd,SAAK,GAAG,IAAI,OAAO,IAAI;AAAA,EACzB;AAAA;AAAA;AAAA,EAIA,mBAAmB,MAAM;AACvB,SAAK,WAAW,IAAI;AACpB,SAAK,0BAA0B;AAAA,EACjC;AAAA,EAEA,iBAAiB,YAAY;AAC3B,eAAW,gBAAgB,KAAK,gBAAgB,CAAC;AAAA,EACnD;AAAA,EAEA,eAAe,MAAM;AACnB,SAAK,KAAK,IAAI;AAAA,EAChB;AAAA,EAEA,cAAc,MAAM;AAClB,SAAK,KAAK,IAAI,KAAK;AAAA,EACrB;AAAA,EAEA,aAAa,MAAM;AACjB,SAAK,GAAG,IAAI,OAAO,KAAK,eAAe;AAAA,EACzC;AAAA,EAEA,YAAY,MAAM;AAChB,SAAK,GAAG,IAAI,OAAO,IAAI;AAAA,EACzB;AAAA,EAEA,gBAAgB;AACd,QAAI,EAAC,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,GAAG,IAAG,IAAI;AACnC,UAAM,WAAW,MAAM,cAAc,uBAAuB;AAC5D,WAAO,UAAU,KAAK;AACpB,eAAS,aAAa,MAAM,UAAU,IAAI,GAAG,SAAS,GAAG,CAAC;AAC1D,cAAQ,OAAO,KAAK;AACpB,UAAI,UAAU;AACZ,gBAAQ,MAAM,IAAI;AAAA,IACtB;AACA,WAAO;AAAA,EACT;AAAA,EAEA,iBAAiB;AACf,mBAAe,IAAI;AAAA,EACrB;AAAA,EAEA,kBAAkB;AAChB,UAAM,WAAW,KAAK,KAAK,EAAE,cAAc,uBAAuB;AAClE,mBAAe,MAAM,QAAQ;AAC7B,WAAO;AAAA,EACT;AAAA,EAEA,yBAAyB,MAAM;AAC7B,UAAM,EAAE,yBAAyB,IAAI,IAAI;AACzC,UAAM,QAAQ,qBAAqB;AACnC,UAAMC,YAAW,QAAQ,IAAI,gBAAgB;AAC7C,QAAI,UAAU,eAAeA,WAAU,IAAI;AAC3C,QAAI,OAAO;AACT,YAAM,aAAa,CAAC,GAAG,QAAQ,UAAU;AACzC,gBAAUA,UAAS,uBAAuB;AAC1C,aAAO,eAAe,SAAS,WAAW,SAAS;AACnD,cAAQ,kBAAkBA;AAC1B,iBAAW,SAAS,YAAY;AAC9B,eAAO,eAAe,OAAO,WAAW,SAAS;AACjD,cAAM,kBAAkBA;AACxB,gBAAQ,YAAY,KAAK;AAAA,MAC3B;AAAA,IACF;AAEE,WAAK,WAAW,OAAO;AACzB,WAAO;AAAA,EACT;AAAA,EAEA,aAAa;AACX,UAAM,QAAQ,IAAI;AAClB,UAAM,KAAK,IAAI,KAAK,KAAK;AACzB,UAAM,GAAG,IAAI,KAAK,GAAG;AACrB,WAAO;AAAA,EACT;AACF;;;AC/GA,IAAM,OAAO,CAAC,EAAC,SAAQ,GAAG,SAAS;AACjC,UAAQ,UAAU;AAAA,IAChB,KAAK;AACH,aAAO,OAAO;AAAA,IAChB,KAAK;AACH,aAAO,OAAO;AAAA,IAChB,KAAK;AACH,aAAO,OAAO;AAAA,IAChB,KAAK;AACH,aAAO,OAAO;AAAA,EAClB;AACA,SAAO;AACT;AAKO,IAAM,aAAN,MAAiB;AAAA,EACtB,YAAY,MAAM,aAAa,UAAU;AACvC,SAAK,OAAO;AACZ,SAAK,cAAc;AACnB,SAAK,aAAa;AAClB,QAAI,EAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,IAAG,IAAI;AACjC,QAAI,KAAK,aAAa,eAAe;AACnC,YAAM,EAAC,gBAAe,IAAI;AAC1B,aAAO;AACP,YAAM,gBAAgB,GAAG;AAAA,IAC3B;AACA,UAAM,QAAQ,CAAC;AACf,WAAO,QAAQ,SAAS,KAAK;AAC3B,UAAI,KAAK,MAAM,UAAU;AACvB,cAAM,KAAK,IAAI;AACjB,aAAO,KAAK,IAAI;AAAA,IAClB;AACA,SAAK,OAAO,IAAI,EAAC,GAAG,GAAG,MAAK;AAAA,EAC9B;AAAA,EAEA,WAAW;AACT,UAAM,IAAI,KAAK,OAAO;AACtB,SAAK,cAAc,EAAE,IAAI,EAAE,MAAM,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;AAC3D,WAAO,KAAK;AAAA,EACd;AACF;;;ACrBA,IAAM,QAAQ,CAAC,QAAQ,eAAe,cAAc;AAClD,MAAI,EAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,IAAG,IAAI;AACjC,SAAO,OAAO,KAAK,EAAC,eAAe,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,IAAG,GAAG,SAAS;AACzE;AAEA,IAAM,gBAAgB;AAAA,EACpB,CAAC;AAAA,EACD;AAAA,EACA;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,IAAMC,UAAS,oBAAI;AAKZ,IAAMC,YAAN,cAAuB,qBAAqB;AAAA,EACjD,YAAY,MAAM;AAChB,UAAM,MAAM,aAAa,aAAa;AACtC,SAAK,eAAe,IAAI,EAAC,QAAQ,OAAO,UAAU,KAAI;AACtD,SAAK,iBAAiB,IAAI,EAAC,QAAQ,OAAO,OAAO,KAAI;AACrD,SAAK,IAAI,IAAI,KAAK,IAAI;AAEtB,SAAK,OAAO,IAAI;AAChB,SAAK,UAAU,IAAI;AACnB,SAAK,OAAO,IAAI;AAChB,SAAK,KAAK,IAAI;AACd,SAAK,OAAO,IAAI;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,cAAc;AAChB,QAAI,CAACD,QAAO,IAAI,IAAI;AAClB,MAAAA,QAAO,IAAI,MAAM,IAAI,MAAM,YAAY;AAAA,QACrC,KAAK,CAAC,QAAQ,MAAM,UAAU;AAC5B,kBAAQ,MAAM;AAAA,YACZ,KAAK;AAAA,YACL,KAAK;AAAA,YACL,KAAK;AACH,mBAAK,YAAY,EAAE,IAAI,IAAI;AAC3B;AAAA,YACF;AACE,qBAAO,IAAI,IAAI;AACf;AAAA,UACJ;AACA,iBAAO;AAAA,QACT;AAAA,QACA,KAAK,CAACE,aAAY,SAAS;AACzB,kBAAQ,MAAM;AAAA,YACZ,KAAK;AAAA,YACL,KAAK;AAAA,YACL,KAAK;AACH,kBAAI,CAAC,KAAK,YAAY,GAAG;AACvB,sBAAM,KAAK,KAAK,YAAY,IAAI,IAAI;AACpC,mBAAG,gBAAgB,GAAG,cAAc,KAAK,EAAE;AAC3C,mBAAG,mBAAmB,GAAG,iBAAiB,KAAK,EAAE;AACjD,mBAAG,sBAAsB,GAAG,oBAAoB,KAAK,EAAE;AAAA,cACzD;AACA,qBAAO,KAAK,YAAY,EAAE,IAAI;AAAA,YAChC,KAAK;AACH,qBAAO;AAAA,YAET,KAAK;AACH,qBAAO;AAAA,gBACL,WAAW;AAAA,cACb;AAAA,YAEF,KAAK;AACH,qBAAOF,QAAO,IAAI,IAAI;AAAA,YACxB,KAAK;AACH,kBAAI,CAAC,KAAK,eAAe,EAAE;AACzB,qBAAK,eAAe,IAAI,IAAI,sBAAsB,IAAI;AACxD,qBAAO,KAAK,eAAe;AAAA,YAC7B,KAAK;AACH,qBAAOE,YAAW;AAAA,YACpB,KAAK;AACH,qBAAO,KAAK,UAAU;AAAA,YACxB,KAAK;AACH,kBAAI,CAAC,KAAK,KAAK;AACb,qBAAK,KAAK,IAAI,WAAW,IAAI;AAC/B,qBAAO,KAAK,KAAK;AAAA,YACnB,KAAK;AACH,kBAAI,CAAC,KAAK,iBAAiB,EAAE;AAC3B,qBAAK,iBAAiB,IAAI,IAAI,sBAAsB,IAAI;AAC1D,qBAAO,KAAK,iBAAiB,EAAE;AAAA,UACnC;AACA,iBAAQ,KAAK,OAAO,KAAK,KAAK,OAAO,EAAE,IAAI,KACnC,cAAc,IAAI,KAClBA,YAAW,IAAI;AAAA,QACzB;AAAA,MACF,CAAC,CAAC;AACJ,WAAOF,QAAO,IAAI,IAAI;AAAA,EACxB;AAAA,EAEA,IAAI,UAAU;AACZ,UAAM,UAAU,KAAK,OAAO;AAC5B,QAAI;AACF,aAAO;AACT,UAAM,EAAC,WAAU,IAAI;AACrB,QAAI,cAAc,WAAW,aAAa;AACxC,aAAQ,KAAK,OAAO,IAAI;AAC1B,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,QAAQ,OAAO;AACjB,QAAI,kEAAkE,KAAK,KAAK,GAAG;AACjF,YAAM,EAAC,IAAI,MAAM,IAAI,UAAU,IAAI,SAAQ,IAAI;AAC/C,WAAK,OAAO,IAAI,IAAI,aAAa,MAAM,MAAM,UAAU,QAAQ;AAC/D,oBAAc,MAAM,KAAK,OAAO,GAAG,KAAK,IAAI,CAAC;AAAA,IAC/C;AAAA,EACF;AAAA,EAEA,IAAI,kBAAkB;AACpB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,cAAc;AAAE,WAAO;AAAA,EAAM;AAAA;AAAA;AAAA;AAAA,EAKhC,aAAa;AACZ,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EAEA,gBAAgB,MAAM;AAAE,WAAO,IAAI,KAAK,MAAM,IAAI;AAAA,EAAG;AAAA,EACrD,mBAAmB,MAAM;AAAE,WAAO,IAAI,aAAa,MAAM,IAAI;AAAA,EAAG;AAAA,EAChE,cAAcG,cAAa;AAAE,WAAO,IAAIC,SAAQ,MAAMD,YAAW;AAAA,EAAG;AAAA,EACpE,yBAAyB;AAAE,WAAO,IAAIE,kBAAiB,IAAI;AAAA,EAAG;AAAA,EAC9D,mBAAmB,MAAM,UAAU,UAAU;AAAE,WAAO,IAAI,aAAa,MAAM,MAAM,UAAU,QAAQ;AAAA,EAAG;AAAA,EACxG,cAAc,WAAW;AAAE,WAAO,IAAIC,SAAQ,MAAM,SAAS;AAAA,EAAG;AAAA,EAChE,cAAc;AACZ,UAAM,QAAQ,IAAI;AAClB,UAAM,0BAA0B;AAChC,WAAO;AAAA,EACT;AAAA,EACA,eAAeH,cAAa;AAAE,WAAO,IAAII,MAAK,MAAMJ,YAAW;AAAA,EAAG;AAAA,EAClE,iBAAiB,MAAM,aAAa,IAAI;AAAE,WAAO,IAAI,WAAW,MAAM,UAAU;AAAA,EAAG;AAAA,EACnF,mBAAmB,MAAM,aAAa,IAAI;AAAE,WAAO,KAAK,iBAAiB,MAAM,UAAU;AAAA,EAAG;AAAA,EAE5F,YAAY,MAAM;AAChB,UAAM,QAAQ,OAAO,SAAS,UAAU,IAAI,YAAM,EAAE,IAAI,IAAI,YAAY,EAAE,CAAC;AAC3E,UAAM,YAAY,MAAM,kBAAkB,CACxC,MACA,YAAY,OACZ,aAAa,OACb,WACG;AACH,YAAM,UAAU,CAAC,CAAC;AAElB,uBAAiB,OAAO;AAAA,QACtB,MAAM,EAAC,OAAO,KAAI;AAAA,QAClB,WAAW,EAAC,OAAO,UAAS;AAAA,QAC5B,YAAY,EAAC,OAAO,WAAU;AAAA,QAC9B,QAAQ,EAAC,OAAO,OAAM;AAAA,MACxB,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AAAA,EAEA,UAAU,OAAO,OAAO;AACtB,UAAM;AAAA,MACJ;AAAA,MACA,CAAC,eAAe,GAAGK;AAAA,MACnB,CAAC,OAAO,GAAG;AAAA,IACb,IAAI;AACJ,UAAMC,YAAW,IAAI,YAAY;AACjC,IAAAA,UAAS,eAAe,IAAID;AAC5B,QAAI,MAAM;AACR,YAAM,MAAMC,UAAS,GAAG;AACxB,YAAM,EAAC,WAAU,IAAI;AACrB,eAAS,EAAC,OAAM,IAAI,YAAY,IAAI,GAAG,IAAI,QAAQ;AACjD,QAAAA,UAAS,aAAa,WAAW,CAAC,EAAE,UAAU,IAAI,GAAG,GAAG;AAC1D,UAAI;AACF,QAAAA,UAAS,OAAO,IAAI,WAAW,CAAC;AAAA,IACpC;AACA,WAAOA;AAAA,EACT;AAAA,EAEA,WAAW,cAAc;AAGvB,UAAM,OAAO,IAAI,UAAU,UAAU,CAAC,CAAC,UAAU,CAAC;AAClD,UAAM,OAAO,aAAa,UAAU,IAAI;AACxC,UAAM,EAAC,CAAC,eAAe,GAAGD,gBAAc,IAAI;AAC5C,UAAM,EAAC,OAAM,IAAIA;AACjB,UAAM,UAAU,aAAW;AACzB,YAAM,EAAC,eAAe,SAAQ,IAAI;AAClC,cAAQ,gBAAgB;AACxB,UAAI,UAAU,kBAAkB,QAAQ,aAAa;AACnD,QAAAA,gBAAe,QAAQ,OAAO;AAAA,IAClC;AACA,YAAQ,IAAI;AACZ,QAAI,MAAM;AACR,cAAQ,KAAK,UAAU;AAAA,QACrB,KAAK;AAAA,QACL,KAAK,wBAAwB;AAC3B,cAAI,EAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,IAAG,IAAI;AACjC,iBAAO,SAAS,KAAK;AACnB,gBAAI,KAAK,aAAa;AACpB,sBAAQ,IAAI;AACd,mBAAO,KAAK,IAAI;AAAA,UAClB;AACA;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,WAAW;AAAE,WAAO,KAAK,WAAW,KAAK,EAAE;AAAA,EAAG;AAAA,EAE9C,cAAc,WAAW;AACvB,WAAO,MAAM,MAAM,eAAe,MAAM,SAAS;AAAA,EACnD;AAAA,EAEA,iBAAiB,WAAW;AAC1B,WAAO,MAAM,MAAM,kBAAkB,MAAM,SAAS;AAAA,EACtD;AAAA;AAAA,EAGA,uBAAuB,GAAG,MAAM;AAC9B,WAAO,KAAK,qBAAqB,IAAI;AAAA,EACvC;AAAA,EACA,kBAAkB,GAAG,MAAM;AACzB,WAAO,KAAK,gBAAgB,IAAI;AAAA,EAClC;AAAA,EACA,gBAAgB,KAAK,WAAW,SAAS;AACvC,WAAO,QAAQ,gBACP,IAAI,WAAW,MAAM,WAAW,IAAI,IACpC,KAAK,cAAc,WAAW,OAAO;AAAA,EAC/C;AAAA;AAEF;AAEA;AAAA,EACE,cAAc,WAAW,SAASP,YAAW;AAC3C,uBAAmB;AAAA,EACrB;AAAA,EACAA;AACF,EAAE,YAAYA,UAAS;;;ACpRvB,IAAM,oBAAoB,CAAC,eAAe,SAAS,WAAW,YAAY;AACxE,MAAI,CAAC,WAAW,YAAY,IAAI,SAAS,GAAG;AAC1C,UAAM,QAAQ,YAAY,IAAI,SAAS;AACvC,WAAO,IAAI,MAAM,eAAe,SAAS;AAAA,EAC3C;AACA,QAAM,EAAC,CAAC,eAAe,GAAG,EAAC,QAAQ,SAAQ,EAAC,IAAI;AAChD,MAAI,QAAQ;AACV,UAAM,KAAK,UAAU,QAAQ,KAAK;AAClC,QAAI,SAAS,IAAI,EAAE,GAAG;AACpB,YAAM,EAAC,MAAK,IAAI,SAAS,IAAI,EAAE;AAC/B,YAAM,UAAU,IAAI,MAAM,eAAe,SAAS;AAClD,qBAAe,IAAI,SAAS,EAAC,WAAW,MAAK,CAAC;AAC9C,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO,IAAI,YAAY,eAAe,SAAS;AACjD;AAKO,IAAM,eAAN,cAA2BS,UAAS;AAAA,EACzC,cAAc;AAAE,UAAM,WAAW;AAAA,EAAG;AAAA,EAEpC,IAAI,MAAM;AACR,UAAM,WAAW,IAAI;AACrB,QAAI,EAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,IAAG,IAAI;AACjC,WAAO,SAAS,KAAK;AACnB,cAAQ,KAAK,UAAU;AAAA,QACrB,KAAK;AACH,mBAAS,KAAK,IAAI;AAClB;AAAA,MACJ;AACA,aAAO,KAAK,IAAI;AAAA,IAClB;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,OAAO;AACT,UAAM,EAAC,gBAAe,IAAI;AAC1B,QAAI,EAAC,kBAAiB,IAAI;AAC1B,QAAI,CAAC,qBAAqB,kBAAkB,YAAY,QAAQ;AAC9D,0BAAoB,KAAK,cAAc,MAAM;AAC7C,sBAAgB,QAAQ,iBAAiB;AAAA,IAC3C;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,OAAO;AACT,UAAM,EAAC,KAAI,IAAI;AACf,QAAI,EAAC,oBAAAC,oBAAkB,IAAI;AAC3B,QAAI,CAACA,uBAAsBA,oBAAmB,YAAY,QAAQ;AAChE,MAAAA,sBAAqB,KAAK,cAAc,MAAM;AAC9C,WAAK,MAAMA,mBAAkB;AAAA,IAC/B;AACA,WAAOA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAQ;AACV,UAAM,EAAC,KAAI,IAAI;AACf,WAAO,KAAK,qBAAqB,OAAO,EAAE,GAAG,CAAC,GAAG,eAAe;AAAA,EAClE;AAAA,EAEA,IAAI,MAAMC,cAAa;AACrB,UAAM,EAAC,KAAI,IAAI;AACf,QAAI,QAAQ,KAAK,qBAAqB,OAAO,EAAE,GAAG,CAAC;AACnD,QAAI;AACF,YAAM,cAAcA;AAAA,SACjB;AACH,WAAK;AAAA,QACH,KAAK,cAAc,OAAO;AAAA,QAC1B,KAAK;AAAA,MACP,EAAE,cAAcA;AAAA,IAClB;AAAA,EACF;AAAA,EAEA,cAAc,WAAW,SAAS;AAChC,UAAM,UAAU,CAAC,EAAE,WAAW,QAAQ;AACtC,UAAM,UAAU,kBAAkB,MAAM,SAAS,WAAW,OAAO;AACnE,QAAI;AACF,cAAQ,aAAa,MAAM,QAAQ,EAAE;AACvC,WAAO;AAAA,EACT;AACF;;;AChGO,IAAM,cAAN,cAA0BC,UAAS;AAAA,EACxC,cAAc;AAAE,UAAM,eAAe;AAAA,EAAG;AAAA,EACxC,WAAW;AACT,WAAO,KAAK,IAAI,EAAE,UAAU,MAAM,SAAS;AAAA,EAC7C;AACF;;;ACLO,IAAM,cAAN,cAA0BC,UAAS;AAAA,EACxC,cAAc;AAAE,UAAM,UAAU;AAAA,EAAG;AAAA,EACnC,WAAW;AACT,WAAO,KAAK,IAAI,EAAE,UAAU,MAAM,SAAS;AAAA,EAC7C;AACF;;;ACDO,IAAM,YAAN,MAAM,WAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASrB,gBAAgB,gBAAgB,UAAU,UAAU,MAAM;AACxD,QAAI,SAAS,OAAOC;AACpB,QAAI,aAAa,aAAa;AAC5B,eAAS;AACT,MAAAA,YAAW,IAAI;AAAA,IACjB,WACS,aAAa;AACpB,MAAAA,YAAW,IAAI;AAAA;AAEf,MAAAA,YAAW,IAAI;AACjB,IAAAA,UAAS,UAAU,IAAI;AACvB,QAAI;AACF,MAAAA,UAAS,OAAO,IAAI;AACtB,QAAI,UAAU,mBAAmB;AAC/B,uBAAiB;AACnB,WAAO,iBACC,gBAAgBA,WAAU,QAAQ,cAAc,IAChDA;AAAA,EACV;AACF;;;ACXA,IAAM,EAAC,OAAAC,OAAK,IAAI;;;ACRT,IAAM,YAAY,CAAC,MAAM,UAAU,SAAU,IAAI,YAAW;AAAA,EACjE;AAAA,EAAM;AAAA,EAAa;AACrB,EAAE;AAEK,SAASC,YAAW;AACzB,qBAAmB;AACrB;AAEA,eAAeA,WAAUA,SAAS,EAAE,YAAYA,UAAU;;;ACNnD,IAAM,iBAAN,MAAqB;AAAA,EAQ1B,YACU,cACR,UAAiC,CAAC,GAClC;AAFQ;AAPV,SAAQ,UAAU,oBAAI,IAA0B;AAChD,SAAQ,eAAe,oBAAI,IAAY;AACvC,SAAQ,iBAA+C,CAAC;AAExD,SAAQ,YAAY;AAMlB,SAAK,UAAU;AAAA,MACb,SAAS,QAAQ,WAAW;AAAA,IAC9B;AAAA,EACF;AAAA,EAEA,OACE,OACA,iBAA2B,KAAK,cAC3B;AACL,WAAO,KAAK,OAAO,OAAO,cAAc;AAAA,EAC1C;AAAA,EAEA,OAAe,OAAO,OAAoB,gBAA0B;AAClE,SAAK,QAAQ,MAAM;AACnB,SAAK,iBAAiB,CAAC;AACvB,SAAK,iBAAiB,oBAAI,QAAQ;AAClC,SAAK,aAAa,MAAM;AAExB,UAAM,aAAa,MACjB,IAAI,QAAqB,CAAC,YAAY,KAAK,eAAe,KAAK,OAAO,CAAC;AAEzE,QAAI;AACF,YAAM,OAAO,KAAK,cAAc,OAAO,cAAc;AACrD,YAAM,EAAE,GAAG,MAAM,QAAQ,SAAS;AAElC,aAAO,KAAK,QAAQ,OAAO,GAAG;AAC5B,cAAMC,UAAS,MAAM,WAAW;AAChC,cAAMA;AAAA,MACR;AAAA,IACF,UAAE;AACA,WAAK,QAAQ;AAAA,IACf;AAAA,EACF;AAAA,EAEQ,cAAc,OAAoB,UAAyB;AACjE,QAAI,SAAS,QAAQ,OAAO,UAAU;AAAU,aAAO;AACvD,QAAI,MAAM,aAAa;AAAmB,aAAO;AAEjD,QAAI,KAAK,eAAe,IAAI,KAAK,GAAG;AAClC,YAAM,IAAI;AAAA,QACR,0DAA0D,MAAM,MAAM,IAAI;AAAA,MAC5E;AAAA,IACF;AAEA,SAAK,eAAe,IAAI,KAAK;AAE7B,QAAI;AACF,UAAI,iBAAiB,KAAK,GAAG;AAC3B,eAAO,KAAK,qBAAqB,OAAO,QAAQ;AAAA,MAClD;AAEA,UAAI,mBAAmB,KAAK,GAAG;AAC7B,eAAO,KAAK,uBAAuB,OAAO,QAAQ;AAAA,MACpD;AAEA,UAAI,WAAW,KAAK,GAAG;AACrB,eAAO;AAAA,UACL,UAAU;AAAA,UACV,MAAM;AAAA,UACN,IAAI,MAAM;AAAA,UACV,OAAO;AAAA,YACL,UAAU,KAAK,YAAY,MAAM,OAAO,UAAU,QAAQ;AAAA,UAC5D;AAAA,UACA,KAAK;AAAA,QACP;AAAA,MACF;AAEA,aAAO;AAAA,IACT,UAAE;AACA,WAAK,eAAe,OAAO,KAAK;AAAA,IAClC;AAAA,EACF;AAAA,EAEQ,uBAAuB,OAAoB,UAAyB;AAC1E,UAAM,EAAE,yBAAyB,UAAU,GAAG,UAAU,IACtD,MAAM,SAAS,CAAC;AAElB,QAAI;AAEJ,QAAI,yBAAyB,QAAQ;AACnC,0BAAoB,KAAK;AAAA,QACvB,wBAAwB;AAAA,QACxB;AAAA,MACF;AAAA,IACF,OAAO;AACL,0BAAoB,KAAK,YAAY,UAAU,QAAQ;AAAA,IACzD;AAEA,WAAO;AAAA,MACL,UAAU;AAAA,MACV,MAAM,MAAM;AAAA,MACZ,IAAI,MAAM;AAAA,MACV,OAAO;AAAA,QACL,GAAG;AAAA,QACH,UAAU;AAAA,MACZ;AAAA,MACA,KAAK,MAAM,OAAO;AAAA,IACpB;AAAA,EACF;AAAA,EAEQ,qBAAqB,OAAoB,UAAyB;AACxE,UAAM,iBAAiB,MAAM;AAC7B,UAAM,cAAc,QAAQ,YAAY,WAAW,cAAc;AAEjE,QAAI,oBAAoB;AAExB,QAAI,aAAa;AACf,YAAM,iBACJ,QAAQ,YAAY,qBAAqB,cAAc,KAAK,CAAC;AAE/D,UAAI,eAAe,SAAS,GAAG;AAC7B,4BAAoB,IAAI;AAAA,UACtB,eAAe,IAAI,CAAC,MAAM,mBAAmB,UAAU,CAAC,CAAC;AAAA,UACzD;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,UAAM,WAAgB,kBAAkB,QAAQ,cAAc;AAC9D,aAAS,QAAQ,MAAM,SAAS,CAAC;AAEjC,UAAM,aAAa,SAAS,MAAM;AAElC,QAAI,sBAAsB,SAAS;AACjC,aAAO,KAAK,uBAAuB,OAAO,YAAY,iBAAiB;AAAA,IACzE;AAEA,WAAO,KAAK,cAAc,YAAY,iBAAiB;AAAA,EACzD;AAAA,EAEQ,YAAY,UAAe,UAAyB;AAC1D,QAAI,YAAY;AAAM,aAAO;AAC7B,QAAI,OAAO,aAAa,YAAY,OAAO,aAAa,UAAU;AAChE,aAAO;AAAA,IACT;AAEA,QAAI,MAAM,QAAQ,QAAQ,GAAG;AAC3B,aAAO,SAAS,IAAI,CAAC,MAAM,KAAK,cAAc,GAAG,QAAQ,CAAC;AAAA,IAC5D;AAEA,WAAO,KAAK,cAAc,UAAU,QAAQ;AAAA,EAC9C;AAAA,EAEQ,eAAe,MAAc,UAAyB;AAC5D,UAAM,EAAE,UAAAC,UAAS,IAAI;AAAA,MACnB,8BAA8B,IAAI;AAAA,IACpC;AAEA,UAAM,iBAAiB,CAAC,YAAsB;AAC5C,YAAMC,YAAU,QAAQ,QAAQ,YAAY;AAC5C,YAAM,QAA6B,CAAC;AAEpC,YAAM,QAAQ,QAAQ;AACtB,UAAI,OAAO;AACT,iBAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,gBAAM,OAAO,MAAM,CAAC;AACpB,cAAI,OAAO,KAAK;AAEhB,cAAI,SAAS,SAAS;AACpB,mBAAO;AAAA,UACT,WAAW,SAAS,OAAO;AACzB,mBAAO;AAAA,UACT,WACE,CAAC,KAAK,WAAW,OAAO,KACxB,CAAC,KAAK,WAAW,OAAO,KACxB,KAAK,SAAS,GAAG,GACjB;AACA,mBAAO,KAAK;AAAA,cAAQ;AAAA,cAAa,CAAC,GAAW,WAC3C,OAAO,YAAY;AAAA,YACrB;AAAA,UACF;AAEA,gBAAM,IAAI,IAAI,KAAK;AAAA,QACrB;AAAA,MACF;AAEA,YAAM,WAAkB,CAAC;AACzB,YAAM,aAAa,QAAQ;AAE3B,UAAI,YAAY;AACd,iBAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;AAC1C,gBAAM,QAAQ,WAAW,CAAC;AAC1B,gBAAM,YAAY,YAAY,KAAK;AACnC,cAAI,aAAa,MAAM;AACrB,qBAAS,KAAK,SAAS;AAAA,UACzB;AAAA,QACF;AAAA,MACF;AAEA,YAAM,aAAa;AAAA,QACjB,UAAU;AAAA,QACV,MAAMA;AAAA,QACN,IAAI,KAAK,WAAW;AAAA,QACpB,OAAO;AAAA,UACL,GAAG;AAAA,UACH,UACE,SAAS,WAAW,IAChB,SACA,SAAS,WAAW,IACpB,SAAS,CAAC,IACV;AAAA,QACR;AAAA,QACA,KAAK;AAAA,MACP;AAEA,aAAO,KAAK,cAAc,YAAY,QAAQ;AAAA,IAChD;AAEA,UAAM,cAAc,CAAC,SAAmB;AACtC,UAAI,KAAK,aAAa,GAAG;AACvB,cAAM,OAAO,KAAK,eAAe;AACjC,cAAM,UAAU,KAAK,KAAK;AAC1B,eAAO,UAAU,OAAO;AAAA,MAC1B;AAEA,UAAI,KAAK,aAAa,GAAG;AACvB,eAAO,eAAe,IAAI;AAAA,MAC5B;AAEA,aAAO;AAAA,IACT;AAEA,UAAM,SAAgB,CAAC;AACvB,UAAM,eAAeD,UAAS,MAAM;AAEpC,QAAI,cAAc;AAChB,eAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC5C,cAAM,OAAO,aAAa,CAAC;AAC3B,cAAM,YAAY,YAAY,IAAI;AAClC,YAAI,aAAa,MAAM;AACrB,iBAAO,KAAK,SAAS;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAEA,WAAO,OAAO,WAAW,IACrB,SACA,OAAO,WAAW,IAClB,OAAO,CAAC,IACR;AAAA,EACN;AAAA,EAEQ,uBACN,OACA,SACA,UACA;AACA,UAAM,KAAK,MAAM;AACjB,UAAM,kBAAkB,IAAI,gBAAgB;AAE5C,UAAM,iBAAiB,IAAI,QAAe,CAAC,GAAG,WAAW;AACvD,YAAM,YAAY,WAAW,MAAM;AACjC,wBAAgB,MAAM;AACtB;AAAA,UACE,IAAI;AAAA,YACF,aAAa,MAAM,KAAK,QAAQ,SAAS,oBACvC,KAAK,QAAQ,OACf;AAAA,UACF;AAAA,QACF;AAAA,MACF,GAAG,KAAK,QAAQ,OAAO;AAEvB,sBAAgB,OAAO,iBAAiB,SAAS,MAAM;AACrD,qBAAa,SAAS;AAAA,MACxB,CAAC;AAAA,IACH,CAAC;AAED,UAAM,QAAQ,QAAQ,KAAK,CAAC,SAAS,cAAc,CAAC,EACjD,KAAK,CAAC,WAAW;AAChB,aAAO,KAAK,MAAM;AAClB,aAAO,KAAK,cAAc,QAAQ,QAAQ;AAAA,IAC5C,CAAC,EACA,MAAM,CAAC,QAAQ,QAAQ,OAAO,EAAE,IAAI,OAAO,IAAI,CAAC,CAAC;AAEpD,SAAK,QAAQ,IAAI,IAAI,EAAE,iBAAiB,SAAS,MAAM,CAAC;AAExD,UACG,KAAK,CAAC,aAAa;AAClB,UAAI,KAAK,aAAa,IAAI,EAAE;AAAG;AAC/B,WAAK,aAAa,IAAI,EAAE;AAExB,WAAK,eAAe,MAAM,IAAI;AAAA,QAC5B,GAAG;AAAA,QACH,QAAQ;AAAA,MACV,CAAC;AAED,WAAK,QAAQ,OAAO,EAAE;AAAA,IACxB,CAAC,EACA,MAAM,CAAC,MAAM;AACZ,WAAK,eAAe,MAAM,IAAI;AAAA,QAC5B,UAAU;AAAA,QACV,MAAM;AAAA,QACN,QAAQ;AAAA,QACR;AAAA,QACA,OAAO;AAAA,UACL,SAAS,OAAO,GAAG,KAAK,KAAK,OAAO,CAAC;AAAA,QACvC;AAAA,QACA,KAAK;AAAA,MACP,CAAC;AACD,WAAK,QAAQ,OAAO,EAAE;AAAA,IACxB,CAAC;AAEH,WAAO;AAAA,MACL,UAAU;AAAA,MACV;AAAA,MACA,MAAM;AAAA,MACN,OAAO,MAAM;AAAA,MACb,KAAK,MAAM,OAAO;AAAA,IACpB;AAAA,EACF;AAAA,EAEQ,aAAqB;AAC3B,WAAO,OAAO,EAAE,KAAK,SAAS;AAAA,EAChC;AAAA,EAEQ,UAAU;AAChB,eAAW,EAAE,gBAAgB,KAAK,KAAK,QAAQ,OAAO,GAAG;AACvD,sBAAgB,MAAM;AAAA,IACxB;AACA,SAAK,QAAQ,MAAM;AACnB,SAAK,aAAa,MAAM;AACxB,SAAK,eAAe,SAAS;AAAA,EAC/B;AAAA,EAEA,SAAS;AACP,SAAK,QAAQ;AAAA,EACf;AAAA,EAEA,MAAM,mBAAmBE,MAA0C;AACjE,UAAM,MAAqB,CAAC;AAC5B,qBAAiB,OAAO,KAAK,OAAOA,MAAK,KAAK,YAAY,GAAG;AAC3D,UAAI,KAAK,GAAG;AAAA,IACd;AACA,WAAO;AAAA,EACT;AACF;;;AChXO,IAAM,QAAN,MAAY;AAAA,EAKjB,YAAmB,KAAmB,IAAoC;AAAvD;AAAmB;AAFtC,oBAAoB,CAAC;AAAA,EAEsD;AAAA,EAE3E,MAAM,IAAY;AAChB,SAAK,KAAK;AAAA,EACZ;AAAA,EAEA,SAAS,OAAqB;AAC5B,UAAM,SAAS;AACf,SAAK,SAAS,KAAK,KAAK;AACxB,WAAO;AAAA,EACT;AAAA,EAEA,YAAY,OAAoB;AAC9B,UAAM,QAAQ,KAAK,SAAS,QAAQ,KAAK;AACzC,QAAI,QAAQ,IAAI;AACd,WAAK,SAAS,OAAO,OAAO,CAAC;AAC7B,YAAM,SAAS;AAAA,IACjB;AAAA,EACF;AAAA,EAEA,SAAS,IAA0B;AACjC,QAAI,KAAK,OAAO;AAAI,aAAO;AAE3B,eAAW,SAAS,KAAK,UAAU;AACjC,YAAM,QAAQ,MAAM,SAAS,EAAE;AAC/B,UAAI;AAAO,eAAO;AAAA,IACpB;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,IAAU;AACf,QAAI,KAAK,IAAI;AACX,WAAK,GAAG,KAAK,KAAK,EAAE;AAAA,IACtB,OAAO;AACL,UAAI,KAAK,IAAI,YAAY;AACvB,aAAK,IAAI,WAAW,aAAa,IAAI,KAAK,GAAG;AAAA,MAC/C;AAAA,IACF;AACA,SAAK,MAAM;AAAA,EACb;AAAA,EAEA,UAAgB;AACd,eAAW,SAAS,KAAK,UAAU;AACjC,YAAM,QAAQ;AAAA,IAChB;AAEA,QAAI,KAAK,IAAI,YAAY;AACvB,WAAK,IAAI,WAAW,YAAY,KAAK,GAAG;AAAA,IAC1C;AAEA,QAAI,KAAK,QAAQ;AACf,WAAK,OAAO,YAAY,IAAI;AAAA,IAC9B;AAAA,EACF;AACF;;;AC5DO,SAAS,oBAAoBC,MAAU,OAAY;AACxD,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,YAAY,MAAM,WAAW;AAAA,EACtC;AACA,SAAO;AACT;AAEO,SAAS,mBAAmBA,MAAU,OAAY;AACvD,MAAI,OAAO,UAAU,YAAY,MAAM,WAAW,WAAW,GAAG;AAC9D,WAAO,OAAO,IAAI,MAAM,MAAM,CAAC,CAAC;AAAA,EAClC;AACA,SAAO;AACT;;;ACVA,IAAI,gBAAmC;AAOhC,SAAS,OAAU,cAA4B;AACpD,MAAI,QAAQ;AACZ,QAAM,cAAc,oBAAI,IAAgB;AAExC,QAAM,SAAS,MAAM;AACnB,gBAAY,QAAQ,CAAC,QAAQ,IAAI,CAAC;AAAA,EACpC;AAEA,SAAO;AAAA,IACL,WAAW;AAAA,IACX,cAAc;AAAA,IAEd,IAAI,QAAW;AACb,UAAI,eAAe;AACjB,oBAAY,IAAI,aAAa;AAAA,MAC/B;AACA,aAAO;AAAA,IACT;AAAA,IACA,IAAI,MAAM,UAAa;AACrB,UAAI,UAAU,UAAU;AACtB,gBAAQ;AACR,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,OAAO,IAA4B;AACjD,QAAM,UAAU,MAAM;AACpB,oBAAgB;AAChB,QAAI;AACF,SAAG;AAAA,IACL,UAAE;AACA,sBAAgB;AAAA,IAClB;AAAA,EACF;AAEA,UAAQ;AAER,SAAO,MAAM;AACX,oBAAgB;AAAA,EAClB;AACF;AAEO,SAAS,SAAY,IAAwB;AAClD,QAAM,MAAM,OAAO,GAAG,CAAC;AAEvB,SAAO,MAAM;AACX,QAAI,QAAQ,GAAG;AAAA,EACjB,CAAC;AAED,SAAO;AACT;AAEO,SAAS,SAAS,OAAqB;AAC5C,SAAO,SAAS,MAAM,cAAc;AACtC;;;ACxDO,IAAM,aAAN,MAAoB;AAAA,EAMzB,YACU,UACR;AADQ;AANV,0BAAiB;AAEjB,SAAQ,cAAgC,oBAAI,IAAI;AAAA,EAK7C;AAAA,EAEH,IAAW,SAAwB;AACjC,WAAO,KAAK;AAAA,EACd;AAAA,EAEO,SAAS,UAAa;AAC3B,SAAK,SAAS;AAAA,EAChB;AAAA,EAEO,UACL,gBACA,OACA,UACc;AACd,UAAM,WACJ,OAAO,mBAAmB,aACtB,EAAE,MAAM,gBAAgB,OAAO,SAAS,IACxC;AAEN,SAAK,YAAY,IAAI,QAAQ;AAE7B,QAAI;AACJ,QAAI,KAAK,UAAU;AACjB,UAAI;AACF,kBAAU,KAAK,SAAS,QAAQ;AAAA,MAClC,SAAS,KAAK;AACZ,YAAI,SAAS,OAAO;AAClB,mBAAS,MAAM,GAAG;AAAA,QACpB;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,MACL,aAAa,MAAM;AACjB,aAAK,YAAY,OAAO,QAAQ;AAChC,YAAI;AAAS,kBAAQ;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AAAA,EAEO,KAAK,OAAgB;AAC1B,SAAK,SAAS,KAAK;AACnB,SAAK,YAAY,QAAQ,CAAC,aAAa;AACrC,UAAI;AACF,iBAAS,KAAK,KAAK;AAAA,MACrB,SAAS,KAAK;AACZ,gBAAQ,MAAM,sBAAsB,GAAG;AAAA,MACzC;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEO,MAAM,KAAgB;AAC3B,SAAK,YAAY,QAAQ,CAAC,aAAa;AACrC,UAAI,SAAS,OAAO;AAClB,YAAI;AACF,mBAAS,MAAM,GAAG;AAAA,QACpB,SAAS,GAAG;AACV,kBAAQ,MAAM,2BAA2B,CAAC;AAAA,QAC5C;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEO,WAAiB;AACtB,SAAK,YAAY,QAAQ,CAAC,aAAa;AACrC,UAAI,SAAS,UAAU;AACrB,YAAI;AACF,mBAAS,SAAS;AAAA,QACpB,SAAS,KAAK;AACZ,kBAAQ,MAAM,8BAA8B,GAAG;AAAA,QACjD;AAAA,MACF;AAAA,IACF,CAAC;AACD,SAAK,YAAY,MAAM;AAAA,EACzB;AAAA,EA0BO,QAAQ,YAA2D;AACxE,QAAI,WAAW,WAAW,GAAG;AAC3B,aAAO;AAAA,IACT;AACA,WAAO,WAAW,OAAO,CAAC,MAAM,OAAO,GAAG,IAAI,GAAG,IAAW;AAAA,EAC9D;AACF;AAEO,SAAS,KAAQ,UAAsC;AAC5D,SAAO,IAAI,WAAW,CAAC,aAAa;AAClC,eAAW,SAAS,UAAU;AAC5B,eAAS,KAAK,KAAK;AAAA,IACrB;AACA,aAAS,WAAW;AAAA,EACtB,CAAC;AACH;AAEO,SAAS,SAAS,IAAgC;AACvD,SAAO,IAAI,WAAW,CAAC,aAAa;AAClC,QAAI,QAAQ;AACZ,UAAM,KAAK,YAAY,MAAM;AAC3B,eAAS,KAAK,OAAO;AAAA,IACvB,GAAG,EAAE;AACL,WAAO,MAAM,cAAc,EAAE;AAAA,EAC/B,CAAC;AACH;AAEO,SAAS,MAAS,QAA4B;AACnD,SAAO,IAAI,WAAW,CAAC,aAAa;AAClC,WAAO,QAAQ,CAAC,UAAU,SAAS,KAAK,KAAK,CAAC;AAC9C,aAAS,WAAW;AAAA,EACtB,CAAC;AACH;AAEO,SAAS,WACd,UACe;AACf,SAAO,IAAI,WAAc,QAAQ;AACnC;AAEO,SAAS,SACd,KACA,UACuB;AACvB,QAAM,MAAM,OAAsB,MAAS;AAE3C,QAAM,QAAQ,IAAI,UAAU,CAAC,QAAQ;AACnC,QAAI,QAAQ;AAAA,EACd,CAAC;AAED,WAAS,YAAY,CAAC,GAAI,SAAS,aAAa,CAAC,GAAI,MAAM,MAAM,YAAY,CAAC;AAE9E,SAAO;AACT;AAEO,SAAS,aAAa,OAAqB;AAChD,SAAO,SAAS,MAAM,mBAAmB;AAC3C;;;AC5KO,IAAe,gBAAf,MAA6B;AAAA,EAA7B;AACL,qBAA+B,CAAC;AAAA;AAAA,EAIhC,YAAkB;AAChB,SAAK,UAAU,QAAQ,CAAC,OAAO,GAAG,CAAC;AAAA,EACrC;AAAA,EAEA,SAAS,IAAgB;AACvB,SAAK,UAAU,KAAK,EAAE;AAAA,EACxB;AAGF;;;ACjBA,IAAI,aAA0C,SAAU,YAAY,QAAQC,MAAK,MAAM;AACnF,MAAI,IAAI,UAAU,QAAQ,IAAI,IAAI,IAAI,SAAS,SAAS,OAAO,OAAO,OAAO,yBAAyB,QAAQA,IAAG,IAAI,MAAM;AAC3H,MAAI,OAAO,YAAY,YAAY,OAAO,QAAQ,aAAa;AAAY,QAAI,QAAQ,SAAS,YAAY,QAAQA,MAAK,IAAI;AAAA;AACxH,aAAS,IAAI,WAAW,SAAS,GAAG,KAAK,GAAG;AAAK,UAAI,IAAI,WAAW,CAAC;AAAG,aAAK,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,EAAE,QAAQA,MAAK,CAAC,IAAI,EAAE,QAAQA,IAAG,MAAM;AAChJ,SAAO,IAAI,KAAK,KAAK,OAAO,eAAe,QAAQA,MAAK,CAAC,GAAG;AAChE;AACA,IAAI,aAA0C,SAAU,GAAG,GAAG;AAC1D,MAAI,OAAO,YAAY,YAAY,OAAO,QAAQ,aAAa;AAAY,WAAO,QAAQ,SAAS,GAAG,CAAC;AAC3G;AACA,IAAI,UAAoC,SAAU,YAAY,WAAW;AACrE,SAAO,SAAU,QAAQA,MAAK;AAAE,cAAU,QAAQA,MAAK,UAAU;AAAA,EAAG;AACxE;AAEA,IAAI,WAAW,MAAMC,UAAS;AAAA,EAC1B,YAAY,QAAQ;AAChB,SAAK,SAAS;AACd,SAAK,QAAQ,KAAK,CAAC,CAAC;AACpB,SAAK,SAAS;AACd,UAAM,eAAe,QAAQ,OAAO,UAAU;AAC9C,SAAK,SAAS;AACd,QAAI,CAAC,QAAQ,OAAO;AAChB,cAAQ,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE;AAAA,IAC1C;AACA,WAAO,iBAAiB,YAAY,CAAC,MAAM;AACvC,YAAM,WAAW,EAAE,OAAO,UAAU;AACpC,WAAK,SAAS;AACd,WAAK,MAAM,KAAK,CAAC,GAAI,KAAK,MAAM,UAAU,CAAC,CAAE,CAAC;AAAA,IAClD,CAAC;AAAA,EACL;AAAA,EACA,UAAU;AACN,UAAM,OAAO,IAAI,WAAW;AAC5B,WAAO,KAAK,KAAK,KAAK,QAAQ;AAAA,MAC1B,QAAQ;AAAA,MACR,SAAS;AAAA,IACb,CAAC;AAAA,EACL;AAAA,EACA,KAAK,WAAW;AACZ,UAAM,eAAe,KAAK,MAAM,UAAU,CAAC;AAC3C,UAAM,WAAW,aAAa,MAAM,GAAG,KAAK,SAAS,CAAC;AACtD,SAAK;AACL,aAAS,KAAK,SAAS;AACvB,YAAQ,UAAU,EAAE,QAAQ,KAAK,OAAO,GAAG,EAAE;AAC7C,SAAK,MAAM,KAAK,QAAQ;AAAA,EAC5B;AAAA,EACA,QAAQ,WAAW;AACf,UAAM,eAAe,CAAC,GAAI,KAAK,MAAM,UAAU,CAAC,CAAE;AAClD,iBAAa,KAAK,MAAM,IAAI;AAC5B,YAAQ,aAAa,EAAE,QAAQ,KAAK,OAAO,GAAG,EAAE;AAChD,SAAK,MAAM,KAAK,YAAY;AAAA,EAChC;AAAA,EACA,SAAS;AACL,QAAI,KAAK,SAAS,GAAG;AACjB,cAAQ,KAAK;AAAA,IACjB;AAAA,EACJ;AAAA,EACA,YAAY;AACR,UAAM,eAAe,KAAK,MAAM,UAAU,CAAC;AAC3C,QAAI,KAAK,SAAS,aAAa,SAAS,GAAG;AACvC,cAAQ,QAAQ;AAAA,IACpB;AAAA,EACJ;AAAA,EACA,YAAY;AACR,WAAO,KAAK,SAAS;AAAA,EACzB;AAAA,EACA,eAAe;AACX,UAAM,eAAe,KAAK,MAAM,UAAU,CAAC;AAC3C,WAAO,KAAK,SAAS,aAAa,SAAS;AAAA,EAC/C;AAAA,EACA,iBAAiB;AACb,UAAM,eAAe,KAAK,MAAM,UAAU,CAAC;AAC3C,WAAO,aAAa,KAAK,MAAM;AAAA,EACnC;AAAA,EACA,QAAQ;AACJ,SAAK,SAAS;AACd,SAAK,MAAM,KAAK,CAAC,CAAC;AAClB,YAAQ,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE;AAAA,EAC1C;AACJ;AACA,WAAW,WAAW;AAAA,EAClB,QAAQ,GAAG,OAAO,WAAW,EAAE,OAAO,KAAK,CAAC,CAAC;AAAA,EAC7C,WAAW,qBAAqB,CAAC,MAAM,CAAC;AAC5C,GAAG,QAAQ;;;ACjFX,IAAIC,cAA0C,SAAU,YAAY,QAAQC,MAAK,MAAM;AACnF,MAAI,IAAI,UAAU,QAAQ,IAAI,IAAI,IAAI,SAAS,SAAS,OAAO,OAAO,OAAO,yBAAyB,QAAQA,IAAG,IAAI,MAAM;AAC3H,MAAI,OAAO,YAAY,YAAY,OAAO,QAAQ,aAAa;AAAY,QAAI,QAAQ,SAAS,YAAY,QAAQA,MAAK,IAAI;AAAA;AACxH,aAAS,IAAI,WAAW,SAAS,GAAG,KAAK,GAAG;AAAK,UAAI,IAAI,WAAW,CAAC;AAAG,aAAK,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,EAAE,QAAQA,MAAK,CAAC,IAAI,EAAE,QAAQA,IAAG,MAAM;AAChJ,SAAO,IAAI,KAAK,KAAK,OAAO,eAAe,QAAQA,MAAK,CAAC,GAAG;AAChE;AACA,IAAIC,cAA0C,SAAU,GAAG,GAAG;AAC1D,MAAI,OAAO,YAAY,YAAY,OAAO,QAAQ,aAAa;AAAY,WAAO,QAAQ,SAAS,GAAG,CAAC;AAC3G;AACA,IAAIC;AAEJ,IAAI,eAAe,MAAMC,sBAAqB,cAAc;AAAA,EACxD,YAAY,UAAU;AAClB,UAAM;AACN,SAAK,WAAW;AAAA,EACpB;AAAA,EACA,QAAQ;AACJ,UAAM,SAAS,SAAS,cAAc,KAAK;AAC3C,UAAM,OAAO,SAAS,cAAc,KAAK;AACzC,WAAO,YAAY,IAAI;AACvB,UAAM,MAAM,IAAI,IAAI,IAAI;AACxB,UAAM,SAAS,KAAK,SAAS,QAAQ;AACrC,UAAM,qBAAqB,OAAO,UAAU,CAACC,SAAQ;AACjD,YAAM,SAASA,KAAI,UAAU;AAC7B,UAAI,WAAW,UAAU;AACrB,YAAI,aAAaA,IAAG;AAAA,MACxB,WACS,WAAW,UAAU;AAC1B,YAAI,aAAaA,IAAG;AAAA,MACxB,OACK;AACD,gBAAQ,KAAK,mBAAmB,MAAM,EAAE;AAAA,MAC5C;AAAA,IACJ,GAAG,MAAM;AAAA,IAAE,GAAG,MAAM;AAChB,WAAK,SAAS,MAAM,SAAS,CAAC,IAAI,KAAK,GAAG,CAAC;AAAA,IAC/C,CAAC;AACD,UAAM,eAAe,KAAK,SAAS,MAAM,UAAU,CAAC,UAAU;AAC1D,YAAM,MAAM,MAAM,KAAK,SAAS,MAAM;AACtC,aAAO,gBAAgB,GAAG;AAAA,IAC9B,CAAC;AACD,SAAK,SAAS,MAAM,aAAa,YAAY,CAAC;AAC9C,SAAK,SAAS,MAAM,mBAAmB,YAAY,CAAC;AACpD,WAAO;AAAA,EACX;AACJ;AACA,eAAeL,YAAW;AAAA,EACtB,UAAU;AAAA,EACVE,YAAW,qBAAqB,CAAC,QAAQC,MAAK,OAAO,aAAa,eAAe,cAAc,aAAaA,MAAK,MAAM,CAAC;AAC5H,GAAG,YAAY;;;AC5CR,IAAM,eAAN,MAAM,cAAa;AAAA,EACxB,OAAO,UAAyB;AAC9B,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,cAAc,CAAC,YAAY;AAAA,MAC3B,WAAW,CAAC,QAAQ;AAAA,MACpB,SAAS,CAAC,UAAU,YAAY;AAAA,IAClC;AAAA,EACF;AACF;;;ACbA,IAAIG,cAA0C,SAAU,YAAY,QAAQC,MAAK,MAAM;AACnF,MAAI,IAAI,UAAU,QAAQ,IAAI,IAAI,IAAI,SAAS,SAAS,OAAO,OAAO,OAAO,yBAAyB,QAAQA,IAAG,IAAI,MAAM;AAC3H,MAAI,OAAO,YAAY,YAAY,OAAO,QAAQ,aAAa;AAAY,QAAI,QAAQ,SAAS,YAAY,QAAQA,MAAK,IAAI;AAAA;AACxH,aAAS,IAAI,WAAW,SAAS,GAAG,KAAK,GAAG;AAAK,UAAI,IAAI,WAAW,CAAC;AAAG,aAAK,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,EAAE,QAAQA,MAAK,CAAC,IAAI,EAAE,QAAQA,IAAG,MAAM;AAChJ,SAAO,IAAI,KAAK,KAAK,OAAO,eAAe,QAAQA,MAAK,CAAC,GAAG;AAChE;AAEA,IAAI,aAAa,MAAMC,YAAW;AAAA,EAC9B,IAAI,KAAK,EAAE,SAAS,QAAQ,SAAS,KAAK,IAAI,CAAC,GAAG;AAC9C,WAAO,IAAI,WAAW,CAAC,eAAe;AAClC,YAAM,aAAa,IAAI,gBAAgB;AACvC,YAAM,KAAK;AAAA,QACP,QAAQ;AAAA,QACR,GAAG;AAAA,QACH,QAAQ,WAAW;AAAA,MACvB,CAAC,EACI,KAAK,OAAO,QAAQ;AACrB,YAAI,CAAC,IAAI,IAAI;AACT,gBAAM,IAAI,MAAM,QAAQ,IAAI,MAAM,KAAK,IAAI,UAAU,EAAE;AAAA,QAC3D;AACA,YAAI,WAAW,QAAQ;AACnB,gBAAM,OAAO,MAAM,IAAI,KAAK;AAC5B,qBAAW,KAAK,UAAU,KAAK,MAAM,KAAK,UAAU,IAAI,GAAG,OAAO,IAAI,IAAI;AAC1E,qBAAW,WAAW;AACtB;AAAA,QACJ;AACA,YAAI,WAAW,OAAO;AAClB,qBAAW,KAAK,GAAG;AACnB,qBAAW,WAAW;AACtB;AAAA,QACJ;AACA,cAAM,SAAS,IAAI,MAAM,UAAU;AACnC,YAAI,CAAC,QAAQ;AACT,gBAAM,IAAI,MAAM,8BAA8B;AAAA,QAClD;AACA,cAAM,UAAU,IAAI,YAAY;AAChC,YAAI,SAAS;AACb,eAAO,MAAM;AACT,gBAAM,EAAE,MAAM,MAAM,IAAI,MAAM,OAAO,KAAK;AAC1C,cAAI,MAAM;AACN,gBAAI,WAAW,YAAY,OAAO,KAAK,GAAG;AACtC,kBAAI;AACA,2BAAW,KAAK,KAAK,MAAM,QAAQ,OAAO,CAAC;AAAA,cAC/C,SACO,KAAK;AACR,wBAAQ,KAAK,qCAAqC,GAAG;AAAA,cACzD;AAAA,YACJ;AACA;AAAA,UACJ;AACA,gBAAM,QAAQ,QAAQ,OAAO,OAAO,EAAE,QAAQ,KAAK,CAAC;AACpD,cAAI,WAAW,QAAQ;AACnB,uBAAW,KAAK,KAAK;AACrB;AAAA,UACJ;AACA,cAAI,WAAW,UAAU;AACrB,sBAAU;AACV,kBAAM,QAAQ,OAAO,MAAM,IAAI;AAC/B,qBAAS,MAAM,IAAI;AACnB,uBAAW,QAAQ,OAAO;AACtB,kBAAI,KAAK,KAAK,GAAG;AACb,oBAAI;AACA,6BAAW,KAAK,KAAK,MAAM,MAAM,OAAO,CAAC;AAAA,gBAC7C,SACO,KAAK;AACR,0BAAQ,MAAM,gCAAgC,MAAM,GAAG;AAAA,gBAC3D;AAAA,cACJ;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AACA,mBAAW,WAAW;AAAA,MAC1B,CAAC,EACI,MAAM,CAAC,QAAQ;AAChB,YAAI,IAAI,SAAS,cAAc;AAC3B,kBAAQ,IAAI,iBAAiB;AAAA,QACjC;AACA,mBAAW,QAAQ,GAAG;AAAA,MAC1B,CAAC;AACD,aAAO,MAAM;AACT,mBAAW,MAAM;AAAA,MACrB;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EACA,KAAK,KAAK,EAAE,MAAM,SAAS,QAAQ,SAAS,KAAK,IAAI,CAAC,GAAG;AACrD,UAAM,UAAU,IAAI,QAAQ,MAAM,OAAO;AACzC,QAAI,QAAQ,CAAC,QAAQ,IAAI,cAAc,GAAG;AACtC,cAAQ,IAAI,gBAAgB,kBAAkB;AAAA,IAClD;AACA,UAAM,gBAAgB,SAAS,SACzB,OAAO,SAAS,WACZ,OACA,KAAK,UAAU,IAAI,IACvB;AACN,WAAO,KAAK,IAAI,KAAK;AAAA,MACjB;AAAA,MACA;AAAA,MACA,MAAM;AAAA,QACF,GAAG;AAAA,QACH,QAAQ;AAAA,QACR;AAAA,QACA,MAAM;AAAA,MACV;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EACA,IAAI,KAAK,SAAS;AACd,WAAO,KAAK,QAAQ,KAAK,OAAO,OAAO;AAAA,EAC3C;AAAA,EACA,MAAM,KAAK,SAAS;AAChB,WAAO,KAAK,QAAQ,KAAK,SAAS,OAAO;AAAA,EAC7C;AAAA,EACA,OAAO,KAAK,SAAS;AACjB,WAAO,KAAK,IAAI,KAAK;AAAA,MACjB,GAAG;AAAA,MACH,MAAM;AAAA,QACF,GAAG,SAAS;AAAA,QACZ,QAAQ;AAAA,MACZ;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EACA,QAAQ,KAAK,QAAQ,EAAE,MAAM,SAAS,QAAQ,SAAS,KAAK,IAAI,CAAC,GAAG;AAChE,UAAM,UAAU,IAAI,QAAQ,MAAM,OAAO;AACzC,QAAI,QAAQ,CAAC,QAAQ,IAAI,cAAc,GAAG;AACtC,cAAQ,IAAI,gBAAgB,kBAAkB;AAAA,IAClD;AACA,UAAM,gBAAgB,SAAS,SACzB,OAAO,SAAS,WACZ,OACA,KAAK,UAAU,IAAI,IACvB;AACN,WAAO,KAAK,IAAI,KAAK;AAAA,MACjB;AAAA,MACA;AAAA,MACA,MAAM;AAAA,QACF,GAAG;AAAA,QACH;AAAA,QACA;AAAA,QACA,MAAM;AAAA,MACV;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;AACA,aAAaF,YAAW;AAAA,EACpB,WAAW;AACf,GAAG,UAAU;AAEb,IAAI,mBAAmB,MAAMG,kBAAiB;AAC9C;AACA,mBAAmBC,YAAW;AAAA,EAC1B,OAAO;AAAA,IACH,WAAW,CAAC,UAAU;AAAA,IACtB,SAAS,CAAC,UAAU;AAAA,EACxB,CAAC;AACL,GAAG,gBAAgB;;;ACvIZ,IAAM,MAAN,MAAU;AAAA,EAIf,YAAoB,MAAmB;AAAnB;AAFpB,SAAQ,cAAc,oBAAI,IAAyB;AAGjD,SAAK,OAAO,IAAI,MAAM,MAAM,CAAC,KAAK,OAAO;AACvC,MAAC,IAAoB,YAAY,EAAE;AAAA,IACrC,CAAC;AAAA,EACH;AAAA,EAEO,aAAaC,MAAwB;AAC1C,UAAM,EAAE,SAAS,MAAM,IAAI,KAAK,SAASA,MAAK,KAAK,IAAI;AAEvD,QAAIA,KAAI,MAAM,OAAO;AACnB,YAAM,MAAMA,KAAI,EAAE;AAAA,IACpB;AAEA,SAAK,KAAK,OAAO,OAAO;AAAA,EAC1B;AAAA,EAEO,aAAaA,MAAwB;AAC1C,QAAI,CAACA,KAAI,IAAI;AACX,cAAQ,KAAK,8BAA8B;AAC3C;AAAA,IACF;AAEA,UAAM,cAAc,KAAK,KAAK,SAASA,KAAI,EAAE;AAE7C,QAAI,aAAa;AACf,YAAM,cAAc,CAAC,GAAG,YAAY,QAAQ;AAC5C,kBAAY,WAAW,CAAC;AAExB,YAAM,EAAE,SAAS,MAAM,IAAI,KAAK;AAAA,QAC9BA;AAAA,QACA,YAAY,UAAU,KAAK;AAAA,MAC7B;AAEA,kBAAY,OAAO,OAAO;AAE1B,UAAI,OAAO;AACT,oBAAY,WAAW,MAAM;AAAA,MAC/B;AAAA,IACF,OAAO;AACL,cAAQ,KAAK,iBAAiBA,KAAI,EAAE,+BAA+B;AACnE,WAAK,aAAaA,IAAG;AAAA,IACvB;AAAA,EACF;AAAA,EAEQ,SACNA,MACA,SACa;AACb,QAAIA,QAAO,MAAM;AACf,aAAO,EAAE,SAAS,SAAS,uBAAuB,EAAE;AAAA,IACtD;AAEA,QAAI,MAAM,QAAQA,IAAG,GAAG;AACtB,aAAO,KAAK,WAAWA,MAAK,OAAO;AAAA,IACrC;AAEA,QAAI,KAAK,YAAYA,IAAG,GAAG;AACzB,aAAO,KAAK,cAAc,OAAOA,IAAG,GAAG,OAAO;AAAA,IAChD;AAEA,QAAIA,KAAI,aAAa,wBAAwB;AAC3C,aAAO,KAAK,sBAAsBA,MAAK,OAAO;AAAA,IAChD;AAEA,QAAIA,KAAI,aAAa,uBAAuB;AAC1C,aAAO,KAAK,qBAAqBA,MAAK,OAAO;AAAA,IAC/C;AAEA,QAAI,mBAAmBA,IAAG,GAAG;AAC3B,aAAO,KAAK,sBAAsBA,MAAK,OAAO;AAAA,IAChD;AAEA,YAAQ,MAAM,qBAAqBA,IAAG;AACtC,UAAM,IAAI;AAAA,MACR,0BAA0B,OAAOA,IAAG,cAAc,OAAOA,KAAI,QAAQ,CAAC;AAAA,IACxE;AAAA,EACF;AAAA,EAEQ,qBAAqBA,MAAU,QAA4B;AACjE,UAAM,gBAAgBA,KAAI,MAAM;AAChC,UAAM,EAAE,IAAI,MAAM,KAAK,IAAI;AAE3B,UAAM,YAAY,SAAS,cAAc,KAAK;AAC9C,cAAU,QAAQ,kBAAkB;AAEpC,UAAM,QAAQ,IAAI,MAAM,WAAW,CAAC,KAAK,OAAO;AAC9C,UAAI,IAAI,YAAY;AAClB,YAAI,WAAW,aAAa,IAAI,GAAG;AAAA,MACrC;AAAA,IACF,CAAC;AAED,QAAIA,KAAI,IAAI;AACV,YAAM,MAAMA,KAAI,EAAE;AAAA,IACpB;AAEA,WAAO,SAAS,KAAK;AAErB,SAAK,oBAAoB,MAAM,MAAMA,KAAI,OAAO,SAAS;AAEzD,WAAO,EAAE,SAAS,WAAW,MAAM;AAAA,EACrC;AAAA,EAEQ,sBAAsBA,MAAU,QAA4B;AAClE,UAAM,QAAQA,KAAI;AAClB,UAAM,MAAM,SAAS,cAAc,KAAK;AACxC,QAAI,QAAQ,MAAM;AAClB,QAAI,YAAY;AAChB,QAAI,cAAc;AAElB,UAAM,QAAQ,IAAI,MAAM,KAAK,CAAC,KAAK,OAAO;AACxC,UAAI,IAAI,YAAY;AAClB,YAAI,WAAW,aAAa,IAAI,GAAG;AAAA,MACrC;AAAA,IACF,CAAC;AACD,UAAM,MAAM,KAAK;AACjB,WAAO,SAAS,KAAK;AAErB,UAAM,iBAAiB,KAAK,YAAY,IAAI,KAAK;AACjD,QAAI,gBAAgB;AAClB,iBAAW,MAAM,KAAK,wBAAwB,OAAO,cAAc,GAAG,CAAC;AAAA,IACzE;AAEA,WAAO,EAAE,SAAS,KAAK,MAAM;AAAA,EAC/B;AAAA,EAEA,wBAAwB,OAAe,SAA4B;AACjE,UAAM,QAAQ,KAAK,KAAK,SAAS,KAAK;AACtC,QAAI,CAAC,OAAO;AACV,cAAQ,KAAK,aAAa,KAAK,YAAY;AAC3C,WAAK,YAAY,IAAI,OAAO,OAAO;AACnC;AAAA,IACF;AAEA,QAAI;AACF,YAAM,WAAW,CAAC;AAElB,YAAM,EAAE,SAAS,OAAO,SAAS,IAAI,KAAK,SAAS,SAAS,KAAK;AAEjE,YAAM,OAAO,OAAO;AAEpB,UAAI,UAAU;AACZ,cAAM,WAAW,SAAS;AAAA,MAC5B;AAEA,WAAK,YAAY,OAAO,KAAK;AAAA,IAC/B,SAAS,OAAO;AACd,cAAQ,MAAM,6BAA6B,KAAK,KAAK,KAAK;AAAA,IAC5D;AAAA,EACF;AAAA,EAEQ,cAAc,MAAc,QAA4B;AAC9D,UAAM,WAAW,SAAS,eAAe,IAAI;AAC7C,UAAM,QAAQ,IAAI,MAAM,UAAU,CAAC,KAAK,OAAO;AAC7C,UAAI,IAAI,YAAY;AAClB,YAAI,WAAW,aAAa,IAAI,GAAG;AAAA,MACrC;AAAA,IACF,CAAC;AACD,WAAO,SAAS,KAAK;AACrB,WAAO,EAAE,SAAS,UAAU,MAAM;AAAA,EACpC;AAAA,EAEQ,YAAY,MAAoB;AACtC,WACE,OAAO,SAAS,YAChB,OAAO,SAAS,YAChB,OAAO,SAAS;AAAA,EAEpB;AAAA,EAEQ,WAAW,OAAsB,QAA4B;AACnE,UAAM,WAAW,SAAS,uBAAuB;AACjD,UAAM,SAAkB,CAAC;AAEzB,UAAM,QAAQ,CAAC,UAAU;AACvB,YAAM,EAAE,SAAS,MAAM,IAAI,KAAK,SAAS,OAAO,MAAM;AACtD,eAAS,YAAY,OAAO;AAC5B,UAAI,OAAO;AACT,eAAO,KAAK,KAAK;AAAA,MACnB;AAAA,IACF,CAAC;AAED,WAAO,EAAE,SAAS,SAAS;AAAA,EAC7B;AAAA,EAEQ,sBAAsBA,MAAkB,QAA4B;AAC1E,UAAM,MAAMA,KAAI;AAChB,UAAM,MAAM,SAAS,cAAc,GAAG;AAEtC,UAAM,QAAQ,IAAI,MAAM,KAAK,CAAC,KAAK,OAAO;AACxC,UAAI,IAAI,YAAY;AAClB,YAAI,WAAW,aAAa,IAAI,GAAG;AAAA,MACrC;AAAA,IACF,CAAC;AAED,WAAO,SAAS,KAAK;AAErB,QAAIA,KAAI,IAAI;AACV,YAAM,MAAMA,KAAI,EAAE;AAAA,IACpB;AAEA,QAAIA,KAAI,OAAO;AACb,WAAK,gBAAgBA,KAAI,OAAO,KAAK,KAAK;AAAA,IAC5C;AAEA,QAAIA,KAAI,OAAO,YAAY,MAAM;AAC/B,YAAM,EAAE,SAAS,SAAS,IAAI,KAAK,SAASA,KAAI,MAAM,UAAU,KAAK;AACrE,UAAI,YAAY,QAAQ;AAAA,IAC1B;AAEA,WAAO,EAAE,SAAS,KAAK,MAAM;AAAA,EAC/B;AAAA,EAEQ,gBACN,OACA,KACA,OACM;AACN,eAAW,CAACC,MAAK,KAAK,KAAK,OAAO,QAAQ,KAAK,GAAG;AAChD,UAAIA,SAAQ,cAAc,SAAS,MAAM;AACvC;AAAA,MACF;AAEA,YAAM,UAAU,KAAK,sBAAsBA,IAAG;AAE9C,UAAI,YAAY,WAAW,OAAO,UAAU,UAAU;AACpD,aAAK,YAAY,OAAO,GAAG;AAC3B;AAAA,MACF;AAEA,UAAI,OAAO,UAAU,WAAW;AAC9B,aAAK,oBAAoB,SAAS,OAAO,GAAG;AAC5C;AAAA,MACF;AAEA,UAAI,aAAa,SAAS,OAAO,KAAK,CAAC;AAAA,IACzC;AAAA,EACF;AAAA,EAEQ,sBAAsBA,MAAqB;AACjD,QAAIA,SAAQ;AAAa,aAAO;AAChC,QAAIA,SAAQ;AAAW,aAAO;AAC9B,WAAOA;AAAA,EACT;AAAA,EAEQ,YAAY,QAA6B,KAAwB;AACvE,UAAM,cAAc,OAAO,QAAQ,MAAM,EACtC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM;AACf,YAAM,WAAW,EAAE,QAAQ,UAAU,CAAC,MAAM,IAAI,EAAE,YAAY,CAAC,EAAE;AACjE,aAAO,GAAG,QAAQ,IAAI,CAAC;AAAA,IACzB,CAAC,EACA,KAAK,GAAG;AACX,QAAI,aAAa,SAAS,WAAW;AAAA,EACvC;AAAA,EAEQ,oBACNA,MACA,OACA,KACM;AACN,QAAI,OAAO;AACT,UAAI,aAAaA,MAAK,EAAE;AAAA,IAC1B,OAAO;AACL,UAAI,gBAAgBA,IAAG;AAAA,IACzB;AAAA,EACF;AAAA,EAEA,MAAc,oBACZ,MACA,MACA,OACA,WACe;AACf,QAAI;AAeF,UAASC,YAAT,SAAkB,KAAkBC,WAAoB;AACtD,YAAI,KAAK,IAAI,GAAG;AAAG;AACnB,aAAK,IAAI,GAAG;AAEZ,QAAAA,UAAS,YAAY;AAAA,UACnB,SAAS;AAAA,UACT,UAAU;AAAA,UACV,OAAO;AAAA,QACT,CAAC;AAED,cAAM,YACJ,QAAQ,YAAY,mBAAmB,GAAG,KAAK,CAAC;AAElD,cAAM,eACJ,QAAQ,YAAY,gBAAgB,GAAG,KAAK,CAAC;AAE/C,kBACG,OAAO,CAAC,MAAM,KAAK,MAAM,MAAM,EAC/B,QAAQ,CAAC,MAAMA,UAAS,YAAY,CAAC,CAAC;AAEzC,qBAAa,QAAQ,CAAC,SAASD,UAAS,MAAMC,SAAQ,CAAC;AAAA,MACzD;AArBS,qBAAAD;AAdT,YAAM,SAAS,MAAM,OAAO;AAC5B,YAAM,iBAA8B,OAAO,IAAI;AAE/C,UAAI,CAAC,gBAAgB;AACnB,cAAM,IAAI,MAAM,aAAa,IAAI,iBAAiB,IAAI,EAAE;AAAA,MAC1D;AAEA,YAAM,WAAW,mBAAmB;AACpC,UAAI,YAAY,MAAM;AACpB,cAAM,IAAI,MAAM,2BAA2B;AAAA,MAC7C;AAEA,YAAM,OAAO,oBAAI,IAAiB;AAyBlC,MAAAA,UAAS,gBAAgB,QAAQ;AAEjC,YAAM,aAAa,EAAE,GAAG,MAAM;AAC9B,aAAO,WAAW;AAElB,YAAM,WAAW,SAAS,QAAQ,cAAc;AAChD,eAAS,aAAa;AACtB,eAAS,QAAQ;AAEjB,UAAI,OAAO,SAAS,UAAU,YAAY;AACxC,cAAM,IAAI,MAAM,aAAa,IAAI,6BAA6B;AAAA,MAChE;AAEA,YAAM,WAAW,SAAS,MAAM;AAEhC,gBAAU,YAAY,QAAQ;AAAA,IAChC,SAAS,OAAO;AACd,cAAQ,MAAM,mCAAmC,IAAI,KAAK,KAAK;AAE/D,gBAAU,cAAc,4BAA4B,IAAI;AACxD,gBAAU,YAAY;AAAA,IACxB;AAAA,EACF;AACF;;;ACnWO,SAAS,QAAQ,SAAe;AACrC,SAAO,SAAS,QAAQ,oBAAoB,QAAQ;AACtD;;;ACFA;AAAA;AAAA;AAAA;AAAA,gBAAAE;AAAA,EAAA;AAAA;AAAA;;;ACSO,IAAM,iBAAN,MAAqB;AAAA,EAC1B,OAAc,OAAO,YAAyB,aAA0B;AACtE,UAAM,WAAW,IAAI,SAAS;AAC9B,UAAM,UAAU,SAAS,QAAQ,UAAU;AAE3C,UAAM,aAAa,SAAS,SAAS,OAAO;AAE5C,QAAI,CAAC,WAAW,OAAO;AACrB,YAAM,IAAI;AAAA,QACR,gCAA2B,WAAW,OAAO,KAAK,MAAM;AAAA,MAC1D;AAAA,IACF;AAEA,UAAM,eAAe,4BAA4B,OAAO;AAExD,UAAM,eAAe,IAAI,SAAS;AAAA,MAChC,GAAG;AAAA,MACH;AAAA,QACE,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA,IACF,CAAC;AAED,uBAAmB,YAAY;AAE/B,YAAQ,SAAS,CAAC,SAAS;AACzB,YAAM,YAAY,CAAC,GAAG,KAAK,aAAa,EAAE,OAAO,CAAC;AAClD,gBACG,OAAO,CAAC,aAAa,SAAS,KAAK,EACnC,QAAQ,CAAC,MAAM,aAAa,QAAQ,EAAE,OAAO,CAAC;AAAA,IACnD,CAAC;AAED,UAAM,YAAY,QAAQ,YAAY,WAAW,UAAU;AAE3D,UAAM,WAAgB,aAAa,QAAQ,SAAS;AAEpD,aAAS,aAAa;AAEtB,UAAM,WAAW,SAAS,MAAM;AAEhC,gBAAY,YAAY,QAAQ;AAAA,EAClC;AACF;;;AChDA,IAAM,iBAAiB,oBAAI,QAAQ;AACnC,IAAM,kBAAkB,IAAI,iBAAiB,CAAC,cAAc;AACxD,YAAU,QAAQ,CAAC,aAAa;AAC5B,aAAS,aAAa,QAAQ,CAAC,SAAS;AACpC,qBAAe,IAAI;AAAA,IACvB,CAAC;AAAA,EACL,CAAC;AACL,CAAC;AACD,IAAI,OAAO,aAAa,eAAe,SAAS,MAAM;AAClD,kBAAgB,QAAQ,SAAS,MAAM;AAAA,IACnC,WAAW;AAAA,IACX,SAAS;AAAA,EACb,CAAC;AACL,WACS,OAAO,aAAa,aAAa;AACtC,WAAS,iBAAiB,oBAAoB,MAAM;AAChD,oBAAgB,QAAQ,SAAS,MAAM;AAAA,MACnC,WAAW;AAAA,MACX,SAAS;AAAA,IACb,CAAC;AAAA,EACL,CAAC;AACL;AACA,SAAS,eAAe,MAAM;AAC1B,QAAM,WAAW,eAAe,IAAI,IAAI;AACxC,MAAI,UAAU;AACV,aAAS,QAAQ,CAAC,SAAS,QAAQ;AAC/B,cAAQ;AAAA,IACZ,CAAC;AACD,mBAAe,OAAO,IAAI;AAAA,EAC9B;AACA,MAAI,KAAK,cAAc,KAAK,WAAW,SAAS,GAAG;AAC/C,SAAK,WAAW,QAAQ,CAAC,UAAU,eAAe,KAAK,CAAC;AAAA,EAC5D;AACJ;AACA,SAAS,eAAe,IAAI,SAAS;AACjC,MAAI,CAAC,eAAe,IAAI,EAAE,GAAG;AACzB,mBAAe,IAAI,IAAI,CAAC,CAAC;AAAA,EAC7B;AACA,iBAAe,IAAI,EAAE,EAAE,KAAK,OAAO;AACvC;AACA,SAAS,SAAS,OAAO;AACrB,MAAI,iBAAiB,MAAM;AACvB,WAAO;AAAA,EACX;AACA,MAAI,OAAO,UAAU,YAAY,OAAO,UAAU,UAAU;AACxD,WAAO,SAAS,eAAe,OAAO,KAAK,CAAC;AAAA,EAChD;AACA,MAAI,SAAS,QAAQ,OAAO,UAAU,WAAW;AAC7C,WAAO,SAAS,eAAe,EAAE;AAAA,EACrC;AACA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,UAAM,WAAW,SAAS,uBAAuB;AACjD,eAAW,QAAQ,OAAO;AACtB,YAAM,OAAO,SAAS,IAAI;AAC1B,eAAS,YAAY,IAAI;AAAA,IAC7B;AACA,WAAO;AAAA,EACX;AACA,UAAQ,IAAI,oBAAoB,KAAK;AACrC,QAAM,IAAI,MAAM,gCAAgC,KAAK,EAAE;AAC3D;AACO,SAASC,QAAO,QAAQ,OAAO;AAClC,MAAI,SAAS;AACT;AACJ,MAAI;AACJ,WAAS,OAAOC,QAAO;AACnB,UAAM,SAAS,SAASA,MAAK;AAC7B,QAAI,YAAY;AACZ,UAAI,MAAM,QAAQ,UAAU,GAAG;AAC3B,mBAAW,QAAQ,CAAC,SAAS;AACzB,cAAI,KAAK,YAAY;AACjB,iBAAK,WAAW,YAAY,IAAI;AAAA,UACpC;AAAA,QACJ,CAAC;AAAA,MACL,OACK;AACD,YAAI,WAAW,YAAY;AACvB,qBAAW,WAAW,YAAY,UAAU;AAAA,QAChD;AAAA,MACJ;AAAA,IACJ;AACA,QAAI,kBAAkB,kBAAkB;AACpC,YAAM,QAAQ,MAAM,KAAK,OAAO,UAAU;AAC1C,aAAO,YAAY,MAAM;AACzB,mBAAa;AAAA,IACjB,OACK;AACD,aAAO,YAAY,MAAM;AACzB,mBAAa;AAAA,IACjB;AAAA,EACJ;AACA,MAAI,SAAS,KAAK,GAAG;AACjB,UAAM,UAAU,OAAO,MAAM;AACzB,aAAO,MAAM,KAAK;AAAA,IACtB,CAAC;AACD,mBAAe,QAAQ,OAAO;AAAA,EAClC,WACS,aAAa,KAAK,GAAG;AAC1B,UAAM,MAAM;AACZ,UAAM,QAAQ,IAAI,UAAU,CAAC,QAAQ;AACjC,aAAO,GAAG;AAAA,IACd,CAAC;AACD,mBAAe,QAAQ,MAAM,MAAM,YAAY,CAAC;AAAA,EACpD,WACS,OAAO,SAAS,YAAY;AACjC,UAAM,UAAU,OAAO,MAAM;AACzB,aAAO,MAAM,CAAC;AAAA,IAClB,CAAC;AACD,mBAAe,QAAQ,OAAO;AAAA,EAClC,OACK;AACD,UAAM,OAAO,SAAS,KAAK;AAC3B,WAAO,YAAY,IAAI;AAAA,EAC3B;AACJ;AACA,SAAS,YAAY,SAAS,UAAU;AACpC,QAAM,WAAW,IAAI,iBAAiB,MAAM;AACxC,QAAI,CAAC,SAAS,SAAS,OAAO,GAAG;AAC7B,eAAS;AACT,eAAS,WAAW;AAAA,IACxB;AAAA,EACJ,CAAC;AACD,aAAW,MAAM;AACb,QAAI,QAAQ,YAAY;AACpB,eAAS,QAAQ,SAAS,MAAM,EAAE,WAAW,MAAM,SAAS,KAAK,CAAC;AAAA,IACtE;AAAA,EACJ,GAAG,CAAC;AACR;AACO,SAAS,gBAAgB,gBAAgB,QAAQ,CAAC,GAAG,iBAAiB;AACzE,MAAI,WAAW,mBAAmB;AAClC,MAAI,CAAC,UAAU;AACX,UAAM,IAAI,MAAM,2BAA2B,eAAe,IAAI,6FACO;AAAA,EACzE;AACA,QAAM,cAAc,QAAQ,YAAY,WAAW,cAAc;AACjE,MAAI,CAAC,aAAa;AACd,UAAM,IAAI,MAAM,GAAG,eAAe,IAAI,qCAAqC;AAAA,EAC/E;AACA,MAAI;AACJ,MAAI;AACA,eAAW,SAAS,QAAQ,cAAc;AAAA,EAC9C,SACO,GAAG;AACN,UAAM,IAAI,MAAM,EAAE,OAAO;AAAA,EAC7B;AACA,QAAM,iBAAiB,QAAQ,YAAY,qBAAqB,cAAc,KAAK,CAAC;AACpF,MAAI,eAAe,SAAS,GAAG;AAC3B,eAAW,IAAI,SAAS,eAAe,IAAI,CAAC,MAAM,mBAAmB,UAAU,CAAC,CAAC,GAAG,gBAAgB,UAAU;AAC9G,aAAS,aAAa;AAAA,EAC1B;AACA,WAAS,QAAQ;AACjB,QAAM,OAAO,SAAS,MAAM;AAC5B,MAAI,EAAE,gBAAgB,OAAO;AACzB,UAAM,IAAI,MAAM,8BAA8B;AAAA,EAClD;AACA,QAAM,UAAU,MAAM;AAClB,aAAS,WAAW,QAAQ,CAAC,OAAO,GAAG,CAAC;AACxC,aAAS,YAAY;AAAA,EACzB;AACA,MAAI,KAAK,aAAa,KAAK,wBAAwB;AAC/C,UAAM,aAAa,KAAK;AACxB,QAAI,YAAY;AACZ,kBAAY,YAAY,OAAO;AAAA,IACnC;AAAA,EACJ,OACK;AACD,gBAAY,MAAM,OAAO;AAAA,EAC7B;AACA,SAAO;AACX;AACO,SAAS,MAAM,IAAI,UAAU;AAChC,MAAI,OAAO,aAAa,YAAY;AAChC,UAAM,UAAU,OAAO,MAAM;AACzB,YAAM,SAAS,SAAS;AACxB,UAAI,CAAC;AACD;AACJ,iBAAWC,QAAO,QAAQ;AACtB,cAAM,QAAQ,OAAOA,IAAG;AACxB,cAAM,cAAc,SAAS,KAAK,IAAI,MAAM,QAAQ;AACpD,cAAM,SAASA,KAAI,QAAQ,UAAU,CAAC,MAAM,IAAI,EAAE,YAAY,CAAC,EAAE;AACjE,WAAG,MAAM,YAAY,QAAQ,WAAW;AAAA,MAC5C;AAAA,IACJ,CAAC;AACD,mBAAe,IAAI,OAAO;AAC1B;AAAA,EACJ;AACA,MAAI,CAAC;AACD;AACJ,aAAWA,QAAO,UAAU;AACxB,UAAM,SAASA,KAAI,QAAQ,UAAU,CAAC,MAAM,IAAI,EAAE,YAAY,CAAC,EAAE;AACjE,OAAG,MAAM,YAAY,QAAQ,SAASA,IAAG,CAAC;AAAA,EAC9C;AACJ;AACO,SAAS,OAAO,IAAI,OAAO;AAC9B,MAAI,CAAC;AACD;AACJ,aAAWA,QAAO,OAAO;AACrB,UAAM,QAAQ,MAAMA,IAAG;AACvB,QAAI,WAAW,KAAKA,IAAG,GAAG;AACtB,YAAM,YAAYA,KAAI,MAAM,CAAC,EAAE,YAAY;AAC3C,SAAG,iBAAiB,WAAW,KAAK;AACpC;AAAA,IACJ;AACA,QAAIA,SAAQ,WAAW,OAAO,UAAU,UAAU;AAC9C,YAAM,IAAI,KAAK;AACf;AAAA,IACJ;AACA,UAAM,WAAWA,SAAQ,cAAc,UAAUA;AACjD,OAAG,aAAa,UAAU,KAAK;AAAA,EACnC;AACJ;",
6
6
  "names": ["Reflect", "key", "attributes", "hasOwn", "keys", "_a", "prototype", "metadataRegistry", "metadata", "OrdinaryDefineOwnMetadata", "OrdinaryHasOwnMetadata", "OrdinaryGetOwnMetadata", "OrdinaryOwnMetadataKeys", "defineMetadata", "hasOwnMetadata", "getOwnMetadata", "getOwnMetadataKeys", "deleteMetadata", "MapIterator", "Map", "insert", "Set", "WeakMap", "create", "before", "parse", "CSSStyleDeclaration", "style", "Canvas", "Node", "HandlerParamType", "HttpMethod", "key", "Node", "Node", "deps", "key", "jsx", "key", "esm_exports", "_a", "CharCodes", "BinTrieFlags", "EntityDecoderState", "DecodingMode", "_a", "CharCodes", "State", "QuoteType", "_a", "ElementType", "Node", "Text", "Comment", "_a", "CDATA", "isTag", "Text", "Comment", "CDATA", "previousSibling", "esm_exports", "isTag", "decodeMap", "fromCodePoint", "_a", "replaceCodePoint", "CharCodes", "TO_LOWER_BIT", "BinTrieFlags", "isNumber", "isHexadecimalCharacter", "isAsciiAlphaNumeric", "isEntityInAttributeInvalidEnd", "EntityDecoderState", "DecodingMode", "EntityDecoder", "_a", "replaceCodePoint", "determineBranch", "fromCodePoint", "escape", "EntityLevel", "EncodingMode", "attributes", "_a", "key", "node", "isTag", "_a", "isTag", "isTag", "isTag", "key", "tagName", "DocumentPosition", "href", "_a", "fetch", "tagName", "prop", "handler", "isConnected", "attributes", "key", "Parser", "esm_exports", "append", "self", "attribute", "document", "Parser", "attributes", "create", "append", "name", "attributeChangedCallback", "attributes", "attribute", "attributeChangedCallback", "Node", "self", "node", "escape", "Node", "attributeChangedCallback", "escape", "nextElementSibling", "Node", "nextElementSibling", "Comment", "import_boolbase", "SelectorType", "AttributeAction", "isWhitespace", "subselects", "getName", "ignoreCase", "import_boolbase", "isTraversal", "_a", "adapter", "boolbase", "_a", "parse", "import_boolbase", "boolbase", "parse", "import_boolbase", "adapter", "boolbase", "adapter", "elem", "import_boolbase", "adapter", "boolbase", "compileToken", "isTraversal", "compileToken", "_a", "adapter", "compileToken", "elem", "compile", "adapter", "isTraversal", "_a", "query", "boolbase", "esm_exports", "_a", "compile", "query", "adapter", "boolbase", "is", "isTag", "existsOne", "getChildren", "getAttributeValue", "getName", "getParent", "getSiblings", "getText", "hasAttrib", "removeSubsets", "findAll", "matches", "findOne", "compile", "is", "Text", "previousSibling", "nextSibling", "escape", "Node", "Text", "nextElementSibling", "after", "tagName", "matches", "before", "DocumentFragment", "Node", "document", "esm_default", "esm_default", "self", "attribute", "refs", "style", "key", "handler", "esm_default", "self", "keys", "key", "create", "Element", "nextElementSibling", "Text", "attributes", "attribute", "escape", "parentElement", "matches", "next", "handler", "Element", "Attr", "CDATASection", "CharacterData", "Comment", "DocumentFragment", "DocumentType", "Element", "Node", "ShadowRoot", "Text", "SVGElement", "Element", "key", "tagName", "tagName", "tagName", "tagName", "tagName", "Canvas", "tagName", "tagName", "tagName", "tagName", "tagName", "tagName", "tagName", "tagName", "tagName", "tagName", "tagName", "tagName", "voidElements", "after", "document", "window", "Document", "globalThis", "textContent", "Comment", "DocumentFragment", "Element", "Text", "customElements", "document", "Document", "nextElementSibling", "textContent", "Document", "Document", "document", "parse", "Document", "update", "document", "tagName", "jsx", "key", "key", "Navigate", "__decorate", "key", "__metadata", "_a", "RouterOutlet", "jsx", "__decorate", "key", "HttpClient", "HttpClientModule", "__decorate", "jsx", "key", "register", "injector", "insert", "insert", "value", "key"]
7
7
  }