@mercuryworkshop/scramjet 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +3 -3
- package/README.md +89 -21
- package/dist/scramjet.all.js +196 -0
- package/dist/scramjet.all.js.map +1 -0
- package/dist/scramjet.bundle.js +196 -7
- package/dist/scramjet.bundle.js.map +1 -7
- package/dist/scramjet.sync.js +2 -0
- package/dist/scramjet.sync.js.map +1 -0
- package/dist/scramjet.wasm.wasm +0 -0
- package/dist/types/client/client.d.ts +78 -0
- package/dist/types/client/entry.d.ts +8 -0
- package/dist/types/client/events.d.ts +66 -0
- package/dist/types/client/helpers.d.ts +1 -0
- package/dist/types/client/index.d.ts +8 -0
- package/dist/types/client/location.d.ts +2 -0
- package/dist/types/client/shared/eval.d.ts +3 -0
- package/dist/types/client/shared/sourcemaps.d.ts +19 -0
- package/dist/types/client/shared/wrap.d.ts +4 -0
- package/dist/types/client/singletonbox.d.ts +12 -0
- package/dist/types/client/swruntime.d.ts +40 -0
- package/dist/types/controller/controller.d.ts +16 -0
- package/dist/types/controller/frame.d.ts +103 -0
- package/dist/types/controller/index.d.ts +2 -0
- package/dist/types/entry.d.ts +160 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/shared/cookie.d.ts +18 -0
- package/dist/types/shared/headers.d.ts +4 -0
- package/dist/types/shared/htmlRules.d.ts +6 -0
- package/dist/types/shared/index.d.ts +12 -0
- package/dist/types/shared/rewriters/css.d.ts +3 -0
- package/dist/types/shared/rewriters/headers.d.ts +18 -0
- package/dist/types/shared/rewriters/html.d.ts +6 -0
- package/dist/types/shared/rewriters/index.d.ts +7 -0
- package/dist/types/shared/rewriters/js.d.ts +10 -0
- package/dist/types/shared/rewriters/url.d.ts +10 -0
- package/dist/types/shared/rewriters/wasm.d.ts +7 -0
- package/dist/types/shared/rewriters/worker.d.ts +2 -0
- package/dist/types/shared/security/forceReferrer.d.ts +49 -0
- package/dist/types/shared/security/index.d.ts +2 -0
- package/dist/types/shared/security/siteTests.d.ts +33 -0
- package/dist/types/symbols.d.ts +7 -0
- package/dist/types/types.d.ts +135 -0
- package/dist/types/worker/error.d.ts +2 -0
- package/dist/types/worker/fakesw.d.ts +12 -0
- package/dist/types/worker/fetch.d.ts +26 -0
- package/dist/types/worker/index.d.ts +143 -0
- package/lib/index.cjs +7 -0
- package/lib/index.d.ts +8 -3
- package/lib/noop.js +0 -0
- package/package.json +101 -34
- package/dist/scramjet.client.js +0 -1
- package/dist/scramjet.client.js.map +0 -7
- package/dist/scramjet.codecs.js +0 -3
- package/dist/scramjet.codecs.js.map +0 -7
- package/dist/scramjet.config.js +0 -1
- package/dist/scramjet.config.js.map +0 -7
- package/dist/scramjet.worker.js +0 -42
- package/dist/scramjet.worker.js.map +0 -7
- package/lib/index.js +0 -5
|
@@ -1,7 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../node_modules/.pnpm/meriyah@4.4.2/node_modules/meriyah/dist/meriyah.esm.mjs", "../node_modules/.pnpm/astring@1.8.6/node_modules/astring/dist/astring.mjs", "../node_modules/.pnpm/astravel@0.6.1/node_modules/astravel/src/defaultTraveler.js", "../node_modules/.pnpm/astravel@0.6.1/node_modules/astravel/src/attachComments.js", "../node_modules/.pnpm/astravel@0.6.1/node_modules/astravel/src/astravel.js", "../src/bundle/rewriters/js.ts", "../src/bundle/rewriters/url.ts", "../src/bundle/rewriters/css.ts", "../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/generated/decode-data-html.ts", "../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/generated/decode-data-xml.ts", "../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode_codepoint.ts", "../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode.ts", "../node_modules/.pnpm/htmlparser2@9.1.0/node_modules/htmlparser2/lib/esm/Tokenizer.ts", "../node_modules/.pnpm/htmlparser2@9.1.0/node_modules/htmlparser2/lib/esm/Parser.ts", "../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/esm/index.js", "../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/esm/node.js", "../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/esm/index.js", "../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/generated/encode-html.ts", "../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/escape.ts", "../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/index.ts", "../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/esm/foreignNames.js", "../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/esm/index.js", "../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/esm/traversal.ts", "../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/esm/helpers.ts", "../src/bundle/rewriters/html.ts", "../src/bundle/rewriters/headers.ts", "../src/bundle/index.ts"],
|
|
4
|
-
"sourcesContent": ["const errorMessages = {\r\n [0]: 'Unexpected token',\r\n [28]: \"Unexpected token: '%0'\",\r\n [1]: 'Octal escape sequences are not allowed in strict mode',\r\n [2]: 'Octal escape sequences are not allowed in template strings',\r\n [3]: 'Unexpected token `#`',\r\n [4]: 'Illegal Unicode escape sequence',\r\n [5]: 'Invalid code point %0',\r\n [6]: 'Invalid hexadecimal escape sequence',\r\n [8]: 'Octal literals are not allowed in strict mode',\r\n [7]: 'Decimal integer literals with a leading zero are forbidden in strict mode',\r\n [9]: 'Expected number in radix %0',\r\n [146]: 'Invalid left-hand side assignment to a destructible right-hand side',\r\n [10]: 'Non-number found after exponent indicator',\r\n [11]: 'Invalid BigIntLiteral',\r\n [12]: 'No identifiers allowed directly after numeric literal',\r\n [13]: 'Escapes \\\\8 or \\\\9 are not syntactically valid escapes',\r\n [14]: 'Unterminated string literal',\r\n [15]: 'Unterminated template literal',\r\n [16]: 'Multiline comment was not closed properly',\r\n [17]: 'The identifier contained dynamic unicode escape that was not closed',\r\n [18]: \"Illegal character '%0'\",\r\n [19]: 'Missing hexadecimal digits',\r\n [20]: 'Invalid implicit octal',\r\n [21]: 'Invalid line break in string literal',\r\n [22]: 'Only unicode escapes are legal in identifier names',\r\n [23]: \"Expected '%0'\",\r\n [24]: 'Invalid left-hand side in assignment',\r\n [25]: 'Invalid left-hand side in async arrow',\r\n [26]: 'Calls to super must be in the \"constructor\" method of a class expression or class declaration that has a superclass',\r\n [27]: 'Member access on super must be in a method',\r\n [29]: 'Await expression not allowed in formal parameter',\r\n [30]: 'Yield expression not allowed in formal parameter',\r\n [93]: \"Unexpected token: 'escaped keyword'\",\r\n [31]: 'Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses',\r\n [120]: 'Async functions can only be declared at the top level or inside a block',\r\n [32]: 'Unterminated regular expression',\r\n [33]: 'Unexpected regular expression flag',\r\n [34]: \"Duplicate regular expression flag '%0'\",\r\n [35]: '%0 functions must have exactly %1 argument%2',\r\n [36]: 'Setter function argument must not be a rest parameter',\r\n [37]: '%0 declaration must have a name in this context',\r\n [38]: 'Function name may not contain any reserved words or be eval or arguments in strict mode',\r\n [39]: 'The rest operator is missing an argument',\r\n [40]: 'A getter cannot be a generator',\r\n [41]: 'A setter cannot be a generator',\r\n [42]: 'A computed property name must be followed by a colon or paren',\r\n [131]: 'Object literal keys that are strings or numbers must be a method or have a colon',\r\n [44]: 'Found `* async x(){}` but this should be `async * x(){}`',\r\n [43]: 'Getters and setters can not be generators',\r\n [45]: \"'%0' can not be generator method\",\r\n [46]: \"No line break is allowed after '=>'\",\r\n [47]: 'The left-hand side of the arrow can only be destructed through assignment',\r\n [48]: 'The binding declaration is not destructible',\r\n [49]: 'Async arrow can not be followed by new expression',\r\n [50]: \"Classes may not have a static property named 'prototype'\",\r\n [51]: 'Class constructor may not be a %0',\r\n [52]: 'Duplicate constructor method in class',\r\n [53]: 'Invalid increment/decrement operand',\r\n [54]: 'Invalid use of `new` keyword on an increment/decrement expression',\r\n [55]: '`=>` is an invalid assignment target',\r\n [56]: 'Rest element may not have a trailing comma',\r\n [57]: 'Missing initializer in %0 declaration',\r\n [58]: \"'for-%0' loop head declarations can not have an initializer\",\r\n [59]: 'Invalid left-hand side in for-%0 loop: Must have a single binding',\r\n [60]: 'Invalid shorthand property initializer',\r\n [61]: 'Property name __proto__ appears more than once in object literal',\r\n [62]: 'Let is disallowed as a lexically bound name',\r\n [63]: \"Invalid use of '%0' inside new expression\",\r\n [64]: \"Illegal 'use strict' directive in function with non-simple parameter list\",\r\n [65]: 'Identifier \"let\" disallowed as left-hand side expression in strict mode',\r\n [66]: 'Illegal continue statement',\r\n [67]: 'Illegal break statement',\r\n [68]: 'Cannot have `let[...]` as a var name in strict mode',\r\n [69]: 'Invalid destructuring assignment target',\r\n [70]: 'Rest parameter may not have a default initializer',\r\n [71]: 'The rest argument must the be last parameter',\r\n [72]: 'Invalid rest argument',\r\n [74]: 'In strict mode code, functions can only be declared at top level or inside a block',\r\n [75]: 'In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement',\r\n [76]: 'Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement',\r\n [77]: \"Class declaration can't appear in single-statement context\",\r\n [78]: 'Invalid left-hand side in for-%0',\r\n [79]: 'Invalid assignment in for-%0',\r\n [80]: 'for await (... of ...) is only valid in async functions and async generators',\r\n [81]: 'The first token after the template expression should be a continuation of the template',\r\n [83]: '`let` declaration not allowed here and `let` cannot be a regular var name in strict mode',\r\n [82]: '`let \\n [` is a restricted production at the start of a statement',\r\n [84]: 'Catch clause requires exactly one parameter, not more (and no trailing comma)',\r\n [85]: 'Catch clause parameter does not support default values',\r\n [86]: 'Missing catch or finally after try',\r\n [87]: 'More than one default clause in switch statement',\r\n [88]: 'Illegal newline after throw',\r\n [89]: 'Strict mode code may not include a with statement',\r\n [90]: 'Illegal return statement',\r\n [91]: 'The left hand side of the for-header binding declaration is not destructible',\r\n [92]: 'new.target only allowed within functions',\r\n [94]: \"'#' not followed by identifier\",\r\n [100]: 'Invalid keyword',\r\n [99]: \"Can not use 'let' as a class name\",\r\n [98]: \"'A lexical declaration can't define a 'let' binding\",\r\n [97]: 'Can not use `let` as variable name in strict mode',\r\n [95]: \"'%0' may not be used as an identifier in this context\",\r\n [96]: 'Await is only valid in async functions',\r\n [101]: 'The %0 keyword can only be used with the module goal',\r\n [102]: 'Unicode codepoint must not be greater than 0x10FFFF',\r\n [103]: '%0 source must be string',\r\n [104]: 'Only a identifier can be used to indicate alias',\r\n [105]: \"Only '*' or '{...}' can be imported after default\",\r\n [106]: 'Trailing decorator may be followed by method',\r\n [107]: \"Decorators can't be used with a constructor\",\r\n [109]: 'HTML comments are only allowed with web compatibility (Annex B)',\r\n [110]: \"The identifier 'let' must not be in expression position in strict mode\",\r\n [111]: 'Cannot assign to `eval` and `arguments` in strict mode',\r\n [112]: \"The left-hand side of a for-of loop may not start with 'let'\",\r\n [113]: 'Block body arrows can not be immediately invoked without a group',\r\n [114]: 'Block body arrows can not be immediately accessed without a group',\r\n [115]: 'Unexpected strict mode reserved word',\r\n [116]: 'Unexpected eval or arguments in strict mode',\r\n [117]: 'Decorators must not be followed by a semicolon',\r\n [118]: 'Calling delete on expression not allowed in strict mode',\r\n [119]: 'Pattern can not have a tail',\r\n [121]: 'Can not have a `yield` expression on the left side of a ternary',\r\n [122]: 'An arrow function can not have a postfix update operator',\r\n [123]: 'Invalid object literal key character after generator star',\r\n [124]: 'Private fields can not be deleted',\r\n [126]: 'Classes may not have a field called constructor',\r\n [125]: 'Classes may not have a private element named constructor',\r\n [127]: 'A class field initializer may not contain arguments',\r\n [128]: 'Generators can only be declared at the top level or inside a block',\r\n [129]: 'Async methods are a restricted production and cannot have a newline following it',\r\n [130]: 'Unexpected character after object literal property name',\r\n [132]: 'Invalid key token',\r\n [133]: \"Label '%0' has already been declared\",\r\n [134]: 'continue statement must be nested within an iteration statement',\r\n [135]: \"Undefined label '%0'\",\r\n [136]: 'Trailing comma is disallowed inside import(...) arguments',\r\n [137]: 'import() requires exactly one argument',\r\n [138]: 'Cannot use new with import(...)',\r\n [139]: '... is not allowed in import()',\r\n [140]: \"Expected '=>'\",\r\n [141]: \"Duplicate binding '%0'\",\r\n [142]: \"Cannot export a duplicate name '%0'\",\r\n [145]: 'Duplicate %0 for-binding',\r\n [143]: \"Exported binding '%0' needs to refer to a top-level declared variable\",\r\n [144]: 'Unexpected private field',\r\n [148]: 'Numeric separators are not allowed at the end of numeric literals',\r\n [147]: 'Only one underscore is allowed as numeric separator',\r\n [149]: 'JSX value should be either an expression or a quoted JSX text',\r\n [150]: 'Expected corresponding JSX closing tag for %0',\r\n [151]: 'Adjacent JSX elements must be wrapped in an enclosing tag',\r\n [152]: \"JSX attributes must only be assigned a non-empty 'expression'\",\r\n [153]: \"'%0' has already been declared\",\r\n [154]: \"'%0' shadowed a catch clause binding\",\r\n [155]: 'Dot property must be an identifier',\r\n [156]: 'Encountered invalid input after spread/rest argument',\r\n [157]: 'Catch without try',\r\n [158]: 'Finally without try',\r\n [159]: 'Expected corresponding closing tag for JSX fragment',\r\n [160]: 'Coalescing and logical operators used together in the same expression must be disambiguated with parentheses',\r\n [161]: 'Invalid tagged template on optional chain',\r\n [162]: 'Invalid optional chain from super property',\r\n [163]: 'Invalid optional chain from new expression',\r\n [164]: 'Cannot use \"import.meta\" outside a module',\r\n [165]: 'Leading decorators must be attached to a class declaration'\r\n};\r\nclass ParseError extends SyntaxError {\r\n constructor(startindex, line, column, type, ...params) {\r\n const message = '[' + line + ':' + column + ']: ' + errorMessages[type].replace(/%(\\d+)/g, (_, i) => params[i]);\r\n super(`${message}`);\r\n this.index = startindex;\r\n this.line = line;\r\n this.column = column;\r\n this.description = message;\r\n this.loc = {\r\n line,\r\n column\r\n };\r\n }\r\n}\r\nfunction report(parser, type, ...params) {\r\n throw new ParseError(parser.index, parser.line, parser.column, type, ...params);\r\n}\r\nfunction reportScopeError(scope) {\r\n throw new ParseError(scope.index, scope.line, scope.column, scope.type, scope.params);\r\n}\r\nfunction reportMessageAt(index, line, column, type, ...params) {\r\n throw new ParseError(index, line, column, type, ...params);\r\n}\r\nfunction reportScannerError(index, line, column, type) {\r\n throw new ParseError(index, line, column, type);\r\n}\n\nconst unicodeLookup = ((compressed, lookup) => {\r\n const result = new Uint32Array(104448);\r\n let index = 0;\r\n let subIndex = 0;\r\n while (index < 3540) {\r\n const inst = compressed[index++];\r\n if (inst < 0) {\r\n subIndex -= inst;\r\n }\r\n else {\r\n let code = compressed[index++];\r\n if (inst & 2)\r\n code = lookup[code];\r\n if (inst & 1) {\r\n result.fill(code, subIndex, subIndex += compressed[index++]);\r\n }\r\n else {\r\n result[subIndex++] = code;\r\n }\r\n }\r\n }\r\n return result;\r\n})([-1, 2, 24, 2, 25, 2, 5, -1, 0, 77595648, 3, 44, 2, 3, 0, 14, 2, 57, 2, 58, 3, 0, 3, 0, 3168796671, 0, 4294956992, 2, 1, 2, 0, 2, 59, 3, 0, 4, 0, 4294966523, 3, 0, 4, 2, 16, 2, 60, 2, 0, 0, 4294836735, 0, 3221225471, 0, 4294901942, 2, 61, 0, 134152192, 3, 0, 2, 0, 4294951935, 3, 0, 2, 0, 2683305983, 0, 2684354047, 2, 17, 2, 0, 0, 4294961151, 3, 0, 2, 2, 19, 2, 0, 0, 608174079, 2, 0, 2, 131, 2, 6, 2, 56, -1, 2, 37, 0, 4294443263, 2, 1, 3, 0, 3, 0, 4294901711, 2, 39, 0, 4089839103, 0, 2961209759, 0, 1342439375, 0, 4294543342, 0, 3547201023, 0, 1577204103, 0, 4194240, 0, 4294688750, 2, 2, 0, 80831, 0, 4261478351, 0, 4294549486, 2, 2, 0, 2967484831, 0, 196559, 0, 3594373100, 0, 3288319768, 0, 8469959, 2, 194, 2, 3, 0, 3825204735, 0, 123747807, 0, 65487, 0, 4294828015, 0, 4092591615, 0, 1080049119, 0, 458703, 2, 3, 2, 0, 0, 2163244511, 0, 4227923919, 0, 4236247022, 2, 66, 0, 4284449919, 0, 851904, 2, 4, 2, 11, 0, 67076095, -1, 2, 67, 0, 1073741743, 0, 4093591391, -1, 0, 50331649, 0, 3265266687, 2, 32, 0, 4294844415, 0, 4278190047, 2, 18, 2, 129, -1, 3, 0, 2, 2, 21, 2, 0, 2, 9, 2, 0, 2, 14, 2, 15, 3, 0, 10, 2, 69, 2, 0, 2, 70, 2, 71, 2, 72, 2, 0, 2, 73, 2, 0, 2, 10, 0, 261632, 2, 23, 3, 0, 2, 2, 12, 2, 4, 3, 0, 18, 2, 74, 2, 5, 3, 0, 2, 2, 75, 0, 2088959, 2, 27, 2, 8, 0, 909311, 3, 0, 2, 0, 814743551, 2, 41, 0, 67057664, 3, 0, 2, 2, 40, 2, 0, 2, 28, 2, 0, 2, 29, 2, 7, 0, 268374015, 2, 26, 2, 49, 2, 0, 2, 76, 0, 134153215, -1, 2, 6, 2, 0, 2, 7, 0, 2684354559, 0, 67044351, 0, 3221160064, 0, 1, -1, 3, 0, 2, 2, 42, 0, 1046528, 3, 0, 3, 2, 8, 2, 0, 2, 51, 0, 4294960127, 2, 9, 2, 38, 2, 10, 0, 4294377472, 2, 11, 3, 0, 7, 0, 4227858431, 3, 0, 8, 2, 12, 2, 0, 2, 78, 2, 9, 2, 0, 2, 79, 2, 80, 2, 81, -1, 2, 124, 0, 1048577, 2, 82, 2, 13, -1, 2, 13, 0, 131042, 2, 83, 2, 84, 2, 85, 2, 0, 2, 33, -83, 2, 0, 2, 53, 2, 7, 3, 0, 4, 0, 1046559, 2, 0, 2, 14, 2, 0, 0, 2147516671, 2, 20, 3, 86, 2, 2, 0, -16, 2, 87, 0, 524222462, 2, 4, 2, 0, 0, 4269801471, 2, 4, 2, 0, 2, 15, 2, 77, 2, 16, 3, 0, 2, 2, 47, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 655, 2, 18, 3, 0, 36, 2, 68, -1, 2, 17, 2, 9, 3, 0, 8, 2, 89, 2, 121, 2, 0, 0, 3220242431, 3, 0, 3, 2, 19, 2, 90, 2, 91, 3, 0, 2, 2, 92, 2, 0, 2, 93, 2, 94, 2, 0, 0, 4351, 2, 0, 2, 8, 3, 0, 2, 0, 67043391, 0, 3909091327, 2, 0, 2, 22, 2, 8, 2, 18, 3, 0, 2, 0, 67076097, 2, 7, 2, 0, 2, 20, 0, 67059711, 0, 4236247039, 3, 0, 2, 0, 939524103, 0, 8191999, 2, 97, 2, 98, 2, 15, 2, 21, 3, 0, 3, 0, 67057663, 3, 0, 349, 2, 99, 2, 100, 2, 6, -264, 3, 0, 11, 2, 22, 3, 0, 2, 2, 31, -1, 0, 3774349439, 2, 101, 2, 102, 3, 0, 2, 2, 19, 2, 103, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 45, 2, 0, 2, 30, 2, 104, 2, 23, 0, 1638399, 2, 172, 2, 105, 3, 0, 3, 2, 18, 2, 24, 2, 25, 2, 5, 2, 26, 2, 0, 2, 7, 2, 106, -1, 2, 107, 2, 108, 2, 109, -1, 3, 0, 3, 2, 11, -2, 2, 0, 2, 27, -3, 2, 150, -4, 2, 18, 2, 0, 2, 35, 0, 1, 2, 0, 2, 62, 2, 28, 2, 11, 2, 9, 2, 0, 2, 110, -1, 3, 0, 4, 2, 9, 2, 21, 2, 111, 2, 6, 2, 0, 2, 112, 2, 0, 2, 48, -4, 3, 0, 9, 2, 20, 2, 29, 2, 30, -4, 2, 113, 2, 114, 2, 29, 2, 20, 2, 7, -2, 2, 115, 2, 29, 2, 31, -2, 2, 0, 2, 116, -2, 0, 4277137519, 0, 2269118463, -1, 3, 18, 2, -1, 2, 32, 2, 36, 2, 0, 3, 29, 2, 2, 34, 2, 19, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 46, -10, 2, 0, 0, 203775, -2, 2, 18, 2, 43, 2, 35, -2, 2, 17, 2, 117, 2, 20, 3, 0, 2, 2, 36, 0, 2147549120, 2, 0, 2, 11, 2, 17, 2, 135, 2, 0, 2, 37, 2, 52, 0, 5242879, 3, 0, 2, 0, 402644511, -1, 2, 120, 0, 1090519039, -2, 2, 122, 2, 38, 2, 0, 0, 67045375, 2, 39, 0, 4226678271, 0, 3766565279, 0, 2039759, -4, 3, 0, 2, 0, 3288270847, 0, 3, 3, 0, 2, 0, 67043519, -5, 2, 0, 0, 4282384383, 0, 1056964609, -1, 3, 0, 2, 0, 67043345, -1, 2, 0, 2, 40, 2, 41, -1, 2, 10, 2, 42, -6, 2, 0, 2, 11, -3, 3, 0, 2, 0, 2147484671, 2, 125, 0, 4190109695, 2, 50, -2, 2, 126, 0, 4244635647, 0, 27, 2, 0, 2, 7, 2, 43, 2, 0, 2, 63, -1, 2, 0, 2, 40, -8, 2, 54, 2, 44, 0, 67043329, 2, 127, 2, 45, 0, 8388351, -2, 2, 128, 0, 3028287487, 2, 46, 2, 130, 0, 33259519, 2, 41, -9, 2, 20, -5, 2, 64, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 47, 3, 0, 6, 2, 48, -85, 3, 0, 33, 2, 47, -126, 3, 0, 18, 2, 36, -269, 3, 0, 17, 2, 40, 2, 7, 2, 41, -2, 2, 17, 2, 49, 2, 0, 2, 20, 2, 50, 2, 132, 2, 23, -21, 3, 0, 2, -4, 3, 0, 2, 0, 4294936575, 2, 0, 0, 4294934783, -2, 0, 196635, 3, 0, 191, 2, 51, 3, 0, 38, 2, 29, -1, 2, 33, -279, 3, 0, 8, 2, 7, -1, 2, 133, 2, 52, 3, 0, 11, 2, 6, -72, 3, 0, 3, 2, 134, 0, 1677656575, -166, 0, 4161266656, 0, 4071, 0, 15360, -4, 0, 28, -13, 3, 0, 2, 2, 37, 2, 0, 2, 136, 2, 137, 2, 55, 2, 0, 2, 138, 2, 139, 2, 140, 3, 0, 10, 2, 141, 2, 142, 2, 15, 3, 37, 2, 3, 53, 2, 3, 54, 2, 0, 4294954999, 2, 0, -16, 2, 0, 2, 88, 2, 0, 0, 2105343, 0, 4160749584, 0, 65534, -42, 0, 4194303871, 0, 2011, -6, 2, 0, 0, 1073684479, 0, 17407, -11, 2, 0, 2, 31, -40, 3, 0, 6, 0, 8323103, -1, 3, 0, 2, 2, 42, -37, 2, 55, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, -105, 2, 24, -32, 3, 0, 1334, 2, 9, -1, 3, 0, 129, 2, 27, 3, 0, 6, 2, 9, 3, 0, 180, 2, 149, 3, 0, 233, 0, 1, -96, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 56, -22381, 3, 0, 7, 2, 23, -6130, 3, 5, 2, -1, 0, 69207040, 3, 44, 2, 3, 0, 14, 2, 57, 2, 58, -3, 0, 3168731136, 0, 4294956864, 2, 1, 2, 0, 2, 59, 3, 0, 4, 0, 4294966275, 3, 0, 4, 2, 16, 2, 60, 2, 0, 2, 33, -1, 2, 17, 2, 61, -1, 2, 0, 2, 56, 0, 4294885376, 3, 0, 2, 0, 3145727, 0, 2617294944, 0, 4294770688, 2, 23, 2, 62, 3, 0, 2, 0, 131135, 2, 95, 0, 70256639, 0, 71303167, 0, 272, 2, 40, 2, 56, -1, 2, 37, 2, 30, -1, 2, 96, 2, 63, 0, 4278255616, 0, 4294836227, 0, 4294549473, 0, 600178175, 0, 2952806400, 0, 268632067, 0, 4294543328, 0, 57540095, 0, 1577058304, 0, 1835008, 0, 4294688736, 2, 65, 2, 64, 0, 33554435, 2, 123, 2, 65, 2, 151, 0, 131075, 0, 3594373096, 0, 67094296, 2, 64, -1, 0, 4294828000, 0, 603979263, 2, 160, 0, 3, 0, 4294828001, 0, 602930687, 2, 183, 0, 393219, 0, 4294828016, 0, 671088639, 0, 2154840064, 0, 4227858435, 0, 4236247008, 2, 66, 2, 36, -1, 2, 4, 0, 917503, 2, 36, -1, 2, 67, 0, 537788335, 0, 4026531935, -1, 0, 1, -1, 2, 32, 2, 68, 0, 7936, -3, 2, 0, 0, 2147485695, 0, 1010761728, 0, 4292984930, 0, 16387, 2, 0, 2, 14, 2, 15, 3, 0, 10, 2, 69, 2, 0, 2, 70, 2, 71, 2, 72, 2, 0, 2, 73, 2, 0, 2, 11, -1, 2, 23, 3, 0, 2, 2, 12, 2, 4, 3, 0, 18, 2, 74, 2, 5, 3, 0, 2, 2, 75, 0, 253951, 3, 19, 2, 0, 122879, 2, 0, 2, 8, 0, 276824064, -2, 3, 0, 2, 2, 40, 2, 0, 0, 4294903295, 2, 0, 2, 29, 2, 7, -1, 2, 17, 2, 49, 2, 0, 2, 76, 2, 41, -1, 2, 20, 2, 0, 2, 27, -2, 0, 128, -2, 2, 77, 2, 8, 0, 4064, -1, 2, 119, 0, 4227907585, 2, 0, 2, 118, 2, 0, 2, 48, 2, 173, 2, 9, 2, 38, 2, 10, -1, 0, 74440192, 3, 0, 6, -2, 3, 0, 8, 2, 12, 2, 0, 2, 78, 2, 9, 2, 0, 2, 79, 2, 80, 2, 81, -3, 2, 82, 2, 13, -3, 2, 83, 2, 84, 2, 85, 2, 0, 2, 33, -83, 2, 0, 2, 53, 2, 7, 3, 0, 4, 0, 817183, 2, 0, 2, 14, 2, 0, 0, 33023, 2, 20, 3, 86, 2, -17, 2, 87, 0, 524157950, 2, 4, 2, 0, 2, 88, 2, 4, 2, 0, 2, 15, 2, 77, 2, 16, 3, 0, 2, 2, 47, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 655, 2, 18, 3, 0, 36, 2, 68, -1, 2, 17, 2, 9, 3, 0, 8, 2, 89, 0, 3072, 2, 0, 0, 2147516415, 2, 9, 3, 0, 2, 2, 23, 2, 90, 2, 91, 3, 0, 2, 2, 92, 2, 0, 2, 93, 2, 94, 0, 4294965179, 0, 7, 2, 0, 2, 8, 2, 91, 2, 8, -1, 0, 1761345536, 2, 95, 0, 4294901823, 2, 36, 2, 18, 2, 96, 2, 34, 2, 166, 0, 2080440287, 2, 0, 2, 33, 2, 143, 0, 3296722943, 2, 0, 0, 1046675455, 0, 939524101, 0, 1837055, 2, 97, 2, 98, 2, 15, 2, 21, 3, 0, 3, 0, 7, 3, 0, 349, 2, 99, 2, 100, 2, 6, -264, 3, 0, 11, 2, 22, 3, 0, 2, 2, 31, -1, 0, 2700607615, 2, 101, 2, 102, 3, 0, 2, 2, 19, 2, 103, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 45, 2, 0, 2, 30, 2, 104, -3, 2, 105, 3, 0, 3, 2, 18, -1, 3, 5, 2, 2, 26, 2, 0, 2, 7, 2, 106, -1, 2, 107, 2, 108, 2, 109, -1, 3, 0, 3, 2, 11, -2, 2, 0, 2, 27, -8, 2, 18, 2, 0, 2, 35, -1, 2, 0, 2, 62, 2, 28, 2, 29, 2, 9, 2, 0, 2, 110, -1, 3, 0, 4, 2, 9, 2, 17, 2, 111, 2, 6, 2, 0, 2, 112, 2, 0, 2, 48, -4, 3, 0, 9, 2, 20, 2, 29, 2, 30, -4, 2, 113, 2, 114, 2, 29, 2, 20, 2, 7, -2, 2, 115, 2, 29, 2, 31, -2, 2, 0, 2, 116, -2, 0, 4277075969, 2, 29, -1, 3, 18, 2, -1, 2, 32, 2, 117, 2, 0, 3, 29, 2, 2, 34, 2, 19, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 48, -10, 2, 0, 0, 197631, -2, 2, 18, 2, 43, 2, 118, -2, 2, 17, 2, 117, 2, 20, 2, 119, 2, 51, -2, 2, 119, 2, 23, 2, 17, 2, 33, 2, 119, 2, 36, 0, 4294901904, 0, 4718591, 2, 119, 2, 34, 0, 335544350, -1, 2, 120, 2, 121, -2, 2, 122, 2, 38, 2, 7, -1, 2, 123, 2, 65, 0, 3758161920, 0, 3, -4, 2, 0, 2, 27, 0, 2147485568, 0, 3, 2, 0, 2, 23, 0, 176, -5, 2, 0, 2, 47, 2, 186, -1, 2, 0, 2, 23, 2, 197, -1, 2, 0, 0, 16779263, -2, 2, 11, -7, 2, 0, 2, 121, -3, 3, 0, 2, 2, 124, 2, 125, 0, 2147549183, 0, 2, -2, 2, 126, 2, 35, 0, 10, 0, 4294965249, 0, 67633151, 0, 4026597376, 2, 0, 0, 536871935, -1, 2, 0, 2, 40, -8, 2, 54, 2, 47, 0, 1, 2, 127, 2, 23, -3, 2, 128, 2, 35, 2, 129, 2, 130, 0, 16778239, -10, 2, 34, -5, 2, 64, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 47, 3, 0, 6, 2, 48, -85, 3, 0, 33, 2, 47, -126, 3, 0, 18, 2, 36, -269, 3, 0, 17, 2, 40, 2, 7, -3, 2, 17, 2, 131, 2, 0, 2, 23, 2, 48, 2, 132, 2, 23, -21, 3, 0, 2, -4, 3, 0, 2, 0, 67583, -1, 2, 103, -2, 0, 11, 3, 0, 191, 2, 51, 3, 0, 38, 2, 29, -1, 2, 33, -279, 3, 0, 8, 2, 7, -1, 2, 133, 2, 52, 3, 0, 11, 2, 6, -72, 3, 0, 3, 2, 134, 2, 135, -187, 3, 0, 2, 2, 37, 2, 0, 2, 136, 2, 137, 2, 55, 2, 0, 2, 138, 2, 139, 2, 140, 3, 0, 10, 2, 141, 2, 142, 2, 15, 3, 37, 2, 3, 53, 2, 3, 54, 2, 2, 143, -73, 2, 0, 0, 1065361407, 0, 16384, -11, 2, 0, 2, 121, -40, 3, 0, 6, 2, 117, -1, 3, 0, 2, 0, 2063, -37, 2, 55, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, -138, 3, 0, 1334, 2, 9, -1, 3, 0, 129, 2, 27, 3, 0, 6, 2, 9, 3, 0, 180, 2, 149, 3, 0, 233, 0, 1, -96, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 56, -28517, 2, 0, 0, 1, -1, 2, 124, 2, 0, 0, 8193, -21, 2, 193, 0, 10255, 0, 4, -11, 2, 64, 2, 171, -1, 0, 71680, -1, 2, 161, 0, 4292900864, 0, 805306431, -5, 2, 150, -1, 2, 157, -1, 0, 6144, -2, 2, 127, -1, 2, 154, -1, 0, 2147532800, 2, 151, 2, 165, 2, 0, 2, 164, 0, 524032, 0, 4, -4, 2, 190, 0, 205128192, 0, 1333757536, 0, 2147483696, 0, 423953, 0, 747766272, 0, 2717763192, 0, 4286578751, 0, 278545, 2, 152, 0, 4294886464, 0, 33292336, 0, 417809, 2, 152, 0, 1327482464, 0, 4278190128, 0, 700594195, 0, 1006647527, 0, 4286497336, 0, 4160749631, 2, 153, 0, 469762560, 0, 4171219488, 0, 8323120, 2, 153, 0, 202375680, 0, 3214918176, 0, 4294508592, 2, 153, -1, 0, 983584, 0, 48, 0, 58720273, 0, 3489923072, 0, 10517376, 0, 4293066815, 0, 1, 0, 2013265920, 2, 177, 2, 0, 0, 2089, 0, 3221225552, 0, 201375904, 2, 0, -2, 0, 256, 0, 122880, 0, 16777216, 2, 150, 0, 4160757760, 2, 0, -6, 2, 167, -11, 0, 3263218176, -1, 0, 49664, 0, 2160197632, 0, 8388802, -1, 0, 12713984, -1, 2, 154, 2, 159, 2, 178, -2, 2, 162, -20, 0, 3758096385, -2, 2, 155, 0, 4292878336, 2, 90, 2, 169, 0, 4294057984, -2, 2, 163, 2, 156, 2, 175, -2, 2, 155, -1, 2, 182, -1, 2, 170, 2, 124, 0, 4026593280, 0, 14, 0, 4292919296, -1, 2, 158, 0, 939588608, -1, 0, 805306368, -1, 2, 124, 0, 1610612736, 2, 156, 2, 157, 2, 4, 2, 0, -2, 2, 158, 2, 159, -3, 0, 267386880, -1, 2, 160, 0, 7168, -1, 0, 65024, 2, 154, 2, 161, 2, 179, -7, 2, 168, -8, 2, 162, -1, 0, 1426112704, 2, 163, -1, 2, 164, 0, 271581216, 0, 2149777408, 2, 23, 2, 161, 2, 124, 0, 851967, 2, 180, -1, 2, 23, 2, 181, -4, 2, 158, -20, 2, 195, 2, 165, -56, 0, 3145728, 2, 185, -4, 2, 166, 2, 124, -4, 0, 32505856, -1, 2, 167, -1, 0, 2147385088, 2, 90, 1, 2155905152, 2, -3, 2, 103, 2, 0, 2, 168, -2, 2, 169, -6, 2, 170, 0, 4026597375, 0, 1, -1, 0, 1, -1, 2, 171, -3, 2, 117, 2, 64, -2, 2, 166, -2, 2, 176, 2, 124, -878, 2, 159, -36, 2, 172, -1, 2, 201, -10, 2, 188, -5, 2, 174, -6, 0, 4294965251, 2, 27, -1, 2, 173, -1, 2, 174, -2, 0, 4227874752, -3, 0, 2146435072, 2, 159, -2, 0, 1006649344, 2, 124, -1, 2, 90, 0, 201375744, -3, 0, 134217720, 2, 90, 0, 4286677377, 0, 32896, -1, 2, 158, -3, 2, 175, -349, 2, 176, 0, 1920, 2, 177, 3, 0, 264, -11, 2, 157, -2, 2, 178, 2, 0, 0, 520617856, 0, 2692743168, 0, 36, -3, 0, 524284, -11, 2, 23, -1, 2, 187, -1, 2, 184, 0, 3221291007, 2, 178, -1, 2, 202, 0, 2158720, -3, 2, 159, 0, 1, -4, 2, 124, 0, 3808625411, 0, 3489628288, 2, 200, 0, 1207959680, 0, 3221274624, 2, 0, -3, 2, 179, 0, 120, 0, 7340032, -2, 2, 180, 2, 4, 2, 23, 2, 163, 3, 0, 4, 2, 159, -1, 2, 181, 2, 177, -1, 0, 8176, 2, 182, 2, 179, 2, 183, -1, 0, 4290773232, 2, 0, -4, 2, 163, 2, 189, 0, 15728640, 2, 177, -1, 2, 161, -1, 0, 4294934512, 3, 0, 4, -9, 2, 90, 2, 170, 2, 184, 3, 0, 4, 0, 704, 0, 1849688064, 2, 185, -1, 2, 124, 0, 4294901887, 2, 0, 0, 130547712, 0, 1879048192, 2, 199, 3, 0, 2, -1, 2, 186, 2, 187, -1, 0, 17829776, 0, 2025848832, 0, 4261477888, -2, 2, 0, -1, 0, 4286580608, -1, 0, 29360128, 2, 192, 0, 16252928, 0, 3791388672, 2, 38, 3, 0, 2, -2, 2, 196, 2, 0, -1, 2, 103, -1, 0, 66584576, -1, 2, 191, 3, 0, 9, 2, 124, -1, 0, 4294755328, 3, 0, 2, -1, 2, 161, 2, 178, 3, 0, 2, 2, 23, 2, 188, 2, 90, -2, 0, 245760, 0, 2147418112, -1, 2, 150, 2, 203, 0, 4227923456, -1, 2, 164, 2, 161, 2, 90, -3, 0, 4292870145, 0, 262144, 2, 124, 3, 0, 2, 0, 1073758848, 2, 189, -1, 0, 4227921920, 2, 190, 0, 68289024, 0, 528402016, 0, 4292927536, 3, 0, 4, -2, 0, 268435456, 2, 91, -2, 2, 191, 3, 0, 5, -1, 2, 192, 2, 163, 2, 0, -2, 0, 4227923936, 2, 62, -1, 2, 155, 2, 95, 2, 0, 2, 154, 2, 158, 3, 0, 6, -1, 2, 177, 3, 0, 3, -2, 0, 2146959360, 0, 9440640, 0, 104857600, 0, 4227923840, 3, 0, 2, 0, 768, 2, 193, 2, 77, -2, 2, 161, -2, 2, 119, -1, 2, 155, 3, 0, 8, 0, 512, 0, 8388608, 2, 194, 2, 172, 2, 187, 0, 4286578944, 3, 0, 2, 0, 1152, 0, 1266679808, 2, 191, 0, 576, 0, 4261707776, 2, 95, 3, 0, 9, 2, 155, 3, 0, 5, 2, 16, -1, 0, 2147221504, -28, 2, 178, 3, 0, 3, -3, 0, 4292902912, -6, 2, 96, 3, 0, 85, -33, 0, 4294934528, 3, 0, 126, -18, 2, 195, 3, 0, 269, -17, 2, 155, 2, 124, 2, 198, 3, 0, 2, 2, 23, 0, 4290822144, -2, 0, 67174336, 0, 520093700, 2, 17, 3, 0, 21, -2, 2, 179, 3, 0, 3, -2, 0, 30720, -1, 0, 32512, 3, 0, 2, 0, 4294770656, -191, 2, 174, -38, 2, 170, 2, 0, 2, 196, 3, 0, 279, -8, 2, 124, 2, 0, 0, 4294508543, 0, 65295, -11, 2, 177, 3, 0, 72, -3, 0, 3758159872, 0, 201391616, 3, 0, 155, -7, 2, 170, -1, 0, 384, -1, 0, 133693440, -3, 2, 196, -2, 2, 26, 3, 0, 4, 2, 169, -2, 2, 90, 2, 155, 3, 0, 4, -2, 2, 164, -1, 2, 150, 0, 335552923, 2, 197, -1, 0, 538974272, 0, 2214592512, 0, 132000, -10, 0, 192, -8, 0, 12288, -21, 0, 134213632, 0, 4294901761, 3, 0, 42, 0, 100663424, 0, 4294965284, 3, 0, 6, -1, 0, 3221282816, 2, 198, 3, 0, 11, -1, 2, 199, 3, 0, 40, -6, 0, 4286578784, 2, 0, -2, 0, 1006694400, 3, 0, 24, 2, 35, -1, 2, 94, 3, 0, 2, 0, 1, 2, 163, 3, 0, 6, 2, 197, 0, 4110942569, 0, 1432950139, 0, 2701658217, 0, 4026532864, 0, 4026532881, 2, 0, 2, 45, 3, 0, 8, -1, 2, 158, -2, 2, 169, 0, 98304, 0, 65537, 2, 170, -5, 0, 4294950912, 2, 0, 2, 118, 0, 65528, 2, 177, 0, 4294770176, 2, 26, 3, 0, 4, -30, 2, 174, 0, 3758153728, -3, 2, 169, -2, 2, 155, 2, 188, 2, 158, -1, 2, 191, -1, 2, 161, 0, 4294754304, 3, 0, 2, -3, 0, 33554432, -2, 2, 200, -3, 2, 169, 0, 4175478784, 2, 201, 0, 4286643712, 0, 4286644216, 2, 0, -4, 2, 202, -1, 2, 165, 0, 4227923967, 3, 0, 32, -1334, 2, 163, 2, 0, -129, 2, 94, -6, 2, 163, -180, 2, 203, -233, 2, 4, 3, 0, 96, -16, 2, 163, 3, 0, 47, -154, 2, 165, 3, 0, 22381, -7, 2, 17, 3, 0, 6128], [4294967295, 4294967291, 4092460543, 4294828031, 4294967294, 134217726, 268435455, 2147483647, 1048575, 1073741823, 3892314111, 134217727, 1061158911, 536805376, 4294910143, 4160749567, 4294901759, 4294901760, 536870911, 262143, 8388607, 4294902783, 4294918143, 65535, 67043328, 2281701374, 4294967232, 2097151, 4294903807, 4194303, 255, 67108863, 4294967039, 511, 524287, 131071, 127, 4292870143, 4294902271, 4294549487, 33554431, 1023, 67047423, 4294901888, 4286578687, 4294770687, 67043583, 32767, 15, 2047999, 67043343, 16777215, 4294902000, 4294934527, 4294966783, 4294967279, 2047, 262083, 20511, 4290772991, 41943039, 493567, 4294959104, 603979775, 65536, 602799615, 805044223, 4294965206, 8191, 1031749119, 4294917631, 2134769663, 4286578493, 4282253311, 4294942719, 33540095, 4294905855, 4294967264, 2868854591, 1608515583, 265232348, 534519807, 2147614720, 1060109444, 4093640016, 17376, 2139062143, 224, 4169138175, 4294909951, 4286578688, 4294967292, 4294965759, 2044, 4292870144, 4294966272, 4294967280, 8289918, 4294934399, 4294901775, 4294965375, 1602223615, 4294967259, 4294443008, 268369920, 4292804608, 486341884, 4294963199, 3087007615, 1073692671, 4128527, 4279238655, 4294902015, 4294966591, 2445279231, 3670015, 3238002687, 31, 63, 4294967288, 4294705151, 4095, 3221208447, 4294549472, 2147483648, 4285526655, 4294966527, 4294705152, 4294966143, 64, 4294966719, 16383, 3774873592, 458752, 536807423, 67043839, 3758096383, 3959414372, 3755993023, 2080374783, 4294835295, 4294967103, 4160749565, 4087, 184024726, 2862017156, 1593309078, 268434431, 268434414, 4294901763, 536870912, 2952790016, 202506752, 139264, 402653184, 4261412864, 4227922944, 49152, 61440, 3758096384, 117440512, 65280, 3233808384, 3221225472, 2097152, 4294965248, 32768, 57152, 67108864, 4293918720, 4290772992, 25165824, 57344, 4227915776, 4278190080, 4227907584, 65520, 4026531840, 4227858432, 4160749568, 3758129152, 4294836224, 63488, 1073741824, 4294967040, 4194304, 251658240, 196608, 4294963200, 64512, 417808, 4227923712, 12582912, 50331648, 65472, 4294967168, 4294966784, 16, 4294917120, 2080374784, 4096, 65408, 524288, 65532]);\n\nfunction advanceChar(parser) {\r\n parser.column++;\r\n return (parser.currentChar = parser.source.charCodeAt(++parser.index));\r\n}\r\nfunction consumeMultiUnitCodePoint(parser, hi) {\r\n if ((hi & 0xfc00) !== 55296)\r\n return 0;\r\n const lo = parser.source.charCodeAt(parser.index + 1);\r\n if ((lo & 0xfc00) !== 0xdc00)\r\n return 0;\r\n hi = parser.currentChar = 65536 + ((hi & 0x3ff) << 10) + (lo & 0x3ff);\r\n if (((unicodeLookup[(hi >>> 5) + 0] >>> hi) & 31 & 1) === 0) {\r\n report(parser, 18, fromCodePoint(hi));\r\n }\r\n parser.index++;\r\n parser.column++;\r\n return 1;\r\n}\r\nfunction consumeLineFeed(parser, state) {\r\n parser.currentChar = parser.source.charCodeAt(++parser.index);\r\n parser.flags |= 1;\r\n if ((state & 4) === 0) {\r\n parser.column = 0;\r\n parser.line++;\r\n }\r\n}\r\nfunction scanNewLine(parser) {\r\n parser.flags |= 1;\r\n parser.currentChar = parser.source.charCodeAt(++parser.index);\r\n parser.column = 0;\r\n parser.line++;\r\n}\r\nfunction isExoticECMAScriptWhitespace(ch) {\r\n return (ch === 160 ||\r\n ch === 65279 ||\r\n ch === 133 ||\r\n ch === 5760 ||\r\n (ch >= 8192 && ch <= 8203) ||\r\n ch === 8239 ||\r\n ch === 8287 ||\r\n ch === 12288 ||\r\n ch === 8201 ||\r\n ch === 65519);\r\n}\r\nfunction fromCodePoint(codePoint) {\r\n return codePoint <= 65535\r\n ? String.fromCharCode(codePoint)\r\n : String.fromCharCode(codePoint >>> 10) + String.fromCharCode(codePoint & 0x3ff);\r\n}\r\nfunction toHex(code) {\r\n return code < 65 ? code - 48 : (code - 65 + 10) & 0xf;\r\n}\r\nfunction convertTokenType(t) {\r\n switch (t) {\r\n case 134283266:\r\n return 'NumericLiteral';\r\n case 134283267:\r\n return 'StringLiteral';\r\n case 86021:\r\n case 86022:\r\n return 'BooleanLiteral';\r\n case 86023:\r\n return 'NullLiteral';\r\n case 65540:\r\n return 'RegularExpression';\r\n case 67174408:\r\n case 67174409:\r\n case 132:\r\n return 'TemplateLiteral';\r\n default:\r\n if ((t & 143360) === 143360)\r\n return 'Identifier';\r\n if ((t & 4096) === 4096)\r\n return 'Keyword';\r\n return 'Punctuator';\r\n }\r\n}\n\nconst CharTypes = [\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 8 | 1024,\r\n 0,\r\n 0,\r\n 8 | 2048,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 8192,\r\n 0,\r\n 1 | 2,\r\n 0,\r\n 0,\r\n 8192,\r\n 0,\r\n 0,\r\n 0,\r\n 256,\r\n 0,\r\n 256 | 32768,\r\n 0,\r\n 0,\r\n 2 | 16 | 128 | 32 | 64,\r\n 2 | 16 | 128 | 32 | 64,\r\n 2 | 16 | 32 | 64,\r\n 2 | 16 | 32 | 64,\r\n 2 | 16 | 32 | 64,\r\n 2 | 16 | 32 | 64,\r\n 2 | 16 | 32 | 64,\r\n 2 | 16 | 32 | 64,\r\n 2 | 16 | 512 | 64,\r\n 2 | 16 | 512 | 64,\r\n 0,\r\n 0,\r\n 16384,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 1 | 2 | 64,\r\n 1 | 2 | 64,\r\n 1 | 2 | 64,\r\n 1 | 2 | 64,\r\n 1 | 2 | 64,\r\n 1 | 2 | 64,\r\n 1 | 2,\r\n 1 | 2,\r\n 1 | 2,\r\n 1 | 2,\r\n 1 | 2,\r\n 1 | 2,\r\n 1 | 2,\r\n 1 | 2,\r\n 1 | 2,\r\n 1 | 2,\r\n 1 | 2,\r\n 1 | 2,\r\n 1 | 2,\r\n 1 | 2,\r\n 1 | 2,\r\n 1 | 2,\r\n 1 | 2,\r\n 1 | 2,\r\n 1 | 2,\r\n 1 | 2,\r\n 0,\r\n 1,\r\n 0,\r\n 0,\r\n 1 | 2 | 4096,\r\n 0,\r\n 1 | 2 | 4 | 64,\r\n 1 | 2 | 4 | 64,\r\n 1 | 2 | 4 | 64,\r\n 1 | 2 | 4 | 64,\r\n 1 | 2 | 4 | 64,\r\n 1 | 2 | 4 | 64,\r\n 1 | 2 | 4,\r\n 1 | 2 | 4,\r\n 1 | 2 | 4,\r\n 1 | 2 | 4,\r\n 1 | 2 | 4,\r\n 1 | 2 | 4,\r\n 1 | 2 | 4,\r\n 1 | 2 | 4,\r\n 1 | 2 | 4,\r\n 1 | 2 | 4,\r\n 1 | 2 | 4,\r\n 1 | 2 | 4,\r\n 1 | 2 | 4,\r\n 1 | 2 | 4,\r\n 1 | 2 | 4,\r\n 1 | 2 | 4,\r\n 1 | 2 | 4,\r\n 1 | 2 | 4,\r\n 1 | 2 | 4,\r\n 1 | 2 | 4,\r\n 16384,\r\n 0,\r\n 0,\r\n 0,\r\n 0\r\n];\r\nconst isIdStart = [\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 1,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 1,\r\n 0,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0\r\n];\r\nconst isIdPart = [\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 1,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 1,\r\n 0,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 1,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0\r\n];\r\nfunction isIdentifierStart(code) {\r\n return code <= 0x7F\r\n ? isIdStart[code]\r\n : (unicodeLookup[(code >>> 5) + 34816] >>> code) & 31 & 1;\r\n}\r\nfunction isIdentifierPart(code) {\r\n return code <= 0x7F\r\n ? isIdPart[code]\r\n : (unicodeLookup[(code >>> 5) + 0] >>> code) & 31 & 1 || (code === 8204 || code === 8205);\r\n}\n\nconst CommentTypes = ['SingleLine', 'MultiLine', 'HTMLOpen', 'HTMLClose', 'HashbangComment'];\r\nfunction skipHashBang(parser) {\r\n const source = parser.source;\r\n if (parser.currentChar === 35 && source.charCodeAt(parser.index + 1) === 33) {\r\n advanceChar(parser);\r\n advanceChar(parser);\r\n skipSingleLineComment(parser, source, 0, 4, parser.tokenPos, parser.linePos, parser.colPos);\r\n }\r\n}\r\nfunction skipSingleHTMLComment(parser, source, state, context, type, start, line, column) {\r\n if (context & 2048)\r\n report(parser, 0);\r\n return skipSingleLineComment(parser, source, state, type, start, line, column);\r\n}\r\nfunction skipSingleLineComment(parser, source, state, type, start, line, column) {\r\n const { index } = parser;\r\n parser.tokenPos = parser.index;\r\n parser.linePos = parser.line;\r\n parser.colPos = parser.column;\r\n while (parser.index < parser.end) {\r\n if (CharTypes[parser.currentChar] & 8) {\r\n const isCR = parser.currentChar === 13;\r\n scanNewLine(parser);\r\n if (isCR && parser.index < parser.end && parser.currentChar === 10)\r\n parser.currentChar = source.charCodeAt(++parser.index);\r\n break;\r\n }\r\n else if ((parser.currentChar ^ 8232) <= 1) {\r\n scanNewLine(parser);\r\n break;\r\n }\r\n advanceChar(parser);\r\n parser.tokenPos = parser.index;\r\n parser.linePos = parser.line;\r\n parser.colPos = parser.column;\r\n }\r\n if (parser.onComment) {\r\n const loc = {\r\n start: {\r\n line,\r\n column\r\n },\r\n end: {\r\n line: parser.linePos,\r\n column: parser.colPos\r\n }\r\n };\r\n parser.onComment(CommentTypes[type & 0xff], source.slice(index, parser.tokenPos), start, parser.tokenPos, loc);\r\n }\r\n return state | 1;\r\n}\r\nfunction skipMultiLineComment(parser, source, state) {\r\n const { index } = parser;\r\n while (parser.index < parser.end) {\r\n if (parser.currentChar < 0x2b) {\r\n let skippedOneAsterisk = false;\r\n while (parser.currentChar === 42) {\r\n if (!skippedOneAsterisk) {\r\n state &= ~4;\r\n skippedOneAsterisk = true;\r\n }\r\n if (advanceChar(parser) === 47) {\r\n advanceChar(parser);\r\n if (parser.onComment) {\r\n const loc = {\r\n start: {\r\n line: parser.linePos,\r\n column: parser.colPos\r\n },\r\n end: {\r\n line: parser.line,\r\n column: parser.column\r\n }\r\n };\r\n parser.onComment(CommentTypes[1 & 0xff], source.slice(index, parser.index - 2), index - 2, parser.index, loc);\r\n }\r\n parser.tokenPos = parser.index;\r\n parser.linePos = parser.line;\r\n parser.colPos = parser.column;\r\n return state;\r\n }\r\n }\r\n if (skippedOneAsterisk) {\r\n continue;\r\n }\r\n if (CharTypes[parser.currentChar] & 8) {\r\n if (parser.currentChar === 13) {\r\n state |= 1 | 4;\r\n scanNewLine(parser);\r\n }\r\n else {\r\n consumeLineFeed(parser, state);\r\n state = (state & ~4) | 1;\r\n }\r\n }\r\n else {\r\n advanceChar(parser);\r\n }\r\n }\r\n else if ((parser.currentChar ^ 8232) <= 1) {\r\n state = (state & ~4) | 1;\r\n scanNewLine(parser);\r\n }\r\n else {\r\n state &= ~4;\r\n advanceChar(parser);\r\n }\r\n }\r\n report(parser, 16);\r\n}\n\nfunction scanRegularExpression(parser, context) {\r\n const bodyStart = parser.index;\r\n let preparseState = 0;\r\n loop: while (true) {\r\n const ch = parser.currentChar;\r\n advanceChar(parser);\r\n if (preparseState & 1) {\r\n preparseState &= ~1;\r\n }\r\n else {\r\n switch (ch) {\r\n case 47:\r\n if (!preparseState)\r\n break loop;\r\n else\r\n break;\r\n case 92:\r\n preparseState |= 1;\r\n break;\r\n case 91:\r\n preparseState |= 2;\r\n break;\r\n case 93:\r\n preparseState &= 1;\r\n break;\r\n case 13:\r\n case 10:\r\n case 8232:\r\n case 8233:\r\n report(parser, 32);\r\n }\r\n }\r\n if (parser.index >= parser.source.length) {\r\n return report(parser, 32);\r\n }\r\n }\r\n const bodyEnd = parser.index - 1;\r\n let mask = 0;\r\n let char = parser.currentChar;\r\n const { index: flagStart } = parser;\r\n while (isIdentifierPart(char)) {\r\n switch (char) {\r\n case 103:\r\n if (mask & 2)\r\n report(parser, 34, 'g');\r\n mask |= 2;\r\n break;\r\n case 105:\r\n if (mask & 1)\r\n report(parser, 34, 'i');\r\n mask |= 1;\r\n break;\r\n case 109:\r\n if (mask & 4)\r\n report(parser, 34, 'm');\r\n mask |= 4;\r\n break;\r\n case 117:\r\n if (mask & 16)\r\n report(parser, 34, 'u');\r\n mask |= 16;\r\n break;\r\n case 121:\r\n if (mask & 8)\r\n report(parser, 34, 'y');\r\n mask |= 8;\r\n break;\r\n case 115:\r\n if (mask & 32)\r\n report(parser, 34, 's');\r\n mask |= 32;\r\n break;\r\n case 100:\r\n if (mask & 64)\r\n report(parser, 34, 'd');\r\n mask |= 64;\r\n break;\r\n default:\r\n report(parser, 33);\r\n }\r\n char = advanceChar(parser);\r\n }\r\n const flags = parser.source.slice(flagStart, parser.index);\r\n const pattern = parser.source.slice(bodyStart, bodyEnd);\r\n parser.tokenRegExp = { pattern, flags };\r\n if (context & 512)\r\n parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index);\r\n parser.tokenValue = validate(parser, pattern, flags);\r\n return 65540;\r\n}\r\nfunction validate(parser, pattern, flags) {\r\n try {\r\n return new RegExp(pattern, flags);\r\n }\r\n catch (e) {\r\n try {\r\n new RegExp(pattern, flags.replace('d', ''));\r\n return null;\r\n }\r\n catch (e) {\r\n report(parser, 32);\r\n }\r\n }\r\n}\n\nfunction scanString(parser, context, quote) {\r\n const { index: start } = parser;\r\n let ret = '';\r\n let char = advanceChar(parser);\r\n let marker = parser.index;\r\n while ((CharTypes[char] & 8) === 0) {\r\n if (char === quote) {\r\n ret += parser.source.slice(marker, parser.index);\r\n advanceChar(parser);\r\n if (context & 512)\r\n parser.tokenRaw = parser.source.slice(start, parser.index);\r\n parser.tokenValue = ret;\r\n return 134283267;\r\n }\r\n if ((char & 8) === 8 && char === 92) {\r\n ret += parser.source.slice(marker, parser.index);\r\n char = advanceChar(parser);\r\n if (char < 0x7f || char === 8232 || char === 8233) {\r\n const code = parseEscape(parser, context, char);\r\n if (code >= 0)\r\n ret += fromCodePoint(code);\r\n else\r\n handleStringError(parser, code, 0);\r\n }\r\n else {\r\n ret += fromCodePoint(char);\r\n }\r\n marker = parser.index + 1;\r\n }\r\n if (parser.index >= parser.end)\r\n report(parser, 14);\r\n char = advanceChar(parser);\r\n }\r\n report(parser, 14);\r\n}\r\nfunction parseEscape(parser, context, first) {\r\n switch (first) {\r\n case 98:\r\n return 8;\r\n case 102:\r\n return 12;\r\n case 114:\r\n return 13;\r\n case 110:\r\n return 10;\r\n case 116:\r\n return 9;\r\n case 118:\r\n return 11;\r\n case 13: {\r\n if (parser.index < parser.end) {\r\n const nextChar = parser.source.charCodeAt(parser.index + 1);\r\n if (nextChar === 10) {\r\n parser.index = parser.index + 1;\r\n parser.currentChar = nextChar;\r\n }\r\n }\r\n }\r\n case 10:\r\n case 8232:\r\n case 8233:\r\n parser.column = -1;\r\n parser.line++;\r\n return -1;\r\n case 48:\r\n case 49:\r\n case 50:\r\n case 51: {\r\n let code = first - 48;\r\n let index = parser.index + 1;\r\n let column = parser.column + 1;\r\n if (index < parser.end) {\r\n const next = parser.source.charCodeAt(index);\r\n if ((CharTypes[next] & 32) === 0) {\r\n if ((code !== 0 || CharTypes[next] & 512) && context & 1024)\r\n return -2;\r\n }\r\n else if (context & 1024) {\r\n return -2;\r\n }\r\n else {\r\n parser.currentChar = next;\r\n code = (code << 3) | (next - 48);\r\n index++;\r\n column++;\r\n if (index < parser.end) {\r\n const next = parser.source.charCodeAt(index);\r\n if (CharTypes[next] & 32) {\r\n parser.currentChar = next;\r\n code = (code << 3) | (next - 48);\r\n index++;\r\n column++;\r\n }\r\n }\r\n parser.flags |= 64;\r\n parser.index = index - 1;\r\n parser.column = column - 1;\r\n }\r\n }\r\n return code;\r\n }\r\n case 52:\r\n case 53:\r\n case 54:\r\n case 55: {\r\n if (context & 1024)\r\n return -2;\r\n let code = first - 48;\r\n const index = parser.index + 1;\r\n const column = parser.column + 1;\r\n if (index < parser.end) {\r\n const next = parser.source.charCodeAt(index);\r\n if (CharTypes[next] & 32) {\r\n code = (code << 3) | (next - 48);\r\n parser.currentChar = next;\r\n parser.index = index;\r\n parser.column = column;\r\n }\r\n }\r\n parser.flags |= 64;\r\n return code;\r\n }\r\n case 120: {\r\n const ch1 = advanceChar(parser);\r\n if ((CharTypes[ch1] & 64) === 0)\r\n return -4;\r\n const hi = toHex(ch1);\r\n const ch2 = advanceChar(parser);\r\n if ((CharTypes[ch2] & 64) === 0)\r\n return -4;\r\n const lo = toHex(ch2);\r\n return (hi << 4) | lo;\r\n }\r\n case 117: {\r\n const ch = advanceChar(parser);\r\n if (parser.currentChar === 123) {\r\n let code = 0;\r\n while ((CharTypes[advanceChar(parser)] & 64) !== 0) {\r\n code = (code << 4) | toHex(parser.currentChar);\r\n if (code > 1114111)\r\n return -5;\r\n }\r\n if (parser.currentChar < 1 || parser.currentChar !== 125) {\r\n return -4;\r\n }\r\n return code;\r\n }\r\n else {\r\n if ((CharTypes[ch] & 64) === 0)\r\n return -4;\r\n const ch2 = parser.source.charCodeAt(parser.index + 1);\r\n if ((CharTypes[ch2] & 64) === 0)\r\n return -4;\r\n const ch3 = parser.source.charCodeAt(parser.index + 2);\r\n if ((CharTypes[ch3] & 64) === 0)\r\n return -4;\r\n const ch4 = parser.source.charCodeAt(parser.index + 3);\r\n if ((CharTypes[ch4] & 64) === 0)\r\n return -4;\r\n parser.index += 3;\r\n parser.column += 3;\r\n parser.currentChar = parser.source.charCodeAt(parser.index);\r\n return (toHex(ch) << 12) | (toHex(ch2) << 8) | (toHex(ch3) << 4) | toHex(ch4);\r\n }\r\n }\r\n case 56:\r\n case 57:\r\n if ((context & 256) === 0)\r\n return -3;\r\n default:\r\n return first;\r\n }\r\n}\r\nfunction handleStringError(state, code, isTemplate) {\r\n switch (code) {\r\n case -1:\r\n return;\r\n case -2:\r\n report(state, isTemplate ? 2 : 1);\r\n case -3:\r\n report(state, 13);\r\n case -4:\r\n report(state, 6);\r\n case -5:\r\n report(state, 102);\r\n }\r\n}\n\nfunction scanTemplate(parser, context) {\r\n const { index: start } = parser;\r\n let token = 67174409;\r\n let ret = '';\r\n let char = advanceChar(parser);\r\n while (char !== 96) {\r\n if (char === 36 && parser.source.charCodeAt(parser.index + 1) === 123) {\r\n advanceChar(parser);\r\n token = 67174408;\r\n break;\r\n }\r\n else if ((char & 8) === 8 && char === 92) {\r\n char = advanceChar(parser);\r\n if (char > 0x7e) {\r\n ret += fromCodePoint(char);\r\n }\r\n else {\r\n const code = parseEscape(parser, context | 1024, char);\r\n if (code >= 0) {\r\n ret += fromCodePoint(code);\r\n }\r\n else if (code !== -1 && context & 65536) {\r\n ret = undefined;\r\n char = scanBadTemplate(parser, char);\r\n if (char < 0)\r\n token = 67174408;\r\n break;\r\n }\r\n else {\r\n handleStringError(parser, code, 1);\r\n }\r\n }\r\n }\r\n else {\r\n if (parser.index < parser.end &&\r\n char === 13 &&\r\n parser.source.charCodeAt(parser.index) === 10) {\r\n ret += fromCodePoint(char);\r\n parser.currentChar = parser.source.charCodeAt(++parser.index);\r\n }\r\n if (((char & 83) < 3 && char === 10) || (char ^ 8232) <= 1) {\r\n parser.column = -1;\r\n parser.line++;\r\n }\r\n ret += fromCodePoint(char);\r\n }\r\n if (parser.index >= parser.end)\r\n report(parser, 15);\r\n char = advanceChar(parser);\r\n }\r\n advanceChar(parser);\r\n parser.tokenValue = ret;\r\n parser.tokenRaw = parser.source.slice(start + 1, parser.index - (token === 67174409 ? 1 : 2));\r\n return token;\r\n}\r\nfunction scanBadTemplate(parser, ch) {\r\n while (ch !== 96) {\r\n switch (ch) {\r\n case 36: {\r\n const index = parser.index + 1;\r\n if (index < parser.end && parser.source.charCodeAt(index) === 123) {\r\n parser.index = index;\r\n parser.column++;\r\n return -ch;\r\n }\r\n break;\r\n }\r\n case 10:\r\n case 8232:\r\n case 8233:\r\n parser.column = -1;\r\n parser.line++;\r\n }\r\n if (parser.index >= parser.end)\r\n report(parser, 15);\r\n ch = advanceChar(parser);\r\n }\r\n return ch;\r\n}\r\nfunction scanTemplateTail(parser, context) {\r\n if (parser.index >= parser.end)\r\n report(parser, 0);\r\n parser.index--;\r\n parser.column--;\r\n return scanTemplate(parser, context);\r\n}\n\nfunction scanNumber(parser, context, kind) {\r\n let char = parser.currentChar;\r\n let value = 0;\r\n let digit = 9;\r\n let atStart = kind & 64 ? 0 : 1;\r\n let digits = 0;\r\n let allowSeparator = 0;\r\n if (kind & 64) {\r\n value = '.' + scanDecimalDigitsOrSeparator(parser, char);\r\n char = parser.currentChar;\r\n if (char === 110)\r\n report(parser, 11);\r\n }\r\n else {\r\n if (char === 48) {\r\n char = advanceChar(parser);\r\n if ((char | 32) === 120) {\r\n kind = 8 | 128;\r\n char = advanceChar(parser);\r\n while (CharTypes[char] & (64 | 4096)) {\r\n if (char === 95) {\r\n if (!allowSeparator)\r\n report(parser, 147);\r\n allowSeparator = 0;\r\n char = advanceChar(parser);\r\n continue;\r\n }\r\n allowSeparator = 1;\r\n value = value * 0x10 + toHex(char);\r\n digits++;\r\n char = advanceChar(parser);\r\n }\r\n if (digits === 0 || !allowSeparator) {\r\n report(parser, digits === 0 ? 19 : 148);\r\n }\r\n }\r\n else if ((char | 32) === 111) {\r\n kind = 4 | 128;\r\n char = advanceChar(parser);\r\n while (CharTypes[char] & (32 | 4096)) {\r\n if (char === 95) {\r\n if (!allowSeparator) {\r\n report(parser, 147);\r\n }\r\n allowSeparator = 0;\r\n char = advanceChar(parser);\r\n continue;\r\n }\r\n allowSeparator = 1;\r\n value = value * 8 + (char - 48);\r\n digits++;\r\n char = advanceChar(parser);\r\n }\r\n if (digits === 0 || !allowSeparator) {\r\n report(parser, digits === 0 ? 0 : 148);\r\n }\r\n }\r\n else if ((char | 32) === 98) {\r\n kind = 2 | 128;\r\n char = advanceChar(parser);\r\n while (CharTypes[char] & (128 | 4096)) {\r\n if (char === 95) {\r\n if (!allowSeparator) {\r\n report(parser, 147);\r\n }\r\n allowSeparator = 0;\r\n char = advanceChar(parser);\r\n continue;\r\n }\r\n allowSeparator = 1;\r\n value = value * 2 + (char - 48);\r\n digits++;\r\n char = advanceChar(parser);\r\n }\r\n if (digits === 0 || !allowSeparator) {\r\n report(parser, digits === 0 ? 0 : 148);\r\n }\r\n }\r\n else if (CharTypes[char] & 32) {\r\n if (context & 1024)\r\n report(parser, 1);\r\n kind = 1;\r\n while (CharTypes[char] & 16) {\r\n if (CharTypes[char] & 512) {\r\n kind = 32;\r\n atStart = 0;\r\n break;\r\n }\r\n value = value * 8 + (char - 48);\r\n char = advanceChar(parser);\r\n }\r\n }\r\n else if (CharTypes[char] & 512) {\r\n if (context & 1024)\r\n report(parser, 1);\r\n parser.flags |= 64;\r\n kind = 32;\r\n }\r\n else if (char === 95) {\r\n report(parser, 0);\r\n }\r\n }\r\n if (kind & 48) {\r\n if (atStart) {\r\n while (digit >= 0 && CharTypes[char] & (16 | 4096)) {\r\n if (char === 95) {\r\n char = advanceChar(parser);\r\n if (char === 95 || kind & 32) {\r\n reportScannerError(parser.index, parser.line, parser.index + 1, 147);\r\n }\r\n allowSeparator = 1;\r\n continue;\r\n }\r\n allowSeparator = 0;\r\n value = 10 * value + (char - 48);\r\n char = advanceChar(parser);\r\n --digit;\r\n }\r\n if (allowSeparator) {\r\n reportScannerError(parser.index, parser.line, parser.index + 1, 148);\r\n }\r\n if (digit >= 0 && !isIdentifierStart(char) && char !== 46) {\r\n parser.tokenValue = value;\r\n if (context & 512)\r\n parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index);\r\n return 134283266;\r\n }\r\n }\r\n value += scanDecimalDigitsOrSeparator(parser, char);\r\n char = parser.currentChar;\r\n if (char === 46) {\r\n if (advanceChar(parser) === 95)\r\n report(parser, 0);\r\n kind = 64;\r\n value += '.' + scanDecimalDigitsOrSeparator(parser, parser.currentChar);\r\n char = parser.currentChar;\r\n }\r\n }\r\n }\r\n const end = parser.index;\r\n let isBigInt = 0;\r\n if (char === 110 && kind & 128) {\r\n isBigInt = 1;\r\n char = advanceChar(parser);\r\n }\r\n else {\r\n if ((char | 32) === 101) {\r\n char = advanceChar(parser);\r\n if (CharTypes[char] & 256)\r\n char = advanceChar(parser);\r\n const { index } = parser;\r\n if ((CharTypes[char] & 16) === 0)\r\n report(parser, 10);\r\n value += parser.source.substring(end, index) + scanDecimalDigitsOrSeparator(parser, char);\r\n char = parser.currentChar;\r\n }\r\n }\r\n if ((parser.index < parser.end && CharTypes[char] & 16) || isIdentifierStart(char)) {\r\n report(parser, 12);\r\n }\r\n if (isBigInt) {\r\n parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index);\r\n parser.tokenValue = BigInt(value);\r\n return 134283389;\r\n }\r\n parser.tokenValue =\r\n kind & (1 | 2 | 8 | 4)\r\n ? value\r\n : kind & 32\r\n ? parseFloat(parser.source.substring(parser.tokenPos, parser.index))\r\n : +value;\r\n if (context & 512)\r\n parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index);\r\n return 134283266;\r\n}\r\nfunction scanDecimalDigitsOrSeparator(parser, char) {\r\n let allowSeparator = 0;\r\n let start = parser.index;\r\n let ret = '';\r\n while (CharTypes[char] & (16 | 4096)) {\r\n if (char === 95) {\r\n const { index } = parser;\r\n char = advanceChar(parser);\r\n if (char === 95) {\r\n reportScannerError(parser.index, parser.line, parser.index + 1, 147);\r\n }\r\n allowSeparator = 1;\r\n ret += parser.source.substring(start, index);\r\n start = parser.index;\r\n continue;\r\n }\r\n allowSeparator = 0;\r\n char = advanceChar(parser);\r\n }\r\n if (allowSeparator) {\r\n reportScannerError(parser.index, parser.line, parser.index + 1, 148);\r\n }\r\n return ret + parser.source.substring(start, parser.index);\r\n}\n\nconst KeywordDescTable = [\r\n 'end of source',\r\n 'identifier', 'number', 'string', 'regular expression',\r\n 'false', 'true', 'null',\r\n 'template continuation', 'template tail',\r\n '=>', '(', '{', '.', '...', '}', ')', ';', ',', '[', ']', ':', '?', '\\'', '\"', '</', '/>',\r\n '++', '--',\r\n '=', '<<=', '>>=', '>>>=', '**=', '+=', '-=', '*=', '/=', '%=', '^=', '|=',\r\n '&=', '||=', '&&=', '??=',\r\n 'typeof', 'delete', 'void', '!', '~', '+', '-', 'in', 'instanceof', '*', '%', '/', '**', '&&',\r\n '||', '===', '!==', '==', '!=', '<=', '>=', '<', '>', '<<', '>>', '>>>', '&', '|', '^',\r\n 'var', 'let', 'const',\r\n 'break', 'case', 'catch', 'class', 'continue', 'debugger', 'default', 'do', 'else', 'export',\r\n 'extends', 'finally', 'for', 'function', 'if', 'import', 'new', 'return', 'super', 'switch',\r\n 'this', 'throw', 'try', 'while', 'with',\r\n 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static', 'yield',\r\n 'as', 'async', 'await', 'constructor', 'get', 'set', 'from', 'of',\r\n 'enum', 'eval', 'arguments', 'escaped keyword', 'escaped future reserved keyword', 'reserved if strict', '#',\r\n 'BigIntLiteral', '??', '?.', 'WhiteSpace', 'Illegal', 'LineTerminator', 'PrivateField',\r\n 'Template', '@', 'target', 'meta', 'LineFeed', 'Escaped', 'JSXText'\r\n];\r\nconst descKeywordTable = Object.create(null, {\r\n this: { value: 86113 },\r\n function: { value: 86106 },\r\n if: { value: 20571 },\r\n return: { value: 20574 },\r\n var: { value: 86090 },\r\n else: { value: 20565 },\r\n for: { value: 20569 },\r\n new: { value: 86109 },\r\n in: { value: 8738868 },\r\n typeof: { value: 16863277 },\r\n while: { value: 20580 },\r\n case: { value: 20558 },\r\n break: { value: 20557 },\r\n try: { value: 20579 },\r\n catch: { value: 20559 },\r\n delete: { value: 16863278 },\r\n throw: { value: 86114 },\r\n switch: { value: 86112 },\r\n continue: { value: 20561 },\r\n default: { value: 20563 },\r\n instanceof: { value: 8476725 },\r\n do: { value: 20564 },\r\n void: { value: 16863279 },\r\n finally: { value: 20568 },\r\n async: { value: 209007 },\r\n await: { value: 209008 },\r\n class: { value: 86096 },\r\n const: { value: 86092 },\r\n constructor: { value: 12401 },\r\n debugger: { value: 20562 },\r\n export: { value: 20566 },\r\n extends: { value: 20567 },\r\n false: { value: 86021 },\r\n from: { value: 12404 },\r\n get: { value: 12402 },\r\n implements: { value: 36966 },\r\n import: { value: 86108 },\r\n interface: { value: 36967 },\r\n let: { value: 241739 },\r\n null: { value: 86023 },\r\n of: { value: 274549 },\r\n package: { value: 36968 },\r\n private: { value: 36969 },\r\n protected: { value: 36970 },\r\n public: { value: 36971 },\r\n set: { value: 12403 },\r\n static: { value: 36972 },\r\n super: { value: 86111 },\r\n true: { value: 86022 },\r\n with: { value: 20581 },\r\n yield: { value: 241773 },\r\n enum: { value: 86134 },\r\n eval: { value: 537079927 },\r\n as: { value: 77934 },\r\n arguments: { value: 537079928 },\r\n target: { value: 143494 },\r\n meta: { value: 143495 },\r\n});\n\nfunction scanIdentifier(parser, context, isValidAsKeyword) {\r\n while (isIdPart[advanceChar(parser)]) { }\r\n parser.tokenValue = parser.source.slice(parser.tokenPos, parser.index);\r\n return parser.currentChar !== 92 && parser.currentChar <= 0x7e\r\n ? descKeywordTable[parser.tokenValue] || 208897\r\n : scanIdentifierSlowCase(parser, context, 0, isValidAsKeyword);\r\n}\r\nfunction scanUnicodeIdentifier(parser, context) {\r\n const cookedChar = scanIdentifierUnicodeEscape(parser);\r\n if (!isIdentifierPart(cookedChar))\r\n report(parser, 4);\r\n parser.tokenValue = fromCodePoint(cookedChar);\r\n return scanIdentifierSlowCase(parser, context, 1, CharTypes[cookedChar] & 4);\r\n}\r\nfunction scanIdentifierSlowCase(parser, context, hasEscape, isValidAsKeyword) {\r\n let start = parser.index;\r\n while (parser.index < parser.end) {\r\n if (parser.currentChar === 92) {\r\n parser.tokenValue += parser.source.slice(start, parser.index);\r\n hasEscape = 1;\r\n const code = scanIdentifierUnicodeEscape(parser);\r\n if (!isIdentifierPart(code))\r\n report(parser, 4);\r\n isValidAsKeyword = isValidAsKeyword && CharTypes[code] & 4;\r\n parser.tokenValue += fromCodePoint(code);\r\n start = parser.index;\r\n }\r\n else if (isIdentifierPart(parser.currentChar) || consumeMultiUnitCodePoint(parser, parser.currentChar)) {\r\n advanceChar(parser);\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n if (parser.index <= parser.end) {\r\n parser.tokenValue += parser.source.slice(start, parser.index);\r\n }\r\n const length = parser.tokenValue.length;\r\n if (isValidAsKeyword && length >= 2 && length <= 11) {\r\n const token = descKeywordTable[parser.tokenValue];\r\n if (token === void 0)\r\n return 208897;\r\n if (!hasEscape)\r\n return token;\r\n if (token === 209008) {\r\n if ((context & (2048 | 4194304)) === 0) {\r\n return token;\r\n }\r\n return 121;\r\n }\r\n if (context & 1024) {\r\n if (token === 36972) {\r\n return 122;\r\n }\r\n if ((token & 36864) === 36864) {\r\n return 122;\r\n }\r\n if ((token & 20480) === 20480) {\r\n if (context & 1073741824 && (context & 8192) === 0) {\r\n return token;\r\n }\r\n else {\r\n return 121;\r\n }\r\n }\r\n return 143483;\r\n }\r\n if (context & 1073741824 &&\r\n (context & 8192) === 0 &&\r\n (token & 20480) === 20480)\r\n return token;\r\n if (token === 241773) {\r\n return context & 1073741824\r\n ? 143483\r\n : context & 2097152\r\n ? 121\r\n : token;\r\n }\r\n if (token === 209007) {\r\n return 143483;\r\n }\r\n if ((token & 36864) === 36864) {\r\n return token;\r\n }\r\n return 121;\r\n }\r\n return 208897;\r\n}\r\nfunction scanPrivateIdentifier(parser) {\r\n if (!isIdentifierStart(advanceChar(parser)))\r\n report(parser, 94);\r\n return 131;\r\n}\r\nfunction scanIdentifierUnicodeEscape(parser) {\r\n if (parser.source.charCodeAt(parser.index + 1) !== 117) {\r\n report(parser, 4);\r\n }\r\n parser.currentChar = parser.source.charCodeAt((parser.index += 2));\r\n return scanUnicodeEscape(parser);\r\n}\r\nfunction scanUnicodeEscape(parser) {\r\n let codePoint = 0;\r\n const char = parser.currentChar;\r\n if (char === 123) {\r\n const begin = parser.index - 2;\r\n while (CharTypes[advanceChar(parser)] & 64) {\r\n codePoint = (codePoint << 4) | toHex(parser.currentChar);\r\n if (codePoint > 1114111)\r\n reportScannerError(begin, parser.line, parser.index + 1, 102);\r\n }\r\n if (parser.currentChar !== 125) {\r\n reportScannerError(begin, parser.line, parser.index - 1, 6);\r\n }\r\n advanceChar(parser);\r\n return codePoint;\r\n }\r\n if ((CharTypes[char] & 64) === 0)\r\n report(parser, 6);\r\n const char2 = parser.source.charCodeAt(parser.index + 1);\r\n if ((CharTypes[char2] & 64) === 0)\r\n report(parser, 6);\r\n const char3 = parser.source.charCodeAt(parser.index + 2);\r\n if ((CharTypes[char3] & 64) === 0)\r\n report(parser, 6);\r\n const char4 = parser.source.charCodeAt(parser.index + 3);\r\n if ((CharTypes[char4] & 64) === 0)\r\n report(parser, 6);\r\n codePoint = (toHex(char) << 12) | (toHex(char2) << 8) | (toHex(char3) << 4) | toHex(char4);\r\n parser.currentChar = parser.source.charCodeAt((parser.index += 4));\r\n return codePoint;\r\n}\n\nconst TokenLookup = [\r\n 129,\r\n 129,\r\n 129,\r\n 129,\r\n 129,\r\n 129,\r\n 129,\r\n 129,\r\n 129,\r\n 128,\r\n 136,\r\n 128,\r\n 128,\r\n 130,\r\n 129,\r\n 129,\r\n 129,\r\n 129,\r\n 129,\r\n 129,\r\n 129,\r\n 129,\r\n 129,\r\n 129,\r\n 129,\r\n 129,\r\n 129,\r\n 129,\r\n 129,\r\n 129,\r\n 129,\r\n 129,\r\n 128,\r\n 16842800,\r\n 134283267,\r\n 131,\r\n 208897,\r\n 8457015,\r\n 8455751,\r\n 134283267,\r\n 67174411,\r\n 16,\r\n 8457014,\r\n 25233970,\r\n 18,\r\n 25233971,\r\n 67108877,\r\n 8457016,\r\n 134283266,\r\n 134283266,\r\n 134283266,\r\n 134283266,\r\n 134283266,\r\n 134283266,\r\n 134283266,\r\n 134283266,\r\n 134283266,\r\n 134283266,\r\n 21,\r\n 1074790417,\r\n 8456258,\r\n 1077936157,\r\n 8456259,\r\n 22,\r\n 133,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 208897,\r\n 69271571,\r\n 137,\r\n 20,\r\n 8455497,\r\n 208897,\r\n 132,\r\n 4096,\r\n 4096,\r\n 4096,\r\n 4096,\r\n 4096,\r\n 4096,\r\n 4096,\r\n 208897,\r\n 4096,\r\n 208897,\r\n 208897,\r\n 4096,\r\n 208897,\r\n 4096,\r\n 208897,\r\n 4096,\r\n 208897,\r\n 4096,\r\n 4096,\r\n 4096,\r\n 208897,\r\n 4096,\r\n 4096,\r\n 208897,\r\n 4096,\r\n 4096,\r\n 2162700,\r\n 8455240,\r\n 1074790415,\r\n 16842801,\r\n 129\r\n];\r\nfunction nextToken(parser, context) {\r\n parser.flags = (parser.flags | 1) ^ 1;\r\n parser.startPos = parser.index;\r\n parser.startColumn = parser.column;\r\n parser.startLine = parser.line;\r\n parser.token = scanSingleToken(parser, context, 0);\r\n if (parser.onToken && parser.token !== 1048576) {\r\n const loc = {\r\n start: {\r\n line: parser.linePos,\r\n column: parser.colPos\r\n },\r\n end: {\r\n line: parser.line,\r\n column: parser.column\r\n }\r\n };\r\n parser.onToken(convertTokenType(parser.token), parser.tokenPos, parser.index, loc);\r\n }\r\n}\r\nfunction scanSingleToken(parser, context, state) {\r\n const isStartOfLine = parser.index === 0;\r\n const source = parser.source;\r\n let startPos = parser.index;\r\n let startLine = parser.line;\r\n let startColumn = parser.column;\r\n while (parser.index < parser.end) {\r\n parser.tokenPos = parser.index;\r\n parser.colPos = parser.column;\r\n parser.linePos = parser.line;\r\n let char = parser.currentChar;\r\n if (char <= 0x7e) {\r\n const token = TokenLookup[char];\r\n switch (token) {\r\n case 67174411:\r\n case 16:\r\n case 2162700:\r\n case 1074790415:\r\n case 69271571:\r\n case 20:\r\n case 21:\r\n case 1074790417:\r\n case 18:\r\n case 16842801:\r\n case 133:\r\n case 129:\r\n advanceChar(parser);\r\n return token;\r\n case 208897:\r\n return scanIdentifier(parser, context, 0);\r\n case 4096:\r\n return scanIdentifier(parser, context, 1);\r\n case 134283266:\r\n return scanNumber(parser, context, 16 | 128);\r\n case 134283267:\r\n return scanString(parser, context, char);\r\n case 132:\r\n return scanTemplate(parser, context);\r\n case 137:\r\n return scanUnicodeIdentifier(parser, context);\r\n case 131:\r\n return scanPrivateIdentifier(parser);\r\n case 128:\r\n advanceChar(parser);\r\n break;\r\n case 130:\r\n state |= 1 | 4;\r\n scanNewLine(parser);\r\n break;\r\n case 136:\r\n consumeLineFeed(parser, state);\r\n state = (state & ~4) | 1;\r\n break;\r\n case 8456258:\r\n let ch = advanceChar(parser);\r\n if (parser.index < parser.end) {\r\n if (ch === 60) {\r\n if (parser.index < parser.end && advanceChar(parser) === 61) {\r\n advanceChar(parser);\r\n return 4194334;\r\n }\r\n return 8456516;\r\n }\r\n else if (ch === 61) {\r\n advanceChar(parser);\r\n return 8456256;\r\n }\r\n if (ch === 33) {\r\n const index = parser.index + 1;\r\n if (index + 1 < parser.end &&\r\n source.charCodeAt(index) === 45 &&\r\n source.charCodeAt(index + 1) == 45) {\r\n parser.column += 3;\r\n parser.currentChar = source.charCodeAt((parser.index += 3));\r\n state = skipSingleHTMLComment(parser, source, state, context, 2, parser.tokenPos, parser.linePos, parser.colPos);\r\n startPos = parser.tokenPos;\r\n startLine = parser.linePos;\r\n startColumn = parser.colPos;\r\n continue;\r\n }\r\n return 8456258;\r\n }\r\n if (ch === 47) {\r\n if ((context & 16) === 0)\r\n return 8456258;\r\n const index = parser.index + 1;\r\n if (index < parser.end) {\r\n ch = source.charCodeAt(index);\r\n if (ch === 42 || ch === 47)\r\n break;\r\n }\r\n advanceChar(parser);\r\n return 25;\r\n }\r\n }\r\n return 8456258;\r\n case 1077936157: {\r\n advanceChar(parser);\r\n const ch = parser.currentChar;\r\n if (ch === 61) {\r\n if (advanceChar(parser) === 61) {\r\n advanceChar(parser);\r\n return 8455996;\r\n }\r\n return 8455998;\r\n }\r\n if (ch === 62) {\r\n advanceChar(parser);\r\n return 10;\r\n }\r\n return 1077936157;\r\n }\r\n case 16842800:\r\n if (advanceChar(parser) !== 61) {\r\n return 16842800;\r\n }\r\n if (advanceChar(parser) !== 61) {\r\n return 8455999;\r\n }\r\n advanceChar(parser);\r\n return 8455997;\r\n case 8457015:\r\n if (advanceChar(parser) !== 61)\r\n return 8457015;\r\n advanceChar(parser);\r\n return 4194342;\r\n case 8457014: {\r\n advanceChar(parser);\r\n if (parser.index >= parser.end)\r\n return 8457014;\r\n const ch = parser.currentChar;\r\n if (ch === 61) {\r\n advanceChar(parser);\r\n return 4194340;\r\n }\r\n if (ch !== 42)\r\n return 8457014;\r\n if (advanceChar(parser) !== 61)\r\n return 8457273;\r\n advanceChar(parser);\r\n return 4194337;\r\n }\r\n case 8455497:\r\n if (advanceChar(parser) !== 61)\r\n return 8455497;\r\n advanceChar(parser);\r\n return 4194343;\r\n case 25233970: {\r\n advanceChar(parser);\r\n const ch = parser.currentChar;\r\n if (ch === 43) {\r\n advanceChar(parser);\r\n return 33619995;\r\n }\r\n if (ch === 61) {\r\n advanceChar(parser);\r\n return 4194338;\r\n }\r\n return 25233970;\r\n }\r\n case 25233971: {\r\n advanceChar(parser);\r\n const ch = parser.currentChar;\r\n if (ch === 45) {\r\n advanceChar(parser);\r\n if ((state & 1 || isStartOfLine) && parser.currentChar === 62) {\r\n if ((context & 256) === 0)\r\n report(parser, 109);\r\n advanceChar(parser);\r\n state = skipSingleHTMLComment(parser, source, state, context, 3, startPos, startLine, startColumn);\r\n startPos = parser.tokenPos;\r\n startLine = parser.linePos;\r\n startColumn = parser.colPos;\r\n continue;\r\n }\r\n return 33619996;\r\n }\r\n if (ch === 61) {\r\n advanceChar(parser);\r\n return 4194339;\r\n }\r\n return 25233971;\r\n }\r\n case 8457016: {\r\n advanceChar(parser);\r\n if (parser.index < parser.end) {\r\n const ch = parser.currentChar;\r\n if (ch === 47) {\r\n advanceChar(parser);\r\n state = skipSingleLineComment(parser, source, state, 0, parser.tokenPos, parser.linePos, parser.colPos);\r\n startPos = parser.tokenPos;\r\n startLine = parser.linePos;\r\n startColumn = parser.colPos;\r\n continue;\r\n }\r\n if (ch === 42) {\r\n advanceChar(parser);\r\n state = skipMultiLineComment(parser, source, state);\r\n startPos = parser.tokenPos;\r\n startLine = parser.linePos;\r\n startColumn = parser.colPos;\r\n continue;\r\n }\r\n if (context & 32768) {\r\n return scanRegularExpression(parser, context);\r\n }\r\n if (ch === 61) {\r\n advanceChar(parser);\r\n return 4259877;\r\n }\r\n }\r\n return 8457016;\r\n }\r\n case 67108877:\r\n const next = advanceChar(parser);\r\n if (next >= 48 && next <= 57)\r\n return scanNumber(parser, context, 64 | 16);\r\n if (next === 46) {\r\n const index = parser.index + 1;\r\n if (index < parser.end && source.charCodeAt(index) === 46) {\r\n parser.column += 2;\r\n parser.currentChar = source.charCodeAt((parser.index += 2));\r\n return 14;\r\n }\r\n }\r\n return 67108877;\r\n case 8455240: {\r\n advanceChar(parser);\r\n const ch = parser.currentChar;\r\n if (ch === 124) {\r\n advanceChar(parser);\r\n if (parser.currentChar === 61) {\r\n advanceChar(parser);\r\n return 4194346;\r\n }\r\n return 8979003;\r\n }\r\n if (ch === 61) {\r\n advanceChar(parser);\r\n return 4194344;\r\n }\r\n return 8455240;\r\n }\r\n case 8456259: {\r\n advanceChar(parser);\r\n const ch = parser.currentChar;\r\n if (ch === 61) {\r\n advanceChar(parser);\r\n return 8456257;\r\n }\r\n if (ch !== 62)\r\n return 8456259;\r\n advanceChar(parser);\r\n if (parser.index < parser.end) {\r\n const ch = parser.currentChar;\r\n if (ch === 62) {\r\n if (advanceChar(parser) === 61) {\r\n advanceChar(parser);\r\n return 4194336;\r\n }\r\n return 8456518;\r\n }\r\n if (ch === 61) {\r\n advanceChar(parser);\r\n return 4194335;\r\n }\r\n }\r\n return 8456517;\r\n }\r\n case 8455751: {\r\n advanceChar(parser);\r\n const ch = parser.currentChar;\r\n if (ch === 38) {\r\n advanceChar(parser);\r\n if (parser.currentChar === 61) {\r\n advanceChar(parser);\r\n return 4194347;\r\n }\r\n return 8979258;\r\n }\r\n if (ch === 61) {\r\n advanceChar(parser);\r\n return 4194345;\r\n }\r\n return 8455751;\r\n }\r\n case 22: {\r\n let ch = advanceChar(parser);\r\n if (ch === 63) {\r\n advanceChar(parser);\r\n if (parser.currentChar === 61) {\r\n advanceChar(parser);\r\n return 4194348;\r\n }\r\n return 276889982;\r\n }\r\n if (ch === 46) {\r\n const index = parser.index + 1;\r\n if (index < parser.end) {\r\n ch = source.charCodeAt(index);\r\n if (!(ch >= 48 && ch <= 57)) {\r\n advanceChar(parser);\r\n return 67108991;\r\n }\r\n }\r\n }\r\n return 22;\r\n }\r\n }\r\n }\r\n else {\r\n if ((char ^ 8232) <= 1) {\r\n state = (state & ~4) | 1;\r\n scanNewLine(parser);\r\n continue;\r\n }\r\n if ((char & 0xfc00) === 0xd800 || ((unicodeLookup[(char >>> 5) + 34816] >>> char) & 31 & 1) !== 0) {\r\n if ((char & 0xfc00) === 0xdc00) {\r\n char = ((char & 0x3ff) << 10) | (char & 0x3ff) | 0x10000;\r\n if (((unicodeLookup[(char >>> 5) + 0] >>> char) & 31 & 1) === 0) {\r\n report(parser, 18, fromCodePoint(char));\r\n }\r\n parser.index++;\r\n parser.currentChar = char;\r\n }\r\n parser.column++;\r\n parser.tokenValue = '';\r\n return scanIdentifierSlowCase(parser, context, 0, 0);\r\n }\r\n if (isExoticECMAScriptWhitespace(char)) {\r\n advanceChar(parser);\r\n continue;\r\n }\r\n report(parser, 18, fromCodePoint(char));\r\n }\r\n }\r\n return 1048576;\r\n}\n\nconst entities = {\r\n AElig: '\\u00C6',\r\n AMP: '\\u0026',\r\n Aacute: '\\u00C1',\r\n Abreve: '\\u0102',\r\n Acirc: '\\u00C2',\r\n Acy: '\\u0410',\r\n Afr: '\\uD835\\uDD04',\r\n Agrave: '\\u00C0',\r\n Alpha: '\\u0391',\r\n Amacr: '\\u0100',\r\n And: '\\u2A53',\r\n Aogon: '\\u0104',\r\n Aopf: '\\uD835\\uDD38',\r\n ApplyFunction: '\\u2061',\r\n Aring: '\\u00C5',\r\n Ascr: '\\uD835\\uDC9C',\r\n Assign: '\\u2254',\r\n Atilde: '\\u00C3',\r\n Auml: '\\u00C4',\r\n Backslash: '\\u2216',\r\n Barv: '\\u2AE7',\r\n Barwed: '\\u2306',\r\n Bcy: '\\u0411',\r\n Because: '\\u2235',\r\n Bernoullis: '\\u212C',\r\n Beta: '\\u0392',\r\n Bfr: '\\uD835\\uDD05',\r\n Bopf: '\\uD835\\uDD39',\r\n Breve: '\\u02D8',\r\n Bscr: '\\u212C',\r\n Bumpeq: '\\u224E',\r\n CHcy: '\\u0427',\r\n COPY: '\\u00A9',\r\n Cacute: '\\u0106',\r\n Cap: '\\u22D2',\r\n CapitalDifferentialD: '\\u2145',\r\n Cayleys: '\\u212D',\r\n Ccaron: '\\u010C',\r\n Ccedil: '\\u00C7',\r\n Ccirc: '\\u0108',\r\n Cconint: '\\u2230',\r\n Cdot: '\\u010A',\r\n Cedilla: '\\u00B8',\r\n CenterDot: '\\u00B7',\r\n Cfr: '\\u212D',\r\n Chi: '\\u03A7',\r\n CircleDot: '\\u2299',\r\n CircleMinus: '\\u2296',\r\n CirclePlus: '\\u2295',\r\n CircleTimes: '\\u2297',\r\n ClockwiseContourIntegral: '\\u2232',\r\n CloseCurlyDoubleQuote: '\\u201D',\r\n CloseCurlyQuote: '\\u2019',\r\n Colon: '\\u2237',\r\n Colone: '\\u2A74',\r\n Congruent: '\\u2261',\r\n Conint: '\\u222F',\r\n ContourIntegral: '\\u222E',\r\n Copf: '\\u2102',\r\n Coproduct: '\\u2210',\r\n CounterClockwiseContourIntegral: '\\u2233',\r\n Cross: '\\u2A2F',\r\n Cscr: '\\uD835\\uDC9E',\r\n Cup: '\\u22D3',\r\n CupCap: '\\u224D',\r\n DD: '\\u2145',\r\n DDotrahd: '\\u2911',\r\n DJcy: '\\u0402',\r\n DScy: '\\u0405',\r\n DZcy: '\\u040F',\r\n Dagger: '\\u2021',\r\n Darr: '\\u21A1',\r\n Dashv: '\\u2AE4',\r\n Dcaron: '\\u010E',\r\n Dcy: '\\u0414',\r\n Del: '\\u2207',\r\n Delta: '\\u0394',\r\n Dfr: '\\uD835\\uDD07',\r\n DiacriticalAcute: '\\u00B4',\r\n DiacriticalDot: '\\u02D9',\r\n DiacriticalDoubleAcute: '\\u02DD',\r\n DiacriticalGrave: '\\u0060',\r\n DiacriticalTilde: '\\u02DC',\r\n Diamond: '\\u22C4',\r\n DifferentialD: '\\u2146',\r\n Dopf: '\\uD835\\uDD3B',\r\n Dot: '\\u00A8',\r\n DotDot: '\\u20DC',\r\n DotEqual: '\\u2250',\r\n DoubleContourIntegral: '\\u222F',\r\n DoubleDot: '\\u00A8',\r\n DoubleDownArrow: '\\u21D3',\r\n DoubleLeftArrow: '\\u21D0',\r\n DoubleLeftRightArrow: '\\u21D4',\r\n DoubleLeftTee: '\\u2AE4',\r\n DoubleLongLeftArrow: '\\u27F8',\r\n DoubleLongLeftRightArrow: '\\u27FA',\r\n DoubleLongRightArrow: '\\u27F9',\r\n DoubleRightArrow: '\\u21D2',\r\n DoubleRightTee: '\\u22A8',\r\n DoubleUpArrow: '\\u21D1',\r\n DoubleUpDownArrow: '\\u21D5',\r\n DoubleVerticalBar: '\\u2225',\r\n DownArrow: '\\u2193',\r\n DownArrowBar: '\\u2913',\r\n DownArrowUpArrow: '\\u21F5',\r\n DownBreve: '\\u0311',\r\n DownLeftRightVector: '\\u2950',\r\n DownLeftTeeVector: '\\u295E',\r\n DownLeftVector: '\\u21BD',\r\n DownLeftVectorBar: '\\u2956',\r\n DownRightTeeVector: '\\u295F',\r\n DownRightVector: '\\u21C1',\r\n DownRightVectorBar: '\\u2957',\r\n DownTee: '\\u22A4',\r\n DownTeeArrow: '\\u21A7',\r\n Downarrow: '\\u21D3',\r\n Dscr: '\\uD835\\uDC9F',\r\n Dstrok: '\\u0110',\r\n ENG: '\\u014A',\r\n ETH: '\\u00D0',\r\n Eacute: '\\u00C9',\r\n Ecaron: '\\u011A',\r\n Ecirc: '\\u00CA',\r\n Ecy: '\\u042D',\r\n Edot: '\\u0116',\r\n Efr: '\\uD835\\uDD08',\r\n Egrave: '\\u00C8',\r\n Element: '\\u2208',\r\n Emacr: '\\u0112',\r\n EmptySmallSquare: '\\u25FB',\r\n EmptyVerySmallSquare: '\\u25AB',\r\n Eogon: '\\u0118',\r\n Eopf: '\\uD835\\uDD3C',\r\n Epsilon: '\\u0395',\r\n Equal: '\\u2A75',\r\n EqualTilde: '\\u2242',\r\n Equilibrium: '\\u21CC',\r\n Escr: '\\u2130',\r\n Esim: '\\u2A73',\r\n Eta: '\\u0397',\r\n Euml: '\\u00CB',\r\n Exists: '\\u2203',\r\n ExponentialE: '\\u2147',\r\n Fcy: '\\u0424',\r\n Ffr: '\\uD835\\uDD09',\r\n FilledSmallSquare: '\\u25FC',\r\n FilledVerySmallSquare: '\\u25AA',\r\n Fopf: '\\uD835\\uDD3D',\r\n ForAll: '\\u2200',\r\n Fouriertrf: '\\u2131',\r\n Fscr: '\\u2131',\r\n GJcy: '\\u0403',\r\n GT: '\\u003E',\r\n Gamma: '\\u0393',\r\n Gammad: '\\u03DC',\r\n Gbreve: '\\u011E',\r\n Gcedil: '\\u0122',\r\n Gcirc: '\\u011C',\r\n Gcy: '\\u0413',\r\n Gdot: '\\u0120',\r\n Gfr: '\\uD835\\uDD0A',\r\n Gg: '\\u22D9',\r\n Gopf: '\\uD835\\uDD3E',\r\n GreaterEqual: '\\u2265',\r\n GreaterEqualLess: '\\u22DB',\r\n GreaterFullEqual: '\\u2267',\r\n GreaterGreater: '\\u2AA2',\r\n GreaterLess: '\\u2277',\r\n GreaterSlantEqual: '\\u2A7E',\r\n GreaterTilde: '\\u2273',\r\n Gscr: '\\uD835\\uDCA2',\r\n Gt: '\\u226B',\r\n HARDcy: '\\u042A',\r\n Hacek: '\\u02C7',\r\n Hat: '\\u005E',\r\n Hcirc: '\\u0124',\r\n Hfr: '\\u210C',\r\n HilbertSpace: '\\u210B',\r\n Hopf: '\\u210D',\r\n HorizontalLine: '\\u2500',\r\n Hscr: '\\u210B',\r\n Hstrok: '\\u0126',\r\n HumpDownHump: '\\u224E',\r\n HumpEqual: '\\u224F',\r\n IEcy: '\\u0415',\r\n IJlig: '\\u0132',\r\n IOcy: '\\u0401',\r\n Iacute: '\\u00CD',\r\n Icirc: '\\u00CE',\r\n Icy: '\\u0418',\r\n Idot: '\\u0130',\r\n Ifr: '\\u2111',\r\n Igrave: '\\u00CC',\r\n Im: '\\u2111',\r\n Imacr: '\\u012A',\r\n ImaginaryI: '\\u2148',\r\n Implies: '\\u21D2',\r\n Int: '\\u222C',\r\n Integral: '\\u222B',\r\n Intersection: '\\u22C2',\r\n InvisibleComma: '\\u2063',\r\n InvisibleTimes: '\\u2062',\r\n Iogon: '\\u012E',\r\n Iopf: '\\uD835\\uDD40',\r\n Iota: '\\u0399',\r\n Iscr: '\\u2110',\r\n Itilde: '\\u0128',\r\n Iukcy: '\\u0406',\r\n Iuml: '\\u00CF',\r\n Jcirc: '\\u0134',\r\n Jcy: '\\u0419',\r\n Jfr: '\\uD835\\uDD0D',\r\n Jopf: '\\uD835\\uDD41',\r\n Jscr: '\\uD835\\uDCA5',\r\n Jsercy: '\\u0408',\r\n Jukcy: '\\u0404',\r\n KHcy: '\\u0425',\r\n KJcy: '\\u040C',\r\n Kappa: '\\u039A',\r\n Kcedil: '\\u0136',\r\n Kcy: '\\u041A',\r\n Kfr: '\\uD835\\uDD0E',\r\n Kopf: '\\uD835\\uDD42',\r\n Kscr: '\\uD835\\uDCA6',\r\n LJcy: '\\u0409',\r\n LT: '\\u003C',\r\n Lacute: '\\u0139',\r\n Lambda: '\\u039B',\r\n Lang: '\\u27EA',\r\n Laplacetrf: '\\u2112',\r\n Larr: '\\u219E',\r\n Lcaron: '\\u013D',\r\n Lcedil: '\\u013B',\r\n Lcy: '\\u041B',\r\n LeftAngleBracket: '\\u27E8',\r\n LeftArrow: '\\u2190',\r\n LeftArrowBar: '\\u21E4',\r\n LeftArrowRightArrow: '\\u21C6',\r\n LeftCeiling: '\\u2308',\r\n LeftDoubleBracket: '\\u27E6',\r\n LeftDownTeeVector: '\\u2961',\r\n LeftDownVector: '\\u21C3',\r\n LeftDownVectorBar: '\\u2959',\r\n LeftFloor: '\\u230A',\r\n LeftRightArrow: '\\u2194',\r\n LeftRightVector: '\\u294E',\r\n LeftTee: '\\u22A3',\r\n LeftTeeArrow: '\\u21A4',\r\n LeftTeeVector: '\\u295A',\r\n LeftTriangle: '\\u22B2',\r\n LeftTriangleBar: '\\u29CF',\r\n LeftTriangleEqual: '\\u22B4',\r\n LeftUpDownVector: '\\u2951',\r\n LeftUpTeeVector: '\\u2960',\r\n LeftUpVector: '\\u21BF',\r\n LeftUpVectorBar: '\\u2958',\r\n LeftVector: '\\u21BC',\r\n LeftVectorBar: '\\u2952',\r\n Leftarrow: '\\u21D0',\r\n Leftrightarrow: '\\u21D4',\r\n LessEqualGreater: '\\u22DA',\r\n LessFullEqual: '\\u2266',\r\n LessGreater: '\\u2276',\r\n LessLess: '\\u2AA1',\r\n LessSlantEqual: '\\u2A7D',\r\n LessTilde: '\\u2272',\r\n Lfr: '\\uD835\\uDD0F',\r\n Ll: '\\u22D8',\r\n Lleftarrow: '\\u21DA',\r\n Lmidot: '\\u013F',\r\n LongLeftArrow: '\\u27F5',\r\n LongLeftRightArrow: '\\u27F7',\r\n LongRightArrow: '\\u27F6',\r\n Longleftarrow: '\\u27F8',\r\n Longleftrightarrow: '\\u27FA',\r\n Longrightarrow: '\\u27F9',\r\n Lopf: '\\uD835\\uDD43',\r\n LowerLeftArrow: '\\u2199',\r\n LowerRightArrow: '\\u2198',\r\n Lscr: '\\u2112',\r\n Lsh: '\\u21B0',\r\n Lstrok: '\\u0141',\r\n Lt: '\\u226A',\r\n Map: '\\u2905',\r\n Mcy: '\\u041C',\r\n MediumSpace: '\\u205F',\r\n Mellintrf: '\\u2133',\r\n Mfr: '\\uD835\\uDD10',\r\n MinusPlus: '\\u2213',\r\n Mopf: '\\uD835\\uDD44',\r\n Mscr: '\\u2133',\r\n Mu: '\\u039C',\r\n NJcy: '\\u040A',\r\n Nacute: '\\u0143',\r\n Ncaron: '\\u0147',\r\n Ncedil: '\\u0145',\r\n Ncy: '\\u041D',\r\n NegativeMediumSpace: '\\u200B',\r\n NegativeThickSpace: '\\u200B',\r\n NegativeThinSpace: '\\u200B',\r\n NegativeVeryThinSpace: '\\u200B',\r\n NestedGreaterGreater: '\\u226B',\r\n NestedLessLess: '\\u226A',\r\n NewLine: '\\u000A',\r\n Nfr: '\\uD835\\uDD11',\r\n NoBreak: '\\u2060',\r\n NonBreakingSpace: '\\u00A0',\r\n Nopf: '\\u2115',\r\n Not: '\\u2AEC',\r\n NotCongruent: '\\u2262',\r\n NotCupCap: '\\u226D',\r\n NotDoubleVerticalBar: '\\u2226',\r\n NotElement: '\\u2209',\r\n NotEqual: '\\u2260',\r\n NotEqualTilde: '\\u2242\\u0338',\r\n NotExists: '\\u2204',\r\n NotGreater: '\\u226F',\r\n NotGreaterEqual: '\\u2271',\r\n NotGreaterFullEqual: '\\u2267\\u0338',\r\n NotGreaterGreater: '\\u226B\\u0338',\r\n NotGreaterLess: '\\u2279',\r\n NotGreaterSlantEqual: '\\u2A7E\\u0338',\r\n NotGreaterTilde: '\\u2275',\r\n NotHumpDownHump: '\\u224E\\u0338',\r\n NotHumpEqual: '\\u224F\\u0338',\r\n NotLeftTriangle: '\\u22EA',\r\n NotLeftTriangleBar: '\\u29CF\\u0338',\r\n NotLeftTriangleEqual: '\\u22EC',\r\n NotLess: '\\u226E',\r\n NotLessEqual: '\\u2270',\r\n NotLessGreater: '\\u2278',\r\n NotLessLess: '\\u226A\\u0338',\r\n NotLessSlantEqual: '\\u2A7D\\u0338',\r\n NotLessTilde: '\\u2274',\r\n NotNestedGreaterGreater: '\\u2AA2\\u0338',\r\n NotNestedLessLess: '\\u2AA1\\u0338',\r\n NotPrecedes: '\\u2280',\r\n NotPrecedesEqual: '\\u2AAF\\u0338',\r\n NotPrecedesSlantEqual: '\\u22E0',\r\n NotReverseElement: '\\u220C',\r\n NotRightTriangle: '\\u22EB',\r\n NotRightTriangleBar: '\\u29D0\\u0338',\r\n NotRightTriangleEqual: '\\u22ED',\r\n NotSquareSubset: '\\u228F\\u0338',\r\n NotSquareSubsetEqual: '\\u22E2',\r\n NotSquareSuperset: '\\u2290\\u0338',\r\n NotSquareSupersetEqual: '\\u22E3',\r\n NotSubset: '\\u2282\\u20D2',\r\n NotSubsetEqual: '\\u2288',\r\n NotSucceeds: '\\u2281',\r\n NotSucceedsEqual: '\\u2AB0\\u0338',\r\n NotSucceedsSlantEqual: '\\u22E1',\r\n NotSucceedsTilde: '\\u227F\\u0338',\r\n NotSuperset: '\\u2283\\u20D2',\r\n NotSupersetEqual: '\\u2289',\r\n NotTilde: '\\u2241',\r\n NotTildeEqual: '\\u2244',\r\n NotTildeFullEqual: '\\u2247',\r\n NotTildeTilde: '\\u2249',\r\n NotVerticalBar: '\\u2224',\r\n Nscr: '\\uD835\\uDCA9',\r\n Ntilde: '\\u00D1',\r\n Nu: '\\u039D',\r\n OElig: '\\u0152',\r\n Oacute: '\\u00D3',\r\n Ocirc: '\\u00D4',\r\n Ocy: '\\u041E',\r\n Odblac: '\\u0150',\r\n Ofr: '\\uD835\\uDD12',\r\n Ograve: '\\u00D2',\r\n Omacr: '\\u014C',\r\n Omega: '\\u03A9',\r\n Omicron: '\\u039F',\r\n Oopf: '\\uD835\\uDD46',\r\n OpenCurlyDoubleQuote: '\\u201C',\r\n OpenCurlyQuote: '\\u2018',\r\n Or: '\\u2A54',\r\n Oscr: '\\uD835\\uDCAA',\r\n Oslash: '\\u00D8',\r\n Otilde: '\\u00D5',\r\n Otimes: '\\u2A37',\r\n Ouml: '\\u00D6',\r\n OverBar: '\\u203E',\r\n OverBrace: '\\u23DE',\r\n OverBracket: '\\u23B4',\r\n OverParenthesis: '\\u23DC',\r\n PartialD: '\\u2202',\r\n Pcy: '\\u041F',\r\n Pfr: '\\uD835\\uDD13',\r\n Phi: '\\u03A6',\r\n Pi: '\\u03A0',\r\n PlusMinus: '\\u00B1',\r\n Poincareplane: '\\u210C',\r\n Popf: '\\u2119',\r\n Pr: '\\u2ABB',\r\n Precedes: '\\u227A',\r\n PrecedesEqual: '\\u2AAF',\r\n PrecedesSlantEqual: '\\u227C',\r\n PrecedesTilde: '\\u227E',\r\n Prime: '\\u2033',\r\n Product: '\\u220F',\r\n Proportion: '\\u2237',\r\n Proportional: '\\u221D',\r\n Pscr: '\\uD835\\uDCAB',\r\n Psi: '\\u03A8',\r\n QUOT: '\\u0022',\r\n Qfr: '\\uD835\\uDD14',\r\n Qopf: '\\u211A',\r\n Qscr: '\\uD835\\uDCAC',\r\n RBarr: '\\u2910',\r\n REG: '\\u00AE',\r\n Racute: '\\u0154',\r\n Rang: '\\u27EB',\r\n Rarr: '\\u21A0',\r\n Rarrtl: '\\u2916',\r\n Rcaron: '\\u0158',\r\n Rcedil: '\\u0156',\r\n Rcy: '\\u0420',\r\n Re: '\\u211C',\r\n ReverseElement: '\\u220B',\r\n ReverseEquilibrium: '\\u21CB',\r\n ReverseUpEquilibrium: '\\u296F',\r\n Rfr: '\\u211C',\r\n Rho: '\\u03A1',\r\n RightAngleBracket: '\\u27E9',\r\n RightArrow: '\\u2192',\r\n RightArrowBar: '\\u21E5',\r\n RightArrowLeftArrow: '\\u21C4',\r\n RightCeiling: '\\u2309',\r\n RightDoubleBracket: '\\u27E7',\r\n RightDownTeeVector: '\\u295D',\r\n RightDownVector: '\\u21C2',\r\n RightDownVectorBar: '\\u2955',\r\n RightFloor: '\\u230B',\r\n RightTee: '\\u22A2',\r\n RightTeeArrow: '\\u21A6',\r\n RightTeeVector: '\\u295B',\r\n RightTriangle: '\\u22B3',\r\n RightTriangleBar: '\\u29D0',\r\n RightTriangleEqual: '\\u22B5',\r\n RightUpDownVector: '\\u294F',\r\n RightUpTeeVector: '\\u295C',\r\n RightUpVector: '\\u21BE',\r\n RightUpVectorBar: '\\u2954',\r\n RightVector: '\\u21C0',\r\n RightVectorBar: '\\u2953',\r\n Rightarrow: '\\u21D2',\r\n Ropf: '\\u211D',\r\n RoundImplies: '\\u2970',\r\n Rrightarrow: '\\u21DB',\r\n Rscr: '\\u211B',\r\n Rsh: '\\u21B1',\r\n RuleDelayed: '\\u29F4',\r\n SHCHcy: '\\u0429',\r\n SHcy: '\\u0428',\r\n SOFTcy: '\\u042C',\r\n Sacute: '\\u015A',\r\n Sc: '\\u2ABC',\r\n Scaron: '\\u0160',\r\n Scedil: '\\u015E',\r\n Scirc: '\\u015C',\r\n Scy: '\\u0421',\r\n Sfr: '\\uD835\\uDD16',\r\n ShortDownArrow: '\\u2193',\r\n ShortLeftArrow: '\\u2190',\r\n ShortRightArrow: '\\u2192',\r\n ShortUpArrow: '\\u2191',\r\n Sigma: '\\u03A3',\r\n SmallCircle: '\\u2218',\r\n Sopf: '\\uD835\\uDD4A',\r\n Sqrt: '\\u221A',\r\n Square: '\\u25A1',\r\n SquareIntersection: '\\u2293',\r\n SquareSubset: '\\u228F',\r\n SquareSubsetEqual: '\\u2291',\r\n SquareSuperset: '\\u2290',\r\n SquareSupersetEqual: '\\u2292',\r\n SquareUnion: '\\u2294',\r\n Sscr: '\\uD835\\uDCAE',\r\n Star: '\\u22C6',\r\n Sub: '\\u22D0',\r\n Subset: '\\u22D0',\r\n SubsetEqual: '\\u2286',\r\n Succeeds: '\\u227B',\r\n SucceedsEqual: '\\u2AB0',\r\n SucceedsSlantEqual: '\\u227D',\r\n SucceedsTilde: '\\u227F',\r\n SuchThat: '\\u220B',\r\n Sum: '\\u2211',\r\n Sup: '\\u22D1',\r\n Superset: '\\u2283',\r\n SupersetEqual: '\\u2287',\r\n Supset: '\\u22D1',\r\n THORN: '\\u00DE',\r\n TRADE: '\\u2122',\r\n TSHcy: '\\u040B',\r\n TScy: '\\u0426',\r\n Tab: '\\u0009',\r\n Tau: '\\u03A4',\r\n Tcaron: '\\u0164',\r\n Tcedil: '\\u0162',\r\n Tcy: '\\u0422',\r\n Tfr: '\\uD835\\uDD17',\r\n Therefore: '\\u2234',\r\n Theta: '\\u0398',\r\n ThickSpace: '\\u205F\\u200A',\r\n ThinSpace: '\\u2009',\r\n Tilde: '\\u223C',\r\n TildeEqual: '\\u2243',\r\n TildeFullEqual: '\\u2245',\r\n TildeTilde: '\\u2248',\r\n Topf: '\\uD835\\uDD4B',\r\n TripleDot: '\\u20DB',\r\n Tscr: '\\uD835\\uDCAF',\r\n Tstrok: '\\u0166',\r\n Uacute: '\\u00DA',\r\n Uarr: '\\u219F',\r\n Uarrocir: '\\u2949',\r\n Ubrcy: '\\u040E',\r\n Ubreve: '\\u016C',\r\n Ucirc: '\\u00DB',\r\n Ucy: '\\u0423',\r\n Udblac: '\\u0170',\r\n Ufr: '\\uD835\\uDD18',\r\n Ugrave: '\\u00D9',\r\n Umacr: '\\u016A',\r\n UnderBar: '\\u005F',\r\n UnderBrace: '\\u23DF',\r\n UnderBracket: '\\u23B5',\r\n UnderParenthesis: '\\u23DD',\r\n Union: '\\u22C3',\r\n UnionPlus: '\\u228E',\r\n Uogon: '\\u0172',\r\n Uopf: '\\uD835\\uDD4C',\r\n UpArrow: '\\u2191',\r\n UpArrowBar: '\\u2912',\r\n UpArrowDownArrow: '\\u21C5',\r\n UpDownArrow: '\\u2195',\r\n UpEquilibrium: '\\u296E',\r\n UpTee: '\\u22A5',\r\n UpTeeArrow: '\\u21A5',\r\n Uparrow: '\\u21D1',\r\n Updownarrow: '\\u21D5',\r\n UpperLeftArrow: '\\u2196',\r\n UpperRightArrow: '\\u2197',\r\n Upsi: '\\u03D2',\r\n Upsilon: '\\u03A5',\r\n Uring: '\\u016E',\r\n Uscr: '\\uD835\\uDCB0',\r\n Utilde: '\\u0168',\r\n Uuml: '\\u00DC',\r\n VDash: '\\u22AB',\r\n Vbar: '\\u2AEB',\r\n Vcy: '\\u0412',\r\n Vdash: '\\u22A9',\r\n Vdashl: '\\u2AE6',\r\n Vee: '\\u22C1',\r\n Verbar: '\\u2016',\r\n Vert: '\\u2016',\r\n VerticalBar: '\\u2223',\r\n VerticalLine: '\\u007C',\r\n VerticalSeparator: '\\u2758',\r\n VerticalTilde: '\\u2240',\r\n VeryThinSpace: '\\u200A',\r\n Vfr: '\\uD835\\uDD19',\r\n Vopf: '\\uD835\\uDD4D',\r\n Vscr: '\\uD835\\uDCB1',\r\n Vvdash: '\\u22AA',\r\n Wcirc: '\\u0174',\r\n Wedge: '\\u22C0',\r\n Wfr: '\\uD835\\uDD1A',\r\n Wopf: '\\uD835\\uDD4E',\r\n Wscr: '\\uD835\\uDCB2',\r\n Xfr: '\\uD835\\uDD1B',\r\n Xi: '\\u039E',\r\n Xopf: '\\uD835\\uDD4F',\r\n Xscr: '\\uD835\\uDCB3',\r\n YAcy: '\\u042F',\r\n YIcy: '\\u0407',\r\n YUcy: '\\u042E',\r\n Yacute: '\\u00DD',\r\n Ycirc: '\\u0176',\r\n Ycy: '\\u042B',\r\n Yfr: '\\uD835\\uDD1C',\r\n Yopf: '\\uD835\\uDD50',\r\n Yscr: '\\uD835\\uDCB4',\r\n Yuml: '\\u0178',\r\n ZHcy: '\\u0416',\r\n Zacute: '\\u0179',\r\n Zcaron: '\\u017D',\r\n Zcy: '\\u0417',\r\n Zdot: '\\u017B',\r\n ZeroWidthSpace: '\\u200B',\r\n Zeta: '\\u0396',\r\n Zfr: '\\u2128',\r\n Zopf: '\\u2124',\r\n Zscr: '\\uD835\\uDCB5',\r\n aacute: '\\u00E1',\r\n abreve: '\\u0103',\r\n ac: '\\u223E',\r\n acE: '\\u223E\\u0333',\r\n acd: '\\u223F',\r\n acirc: '\\u00E2',\r\n acute: '\\u00B4',\r\n acy: '\\u0430',\r\n aelig: '\\u00E6',\r\n af: '\\u2061',\r\n afr: '\\uD835\\uDD1E',\r\n agrave: '\\u00E0',\r\n alefsym: '\\u2135',\r\n aleph: '\\u2135',\r\n alpha: '\\u03B1',\r\n amacr: '\\u0101',\r\n amalg: '\\u2A3F',\r\n amp: '\\u0026',\r\n and: '\\u2227',\r\n andand: '\\u2A55',\r\n andd: '\\u2A5C',\r\n andslope: '\\u2A58',\r\n andv: '\\u2A5A',\r\n ang: '\\u2220',\r\n ange: '\\u29A4',\r\n angle: '\\u2220',\r\n angmsd: '\\u2221',\r\n angmsdaa: '\\u29A8',\r\n angmsdab: '\\u29A9',\r\n angmsdac: '\\u29AA',\r\n angmsdad: '\\u29AB',\r\n angmsdae: '\\u29AC',\r\n angmsdaf: '\\u29AD',\r\n angmsdag: '\\u29AE',\r\n angmsdah: '\\u29AF',\r\n angrt: '\\u221F',\r\n angrtvb: '\\u22BE',\r\n angrtvbd: '\\u299D',\r\n angsph: '\\u2222',\r\n angst: '\\u00C5',\r\n angzarr: '\\u237C',\r\n aogon: '\\u0105',\r\n aopf: '\\uD835\\uDD52',\r\n ap: '\\u2248',\r\n apE: '\\u2A70',\r\n apacir: '\\u2A6F',\r\n ape: '\\u224A',\r\n apid: '\\u224B',\r\n apos: '\\u0027',\r\n approx: '\\u2248',\r\n approxeq: '\\u224A',\r\n aring: '\\u00E5',\r\n ascr: '\\uD835\\uDCB6',\r\n ast: '\\u002A',\r\n asymp: '\\u2248',\r\n asympeq: '\\u224D',\r\n atilde: '\\u00E3',\r\n auml: '\\u00E4',\r\n awconint: '\\u2233',\r\n awint: '\\u2A11',\r\n bNot: '\\u2AED',\r\n backcong: '\\u224C',\r\n backepsilon: '\\u03F6',\r\n backprime: '\\u2035',\r\n backsim: '\\u223D',\r\n backsimeq: '\\u22CD',\r\n barvee: '\\u22BD',\r\n barwed: '\\u2305',\r\n barwedge: '\\u2305',\r\n bbrk: '\\u23B5',\r\n bbrktbrk: '\\u23B6',\r\n bcong: '\\u224C',\r\n bcy: '\\u0431',\r\n bdquo: '\\u201E',\r\n becaus: '\\u2235',\r\n because: '\\u2235',\r\n bemptyv: '\\u29B0',\r\n bepsi: '\\u03F6',\r\n bernou: '\\u212C',\r\n beta: '\\u03B2',\r\n beth: '\\u2136',\r\n between: '\\u226C',\r\n bfr: '\\uD835\\uDD1F',\r\n bigcap: '\\u22C2',\r\n bigcirc: '\\u25EF',\r\n bigcup: '\\u22C3',\r\n bigodot: '\\u2A00',\r\n bigoplus: '\\u2A01',\r\n bigotimes: '\\u2A02',\r\n bigsqcup: '\\u2A06',\r\n bigstar: '\\u2605',\r\n bigtriangledown: '\\u25BD',\r\n bigtriangleup: '\\u25B3',\r\n biguplus: '\\u2A04',\r\n bigvee: '\\u22C1',\r\n bigwedge: '\\u22C0',\r\n bkarow: '\\u290D',\r\n blacklozenge: '\\u29EB',\r\n blacksquare: '\\u25AA',\r\n blacktriangle: '\\u25B4',\r\n blacktriangledown: '\\u25BE',\r\n blacktriangleleft: '\\u25C2',\r\n blacktriangleright: '\\u25B8',\r\n blank: '\\u2423',\r\n blk12: '\\u2592',\r\n blk14: '\\u2591',\r\n blk34: '\\u2593',\r\n block: '\\u2588',\r\n bne: '\\u003D\\u20E5',\r\n bnequiv: '\\u2261\\u20E5',\r\n bnot: '\\u2310',\r\n bopf: '\\uD835\\uDD53',\r\n bot: '\\u22A5',\r\n bottom: '\\u22A5',\r\n bowtie: '\\u22C8',\r\n boxDL: '\\u2557',\r\n boxDR: '\\u2554',\r\n boxDl: '\\u2556',\r\n boxDr: '\\u2553',\r\n boxH: '\\u2550',\r\n boxHD: '\\u2566',\r\n boxHU: '\\u2569',\r\n boxHd: '\\u2564',\r\n boxHu: '\\u2567',\r\n boxUL: '\\u255D',\r\n boxUR: '\\u255A',\r\n boxUl: '\\u255C',\r\n boxUr: '\\u2559',\r\n boxV: '\\u2551',\r\n boxVH: '\\u256C',\r\n boxVL: '\\u2563',\r\n boxVR: '\\u2560',\r\n boxVh: '\\u256B',\r\n boxVl: '\\u2562',\r\n boxVr: '\\u255F',\r\n boxbox: '\\u29C9',\r\n boxdL: '\\u2555',\r\n boxdR: '\\u2552',\r\n boxdl: '\\u2510',\r\n boxdr: '\\u250C',\r\n boxh: '\\u2500',\r\n boxhD: '\\u2565',\r\n boxhU: '\\u2568',\r\n boxhd: '\\u252C',\r\n boxhu: '\\u2534',\r\n boxminus: '\\u229F',\r\n boxplus: '\\u229E',\r\n boxtimes: '\\u22A0',\r\n boxuL: '\\u255B',\r\n boxuR: '\\u2558',\r\n boxul: '\\u2518',\r\n boxur: '\\u2514',\r\n boxv: '\\u2502',\r\n boxvH: '\\u256A',\r\n boxvL: '\\u2561',\r\n boxvR: '\\u255E',\r\n boxvh: '\\u253C',\r\n boxvl: '\\u2524',\r\n boxvr: '\\u251C',\r\n bprime: '\\u2035',\r\n breve: '\\u02D8',\r\n brvbar: '\\u00A6',\r\n bscr: '\\uD835\\uDCB7',\r\n bsemi: '\\u204F',\r\n bsim: '\\u223D',\r\n bsime: '\\u22CD',\r\n bsol: '\\u005C',\r\n bsolb: '\\u29C5',\r\n bsolhsub: '\\u27C8',\r\n bull: '\\u2022',\r\n bullet: '\\u2022',\r\n bump: '\\u224E',\r\n bumpE: '\\u2AAE',\r\n bumpe: '\\u224F',\r\n bumpeq: '\\u224F',\r\n cacute: '\\u0107',\r\n cap: '\\u2229',\r\n capand: '\\u2A44',\r\n capbrcup: '\\u2A49',\r\n capcap: '\\u2A4B',\r\n capcup: '\\u2A47',\r\n capdot: '\\u2A40',\r\n caps: '\\u2229\\uFE00',\r\n caret: '\\u2041',\r\n caron: '\\u02C7',\r\n ccaps: '\\u2A4D',\r\n ccaron: '\\u010D',\r\n ccedil: '\\u00E7',\r\n ccirc: '\\u0109',\r\n ccups: '\\u2A4C',\r\n ccupssm: '\\u2A50',\r\n cdot: '\\u010B',\r\n cedil: '\\u00B8',\r\n cemptyv: '\\u29B2',\r\n cent: '\\u00A2',\r\n centerdot: '\\u00B7',\r\n cfr: '\\uD835\\uDD20',\r\n chcy: '\\u0447',\r\n check: '\\u2713',\r\n checkmark: '\\u2713',\r\n chi: '\\u03C7',\r\n cir: '\\u25CB',\r\n cirE: '\\u29C3',\r\n circ: '\\u02C6',\r\n circeq: '\\u2257',\r\n circlearrowleft: '\\u21BA',\r\n circlearrowright: '\\u21BB',\r\n circledR: '\\u00AE',\r\n circledS: '\\u24C8',\r\n circledast: '\\u229B',\r\n circledcirc: '\\u229A',\r\n circleddash: '\\u229D',\r\n cire: '\\u2257',\r\n cirfnint: '\\u2A10',\r\n cirmid: '\\u2AEF',\r\n cirscir: '\\u29C2',\r\n clubs: '\\u2663',\r\n clubsuit: '\\u2663',\r\n colon: '\\u003A',\r\n colone: '\\u2254',\r\n coloneq: '\\u2254',\r\n comma: '\\u002C',\r\n commat: '\\u0040',\r\n comp: '\\u2201',\r\n compfn: '\\u2218',\r\n complement: '\\u2201',\r\n complexes: '\\u2102',\r\n cong: '\\u2245',\r\n congdot: '\\u2A6D',\r\n conint: '\\u222E',\r\n copf: '\\uD835\\uDD54',\r\n coprod: '\\u2210',\r\n copy: '\\u00A9',\r\n copysr: '\\u2117',\r\n crarr: '\\u21B5',\r\n cross: '\\u2717',\r\n cscr: '\\uD835\\uDCB8',\r\n csub: '\\u2ACF',\r\n csube: '\\u2AD1',\r\n csup: '\\u2AD0',\r\n csupe: '\\u2AD2',\r\n ctdot: '\\u22EF',\r\n cudarrl: '\\u2938',\r\n cudarrr: '\\u2935',\r\n cuepr: '\\u22DE',\r\n cuesc: '\\u22DF',\r\n cularr: '\\u21B6',\r\n cularrp: '\\u293D',\r\n cup: '\\u222A',\r\n cupbrcap: '\\u2A48',\r\n cupcap: '\\u2A46',\r\n cupcup: '\\u2A4A',\r\n cupdot: '\\u228D',\r\n cupor: '\\u2A45',\r\n cups: '\\u222A\\uFE00',\r\n curarr: '\\u21B7',\r\n curarrm: '\\u293C',\r\n curlyeqprec: '\\u22DE',\r\n curlyeqsucc: '\\u22DF',\r\n curlyvee: '\\u22CE',\r\n curlywedge: '\\u22CF',\r\n curren: '\\u00A4',\r\n curvearrowleft: '\\u21B6',\r\n curvearrowright: '\\u21B7',\r\n cuvee: '\\u22CE',\r\n cuwed: '\\u22CF',\r\n cwconint: '\\u2232',\r\n cwint: '\\u2231',\r\n cylcty: '\\u232D',\r\n dArr: '\\u21D3',\r\n dHar: '\\u2965',\r\n dagger: '\\u2020',\r\n daleth: '\\u2138',\r\n darr: '\\u2193',\r\n dash: '\\u2010',\r\n dashv: '\\u22A3',\r\n dbkarow: '\\u290F',\r\n dblac: '\\u02DD',\r\n dcaron: '\\u010F',\r\n dcy: '\\u0434',\r\n dd: '\\u2146',\r\n ddagger: '\\u2021',\r\n ddarr: '\\u21CA',\r\n ddotseq: '\\u2A77',\r\n deg: '\\u00B0',\r\n delta: '\\u03B4',\r\n demptyv: '\\u29B1',\r\n dfisht: '\\u297F',\r\n dfr: '\\uD835\\uDD21',\r\n dharl: '\\u21C3',\r\n dharr: '\\u21C2',\r\n diam: '\\u22C4',\r\n diamond: '\\u22C4',\r\n diamondsuit: '\\u2666',\r\n diams: '\\u2666',\r\n die: '\\u00A8',\r\n digamma: '\\u03DD',\r\n disin: '\\u22F2',\r\n div: '\\u00F7',\r\n divide: '\\u00F7',\r\n divideontimes: '\\u22C7',\r\n divonx: '\\u22C7',\r\n djcy: '\\u0452',\r\n dlcorn: '\\u231E',\r\n dlcrop: '\\u230D',\r\n dollar: '\\u0024',\r\n dopf: '\\uD835\\uDD55',\r\n dot: '\\u02D9',\r\n doteq: '\\u2250',\r\n doteqdot: '\\u2251',\r\n dotminus: '\\u2238',\r\n dotplus: '\\u2214',\r\n dotsquare: '\\u22A1',\r\n doublebarwedge: '\\u2306',\r\n downarrow: '\\u2193',\r\n downdownarrows: '\\u21CA',\r\n downharpoonleft: '\\u21C3',\r\n downharpoonright: '\\u21C2',\r\n drbkarow: '\\u2910',\r\n drcorn: '\\u231F',\r\n drcrop: '\\u230C',\r\n dscr: '\\uD835\\uDCB9',\r\n dscy: '\\u0455',\r\n dsol: '\\u29F6',\r\n dstrok: '\\u0111',\r\n dtdot: '\\u22F1',\r\n dtri: '\\u25BF',\r\n dtrif: '\\u25BE',\r\n duarr: '\\u21F5',\r\n duhar: '\\u296F',\r\n dwangle: '\\u29A6',\r\n dzcy: '\\u045F',\r\n dzigrarr: '\\u27FF',\r\n eDDot: '\\u2A77',\r\n eDot: '\\u2251',\r\n eacute: '\\u00E9',\r\n easter: '\\u2A6E',\r\n ecaron: '\\u011B',\r\n ecir: '\\u2256',\r\n ecirc: '\\u00EA',\r\n ecolon: '\\u2255',\r\n ecy: '\\u044D',\r\n edot: '\\u0117',\r\n ee: '\\u2147',\r\n efDot: '\\u2252',\r\n efr: '\\uD835\\uDD22',\r\n eg: '\\u2A9A',\r\n egrave: '\\u00E8',\r\n egs: '\\u2A96',\r\n egsdot: '\\u2A98',\r\n el: '\\u2A99',\r\n elinters: '\\u23E7',\r\n ell: '\\u2113',\r\n els: '\\u2A95',\r\n elsdot: '\\u2A97',\r\n emacr: '\\u0113',\r\n empty: '\\u2205',\r\n emptyset: '\\u2205',\r\n emptyv: '\\u2205',\r\n emsp13: '\\u2004',\r\n emsp14: '\\u2005',\r\n emsp: '\\u2003',\r\n eng: '\\u014B',\r\n ensp: '\\u2002',\r\n eogon: '\\u0119',\r\n eopf: '\\uD835\\uDD56',\r\n epar: '\\u22D5',\r\n eparsl: '\\u29E3',\r\n eplus: '\\u2A71',\r\n epsi: '\\u03B5',\r\n epsilon: '\\u03B5',\r\n epsiv: '\\u03F5',\r\n eqcirc: '\\u2256',\r\n eqcolon: '\\u2255',\r\n eqsim: '\\u2242',\r\n eqslantgtr: '\\u2A96',\r\n eqslantless: '\\u2A95',\r\n equals: '\\u003D',\r\n equest: '\\u225F',\r\n equiv: '\\u2261',\r\n equivDD: '\\u2A78',\r\n eqvparsl: '\\u29E5',\r\n erDot: '\\u2253',\r\n erarr: '\\u2971',\r\n escr: '\\u212F',\r\n esdot: '\\u2250',\r\n esim: '\\u2242',\r\n eta: '\\u03B7',\r\n eth: '\\u00F0',\r\n euml: '\\u00EB',\r\n euro: '\\u20AC',\r\n excl: '\\u0021',\r\n exist: '\\u2203',\r\n expectation: '\\u2130',\r\n exponentiale: '\\u2147',\r\n fallingdotseq: '\\u2252',\r\n fcy: '\\u0444',\r\n female: '\\u2640',\r\n ffilig: '\\uFB03',\r\n fflig: '\\uFB00',\r\n ffllig: '\\uFB04',\r\n ffr: '\\uD835\\uDD23',\r\n filig: '\\uFB01',\r\n fjlig: '\\u0066\\u006A',\r\n flat: '\\u266D',\r\n fllig: '\\uFB02',\r\n fltns: '\\u25B1',\r\n fnof: '\\u0192',\r\n fopf: '\\uD835\\uDD57',\r\n forall: '\\u2200',\r\n fork: '\\u22D4',\r\n forkv: '\\u2AD9',\r\n fpartint: '\\u2A0D',\r\n frac12: '\\u00BD',\r\n frac13: '\\u2153',\r\n frac14: '\\u00BC',\r\n frac15: '\\u2155',\r\n frac16: '\\u2159',\r\n frac18: '\\u215B',\r\n frac23: '\\u2154',\r\n frac25: '\\u2156',\r\n frac34: '\\u00BE',\r\n frac35: '\\u2157',\r\n frac38: '\\u215C',\r\n frac45: '\\u2158',\r\n frac56: '\\u215A',\r\n frac58: '\\u215D',\r\n frac78: '\\u215E',\r\n frasl: '\\u2044',\r\n frown: '\\u2322',\r\n fscr: '\\uD835\\uDCBB',\r\n gE: '\\u2267',\r\n gEl: '\\u2A8C',\r\n gacute: '\\u01F5',\r\n gamma: '\\u03B3',\r\n gammad: '\\u03DD',\r\n gap: '\\u2A86',\r\n gbreve: '\\u011F',\r\n gcirc: '\\u011D',\r\n gcy: '\\u0433',\r\n gdot: '\\u0121',\r\n ge: '\\u2265',\r\n gel: '\\u22DB',\r\n geq: '\\u2265',\r\n geqq: '\\u2267',\r\n geqslant: '\\u2A7E',\r\n ges: '\\u2A7E',\r\n gescc: '\\u2AA9',\r\n gesdot: '\\u2A80',\r\n gesdoto: '\\u2A82',\r\n gesdotol: '\\u2A84',\r\n gesl: '\\u22DB\\uFE00',\r\n gesles: '\\u2A94',\r\n gfr: '\\uD835\\uDD24',\r\n gg: '\\u226B',\r\n ggg: '\\u22D9',\r\n gimel: '\\u2137',\r\n gjcy: '\\u0453',\r\n gl: '\\u2277',\r\n glE: '\\u2A92',\r\n gla: '\\u2AA5',\r\n glj: '\\u2AA4',\r\n gnE: '\\u2269',\r\n gnap: '\\u2A8A',\r\n gnapprox: '\\u2A8A',\r\n gne: '\\u2A88',\r\n gneq: '\\u2A88',\r\n gneqq: '\\u2269',\r\n gnsim: '\\u22E7',\r\n gopf: '\\uD835\\uDD58',\r\n grave: '\\u0060',\r\n gscr: '\\u210A',\r\n gsim: '\\u2273',\r\n gsime: '\\u2A8E',\r\n gsiml: '\\u2A90',\r\n gt: '\\u003E',\r\n gtcc: '\\u2AA7',\r\n gtcir: '\\u2A7A',\r\n gtdot: '\\u22D7',\r\n gtlPar: '\\u2995',\r\n gtquest: '\\u2A7C',\r\n gtrapprox: '\\u2A86',\r\n gtrarr: '\\u2978',\r\n gtrdot: '\\u22D7',\r\n gtreqless: '\\u22DB',\r\n gtreqqless: '\\u2A8C',\r\n gtrless: '\\u2277',\r\n gtrsim: '\\u2273',\r\n gvertneqq: '\\u2269\\uFE00',\r\n gvnE: '\\u2269\\uFE00',\r\n hArr: '\\u21D4',\r\n hairsp: '\\u200A',\r\n half: '\\u00BD',\r\n hamilt: '\\u210B',\r\n hardcy: '\\u044A',\r\n harr: '\\u2194',\r\n harrcir: '\\u2948',\r\n harrw: '\\u21AD',\r\n hbar: '\\u210F',\r\n hcirc: '\\u0125',\r\n hearts: '\\u2665',\r\n heartsuit: '\\u2665',\r\n hellip: '\\u2026',\r\n hercon: '\\u22B9',\r\n hfr: '\\uD835\\uDD25',\r\n hksearow: '\\u2925',\r\n hkswarow: '\\u2926',\r\n hoarr: '\\u21FF',\r\n homtht: '\\u223B',\r\n hookleftarrow: '\\u21A9',\r\n hookrightarrow: '\\u21AA',\r\n hopf: '\\uD835\\uDD59',\r\n horbar: '\\u2015',\r\n hscr: '\\uD835\\uDCBD',\r\n hslash: '\\u210F',\r\n hstrok: '\\u0127',\r\n hybull: '\\u2043',\r\n hyphen: '\\u2010',\r\n iacute: '\\u00ED',\r\n ic: '\\u2063',\r\n icirc: '\\u00EE',\r\n icy: '\\u0438',\r\n iecy: '\\u0435',\r\n iexcl: '\\u00A1',\r\n iff: '\\u21D4',\r\n ifr: '\\uD835\\uDD26',\r\n igrave: '\\u00EC',\r\n ii: '\\u2148',\r\n iiiint: '\\u2A0C',\r\n iiint: '\\u222D',\r\n iinfin: '\\u29DC',\r\n iiota: '\\u2129',\r\n ijlig: '\\u0133',\r\n imacr: '\\u012B',\r\n image: '\\u2111',\r\n imagline: '\\u2110',\r\n imagpart: '\\u2111',\r\n imath: '\\u0131',\r\n imof: '\\u22B7',\r\n imped: '\\u01B5',\r\n in: '\\u2208',\r\n incare: '\\u2105',\r\n infin: '\\u221E',\r\n infintie: '\\u29DD',\r\n inodot: '\\u0131',\r\n int: '\\u222B',\r\n intcal: '\\u22BA',\r\n integers: '\\u2124',\r\n intercal: '\\u22BA',\r\n intlarhk: '\\u2A17',\r\n intprod: '\\u2A3C',\r\n iocy: '\\u0451',\r\n iogon: '\\u012F',\r\n iopf: '\\uD835\\uDD5A',\r\n iota: '\\u03B9',\r\n iprod: '\\u2A3C',\r\n iquest: '\\u00BF',\r\n iscr: '\\uD835\\uDCBE',\r\n isin: '\\u2208',\r\n isinE: '\\u22F9',\r\n isindot: '\\u22F5',\r\n isins: '\\u22F4',\r\n isinsv: '\\u22F3',\r\n isinv: '\\u2208',\r\n it: '\\u2062',\r\n itilde: '\\u0129',\r\n iukcy: '\\u0456',\r\n iuml: '\\u00EF',\r\n jcirc: '\\u0135',\r\n jcy: '\\u0439',\r\n jfr: '\\uD835\\uDD27',\r\n jmath: '\\u0237',\r\n jopf: '\\uD835\\uDD5B',\r\n jscr: '\\uD835\\uDCBF',\r\n jsercy: '\\u0458',\r\n jukcy: '\\u0454',\r\n kappa: '\\u03BA',\r\n kappav: '\\u03F0',\r\n kcedil: '\\u0137',\r\n kcy: '\\u043A',\r\n kfr: '\\uD835\\uDD28',\r\n kgreen: '\\u0138',\r\n khcy: '\\u0445',\r\n kjcy: '\\u045C',\r\n kopf: '\\uD835\\uDD5C',\r\n kscr: '\\uD835\\uDCC0',\r\n lAarr: '\\u21DA',\r\n lArr: '\\u21D0',\r\n lAtail: '\\u291B',\r\n lBarr: '\\u290E',\r\n lE: '\\u2266',\r\n lEg: '\\u2A8B',\r\n lHar: '\\u2962',\r\n lacute: '\\u013A',\r\n laemptyv: '\\u29B4',\r\n lagran: '\\u2112',\r\n lambda: '\\u03BB',\r\n lang: '\\u27E8',\r\n langd: '\\u2991',\r\n langle: '\\u27E8',\r\n lap: '\\u2A85',\r\n laquo: '\\u00AB',\r\n larr: '\\u2190',\r\n larrb: '\\u21E4',\r\n larrbfs: '\\u291F',\r\n larrfs: '\\u291D',\r\n larrhk: '\\u21A9',\r\n larrlp: '\\u21AB',\r\n larrpl: '\\u2939',\r\n larrsim: '\\u2973',\r\n larrtl: '\\u21A2',\r\n lat: '\\u2AAB',\r\n latail: '\\u2919',\r\n late: '\\u2AAD',\r\n lates: '\\u2AAD\\uFE00',\r\n lbarr: '\\u290C',\r\n lbbrk: '\\u2772',\r\n lbrace: '\\u007B',\r\n lbrack: '\\u005B',\r\n lbrke: '\\u298B',\r\n lbrksld: '\\u298F',\r\n lbrkslu: '\\u298D',\r\n lcaron: '\\u013E',\r\n lcedil: '\\u013C',\r\n lceil: '\\u2308',\r\n lcub: '\\u007B',\r\n lcy: '\\u043B',\r\n ldca: '\\u2936',\r\n ldquo: '\\u201C',\r\n ldquor: '\\u201E',\r\n ldrdhar: '\\u2967',\r\n ldrushar: '\\u294B',\r\n ldsh: '\\u21B2',\r\n le: '\\u2264',\r\n leftarrow: '\\u2190',\r\n leftarrowtail: '\\u21A2',\r\n leftharpoondown: '\\u21BD',\r\n leftharpoonup: '\\u21BC',\r\n leftleftarrows: '\\u21C7',\r\n leftrightarrow: '\\u2194',\r\n leftrightarrows: '\\u21C6',\r\n leftrightharpoons: '\\u21CB',\r\n leftrightsquigarrow: '\\u21AD',\r\n leftthreetimes: '\\u22CB',\r\n leg: '\\u22DA',\r\n leq: '\\u2264',\r\n leqq: '\\u2266',\r\n leqslant: '\\u2A7D',\r\n les: '\\u2A7D',\r\n lescc: '\\u2AA8',\r\n lesdot: '\\u2A7F',\r\n lesdoto: '\\u2A81',\r\n lesdotor: '\\u2A83',\r\n lesg: '\\u22DA\\uFE00',\r\n lesges: '\\u2A93',\r\n lessapprox: '\\u2A85',\r\n lessdot: '\\u22D6',\r\n lesseqgtr: '\\u22DA',\r\n lesseqqgtr: '\\u2A8B',\r\n lessgtr: '\\u2276',\r\n lesssim: '\\u2272',\r\n lfisht: '\\u297C',\r\n lfloor: '\\u230A',\r\n lfr: '\\uD835\\uDD29',\r\n lg: '\\u2276',\r\n lgE: '\\u2A91',\r\n lhard: '\\u21BD',\r\n lharu: '\\u21BC',\r\n lharul: '\\u296A',\r\n lhblk: '\\u2584',\r\n ljcy: '\\u0459',\r\n ll: '\\u226A',\r\n llarr: '\\u21C7',\r\n llcorner: '\\u231E',\r\n llhard: '\\u296B',\r\n lltri: '\\u25FA',\r\n lmidot: '\\u0140',\r\n lmoust: '\\u23B0',\r\n lmoustache: '\\u23B0',\r\n lnE: '\\u2268',\r\n lnap: '\\u2A89',\r\n lnapprox: '\\u2A89',\r\n lne: '\\u2A87',\r\n lneq: '\\u2A87',\r\n lneqq: '\\u2268',\r\n lnsim: '\\u22E6',\r\n loang: '\\u27EC',\r\n loarr: '\\u21FD',\r\n lobrk: '\\u27E6',\r\n longleftarrow: '\\u27F5',\r\n longleftrightarrow: '\\u27F7',\r\n longmapsto: '\\u27FC',\r\n longrightarrow: '\\u27F6',\r\n looparrowleft: '\\u21AB',\r\n looparrowright: '\\u21AC',\r\n lopar: '\\u2985',\r\n lopf: '\\uD835\\uDD5D',\r\n loplus: '\\u2A2D',\r\n lotimes: '\\u2A34',\r\n lowast: '\\u2217',\r\n lowbar: '\\u005F',\r\n loz: '\\u25CA',\r\n lozenge: '\\u25CA',\r\n lozf: '\\u29EB',\r\n lpar: '\\u0028',\r\n lparlt: '\\u2993',\r\n lrarr: '\\u21C6',\r\n lrcorner: '\\u231F',\r\n lrhar: '\\u21CB',\r\n lrhard: '\\u296D',\r\n lrm: '\\u200E',\r\n lrtri: '\\u22BF',\r\n lsaquo: '\\u2039',\r\n lscr: '\\uD835\\uDCC1',\r\n lsh: '\\u21B0',\r\n lsim: '\\u2272',\r\n lsime: '\\u2A8D',\r\n lsimg: '\\u2A8F',\r\n lsqb: '\\u005B',\r\n lsquo: '\\u2018',\r\n lsquor: '\\u201A',\r\n lstrok: '\\u0142',\r\n lt: '\\u003C',\r\n ltcc: '\\u2AA6',\r\n ltcir: '\\u2A79',\r\n ltdot: '\\u22D6',\r\n lthree: '\\u22CB',\r\n ltimes: '\\u22C9',\r\n ltlarr: '\\u2976',\r\n ltquest: '\\u2A7B',\r\n ltrPar: '\\u2996',\r\n ltri: '\\u25C3',\r\n ltrie: '\\u22B4',\r\n ltrif: '\\u25C2',\r\n lurdshar: '\\u294A',\r\n luruhar: '\\u2966',\r\n lvertneqq: '\\u2268\\uFE00',\r\n lvnE: '\\u2268\\uFE00',\r\n mDDot: '\\u223A',\r\n macr: '\\u00AF',\r\n male: '\\u2642',\r\n malt: '\\u2720',\r\n maltese: '\\u2720',\r\n map: '\\u21A6',\r\n mapsto: '\\u21A6',\r\n mapstodown: '\\u21A7',\r\n mapstoleft: '\\u21A4',\r\n mapstoup: '\\u21A5',\r\n marker: '\\u25AE',\r\n mcomma: '\\u2A29',\r\n mcy: '\\u043C',\r\n mdash: '\\u2014',\r\n measuredangle: '\\u2221',\r\n mfr: '\\uD835\\uDD2A',\r\n mho: '\\u2127',\r\n micro: '\\u00B5',\r\n mid: '\\u2223',\r\n midast: '\\u002A',\r\n midcir: '\\u2AF0',\r\n middot: '\\u00B7',\r\n minus: '\\u2212',\r\n minusb: '\\u229F',\r\n minusd: '\\u2238',\r\n minusdu: '\\u2A2A',\r\n mlcp: '\\u2ADB',\r\n mldr: '\\u2026',\r\n mnplus: '\\u2213',\r\n models: '\\u22A7',\r\n mopf: '\\uD835\\uDD5E',\r\n mp: '\\u2213',\r\n mscr: '\\uD835\\uDCC2',\r\n mstpos: '\\u223E',\r\n mu: '\\u03BC',\r\n multimap: '\\u22B8',\r\n mumap: '\\u22B8',\r\n nGg: '\\u22D9\\u0338',\r\n nGt: '\\u226B\\u20D2',\r\n nGtv: '\\u226B\\u0338',\r\n nLeftarrow: '\\u21CD',\r\n nLeftrightarrow: '\\u21CE',\r\n nLl: '\\u22D8\\u0338',\r\n nLt: '\\u226A\\u20D2',\r\n nLtv: '\\u226A\\u0338',\r\n nRightarrow: '\\u21CF',\r\n nVDash: '\\u22AF',\r\n nVdash: '\\u22AE',\r\n nabla: '\\u2207',\r\n nacute: '\\u0144',\r\n nang: '\\u2220\\u20D2',\r\n nap: '\\u2249',\r\n napE: '\\u2A70\\u0338',\r\n napid: '\\u224B\\u0338',\r\n napos: '\\u0149',\r\n napprox: '\\u2249',\r\n natur: '\\u266E',\r\n natural: '\\u266E',\r\n naturals: '\\u2115',\r\n nbsp: '\\u00A0',\r\n nbump: '\\u224E\\u0338',\r\n nbumpe: '\\u224F\\u0338',\r\n ncap: '\\u2A43',\r\n ncaron: '\\u0148',\r\n ncedil: '\\u0146',\r\n ncong: '\\u2247',\r\n ncongdot: '\\u2A6D\\u0338',\r\n ncup: '\\u2A42',\r\n ncy: '\\u043D',\r\n ndash: '\\u2013',\r\n ne: '\\u2260',\r\n neArr: '\\u21D7',\r\n nearhk: '\\u2924',\r\n nearr: '\\u2197',\r\n nearrow: '\\u2197',\r\n nedot: '\\u2250\\u0338',\r\n nequiv: '\\u2262',\r\n nesear: '\\u2928',\r\n nesim: '\\u2242\\u0338',\r\n nexist: '\\u2204',\r\n nexists: '\\u2204',\r\n nfr: '\\uD835\\uDD2B',\r\n ngE: '\\u2267\\u0338',\r\n nge: '\\u2271',\r\n ngeq: '\\u2271',\r\n ngeqq: '\\u2267\\u0338',\r\n ngeqslant: '\\u2A7E\\u0338',\r\n nges: '\\u2A7E\\u0338',\r\n ngsim: '\\u2275',\r\n ngt: '\\u226F',\r\n ngtr: '\\u226F',\r\n nhArr: '\\u21CE',\r\n nharr: '\\u21AE',\r\n nhpar: '\\u2AF2',\r\n ni: '\\u220B',\r\n nis: '\\u22FC',\r\n nisd: '\\u22FA',\r\n niv: '\\u220B',\r\n njcy: '\\u045A',\r\n nlArr: '\\u21CD',\r\n nlE: '\\u2266\\u0338',\r\n nlarr: '\\u219A',\r\n nldr: '\\u2025',\r\n nle: '\\u2270',\r\n nleftarrow: '\\u219A',\r\n nleftrightarrow: '\\u21AE',\r\n nleq: '\\u2270',\r\n nleqq: '\\u2266\\u0338',\r\n nleqslant: '\\u2A7D\\u0338',\r\n nles: '\\u2A7D\\u0338',\r\n nless: '\\u226E',\r\n nlsim: '\\u2274',\r\n nlt: '\\u226E',\r\n nltri: '\\u22EA',\r\n nltrie: '\\u22EC',\r\n nmid: '\\u2224',\r\n nopf: '\\uD835\\uDD5F',\r\n not: '\\u00AC',\r\n notin: '\\u2209',\r\n notinE: '\\u22F9\\u0338',\r\n notindot: '\\u22F5\\u0338',\r\n notinva: '\\u2209',\r\n notinvb: '\\u22F7',\r\n notinvc: '\\u22F6',\r\n notni: '\\u220C',\r\n notniva: '\\u220C',\r\n notnivb: '\\u22FE',\r\n notnivc: '\\u22FD',\r\n npar: '\\u2226',\r\n nparallel: '\\u2226',\r\n nparsl: '\\u2AFD\\u20E5',\r\n npart: '\\u2202\\u0338',\r\n npolint: '\\u2A14',\r\n npr: '\\u2280',\r\n nprcue: '\\u22E0',\r\n npre: '\\u2AAF\\u0338',\r\n nprec: '\\u2280',\r\n npreceq: '\\u2AAF\\u0338',\r\n nrArr: '\\u21CF',\r\n nrarr: '\\u219B',\r\n nrarrc: '\\u2933\\u0338',\r\n nrarrw: '\\u219D\\u0338',\r\n nrightarrow: '\\u219B',\r\n nrtri: '\\u22EB',\r\n nrtrie: '\\u22ED',\r\n nsc: '\\u2281',\r\n nsccue: '\\u22E1',\r\n nsce: '\\u2AB0\\u0338',\r\n nscr: '\\uD835\\uDCC3',\r\n nshortmid: '\\u2224',\r\n nshortparallel: '\\u2226',\r\n nsim: '\\u2241',\r\n nsime: '\\u2244',\r\n nsimeq: '\\u2244',\r\n nsmid: '\\u2224',\r\n nspar: '\\u2226',\r\n nsqsube: '\\u22E2',\r\n nsqsupe: '\\u22E3',\r\n nsub: '\\u2284',\r\n nsubE: '\\u2AC5\\u0338',\r\n nsube: '\\u2288',\r\n nsubset: '\\u2282\\u20D2',\r\n nsubseteq: '\\u2288',\r\n nsubseteqq: '\\u2AC5\\u0338',\r\n nsucc: '\\u2281',\r\n nsucceq: '\\u2AB0\\u0338',\r\n nsup: '\\u2285',\r\n nsupE: '\\u2AC6\\u0338',\r\n nsupe: '\\u2289',\r\n nsupset: '\\u2283\\u20D2',\r\n nsupseteq: '\\u2289',\r\n nsupseteqq: '\\u2AC6\\u0338',\r\n ntgl: '\\u2279',\r\n ntilde: '\\u00F1',\r\n ntlg: '\\u2278',\r\n ntriangleleft: '\\u22EA',\r\n ntrianglelefteq: '\\u22EC',\r\n ntriangleright: '\\u22EB',\r\n ntrianglerighteq: '\\u22ED',\r\n nu: '\\u03BD',\r\n num: '\\u0023',\r\n numero: '\\u2116',\r\n numsp: '\\u2007',\r\n nvDash: '\\u22AD',\r\n nvHarr: '\\u2904',\r\n nvap: '\\u224D\\u20D2',\r\n nvdash: '\\u22AC',\r\n nvge: '\\u2265\\u20D2',\r\n nvgt: '\\u003E\\u20D2',\r\n nvinfin: '\\u29DE',\r\n nvlArr: '\\u2902',\r\n nvle: '\\u2264\\u20D2',\r\n nvlt: '\\u003C\\u20D2',\r\n nvltrie: '\\u22B4\\u20D2',\r\n nvrArr: '\\u2903',\r\n nvrtrie: '\\u22B5\\u20D2',\r\n nvsim: '\\u223C\\u20D2',\r\n nwArr: '\\u21D6',\r\n nwarhk: '\\u2923',\r\n nwarr: '\\u2196',\r\n nwarrow: '\\u2196',\r\n nwnear: '\\u2927',\r\n oS: '\\u24C8',\r\n oacute: '\\u00F3',\r\n oast: '\\u229B',\r\n ocir: '\\u229A',\r\n ocirc: '\\u00F4',\r\n ocy: '\\u043E',\r\n odash: '\\u229D',\r\n odblac: '\\u0151',\r\n odiv: '\\u2A38',\r\n odot: '\\u2299',\r\n odsold: '\\u29BC',\r\n oelig: '\\u0153',\r\n ofcir: '\\u29BF',\r\n ofr: '\\uD835\\uDD2C',\r\n ogon: '\\u02DB',\r\n ograve: '\\u00F2',\r\n ogt: '\\u29C1',\r\n ohbar: '\\u29B5',\r\n ohm: '\\u03A9',\r\n oint: '\\u222E',\r\n olarr: '\\u21BA',\r\n olcir: '\\u29BE',\r\n olcross: '\\u29BB',\r\n oline: '\\u203E',\r\n olt: '\\u29C0',\r\n omacr: '\\u014D',\r\n omega: '\\u03C9',\r\n omicron: '\\u03BF',\r\n omid: '\\u29B6',\r\n ominus: '\\u2296',\r\n oopf: '\\uD835\\uDD60',\r\n opar: '\\u29B7',\r\n operp: '\\u29B9',\r\n oplus: '\\u2295',\r\n or: '\\u2228',\r\n orarr: '\\u21BB',\r\n ord: '\\u2A5D',\r\n order: '\\u2134',\r\n orderof: '\\u2134',\r\n ordf: '\\u00AA',\r\n ordm: '\\u00BA',\r\n origof: '\\u22B6',\r\n oror: '\\u2A56',\r\n orslope: '\\u2A57',\r\n orv: '\\u2A5B',\r\n oscr: '\\u2134',\r\n oslash: '\\u00F8',\r\n osol: '\\u2298',\r\n otilde: '\\u00F5',\r\n otimes: '\\u2297',\r\n otimesas: '\\u2A36',\r\n ouml: '\\u00F6',\r\n ovbar: '\\u233D',\r\n par: '\\u2225',\r\n para: '\\u00B6',\r\n parallel: '\\u2225',\r\n parsim: '\\u2AF3',\r\n parsl: '\\u2AFD',\r\n part: '\\u2202',\r\n pcy: '\\u043F',\r\n percnt: '\\u0025',\r\n period: '\\u002E',\r\n permil: '\\u2030',\r\n perp: '\\u22A5',\r\n pertenk: '\\u2031',\r\n pfr: '\\uD835\\uDD2D',\r\n phi: '\\u03C6',\r\n phiv: '\\u03D5',\r\n phmmat: '\\u2133',\r\n phone: '\\u260E',\r\n pi: '\\u03C0',\r\n pitchfork: '\\u22D4',\r\n piv: '\\u03D6',\r\n planck: '\\u210F',\r\n planckh: '\\u210E',\r\n plankv: '\\u210F',\r\n plus: '\\u002B',\r\n plusacir: '\\u2A23',\r\n plusb: '\\u229E',\r\n pluscir: '\\u2A22',\r\n plusdo: '\\u2214',\r\n plusdu: '\\u2A25',\r\n pluse: '\\u2A72',\r\n plusmn: '\\u00B1',\r\n plussim: '\\u2A26',\r\n plustwo: '\\u2A27',\r\n pm: '\\u00B1',\r\n pointint: '\\u2A15',\r\n popf: '\\uD835\\uDD61',\r\n pound: '\\u00A3',\r\n pr: '\\u227A',\r\n prE: '\\u2AB3',\r\n prap: '\\u2AB7',\r\n prcue: '\\u227C',\r\n pre: '\\u2AAF',\r\n prec: '\\u227A',\r\n precapprox: '\\u2AB7',\r\n preccurlyeq: '\\u227C',\r\n preceq: '\\u2AAF',\r\n precnapprox: '\\u2AB9',\r\n precneqq: '\\u2AB5',\r\n precnsim: '\\u22E8',\r\n precsim: '\\u227E',\r\n prime: '\\u2032',\r\n primes: '\\u2119',\r\n prnE: '\\u2AB5',\r\n prnap: '\\u2AB9',\r\n prnsim: '\\u22E8',\r\n prod: '\\u220F',\r\n profalar: '\\u232E',\r\n profline: '\\u2312',\r\n profsurf: '\\u2313',\r\n prop: '\\u221D',\r\n propto: '\\u221D',\r\n prsim: '\\u227E',\r\n prurel: '\\u22B0',\r\n pscr: '\\uD835\\uDCC5',\r\n psi: '\\u03C8',\r\n puncsp: '\\u2008',\r\n qfr: '\\uD835\\uDD2E',\r\n qint: '\\u2A0C',\r\n qopf: '\\uD835\\uDD62',\r\n qprime: '\\u2057',\r\n qscr: '\\uD835\\uDCC6',\r\n quaternions: '\\u210D',\r\n quatint: '\\u2A16',\r\n quest: '\\u003F',\r\n questeq: '\\u225F',\r\n quot: '\\u0022',\r\n rAarr: '\\u21DB',\r\n rArr: '\\u21D2',\r\n rAtail: '\\u291C',\r\n rBarr: '\\u290F',\r\n rHar: '\\u2964',\r\n race: '\\u223D\\u0331',\r\n racute: '\\u0155',\r\n radic: '\\u221A',\r\n raemptyv: '\\u29B3',\r\n rang: '\\u27E9',\r\n rangd: '\\u2992',\r\n range: '\\u29A5',\r\n rangle: '\\u27E9',\r\n raquo: '\\u00BB',\r\n rarr: '\\u2192',\r\n rarrap: '\\u2975',\r\n rarrb: '\\u21E5',\r\n rarrbfs: '\\u2920',\r\n rarrc: '\\u2933',\r\n rarrfs: '\\u291E',\r\n rarrhk: '\\u21AA',\r\n rarrlp: '\\u21AC',\r\n rarrpl: '\\u2945',\r\n rarrsim: '\\u2974',\r\n rarrtl: '\\u21A3',\r\n rarrw: '\\u219D',\r\n ratail: '\\u291A',\r\n ratio: '\\u2236',\r\n rationals: '\\u211A',\r\n rbarr: '\\u290D',\r\n rbbrk: '\\u2773',\r\n rbrace: '\\u007D',\r\n rbrack: '\\u005D',\r\n rbrke: '\\u298C',\r\n rbrksld: '\\u298E',\r\n rbrkslu: '\\u2990',\r\n rcaron: '\\u0159',\r\n rcedil: '\\u0157',\r\n rceil: '\\u2309',\r\n rcub: '\\u007D',\r\n rcy: '\\u0440',\r\n rdca: '\\u2937',\r\n rdldhar: '\\u2969',\r\n rdquo: '\\u201D',\r\n rdquor: '\\u201D',\r\n rdsh: '\\u21B3',\r\n real: '\\u211C',\r\n realine: '\\u211B',\r\n realpart: '\\u211C',\r\n reals: '\\u211D',\r\n rect: '\\u25AD',\r\n reg: '\\u00AE',\r\n rfisht: '\\u297D',\r\n rfloor: '\\u230B',\r\n rfr: '\\uD835\\uDD2F',\r\n rhard: '\\u21C1',\r\n rharu: '\\u21C0',\r\n rharul: '\\u296C',\r\n rho: '\\u03C1',\r\n rhov: '\\u03F1',\r\n rightarrow: '\\u2192',\r\n rightarrowtail: '\\u21A3',\r\n rightharpoondown: '\\u21C1',\r\n rightharpoonup: '\\u21C0',\r\n rightleftarrows: '\\u21C4',\r\n rightleftharpoons: '\\u21CC',\r\n rightrightarrows: '\\u21C9',\r\n rightsquigarrow: '\\u219D',\r\n rightthreetimes: '\\u22CC',\r\n ring: '\\u02DA',\r\n risingdotseq: '\\u2253',\r\n rlarr: '\\u21C4',\r\n rlhar: '\\u21CC',\r\n rlm: '\\u200F',\r\n rmoust: '\\u23B1',\r\n rmoustache: '\\u23B1',\r\n rnmid: '\\u2AEE',\r\n roang: '\\u27ED',\r\n roarr: '\\u21FE',\r\n robrk: '\\u27E7',\r\n ropar: '\\u2986',\r\n ropf: '\\uD835\\uDD63',\r\n roplus: '\\u2A2E',\r\n rotimes: '\\u2A35',\r\n rpar: '\\u0029',\r\n rpargt: '\\u2994',\r\n rppolint: '\\u2A12',\r\n rrarr: '\\u21C9',\r\n rsaquo: '\\u203A',\r\n rscr: '\\uD835\\uDCC7',\r\n rsh: '\\u21B1',\r\n rsqb: '\\u005D',\r\n rsquo: '\\u2019',\r\n rsquor: '\\u2019',\r\n rthree: '\\u22CC',\r\n rtimes: '\\u22CA',\r\n rtri: '\\u25B9',\r\n rtrie: '\\u22B5',\r\n rtrif: '\\u25B8',\r\n rtriltri: '\\u29CE',\r\n ruluhar: '\\u2968',\r\n rx: '\\u211E',\r\n sacute: '\\u015B',\r\n sbquo: '\\u201A',\r\n sc: '\\u227B',\r\n scE: '\\u2AB4',\r\n scap: '\\u2AB8',\r\n scaron: '\\u0161',\r\n sccue: '\\u227D',\r\n sce: '\\u2AB0',\r\n scedil: '\\u015F',\r\n scirc: '\\u015D',\r\n scnE: '\\u2AB6',\r\n scnap: '\\u2ABA',\r\n scnsim: '\\u22E9',\r\n scpolint: '\\u2A13',\r\n scsim: '\\u227F',\r\n scy: '\\u0441',\r\n sdot: '\\u22C5',\r\n sdotb: '\\u22A1',\r\n sdote: '\\u2A66',\r\n seArr: '\\u21D8',\r\n searhk: '\\u2925',\r\n searr: '\\u2198',\r\n searrow: '\\u2198',\r\n sect: '\\u00A7',\r\n semi: '\\u003B',\r\n seswar: '\\u2929',\r\n setminus: '\\u2216',\r\n setmn: '\\u2216',\r\n sext: '\\u2736',\r\n sfr: '\\uD835\\uDD30',\r\n sfrown: '\\u2322',\r\n sharp: '\\u266F',\r\n shchcy: '\\u0449',\r\n shcy: '\\u0448',\r\n shortmid: '\\u2223',\r\n shortparallel: '\\u2225',\r\n shy: '\\u00AD',\r\n sigma: '\\u03C3',\r\n sigmaf: '\\u03C2',\r\n sigmav: '\\u03C2',\r\n sim: '\\u223C',\r\n simdot: '\\u2A6A',\r\n sime: '\\u2243',\r\n simeq: '\\u2243',\r\n simg: '\\u2A9E',\r\n simgE: '\\u2AA0',\r\n siml: '\\u2A9D',\r\n simlE: '\\u2A9F',\r\n simne: '\\u2246',\r\n simplus: '\\u2A24',\r\n simrarr: '\\u2972',\r\n slarr: '\\u2190',\r\n smallsetminus: '\\u2216',\r\n smashp: '\\u2A33',\r\n smeparsl: '\\u29E4',\r\n smid: '\\u2223',\r\n smile: '\\u2323',\r\n smt: '\\u2AAA',\r\n smte: '\\u2AAC',\r\n smtes: '\\u2AAC\\uFE00',\r\n softcy: '\\u044C',\r\n sol: '\\u002F',\r\n solb: '\\u29C4',\r\n solbar: '\\u233F',\r\n sopf: '\\uD835\\uDD64',\r\n spades: '\\u2660',\r\n spadesuit: '\\u2660',\r\n spar: '\\u2225',\r\n sqcap: '\\u2293',\r\n sqcaps: '\\u2293\\uFE00',\r\n sqcup: '\\u2294',\r\n sqcups: '\\u2294\\uFE00',\r\n sqsub: '\\u228F',\r\n sqsube: '\\u2291',\r\n sqsubset: '\\u228F',\r\n sqsubseteq: '\\u2291',\r\n sqsup: '\\u2290',\r\n sqsupe: '\\u2292',\r\n sqsupset: '\\u2290',\r\n sqsupseteq: '\\u2292',\r\n squ: '\\u25A1',\r\n square: '\\u25A1',\r\n squarf: '\\u25AA',\r\n squf: '\\u25AA',\r\n srarr: '\\u2192',\r\n sscr: '\\uD835\\uDCC8',\r\n ssetmn: '\\u2216',\r\n ssmile: '\\u2323',\r\n sstarf: '\\u22C6',\r\n star: '\\u2606',\r\n starf: '\\u2605',\r\n straightepsilon: '\\u03F5',\r\n straightphi: '\\u03D5',\r\n strns: '\\u00AF',\r\n sub: '\\u2282',\r\n subE: '\\u2AC5',\r\n subdot: '\\u2ABD',\r\n sube: '\\u2286',\r\n subedot: '\\u2AC3',\r\n submult: '\\u2AC1',\r\n subnE: '\\u2ACB',\r\n subne: '\\u228A',\r\n subplus: '\\u2ABF',\r\n subrarr: '\\u2979',\r\n subset: '\\u2282',\r\n subseteq: '\\u2286',\r\n subseteqq: '\\u2AC5',\r\n subsetneq: '\\u228A',\r\n subsetneqq: '\\u2ACB',\r\n subsim: '\\u2AC7',\r\n subsub: '\\u2AD5',\r\n subsup: '\\u2AD3',\r\n succ: '\\u227B',\r\n succapprox: '\\u2AB8',\r\n succcurlyeq: '\\u227D',\r\n succeq: '\\u2AB0',\r\n succnapprox: '\\u2ABA',\r\n succneqq: '\\u2AB6',\r\n succnsim: '\\u22E9',\r\n succsim: '\\u227F',\r\n sum: '\\u2211',\r\n sung: '\\u266A',\r\n sup1: '\\u00B9',\r\n sup2: '\\u00B2',\r\n sup3: '\\u00B3',\r\n sup: '\\u2283',\r\n supE: '\\u2AC6',\r\n supdot: '\\u2ABE',\r\n supdsub: '\\u2AD8',\r\n supe: '\\u2287',\r\n supedot: '\\u2AC4',\r\n suphsol: '\\u27C9',\r\n suphsub: '\\u2AD7',\r\n suplarr: '\\u297B',\r\n supmult: '\\u2AC2',\r\n supnE: '\\u2ACC',\r\n supne: '\\u228B',\r\n supplus: '\\u2AC0',\r\n supset: '\\u2283',\r\n supseteq: '\\u2287',\r\n supseteqq: '\\u2AC6',\r\n supsetneq: '\\u228B',\r\n supsetneqq: '\\u2ACC',\r\n supsim: '\\u2AC8',\r\n supsub: '\\u2AD4',\r\n supsup: '\\u2AD6',\r\n swArr: '\\u21D9',\r\n swarhk: '\\u2926',\r\n swarr: '\\u2199',\r\n swarrow: '\\u2199',\r\n swnwar: '\\u292A',\r\n szlig: '\\u00DF',\r\n target: '\\u2316',\r\n tau: '\\u03C4',\r\n tbrk: '\\u23B4',\r\n tcaron: '\\u0165',\r\n tcedil: '\\u0163',\r\n tcy: '\\u0442',\r\n tdot: '\\u20DB',\r\n telrec: '\\u2315',\r\n tfr: '\\uD835\\uDD31',\r\n there4: '\\u2234',\r\n therefore: '\\u2234',\r\n theta: '\\u03B8',\r\n thetasym: '\\u03D1',\r\n thetav: '\\u03D1',\r\n thickapprox: '\\u2248',\r\n thicksim: '\\u223C',\r\n thinsp: '\\u2009',\r\n thkap: '\\u2248',\r\n thksim: '\\u223C',\r\n thorn: '\\u00FE',\r\n tilde: '\\u02DC',\r\n times: '\\u00D7',\r\n timesb: '\\u22A0',\r\n timesbar: '\\u2A31',\r\n timesd: '\\u2A30',\r\n tint: '\\u222D',\r\n toea: '\\u2928',\r\n top: '\\u22A4',\r\n topbot: '\\u2336',\r\n topcir: '\\u2AF1',\r\n topf: '\\uD835\\uDD65',\r\n topfork: '\\u2ADA',\r\n tosa: '\\u2929',\r\n tprime: '\\u2034',\r\n trade: '\\u2122',\r\n triangle: '\\u25B5',\r\n triangledown: '\\u25BF',\r\n triangleleft: '\\u25C3',\r\n trianglelefteq: '\\u22B4',\r\n triangleq: '\\u225C',\r\n triangleright: '\\u25B9',\r\n trianglerighteq: '\\u22B5',\r\n tridot: '\\u25EC',\r\n trie: '\\u225C',\r\n triminus: '\\u2A3A',\r\n triplus: '\\u2A39',\r\n trisb: '\\u29CD',\r\n tritime: '\\u2A3B',\r\n trpezium: '\\u23E2',\r\n tscr: '\\uD835\\uDCC9',\r\n tscy: '\\u0446',\r\n tshcy: '\\u045B',\r\n tstrok: '\\u0167',\r\n twixt: '\\u226C',\r\n twoheadleftarrow: '\\u219E',\r\n twoheadrightarrow: '\\u21A0',\r\n uArr: '\\u21D1',\r\n uHar: '\\u2963',\r\n uacute: '\\u00FA',\r\n uarr: '\\u2191',\r\n ubrcy: '\\u045E',\r\n ubreve: '\\u016D',\r\n ucirc: '\\u00FB',\r\n ucy: '\\u0443',\r\n udarr: '\\u21C5',\r\n udblac: '\\u0171',\r\n udhar: '\\u296E',\r\n ufisht: '\\u297E',\r\n ufr: '\\uD835\\uDD32',\r\n ugrave: '\\u00F9',\r\n uharl: '\\u21BF',\r\n uharr: '\\u21BE',\r\n uhblk: '\\u2580',\r\n ulcorn: '\\u231C',\r\n ulcorner: '\\u231C',\r\n ulcrop: '\\u230F',\r\n ultri: '\\u25F8',\r\n umacr: '\\u016B',\r\n uml: '\\u00A8',\r\n uogon: '\\u0173',\r\n uopf: '\\uD835\\uDD66',\r\n uparrow: '\\u2191',\r\n updownarrow: '\\u2195',\r\n upharpoonleft: '\\u21BF',\r\n upharpoonright: '\\u21BE',\r\n uplus: '\\u228E',\r\n upsi: '\\u03C5',\r\n upsih: '\\u03D2',\r\n upsilon: '\\u03C5',\r\n upuparrows: '\\u21C8',\r\n urcorn: '\\u231D',\r\n urcorner: '\\u231D',\r\n urcrop: '\\u230E',\r\n uring: '\\u016F',\r\n urtri: '\\u25F9',\r\n uscr: '\\uD835\\uDCCA',\r\n utdot: '\\u22F0',\r\n utilde: '\\u0169',\r\n utri: '\\u25B5',\r\n utrif: '\\u25B4',\r\n uuarr: '\\u21C8',\r\n uuml: '\\u00FC',\r\n uwangle: '\\u29A7',\r\n vArr: '\\u21D5',\r\n vBar: '\\u2AE8',\r\n vBarv: '\\u2AE9',\r\n vDash: '\\u22A8',\r\n vangrt: '\\u299C',\r\n varepsilon: '\\u03F5',\r\n varkappa: '\\u03F0',\r\n varnothing: '\\u2205',\r\n varphi: '\\u03D5',\r\n varpi: '\\u03D6',\r\n varpropto: '\\u221D',\r\n varr: '\\u2195',\r\n varrho: '\\u03F1',\r\n varsigma: '\\u03C2',\r\n varsubsetneq: '\\u228A\\uFE00',\r\n varsubsetneqq: '\\u2ACB\\uFE00',\r\n varsupsetneq: '\\u228B\\uFE00',\r\n varsupsetneqq: '\\u2ACC\\uFE00',\r\n vartheta: '\\u03D1',\r\n vartriangleleft: '\\u22B2',\r\n vartriangleright: '\\u22B3',\r\n vcy: '\\u0432',\r\n vdash: '\\u22A2',\r\n vee: '\\u2228',\r\n veebar: '\\u22BB',\r\n veeeq: '\\u225A',\r\n vellip: '\\u22EE',\r\n verbar: '\\u007C',\r\n vert: '\\u007C',\r\n vfr: '\\uD835\\uDD33',\r\n vltri: '\\u22B2',\r\n vnsub: '\\u2282\\u20D2',\r\n vnsup: '\\u2283\\u20D2',\r\n vopf: '\\uD835\\uDD67',\r\n vprop: '\\u221D',\r\n vrtri: '\\u22B3',\r\n vscr: '\\uD835\\uDCCB',\r\n vsubnE: '\\u2ACB\\uFE00',\r\n vsubne: '\\u228A\\uFE00',\r\n vsupnE: '\\u2ACC\\uFE00',\r\n vsupne: '\\u228B\\uFE00',\r\n vzigzag: '\\u299A',\r\n wcirc: '\\u0175',\r\n wedbar: '\\u2A5F',\r\n wedge: '\\u2227',\r\n wedgeq: '\\u2259',\r\n weierp: '\\u2118',\r\n wfr: '\\uD835\\uDD34',\r\n wopf: '\\uD835\\uDD68',\r\n wp: '\\u2118',\r\n wr: '\\u2240',\r\n wreath: '\\u2240',\r\n wscr: '\\uD835\\uDCCC',\r\n xcap: '\\u22C2',\r\n xcirc: '\\u25EF',\r\n xcup: '\\u22C3',\r\n xdtri: '\\u25BD',\r\n xfr: '\\uD835\\uDD35',\r\n xhArr: '\\u27FA',\r\n xharr: '\\u27F7',\r\n xi: '\\u03BE',\r\n xlArr: '\\u27F8',\r\n xlarr: '\\u27F5',\r\n xmap: '\\u27FC',\r\n xnis: '\\u22FB',\r\n xodot: '\\u2A00',\r\n xopf: '\\uD835\\uDD69',\r\n xoplus: '\\u2A01',\r\n xotime: '\\u2A02',\r\n xrArr: '\\u27F9',\r\n xrarr: '\\u27F6',\r\n xscr: '\\uD835\\uDCCD',\r\n xsqcup: '\\u2A06',\r\n xuplus: '\\u2A04',\r\n xutri: '\\u25B3',\r\n xvee: '\\u22C1',\r\n xwedge: '\\u22C0',\r\n yacute: '\\u00FD',\r\n yacy: '\\u044F',\r\n ycirc: '\\u0177',\r\n ycy: '\\u044B',\r\n yen: '\\u00A5',\r\n yfr: '\\uD835\\uDD36',\r\n yicy: '\\u0457',\r\n yopf: '\\uD835\\uDD6A',\r\n yscr: '\\uD835\\uDCCE',\r\n yucy: '\\u044E',\r\n yuml: '\\u00FF',\r\n zacute: '\\u017A',\r\n zcaron: '\\u017E',\r\n zcy: '\\u0437',\r\n zdot: '\\u017C',\r\n zeetrf: '\\u2128',\r\n zeta: '\\u03B6',\r\n zfr: '\\uD835\\uDD37',\r\n zhcy: '\\u0436',\r\n zigrarr: '\\u21DD',\r\n zopf: '\\uD835\\uDD6B',\r\n zscr: '\\uD835\\uDCCF',\r\n zwj: '\\u200D',\r\n zwnj: '\\u200C'\r\n};\r\nconst decodeMap = {\r\n '0': 65533,\r\n '128': 8364,\r\n '130': 8218,\r\n '131': 402,\r\n '132': 8222,\r\n '133': 8230,\r\n '134': 8224,\r\n '135': 8225,\r\n '136': 710,\r\n '137': 8240,\r\n '138': 352,\r\n '139': 8249,\r\n '140': 338,\r\n '142': 381,\r\n '145': 8216,\r\n '146': 8217,\r\n '147': 8220,\r\n '148': 8221,\r\n '149': 8226,\r\n '150': 8211,\r\n '151': 8212,\r\n '152': 732,\r\n '153': 8482,\r\n '154': 353,\r\n '155': 8250,\r\n '156': 339,\r\n '158': 382,\r\n '159': 376\r\n};\r\nfunction decodeHTMLStrict(text) {\r\n return text.replace(/&(?:[a-zA-Z]+|#[xX][\\da-fA-F]+|#\\d+);/g, (key) => {\r\n if (key.charAt(1) === '#') {\r\n const secondChar = key.charAt(2);\r\n const codePoint = secondChar === 'X' || secondChar === 'x'\r\n ? parseInt(key.slice(3), 16)\r\n : parseInt(key.slice(2), 10);\r\n return decodeCodePoint(codePoint);\r\n }\r\n return entities[key.slice(1, -1)] || key;\r\n });\r\n}\r\nfunction decodeCodePoint(codePoint) {\r\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\r\n return '\\uFFFD';\r\n }\r\n if (codePoint in decodeMap) {\r\n codePoint = decodeMap[codePoint];\r\n }\r\n return String.fromCodePoint(codePoint);\r\n}\n\nfunction scanJSXAttributeValue(parser, context) {\r\n parser.startPos = parser.tokenPos = parser.index;\r\n parser.startColumn = parser.colPos = parser.column;\r\n parser.startLine = parser.linePos = parser.line;\r\n parser.token =\r\n CharTypes[parser.currentChar] & 8192\r\n ? scanJSXString(parser, context)\r\n : scanSingleToken(parser, context, 0);\r\n return parser.token;\r\n}\r\nfunction scanJSXString(parser, context) {\r\n const quote = parser.currentChar;\r\n let char = advanceChar(parser);\r\n const start = parser.index;\r\n while (char !== quote) {\r\n if (parser.index >= parser.end)\r\n report(parser, 14);\r\n char = advanceChar(parser);\r\n }\r\n if (char !== quote)\r\n report(parser, 14);\r\n parser.tokenValue = parser.source.slice(start, parser.index);\r\n advanceChar(parser);\r\n if (context & 512)\r\n parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index);\r\n return 134283267;\r\n}\r\nfunction scanJSXToken(parser, context) {\r\n parser.startPos = parser.tokenPos = parser.index;\r\n parser.startColumn = parser.colPos = parser.column;\r\n parser.startLine = parser.linePos = parser.line;\r\n if (parser.index >= parser.end)\r\n return (parser.token = 1048576);\r\n const token = TokenLookup[parser.source.charCodeAt(parser.index)];\r\n switch (token) {\r\n case 8456258: {\r\n advanceChar(parser);\r\n if (parser.currentChar === 47) {\r\n advanceChar(parser);\r\n parser.token = 25;\r\n }\r\n else {\r\n parser.token = 8456258;\r\n }\r\n break;\r\n }\r\n case 2162700: {\r\n advanceChar(parser);\r\n parser.token = 2162700;\r\n break;\r\n }\r\n default: {\r\n let state = 0;\r\n while (parser.index < parser.end) {\r\n const type = CharTypes[parser.source.charCodeAt(parser.index)];\r\n if (type & 1024) {\r\n state |= 1 | 4;\r\n scanNewLine(parser);\r\n }\r\n else if (type & 2048) {\r\n consumeLineFeed(parser, state);\r\n state = (state & ~4) | 1;\r\n }\r\n else {\r\n advanceChar(parser);\r\n }\r\n if (CharTypes[parser.currentChar] & 16384)\r\n break;\r\n }\r\n const raw = parser.source.slice(parser.tokenPos, parser.index);\r\n if (context & 512)\r\n parser.tokenRaw = raw;\r\n parser.tokenValue = decodeHTMLStrict(raw);\r\n parser.token = 138;\r\n }\r\n }\r\n return parser.token;\r\n}\r\nfunction scanJSXIdentifier(parser) {\r\n if ((parser.token & 143360) === 143360) {\r\n const { index } = parser;\r\n let char = parser.currentChar;\r\n while (CharTypes[char] & (32768 | 2)) {\r\n char = advanceChar(parser);\r\n }\r\n parser.tokenValue += parser.source.slice(index, parser.index);\r\n }\r\n parser.token = 208897;\r\n return parser.token;\r\n}\n\nfunction matchOrInsertSemicolon(parser, context, specDeviation) {\r\n if ((parser.flags & 1) === 0 &&\r\n (parser.token & 1048576) !== 1048576 &&\r\n !specDeviation) {\r\n report(parser, 28, KeywordDescTable[parser.token & 255]);\r\n }\r\n if (!consumeOpt(parser, context, 1074790417)) {\r\n parser.onInsertedSemicolon?.(parser.startPos);\r\n }\r\n}\r\nfunction isValidStrictMode(parser, index, tokenPos, tokenValue) {\r\n if (index - tokenPos < 13 && tokenValue === 'use strict') {\r\n if ((parser.token & 1048576) === 1048576 || parser.flags & 1) {\r\n return 1;\r\n }\r\n }\r\n return 0;\r\n}\r\nfunction optionalBit(parser, context, t) {\r\n if (parser.token !== t)\r\n return 0;\r\n nextToken(parser, context);\r\n return 1;\r\n}\r\nfunction consumeOpt(parser, context, t) {\r\n if (parser.token !== t)\r\n return false;\r\n nextToken(parser, context);\r\n return true;\r\n}\r\nfunction consume(parser, context, t) {\r\n if (parser.token !== t)\r\n report(parser, 23, KeywordDescTable[t & 255]);\r\n nextToken(parser, context);\r\n}\r\nfunction reinterpretToPattern(state, node) {\r\n switch (node.type) {\r\n case 'ArrayExpression':\r\n node.type = 'ArrayPattern';\r\n const elements = node.elements;\r\n for (let i = 0, n = elements.length; i < n; ++i) {\r\n const element = elements[i];\r\n if (element)\r\n reinterpretToPattern(state, element);\r\n }\r\n return;\r\n case 'ObjectExpression':\r\n node.type = 'ObjectPattern';\r\n const properties = node.properties;\r\n for (let i = 0, n = properties.length; i < n; ++i) {\r\n reinterpretToPattern(state, properties[i]);\r\n }\r\n return;\r\n case 'AssignmentExpression':\r\n node.type = 'AssignmentPattern';\r\n if (node.operator !== '=')\r\n report(state, 69);\r\n delete node.operator;\r\n reinterpretToPattern(state, node.left);\r\n return;\r\n case 'Property':\r\n reinterpretToPattern(state, node.value);\r\n return;\r\n case 'SpreadElement':\r\n node.type = 'RestElement';\r\n reinterpretToPattern(state, node.argument);\r\n }\r\n}\r\nfunction validateBindingIdentifier(parser, context, kind, t, skipEvalArgCheck) {\r\n if (context & 1024) {\r\n if ((t & 36864) === 36864) {\r\n report(parser, 115);\r\n }\r\n if (!skipEvalArgCheck && (t & 537079808) === 537079808) {\r\n report(parser, 116);\r\n }\r\n }\r\n if ((t & 20480) === 20480) {\r\n report(parser, 100);\r\n }\r\n if (kind & (8 | 16) && t === 241739) {\r\n report(parser, 98);\r\n }\r\n if (context & (4194304 | 2048) && t === 209008) {\r\n report(parser, 96);\r\n }\r\n if (context & (2097152 | 1024) && t === 241773) {\r\n report(parser, 95, 'yield');\r\n }\r\n}\r\nfunction validateFunctionName(parser, context, t) {\r\n if (context & 1024) {\r\n if ((t & 36864) === 36864) {\r\n report(parser, 115);\r\n }\r\n if ((t & 537079808) === 537079808) {\r\n report(parser, 116);\r\n }\r\n if (t === 122) {\r\n report(parser, 93);\r\n }\r\n if (t === 121) {\r\n report(parser, 93);\r\n }\r\n }\r\n if ((t & 20480) === 20480) {\r\n report(parser, 100);\r\n }\r\n if (context & (4194304 | 2048) && t === 209008) {\r\n report(parser, 96);\r\n }\r\n if (context & (2097152 | 1024) && t === 241773) {\r\n report(parser, 95, 'yield');\r\n }\r\n}\r\nfunction isStrictReservedWord(parser, context, t) {\r\n if (t === 209008) {\r\n if (context & (4194304 | 2048))\r\n report(parser, 96);\r\n parser.destructible |= 128;\r\n }\r\n if (t === 241773 && context & 2097152)\r\n report(parser, 95, 'yield');\r\n return ((t & 20480) === 20480 ||\r\n (t & 36864) === 36864 ||\r\n t == 122);\r\n}\r\nfunction isPropertyWithPrivateFieldKey(expr) {\r\n return !expr.property ? false : expr.property.type === 'PrivateIdentifier';\r\n}\r\nfunction isValidLabel(parser, labels, name, isIterationStatement) {\r\n while (labels) {\r\n if (labels['$' + name]) {\r\n if (isIterationStatement)\r\n report(parser, 134);\r\n return 1;\r\n }\r\n if (isIterationStatement && labels.loop)\r\n isIterationStatement = 0;\r\n labels = labels['$'];\r\n }\r\n return 0;\r\n}\r\nfunction validateAndDeclareLabel(parser, labels, name) {\r\n let set = labels;\r\n while (set) {\r\n if (set['$' + name])\r\n report(parser, 133, name);\r\n set = set['$'];\r\n }\r\n labels['$' + name] = 1;\r\n}\r\nfunction finishNode(parser, context, start, line, column, node) {\r\n if (context & 2) {\r\n node.start = start;\r\n node.end = parser.startPos;\r\n node.range = [start, parser.startPos];\r\n }\r\n if (context & 4) {\r\n node.loc = {\r\n start: {\r\n line,\r\n column\r\n },\r\n end: {\r\n line: parser.startLine,\r\n column: parser.startColumn\r\n }\r\n };\r\n if (parser.sourceFile) {\r\n node.loc.source = parser.sourceFile;\r\n }\r\n }\r\n return node;\r\n}\r\nfunction isEqualTagName(elementName) {\r\n switch (elementName.type) {\r\n case 'JSXIdentifier':\r\n return elementName.name;\r\n case 'JSXNamespacedName':\r\n return elementName.namespace + ':' + elementName.name;\r\n case 'JSXMemberExpression':\r\n return isEqualTagName(elementName.object) + '.' + isEqualTagName(elementName.property);\r\n }\r\n}\r\nfunction createArrowHeadParsingScope(parser, context, value) {\r\n const scope = addChildScope(createScope(), 1024);\r\n addBlockName(parser, context, scope, value, 1, 0);\r\n return scope;\r\n}\r\nfunction recordScopeError(parser, type, ...params) {\r\n const { index, line, column } = parser;\r\n return {\r\n type,\r\n params,\r\n index,\r\n line,\r\n column\r\n };\r\n}\r\nfunction createScope() {\r\n return {\r\n parent: void 0,\r\n type: 2\r\n };\r\n}\r\nfunction addChildScope(parent, type) {\r\n return {\r\n parent,\r\n type,\r\n scopeError: void 0\r\n };\r\n}\r\nfunction addVarOrBlock(parser, context, scope, name, kind, origin) {\r\n if (kind & 4) {\r\n addVarName(parser, context, scope, name, kind);\r\n }\r\n else {\r\n addBlockName(parser, context, scope, name, kind, origin);\r\n }\r\n if (origin & 64) {\r\n declareUnboundVariable(parser, name);\r\n }\r\n}\r\nfunction addBlockName(parser, context, scope, name, kind, origin) {\r\n const value = scope['#' + name];\r\n if (value && (value & 2) === 0) {\r\n if (kind & 1) {\r\n scope.scopeError = recordScopeError(parser, 141, name);\r\n }\r\n else if (context & 256 &&\r\n value & 64 &&\r\n origin & 2) ;\r\n else {\r\n report(parser, 141, name);\r\n }\r\n }\r\n if (scope.type & 128 &&\r\n (scope.parent['#' + name] && (scope.parent['#' + name] & 2) === 0)) {\r\n report(parser, 141, name);\r\n }\r\n if (scope.type & 1024 && value && (value & 2) === 0) {\r\n if (kind & 1) {\r\n scope.scopeError = recordScopeError(parser, 141, name);\r\n }\r\n }\r\n if (scope.type & 64) {\r\n if (scope.parent['#' + name] & 768)\r\n report(parser, 154, name);\r\n }\r\n scope['#' + name] = kind;\r\n}\r\nfunction addVarName(parser, context, scope, name, kind) {\r\n let currentScope = scope;\r\n while (currentScope && (currentScope.type & 256) === 0) {\r\n const value = currentScope['#' + name];\r\n if (value & 248) {\r\n if (context & 256 &&\r\n (context & 1024) === 0 &&\r\n ((kind & 128 && value & 68) ||\r\n (value & 128 && kind & 68))) ;\r\n else {\r\n report(parser, 141, name);\r\n }\r\n }\r\n if (currentScope === scope) {\r\n if (value & 1 && kind & 1) {\r\n currentScope.scopeError = recordScopeError(parser, 141, name);\r\n }\r\n }\r\n if (value & (512 | 256)) {\r\n if ((value & 512) === 0 ||\r\n (context & 256) === 0 ||\r\n context & 1024) {\r\n report(parser, 141, name);\r\n }\r\n }\r\n currentScope['#' + name] = kind;\r\n currentScope = currentScope.parent;\r\n }\r\n}\r\nfunction declareUnboundVariable(parser, name) {\r\n if (parser.exportedNames !== void 0 && name !== '') {\r\n if (parser.exportedNames['#' + name]) {\r\n report(parser, 142, name);\r\n }\r\n parser.exportedNames['#' + name] = 1;\r\n }\r\n}\r\nfunction addBindingToExports(parser, name) {\r\n if (parser.exportedBindings !== void 0 && name !== '') {\r\n parser.exportedBindings['#' + name] = 1;\r\n }\r\n}\r\nfunction pushComment(context, array) {\r\n return function (type, value, start, end, loc) {\r\n const comment = {\r\n type,\r\n value\r\n };\r\n if (context & 2) {\r\n comment.start = start;\r\n comment.end = end;\r\n comment.range = [start, end];\r\n }\r\n if (context & 4) {\r\n comment.loc = loc;\r\n }\r\n array.push(comment);\r\n };\r\n}\r\nfunction pushToken(context, array) {\r\n return function (token, start, end, loc) {\r\n const tokens = {\r\n token\r\n };\r\n if (context & 2) {\r\n tokens.start = start;\r\n tokens.end = end;\r\n tokens.range = [start, end];\r\n }\r\n if (context & 4) {\r\n tokens.loc = loc;\r\n }\r\n array.push(tokens);\r\n };\r\n}\r\nfunction isValidIdentifier(context, t) {\r\n if (context & (1024 | 2097152)) {\r\n if (context & 2048 && t === 209008)\r\n return false;\r\n if (context & 2097152 && t === 241773)\r\n return false;\r\n return (t & 143360) === 143360 || (t & 12288) === 12288;\r\n }\r\n return ((t & 143360) === 143360 ||\r\n (t & 12288) === 12288 ||\r\n (t & 36864) === 36864);\r\n}\r\nfunction classifyIdentifier(parser, context, t, isArrow) {\r\n if ((t & 537079808) === 537079808) {\r\n if (context & 1024)\r\n report(parser, 116);\r\n if (isArrow)\r\n parser.flags |= 512;\r\n }\r\n if (!isValidIdentifier(context, t))\r\n report(parser, 0);\r\n}\n\nfunction create(source, sourceFile, onComment, onToken, onInsertedSemicolon) {\r\n return {\r\n source,\r\n flags: 0,\r\n index: 0,\r\n line: 1,\r\n column: 0,\r\n startPos: 0,\r\n end: source.length,\r\n tokenPos: 0,\r\n startColumn: 0,\r\n colPos: 0,\r\n linePos: 1,\r\n startLine: 1,\r\n sourceFile,\r\n tokenValue: '',\r\n token: 1048576,\r\n tokenRaw: '',\r\n tokenRegExp: void 0,\r\n currentChar: source.charCodeAt(0),\r\n exportedNames: [],\r\n exportedBindings: [],\r\n assignable: 1,\r\n destructible: 0,\r\n onComment,\r\n onToken,\r\n onInsertedSemicolon,\r\n leadingDecorators: []\r\n };\r\n}\r\nfunction parseSource(source, options, context) {\r\n let sourceFile = '';\r\n let onComment;\r\n let onInsertedSemicolon;\r\n let onToken;\r\n if (options != null) {\r\n if (options.module)\r\n context |= 2048 | 1024;\r\n if (options.next)\r\n context |= 1;\r\n if (options.loc)\r\n context |= 4;\r\n if (options.ranges)\r\n context |= 2;\r\n if (options.uniqueKeyInPattern)\r\n context |= -2147483648;\r\n if (options.lexical)\r\n context |= 64;\r\n if (options.webcompat)\r\n context |= 256;\r\n if (options.directives)\r\n context |= 8 | 512;\r\n if (options.globalReturn)\r\n context |= 32;\r\n if (options.raw)\r\n context |= 512;\r\n if (options.preserveParens)\r\n context |= 128;\r\n if (options.impliedStrict)\r\n context |= 1024;\r\n if (options.jsx)\r\n context |= 16;\r\n if (options.identifierPattern)\r\n context |= 268435456;\r\n if (options.specDeviation)\r\n context |= 536870912;\r\n if (options.source)\r\n sourceFile = options.source;\r\n if (options.onComment != null) {\r\n onComment = Array.isArray(options.onComment) ? pushComment(context, options.onComment) : options.onComment;\r\n }\r\n if (options.onInsertedSemicolon != null)\r\n onInsertedSemicolon = options.onInsertedSemicolon;\r\n if (options.onToken != null) {\r\n onToken = Array.isArray(options.onToken) ? pushToken(context, options.onToken) : options.onToken;\r\n }\r\n }\r\n const parser = create(source, sourceFile, onComment, onToken, onInsertedSemicolon);\r\n if (context & 1)\r\n skipHashBang(parser);\r\n const scope = context & 64 ? createScope() : void 0;\r\n let body = [];\r\n let sourceType = 'script';\r\n if (context & 2048) {\r\n sourceType = 'module';\r\n body = parseModuleItemList(parser, context | 8192, scope);\r\n if (scope) {\r\n for (const key in parser.exportedBindings) {\r\n if (key[0] === '#' && !scope[key])\r\n report(parser, 143, key.slice(1));\r\n }\r\n }\r\n }\r\n else {\r\n body = parseStatementList(parser, context | 8192, scope);\r\n }\r\n const node = {\r\n type: 'Program',\r\n sourceType,\r\n body\r\n };\r\n if (context & 2) {\r\n node.start = 0;\r\n node.end = source.length;\r\n node.range = [0, source.length];\r\n }\r\n if (context & 4) {\r\n node.loc = {\r\n start: { line: 1, column: 0 },\r\n end: { line: parser.line, column: parser.column }\r\n };\r\n if (parser.sourceFile)\r\n node.loc.source = sourceFile;\r\n }\r\n return node;\r\n}\r\nfunction parseStatementList(parser, context, scope) {\r\n nextToken(parser, context | 32768 | 1073741824);\r\n const statements = [];\r\n while (parser.token === 134283267) {\r\n const { index, tokenPos, tokenValue, linePos, colPos, token } = parser;\r\n const expr = parseLiteral(parser, context);\r\n if (isValidStrictMode(parser, index, tokenPos, tokenValue))\r\n context |= 1024;\r\n statements.push(parseDirective(parser, context, expr, token, tokenPos, linePos, colPos));\r\n }\r\n while (parser.token !== 1048576) {\r\n statements.push(parseStatementListItem(parser, context, scope, 4, {}));\r\n }\r\n return statements;\r\n}\r\nfunction parseModuleItemList(parser, context, scope) {\r\n nextToken(parser, context | 32768);\r\n const statements = [];\r\n if (context & 8) {\r\n while (parser.token === 134283267) {\r\n const { tokenPos, linePos, colPos, token } = parser;\r\n statements.push(parseDirective(parser, context, parseLiteral(parser, context), token, tokenPos, linePos, colPos));\r\n }\r\n }\r\n while (parser.token !== 1048576) {\r\n statements.push(parseModuleItem(parser, context, scope));\r\n }\r\n return statements;\r\n}\r\nfunction parseModuleItem(parser, context, scope) {\r\n parser.leadingDecorators = parseDecorators(parser, context);\r\n let moduleItem;\r\n switch (parser.token) {\r\n case 20566:\r\n moduleItem = parseExportDeclaration(parser, context, scope);\r\n break;\r\n case 86108:\r\n moduleItem = parseImportDeclaration(parser, context, scope);\r\n break;\r\n default:\r\n moduleItem = parseStatementListItem(parser, context, scope, 4, {});\r\n }\r\n if (parser.leadingDecorators.length) {\r\n report(parser, 165);\r\n }\r\n return moduleItem;\r\n}\r\nfunction parseStatementListItem(parser, context, scope, origin, labels) {\r\n const start = parser.tokenPos;\r\n const line = parser.linePos;\r\n const column = parser.colPos;\r\n switch (parser.token) {\r\n case 86106:\r\n return parseFunctionDeclaration(parser, context, scope, origin, 1, 0, 0, start, line, column);\r\n case 133:\r\n case 86096:\r\n return parseClassDeclaration(parser, context, scope, 0, start, line, column);\r\n case 86092:\r\n return parseLexicalDeclaration(parser, context, scope, 16, 0, start, line, column);\r\n case 241739:\r\n return parseLetIdentOrVarDeclarationStatement(parser, context, scope, origin, start, line, column);\r\n case 20566:\r\n report(parser, 101, 'export');\r\n case 86108:\r\n nextToken(parser, context);\r\n switch (parser.token) {\r\n case 67174411:\r\n return parseImportCallDeclaration(parser, context, start, line, column);\r\n case 67108877:\r\n return parseImportMetaDeclaration(parser, context, start, line, column);\r\n default:\r\n report(parser, 101, 'import');\r\n }\r\n case 209007:\r\n return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, 1, start, line, column);\r\n default:\r\n return parseStatement(parser, context, scope, origin, labels, 1, start, line, column);\r\n }\r\n}\r\nfunction parseStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) {\r\n switch (parser.token) {\r\n case 86090:\r\n return parseVariableStatement(parser, context, scope, 0, start, line, column);\r\n case 20574:\r\n return parseReturnStatement(parser, context, start, line, column);\r\n case 20571:\r\n return parseIfStatement(parser, context, scope, labels, start, line, column);\r\n case 20569:\r\n return parseForStatement(parser, context, scope, labels, start, line, column);\r\n case 20564:\r\n return parseDoWhileStatement(parser, context, scope, labels, start, line, column);\r\n case 20580:\r\n return parseWhileStatement(parser, context, scope, labels, start, line, column);\r\n case 86112:\r\n return parseSwitchStatement(parser, context, scope, labels, start, line, column);\r\n case 1074790417:\r\n return parseEmptyStatement(parser, context, start, line, column);\r\n case 2162700:\r\n return parseBlock(parser, context, scope ? addChildScope(scope, 2) : scope, labels, start, line, column);\r\n case 86114:\r\n return parseThrowStatement(parser, context, start, line, column);\r\n case 20557:\r\n return parseBreakStatement(parser, context, labels, start, line, column);\r\n case 20561:\r\n return parseContinueStatement(parser, context, labels, start, line, column);\r\n case 20579:\r\n return parseTryStatement(parser, context, scope, labels, start, line, column);\r\n case 20581:\r\n return parseWithStatement(parser, context, scope, labels, start, line, column);\r\n case 20562:\r\n return parseDebuggerStatement(parser, context, start, line, column);\r\n case 209007:\r\n return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, 0, start, line, column);\r\n case 20559:\r\n report(parser, 157);\r\n case 20568:\r\n report(parser, 158);\r\n case 86106:\r\n report(parser, context & 1024\r\n ? 74\r\n : (context & 256) === 0\r\n ? 76\r\n : 75);\r\n case 86096:\r\n report(parser, 77);\r\n default:\r\n return parseExpressionOrLabelledStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column);\r\n }\r\n}\r\nfunction parseExpressionOrLabelledStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) {\r\n const { tokenValue, token } = parser;\r\n let expr;\r\n switch (token) {\r\n case 241739:\r\n expr = parseIdentifier(parser, context, 0);\r\n if (context & 1024)\r\n report(parser, 83);\r\n if (parser.token === 69271571)\r\n report(parser, 82);\r\n break;\r\n default:\r\n expr = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos);\r\n }\r\n if (token & 143360 && parser.token === 21) {\r\n return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, allowFuncDecl, start, line, column);\r\n }\r\n expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column);\r\n expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr);\r\n if (parser.token === 18) {\r\n expr = parseSequenceExpression(parser, context, 0, start, line, column, expr);\r\n }\r\n return parseExpressionStatement(parser, context, expr, start, line, column);\r\n}\r\nfunction parseBlock(parser, context, scope, labels, start, line, column) {\r\n const body = [];\r\n consume(parser, context | 32768, 2162700);\r\n while (parser.token !== 1074790415) {\r\n body.push(parseStatementListItem(parser, context, scope, 2, { $: labels }));\r\n }\r\n consume(parser, context | 32768, 1074790415);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'BlockStatement',\r\n body\r\n });\r\n}\r\nfunction parseReturnStatement(parser, context, start, line, column) {\r\n if ((context & 32) === 0 && context & 8192)\r\n report(parser, 90);\r\n nextToken(parser, context | 32768);\r\n const argument = parser.flags & 1 || parser.token & 1048576\r\n ? null\r\n : parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos);\r\n matchOrInsertSemicolon(parser, context | 32768);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'ReturnStatement',\r\n argument\r\n });\r\n}\r\nfunction parseExpressionStatement(parser, context, expression, start, line, column) {\r\n matchOrInsertSemicolon(parser, context | 32768);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'ExpressionStatement',\r\n expression\r\n });\r\n}\r\nfunction parseLabelledStatement(parser, context, scope, origin, labels, value, expr, token, allowFuncDecl, start, line, column) {\r\n validateBindingIdentifier(parser, context, 0, token, 1);\r\n validateAndDeclareLabel(parser, labels, value);\r\n nextToken(parser, context | 32768);\r\n const body = allowFuncDecl &&\r\n (context & 1024) === 0 &&\r\n context & 256 &&\r\n parser.token === 86106\r\n ? parseFunctionDeclaration(parser, context, addChildScope(scope, 2), origin, 0, 0, 0, parser.tokenPos, parser.linePos, parser.colPos)\r\n : parseStatement(parser, context, scope, origin, labels, allowFuncDecl, parser.tokenPos, parser.linePos, parser.colPos);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'LabeledStatement',\r\n label: expr,\r\n body\r\n });\r\n}\r\nfunction parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) {\r\n const { token, tokenValue } = parser;\r\n let expr = parseIdentifier(parser, context, 0);\r\n if (parser.token === 21) {\r\n return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, 1, start, line, column);\r\n }\r\n const asyncNewLine = parser.flags & 1;\r\n if (!asyncNewLine) {\r\n if (parser.token === 86106) {\r\n if (!allowFuncDecl)\r\n report(parser, 120);\r\n return parseFunctionDeclaration(parser, context, scope, origin, 1, 0, 1, start, line, column);\r\n }\r\n if ((parser.token & 143360) === 143360) {\r\n expr = parseAsyncArrowAfterIdent(parser, context, 1, start, line, column);\r\n if (parser.token === 18)\r\n expr = parseSequenceExpression(parser, context, 0, start, line, column, expr);\r\n return parseExpressionStatement(parser, context, expr, start, line, column);\r\n }\r\n }\r\n if (parser.token === 67174411) {\r\n expr = parseAsyncArrowOrCallExpression(parser, context, expr, 1, 1, 0, asyncNewLine, start, line, column);\r\n }\r\n else {\r\n if (parser.token === 10) {\r\n classifyIdentifier(parser, context, token, 1);\r\n expr = parseArrowFromIdentifier(parser, context, parser.tokenValue, expr, 0, 1, 0, start, line, column);\r\n }\r\n parser.assignable = 1;\r\n }\r\n expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column);\r\n expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr);\r\n parser.assignable = 1;\r\n if (parser.token === 18) {\r\n expr = parseSequenceExpression(parser, context, 0, start, line, column, expr);\r\n }\r\n return parseExpressionStatement(parser, context, expr, start, line, column);\r\n}\r\nfunction parseDirective(parser, context, expression, token, start, line, column) {\r\n if (token !== 1074790417) {\r\n parser.assignable = 2;\r\n expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column);\r\n if (parser.token !== 1074790417) {\r\n expression = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expression);\r\n if (parser.token === 18) {\r\n expression = parseSequenceExpression(parser, context, 0, start, line, column, expression);\r\n }\r\n }\r\n matchOrInsertSemicolon(parser, context | 32768);\r\n }\r\n return context & 8 && expression.type === 'Literal' && typeof expression.value === 'string'\r\n ? finishNode(parser, context, start, line, column, {\r\n type: 'ExpressionStatement',\r\n expression,\r\n directive: expression.raw.slice(1, -1)\r\n })\r\n : finishNode(parser, context, start, line, column, {\r\n type: 'ExpressionStatement',\r\n expression\r\n });\r\n}\r\nfunction parseEmptyStatement(parser, context, start, line, column) {\r\n nextToken(parser, context | 32768);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'EmptyStatement'\r\n });\r\n}\r\nfunction parseThrowStatement(parser, context, start, line, column) {\r\n nextToken(parser, context | 32768);\r\n if (parser.flags & 1)\r\n report(parser, 88);\r\n const argument = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos);\r\n matchOrInsertSemicolon(parser, context | 32768);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'ThrowStatement',\r\n argument\r\n });\r\n}\r\nfunction parseIfStatement(parser, context, scope, labels, start, line, column) {\r\n nextToken(parser, context);\r\n consume(parser, context | 32768, 67174411);\r\n parser.assignable = 1;\r\n const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.line, parser.colPos);\r\n consume(parser, context | 32768, 16);\r\n const consequent = parseConsequentOrAlternative(parser, context, scope, labels, parser.tokenPos, parser.linePos, parser.colPos);\r\n let alternate = null;\r\n if (parser.token === 20565) {\r\n nextToken(parser, context | 32768);\r\n alternate = parseConsequentOrAlternative(parser, context, scope, labels, parser.tokenPos, parser.linePos, parser.colPos);\r\n }\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'IfStatement',\r\n test,\r\n consequent,\r\n alternate\r\n });\r\n}\r\nfunction parseConsequentOrAlternative(parser, context, scope, labels, start, line, column) {\r\n return context & 1024 ||\r\n (context & 256) === 0 ||\r\n parser.token !== 86106\r\n ? parseStatement(parser, context, scope, 0, { $: labels }, 0, parser.tokenPos, parser.linePos, parser.colPos)\r\n : parseFunctionDeclaration(parser, context, addChildScope(scope, 2), 0, 0, 0, 0, start, line, column);\r\n}\r\nfunction parseSwitchStatement(parser, context, scope, labels, start, line, column) {\r\n nextToken(parser, context);\r\n consume(parser, context | 32768, 67174411);\r\n const discriminant = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos);\r\n consume(parser, context, 16);\r\n consume(parser, context, 2162700);\r\n const cases = [];\r\n let seenDefault = 0;\r\n if (scope)\r\n scope = addChildScope(scope, 8);\r\n while (parser.token !== 1074790415) {\r\n const { tokenPos, linePos, colPos } = parser;\r\n let test = null;\r\n const consequent = [];\r\n if (consumeOpt(parser, context | 32768, 20558)) {\r\n test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos);\r\n }\r\n else {\r\n consume(parser, context | 32768, 20563);\r\n if (seenDefault)\r\n report(parser, 87);\r\n seenDefault = 1;\r\n }\r\n consume(parser, context | 32768, 21);\r\n while (parser.token !== 20558 &&\r\n parser.token !== 1074790415 &&\r\n parser.token !== 20563) {\r\n consequent.push(parseStatementListItem(parser, context | 4096, scope, 2, {\r\n $: labels\r\n }));\r\n }\r\n cases.push(finishNode(parser, context, tokenPos, linePos, colPos, {\r\n type: 'SwitchCase',\r\n test,\r\n consequent\r\n }));\r\n }\r\n consume(parser, context | 32768, 1074790415);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'SwitchStatement',\r\n discriminant,\r\n cases\r\n });\r\n}\r\nfunction parseWhileStatement(parser, context, scope, labels, start, line, column) {\r\n nextToken(parser, context);\r\n consume(parser, context | 32768, 67174411);\r\n const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos);\r\n consume(parser, context | 32768, 16);\r\n const body = parseIterationStatementBody(parser, context, scope, labels);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'WhileStatement',\r\n test,\r\n body\r\n });\r\n}\r\nfunction parseIterationStatementBody(parser, context, scope, labels) {\r\n return parseStatement(parser, ((context | 134217728) ^ 134217728) | 131072, scope, 0, { loop: 1, $: labels }, 0, parser.tokenPos, parser.linePos, parser.colPos);\r\n}\r\nfunction parseContinueStatement(parser, context, labels, start, line, column) {\r\n if ((context & 131072) === 0)\r\n report(parser, 66);\r\n nextToken(parser, context);\r\n let label = null;\r\n if ((parser.flags & 1) === 0 && parser.token & 143360) {\r\n const { tokenValue } = parser;\r\n label = parseIdentifier(parser, context | 32768, 0);\r\n if (!isValidLabel(parser, labels, tokenValue, 1))\r\n report(parser, 135, tokenValue);\r\n }\r\n matchOrInsertSemicolon(parser, context | 32768);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'ContinueStatement',\r\n label\r\n });\r\n}\r\nfunction parseBreakStatement(parser, context, labels, start, line, column) {\r\n nextToken(parser, context | 32768);\r\n let label = null;\r\n if ((parser.flags & 1) === 0 && parser.token & 143360) {\r\n const { tokenValue } = parser;\r\n label = parseIdentifier(parser, context | 32768, 0);\r\n if (!isValidLabel(parser, labels, tokenValue, 0))\r\n report(parser, 135, tokenValue);\r\n }\r\n else if ((context & (4096 | 131072)) === 0) {\r\n report(parser, 67);\r\n }\r\n matchOrInsertSemicolon(parser, context | 32768);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'BreakStatement',\r\n label\r\n });\r\n}\r\nfunction parseWithStatement(parser, context, scope, labels, start, line, column) {\r\n nextToken(parser, context);\r\n if (context & 1024)\r\n report(parser, 89);\r\n consume(parser, context | 32768, 67174411);\r\n const object = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos);\r\n consume(parser, context | 32768, 16);\r\n const body = parseStatement(parser, context, scope, 2, labels, 0, parser.tokenPos, parser.linePos, parser.colPos);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'WithStatement',\r\n object,\r\n body\r\n });\r\n}\r\nfunction parseDebuggerStatement(parser, context, start, line, column) {\r\n nextToken(parser, context | 32768);\r\n matchOrInsertSemicolon(parser, context | 32768);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'DebuggerStatement'\r\n });\r\n}\r\nfunction parseTryStatement(parser, context, scope, labels, start, line, column) {\r\n nextToken(parser, context | 32768);\r\n const firstScope = scope ? addChildScope(scope, 32) : void 0;\r\n const block = parseBlock(parser, context, firstScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos);\r\n const { tokenPos, linePos, colPos } = parser;\r\n const handler = consumeOpt(parser, context | 32768, 20559)\r\n ? parseCatchBlock(parser, context, scope, labels, tokenPos, linePos, colPos)\r\n : null;\r\n let finalizer = null;\r\n if (parser.token === 20568) {\r\n nextToken(parser, context | 32768);\r\n const finalizerScope = firstScope ? addChildScope(scope, 4) : void 0;\r\n finalizer = parseBlock(parser, context, finalizerScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos);\r\n }\r\n if (!handler && !finalizer) {\r\n report(parser, 86);\r\n }\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'TryStatement',\r\n block,\r\n handler,\r\n finalizer\r\n });\r\n}\r\nfunction parseCatchBlock(parser, context, scope, labels, start, line, column) {\r\n let param = null;\r\n let additionalScope = scope;\r\n if (consumeOpt(parser, context, 67174411)) {\r\n if (scope)\r\n scope = addChildScope(scope, 4);\r\n param = parseBindingPattern(parser, context, scope, (parser.token & 2097152) === 2097152\r\n ? 256\r\n : 512, 0, parser.tokenPos, parser.linePos, parser.colPos);\r\n if (parser.token === 18) {\r\n report(parser, 84);\r\n }\r\n else if (parser.token === 1077936157) {\r\n report(parser, 85);\r\n }\r\n consume(parser, context | 32768, 16);\r\n if (scope)\r\n additionalScope = addChildScope(scope, 64);\r\n }\r\n const body = parseBlock(parser, context, additionalScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'CatchClause',\r\n param,\r\n body\r\n });\r\n}\r\nfunction parseStaticBlock(parser, context, scope, start, line, column) {\r\n if (scope)\r\n scope = addChildScope(scope, 2);\r\n const ctorContext = 16384 | 524288;\r\n context = ((context | ctorContext) ^ ctorContext) | 262144;\r\n const { body } = parseBlock(parser, context, scope, {}, start, line, column);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'StaticBlock',\r\n body\r\n });\r\n}\r\nfunction parseDoWhileStatement(parser, context, scope, labels, start, line, column) {\r\n nextToken(parser, context | 32768);\r\n const body = parseIterationStatementBody(parser, context, scope, labels);\r\n consume(parser, context, 20580);\r\n consume(parser, context | 32768, 67174411);\r\n const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos);\r\n consume(parser, context | 32768, 16);\r\n consumeOpt(parser, context | 32768, 1074790417);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'DoWhileStatement',\r\n body,\r\n test\r\n });\r\n}\r\nfunction parseLetIdentOrVarDeclarationStatement(parser, context, scope, origin, start, line, column) {\r\n const { token, tokenValue } = parser;\r\n let expr = parseIdentifier(parser, context, 0);\r\n if (parser.token & (143360 | 2097152)) {\r\n const declarations = parseVariableDeclarationList(parser, context, scope, 8, 0);\r\n matchOrInsertSemicolon(parser, context | 32768);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'VariableDeclaration',\r\n kind: 'let',\r\n declarations\r\n });\r\n }\r\n parser.assignable = 1;\r\n if (context & 1024)\r\n report(parser, 83);\r\n if (parser.token === 21) {\r\n return parseLabelledStatement(parser, context, scope, origin, {}, tokenValue, expr, token, 0, start, line, column);\r\n }\r\n if (parser.token === 10) {\r\n let scope = void 0;\r\n if (context & 64)\r\n scope = createArrowHeadParsingScope(parser, context, tokenValue);\r\n parser.flags = (parser.flags | 128) ^ 128;\r\n expr = parseArrowFunctionExpression(parser, context, scope, [expr], 0, start, line, column);\r\n }\r\n else {\r\n expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column);\r\n expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr);\r\n }\r\n if (parser.token === 18) {\r\n expr = parseSequenceExpression(parser, context, 0, start, line, column, expr);\r\n }\r\n return parseExpressionStatement(parser, context, expr, start, line, column);\r\n}\r\nfunction parseLexicalDeclaration(parser, context, scope, kind, origin, start, line, column) {\r\n nextToken(parser, context);\r\n const declarations = parseVariableDeclarationList(parser, context, scope, kind, origin);\r\n matchOrInsertSemicolon(parser, context | 32768);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'VariableDeclaration',\r\n kind: kind & 8 ? 'let' : 'const',\r\n declarations\r\n });\r\n}\r\nfunction parseVariableStatement(parser, context, scope, origin, start, line, column) {\r\n nextToken(parser, context);\r\n const declarations = parseVariableDeclarationList(parser, context, scope, 4, origin);\r\n matchOrInsertSemicolon(parser, context | 32768);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'VariableDeclaration',\r\n kind: 'var',\r\n declarations\r\n });\r\n}\r\nfunction parseVariableDeclarationList(parser, context, scope, kind, origin) {\r\n let bindingCount = 1;\r\n const list = [parseVariableDeclaration(parser, context, scope, kind, origin)];\r\n while (consumeOpt(parser, context, 18)) {\r\n bindingCount++;\r\n list.push(parseVariableDeclaration(parser, context, scope, kind, origin));\r\n }\r\n if (bindingCount > 1 && origin & 32 && parser.token & 262144) {\r\n report(parser, 59, KeywordDescTable[parser.token & 255]);\r\n }\r\n return list;\r\n}\r\nfunction parseVariableDeclaration(parser, context, scope, kind, origin) {\r\n const { token, tokenPos, linePos, colPos } = parser;\r\n let init = null;\r\n const id = parseBindingPattern(parser, context, scope, kind, origin, tokenPos, linePos, colPos);\r\n if (parser.token === 1077936157) {\r\n nextToken(parser, context | 32768);\r\n init = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos);\r\n if (origin & 32 || (token & 2097152) === 0) {\r\n if (parser.token === 274549 ||\r\n (parser.token === 8738868 &&\r\n (token & 2097152 || (kind & 4) === 0 || context & 1024))) {\r\n reportMessageAt(tokenPos, parser.line, parser.index - 3, 58, parser.token === 274549 ? 'of' : 'in');\r\n }\r\n }\r\n }\r\n else if ((kind & 16 || (token & 2097152) > 0) &&\r\n (parser.token & 262144) !== 262144) {\r\n report(parser, 57, kind & 16 ? 'const' : 'destructuring');\r\n }\r\n return finishNode(parser, context, tokenPos, linePos, colPos, {\r\n type: 'VariableDeclarator',\r\n id,\r\n init\r\n });\r\n}\r\nfunction parseForStatement(parser, context, scope, labels, start, line, column) {\r\n nextToken(parser, context);\r\n const forAwait = ((context & 4194304) > 0 || ((context & 2048) > 0 && (context & 8192) > 0)) &&\r\n consumeOpt(parser, context, 209008);\r\n consume(parser, context | 32768, 67174411);\r\n if (scope)\r\n scope = addChildScope(scope, 1);\r\n let test = null;\r\n let update = null;\r\n let destructible = 0;\r\n let init = null;\r\n let isVarDecl = parser.token === 86090 || parser.token === 241739 || parser.token === 86092;\r\n let right;\r\n const { token, tokenPos, linePos, colPos } = parser;\r\n if (isVarDecl) {\r\n if (token === 241739) {\r\n init = parseIdentifier(parser, context, 0);\r\n if (parser.token & (143360 | 2097152)) {\r\n if (parser.token === 8738868) {\r\n if (context & 1024)\r\n report(parser, 65);\r\n }\r\n else {\r\n init = finishNode(parser, context, tokenPos, linePos, colPos, {\r\n type: 'VariableDeclaration',\r\n kind: 'let',\r\n declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 8, 32)\r\n });\r\n }\r\n parser.assignable = 1;\r\n }\r\n else if (context & 1024) {\r\n report(parser, 65);\r\n }\r\n else {\r\n isVarDecl = false;\r\n parser.assignable = 1;\r\n init = parseMemberOrUpdateExpression(parser, context, init, 0, 0, tokenPos, linePos, colPos);\r\n if (parser.token === 274549)\r\n report(parser, 112);\r\n }\r\n }\r\n else {\r\n nextToken(parser, context);\r\n init = finishNode(parser, context, tokenPos, linePos, colPos, token === 86090\r\n ? {\r\n type: 'VariableDeclaration',\r\n kind: 'var',\r\n declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 4, 32)\r\n }\r\n : {\r\n type: 'VariableDeclaration',\r\n kind: 'const',\r\n declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 16, 32)\r\n });\r\n parser.assignable = 1;\r\n }\r\n }\r\n else if (token === 1074790417) {\r\n if (forAwait)\r\n report(parser, 80);\r\n }\r\n else if ((token & 2097152) === 2097152) {\r\n init =\r\n token === 2162700\r\n ? parseObjectLiteralOrPattern(parser, context, void 0, 1, 0, 0, 2, 32, tokenPos, linePos, colPos)\r\n : parseArrayExpressionOrPattern(parser, context, void 0, 1, 0, 0, 2, 32, tokenPos, linePos, colPos);\r\n destructible = parser.destructible;\r\n if (context & 256 && destructible & 64) {\r\n report(parser, 61);\r\n }\r\n parser.assignable =\r\n destructible & 16 ? 2 : 1;\r\n init = parseMemberOrUpdateExpression(parser, context | 134217728, init, 0, 0, parser.tokenPos, parser.linePos, parser.colPos);\r\n }\r\n else {\r\n init = parseLeftHandSideExpression(parser, context | 134217728, 1, 0, 1, tokenPos, linePos, colPos);\r\n }\r\n if ((parser.token & 262144) === 262144) {\r\n if (parser.token === 274549) {\r\n if (parser.assignable & 2)\r\n report(parser, 78, forAwait ? 'await' : 'of');\r\n reinterpretToPattern(parser, init);\r\n nextToken(parser, context | 32768);\r\n right = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos);\r\n consume(parser, context | 32768, 16);\r\n const body = parseIterationStatementBody(parser, context, scope, labels);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'ForOfStatement',\r\n left: init,\r\n right,\r\n body,\r\n await: forAwait\r\n });\r\n }\r\n if (parser.assignable & 2)\r\n report(parser, 78, 'in');\r\n reinterpretToPattern(parser, init);\r\n nextToken(parser, context | 32768);\r\n if (forAwait)\r\n report(parser, 80);\r\n right = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos);\r\n consume(parser, context | 32768, 16);\r\n const body = parseIterationStatementBody(parser, context, scope, labels);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'ForInStatement',\r\n body,\r\n left: init,\r\n right\r\n });\r\n }\r\n if (forAwait)\r\n report(parser, 80);\r\n if (!isVarDecl) {\r\n if (destructible & 8 && parser.token !== 1077936157) {\r\n report(parser, 78, 'loop');\r\n }\r\n init = parseAssignmentExpression(parser, context | 134217728, 0, 0, tokenPos, linePos, colPos, init);\r\n }\r\n if (parser.token === 18)\r\n init = parseSequenceExpression(parser, context, 0, parser.tokenPos, parser.linePos, parser.colPos, init);\r\n consume(parser, context | 32768, 1074790417);\r\n if (parser.token !== 1074790417)\r\n test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos);\r\n consume(parser, context | 32768, 1074790417);\r\n if (parser.token !== 16)\r\n update = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos);\r\n consume(parser, context | 32768, 16);\r\n const body = parseIterationStatementBody(parser, context, scope, labels);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'ForStatement',\r\n init,\r\n test,\r\n update,\r\n body\r\n });\r\n}\r\nfunction parseRestrictedIdentifier(parser, context, scope) {\r\n if (!isValidIdentifier(context, parser.token))\r\n report(parser, 115);\r\n if ((parser.token & 537079808) === 537079808)\r\n report(parser, 116);\r\n if (scope)\r\n addBlockName(parser, context, scope, parser.tokenValue, 8, 0);\r\n return parseIdentifier(parser, context, 0);\r\n}\r\nfunction parseImportDeclaration(parser, context, scope) {\r\n const start = parser.tokenPos;\r\n const line = parser.linePos;\r\n const column = parser.colPos;\r\n nextToken(parser, context);\r\n let source = null;\r\n const { tokenPos, linePos, colPos } = parser;\r\n let specifiers = [];\r\n if (parser.token === 134283267) {\r\n source = parseLiteral(parser, context);\r\n }\r\n else {\r\n if (parser.token & 143360) {\r\n const local = parseRestrictedIdentifier(parser, context, scope);\r\n specifiers = [\r\n finishNode(parser, context, tokenPos, linePos, colPos, {\r\n type: 'ImportDefaultSpecifier',\r\n local\r\n })\r\n ];\r\n if (consumeOpt(parser, context, 18)) {\r\n switch (parser.token) {\r\n case 8457014:\r\n specifiers.push(parseImportNamespaceSpecifier(parser, context, scope));\r\n break;\r\n case 2162700:\r\n parseImportSpecifierOrNamedImports(parser, context, scope, specifiers);\r\n break;\r\n default:\r\n report(parser, 105);\r\n }\r\n }\r\n }\r\n else {\r\n switch (parser.token) {\r\n case 8457014:\r\n specifiers = [parseImportNamespaceSpecifier(parser, context, scope)];\r\n break;\r\n case 2162700:\r\n parseImportSpecifierOrNamedImports(parser, context, scope, specifiers);\r\n break;\r\n case 67174411:\r\n return parseImportCallDeclaration(parser, context, start, line, column);\r\n case 67108877:\r\n return parseImportMetaDeclaration(parser, context, start, line, column);\r\n default:\r\n report(parser, 28, KeywordDescTable[parser.token & 255]);\r\n }\r\n }\r\n source = parseModuleSpecifier(parser, context);\r\n }\r\n matchOrInsertSemicolon(parser, context | 32768);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'ImportDeclaration',\r\n specifiers,\r\n source\r\n });\r\n}\r\nfunction parseImportNamespaceSpecifier(parser, context, scope) {\r\n const { tokenPos, linePos, colPos } = parser;\r\n nextToken(parser, context);\r\n consume(parser, context, 77934);\r\n if ((parser.token & 134217728) === 134217728) {\r\n reportMessageAt(tokenPos, parser.line, parser.index, 28, KeywordDescTable[parser.token & 255]);\r\n }\r\n return finishNode(parser, context, tokenPos, linePos, colPos, {\r\n type: 'ImportNamespaceSpecifier',\r\n local: parseRestrictedIdentifier(parser, context, scope)\r\n });\r\n}\r\nfunction parseModuleSpecifier(parser, context) {\r\n consumeOpt(parser, context, 12404);\r\n if (parser.token !== 134283267)\r\n report(parser, 103, 'Import');\r\n return parseLiteral(parser, context);\r\n}\r\nfunction parseImportSpecifierOrNamedImports(parser, context, scope, specifiers) {\r\n nextToken(parser, context);\r\n while (parser.token & 143360) {\r\n let { token, tokenValue, tokenPos, linePos, colPos } = parser;\r\n const imported = parseIdentifier(parser, context, 0);\r\n let local;\r\n if (consumeOpt(parser, context, 77934)) {\r\n if ((parser.token & 134217728) === 134217728 || parser.token === 18) {\r\n report(parser, 104);\r\n }\r\n else {\r\n validateBindingIdentifier(parser, context, 16, parser.token, 0);\r\n }\r\n tokenValue = parser.tokenValue;\r\n local = parseIdentifier(parser, context, 0);\r\n }\r\n else {\r\n validateBindingIdentifier(parser, context, 16, token, 0);\r\n local = imported;\r\n }\r\n if (scope)\r\n addBlockName(parser, context, scope, tokenValue, 8, 0);\r\n specifiers.push(finishNode(parser, context, tokenPos, linePos, colPos, {\r\n type: 'ImportSpecifier',\r\n local,\r\n imported\r\n }));\r\n if (parser.token !== 1074790415)\r\n consume(parser, context, 18);\r\n }\r\n consume(parser, context, 1074790415);\r\n return specifiers;\r\n}\r\nfunction parseImportMetaDeclaration(parser, context, start, line, column) {\r\n let expr = parseImportMetaExpression(parser, context, finishNode(parser, context, start, line, column, {\r\n type: 'Identifier',\r\n name: 'import'\r\n }), start, line, column);\r\n expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column);\r\n expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr);\r\n if (parser.token === 18) {\r\n expr = parseSequenceExpression(parser, context, 0, start, line, column, expr);\r\n }\r\n return parseExpressionStatement(parser, context, expr, start, line, column);\r\n}\r\nfunction parseImportCallDeclaration(parser, context, start, line, column) {\r\n let expr = parseImportExpression(parser, context, 0, start, line, column);\r\n expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column);\r\n if (parser.token === 18) {\r\n expr = parseSequenceExpression(parser, context, 0, start, line, column, expr);\r\n }\r\n return parseExpressionStatement(parser, context, expr, start, line, column);\r\n}\r\nfunction parseExportDeclaration(parser, context, scope) {\r\n const start = parser.tokenPos;\r\n const line = parser.linePos;\r\n const column = parser.colPos;\r\n nextToken(parser, context | 32768);\r\n const specifiers = [];\r\n let declaration = null;\r\n let source = null;\r\n let key;\r\n if (consumeOpt(parser, context | 32768, 20563)) {\r\n switch (parser.token) {\r\n case 86106: {\r\n declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);\r\n break;\r\n }\r\n case 133:\r\n case 86096:\r\n declaration = parseClassDeclaration(parser, context, scope, 1, parser.tokenPos, parser.linePos, parser.colPos);\r\n break;\r\n case 209007:\r\n const { tokenPos, linePos, colPos } = parser;\r\n declaration = parseIdentifier(parser, context, 0);\r\n const { flags } = parser;\r\n if ((flags & 1) === 0) {\r\n if (parser.token === 86106) {\r\n declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 1, 1, tokenPos, linePos, colPos);\r\n }\r\n else {\r\n if (parser.token === 67174411) {\r\n declaration = parseAsyncArrowOrCallExpression(parser, context, declaration, 1, 1, 0, flags, tokenPos, linePos, colPos);\r\n declaration = parseMemberOrUpdateExpression(parser, context, declaration, 0, 0, tokenPos, linePos, colPos);\r\n declaration = parseAssignmentExpression(parser, context, 0, 0, tokenPos, linePos, colPos, declaration);\r\n }\r\n else if (parser.token & 143360) {\r\n if (scope)\r\n scope = createArrowHeadParsingScope(parser, context, parser.tokenValue);\r\n declaration = parseIdentifier(parser, context, 0);\r\n declaration = parseArrowFunctionExpression(parser, context, scope, [declaration], 1, tokenPos, linePos, colPos);\r\n }\r\n }\r\n }\r\n break;\r\n default:\r\n declaration = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos);\r\n matchOrInsertSemicolon(parser, context | 32768);\r\n }\r\n if (scope)\r\n declareUnboundVariable(parser, 'default');\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'ExportDefaultDeclaration',\r\n declaration\r\n });\r\n }\r\n switch (parser.token) {\r\n case 8457014: {\r\n nextToken(parser, context);\r\n let exported = null;\r\n const isNamedDeclaration = consumeOpt(parser, context, 77934);\r\n if (isNamedDeclaration) {\r\n if (scope)\r\n declareUnboundVariable(parser, parser.tokenValue);\r\n exported = parseIdentifier(parser, context, 0);\r\n }\r\n consume(parser, context, 12404);\r\n if (parser.token !== 134283267)\r\n report(parser, 103, 'Export');\r\n source = parseLiteral(parser, context);\r\n matchOrInsertSemicolon(parser, context | 32768);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'ExportAllDeclaration',\r\n source,\r\n exported\r\n });\r\n }\r\n case 2162700: {\r\n nextToken(parser, context);\r\n const tmpExportedNames = [];\r\n const tmpExportedBindings = [];\r\n while (parser.token & 143360) {\r\n const { tokenPos, tokenValue, linePos, colPos } = parser;\r\n const local = parseIdentifier(parser, context, 0);\r\n let exported;\r\n if (parser.token === 77934) {\r\n nextToken(parser, context);\r\n if ((parser.token & 134217728) === 134217728) {\r\n report(parser, 104);\r\n }\r\n if (scope) {\r\n tmpExportedNames.push(parser.tokenValue);\r\n tmpExportedBindings.push(tokenValue);\r\n }\r\n exported = parseIdentifier(parser, context, 0);\r\n }\r\n else {\r\n if (scope) {\r\n tmpExportedNames.push(parser.tokenValue);\r\n tmpExportedBindings.push(parser.tokenValue);\r\n }\r\n exported = local;\r\n }\r\n specifiers.push(finishNode(parser, context, tokenPos, linePos, colPos, {\r\n type: 'ExportSpecifier',\r\n local,\r\n exported\r\n }));\r\n if (parser.token !== 1074790415)\r\n consume(parser, context, 18);\r\n }\r\n consume(parser, context, 1074790415);\r\n if (consumeOpt(parser, context, 12404)) {\r\n if (parser.token !== 134283267)\r\n report(parser, 103, 'Export');\r\n source = parseLiteral(parser, context);\r\n }\r\n else if (scope) {\r\n let i = 0;\r\n let iMax = tmpExportedNames.length;\r\n for (; i < iMax; i++) {\r\n declareUnboundVariable(parser, tmpExportedNames[i]);\r\n }\r\n i = 0;\r\n iMax = tmpExportedBindings.length;\r\n for (; i < iMax; i++) {\r\n addBindingToExports(parser, tmpExportedBindings[i]);\r\n }\r\n }\r\n matchOrInsertSemicolon(parser, context | 32768);\r\n break;\r\n }\r\n case 86096:\r\n declaration = parseClassDeclaration(parser, context, scope, 2, parser.tokenPos, parser.linePos, parser.colPos);\r\n break;\r\n case 86106:\r\n declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 2, 0, parser.tokenPos, parser.linePos, parser.colPos);\r\n break;\r\n case 241739:\r\n declaration = parseLexicalDeclaration(parser, context, scope, 8, 64, parser.tokenPos, parser.linePos, parser.colPos);\r\n break;\r\n case 86092:\r\n declaration = parseLexicalDeclaration(parser, context, scope, 16, 64, parser.tokenPos, parser.linePos, parser.colPos);\r\n break;\r\n case 86090:\r\n declaration = parseVariableStatement(parser, context, scope, 64, parser.tokenPos, parser.linePos, parser.colPos);\r\n break;\r\n case 209007:\r\n const { tokenPos, linePos, colPos } = parser;\r\n nextToken(parser, context);\r\n if ((parser.flags & 1) === 0 && parser.token === 86106) {\r\n declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 2, 1, tokenPos, linePos, colPos);\r\n if (scope) {\r\n key = declaration.id ? declaration.id.name : '';\r\n declareUnboundVariable(parser, key);\r\n }\r\n break;\r\n }\r\n default:\r\n report(parser, 28, KeywordDescTable[parser.token & 255]);\r\n }\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'ExportNamedDeclaration',\r\n declaration,\r\n specifiers,\r\n source\r\n });\r\n}\r\nfunction parseExpression(parser, context, canAssign, isPattern, inGroup, start, line, column) {\r\n let expr = parsePrimaryExpression(parser, context, 2, 0, canAssign, isPattern, inGroup, 1, start, line, column);\r\n expr = parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column);\r\n return parseAssignmentExpression(parser, context, inGroup, 0, start, line, column, expr);\r\n}\r\nfunction parseSequenceExpression(parser, context, inGroup, start, line, column, expr) {\r\n const expressions = [expr];\r\n while (consumeOpt(parser, context | 32768, 18)) {\r\n expressions.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos));\r\n }\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'SequenceExpression',\r\n expressions\r\n });\r\n}\r\nfunction parseExpressions(parser, context, inGroup, canAssign, start, line, column) {\r\n const expr = parseExpression(parser, context, canAssign, 0, inGroup, start, line, column);\r\n return parser.token === 18\r\n ? parseSequenceExpression(parser, context, inGroup, start, line, column, expr)\r\n : expr;\r\n}\r\nfunction parseAssignmentExpression(parser, context, inGroup, isPattern, start, line, column, left) {\r\n const { token } = parser;\r\n if ((token & 4194304) === 4194304) {\r\n if (parser.assignable & 2)\r\n report(parser, 24);\r\n if ((!isPattern && token === 1077936157 && left.type === 'ArrayExpression') ||\r\n left.type === 'ObjectExpression') {\r\n reinterpretToPattern(parser, left);\r\n }\r\n nextToken(parser, context | 32768);\r\n const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);\r\n parser.assignable = 2;\r\n return finishNode(parser, context, start, line, column, isPattern\r\n ? {\r\n type: 'AssignmentPattern',\r\n left,\r\n right\r\n }\r\n : {\r\n type: 'AssignmentExpression',\r\n left,\r\n operator: KeywordDescTable[token & 255],\r\n right\r\n });\r\n }\r\n if ((token & 8454144) === 8454144) {\r\n left = parseBinaryExpression(parser, context, inGroup, start, line, column, 4, token, left);\r\n }\r\n if (consumeOpt(parser, context | 32768, 22)) {\r\n left = parseConditionalExpression(parser, context, left, start, line, column);\r\n }\r\n return left;\r\n}\r\nfunction parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, start, line, column, left) {\r\n const { token } = parser;\r\n nextToken(parser, context | 32768);\r\n const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);\r\n left = finishNode(parser, context, start, line, column, isPattern\r\n ? {\r\n type: 'AssignmentPattern',\r\n left,\r\n right\r\n }\r\n : {\r\n type: 'AssignmentExpression',\r\n left,\r\n operator: KeywordDescTable[token & 255],\r\n right\r\n });\r\n parser.assignable = 2;\r\n return left;\r\n}\r\nfunction parseConditionalExpression(parser, context, test, start, line, column) {\r\n const consequent = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos);\r\n consume(parser, context | 32768, 21);\r\n parser.assignable = 1;\r\n const alternate = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos);\r\n parser.assignable = 2;\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'ConditionalExpression',\r\n test,\r\n consequent,\r\n alternate\r\n });\r\n}\r\nfunction parseBinaryExpression(parser, context, inGroup, start, line, column, minPrec, operator, left) {\r\n const bit = -((context & 134217728) > 0) & 8738868;\r\n let t;\r\n let prec;\r\n parser.assignable = 2;\r\n while (parser.token & 8454144) {\r\n t = parser.token;\r\n prec = t & 3840;\r\n if ((t & 524288 && operator & 268435456) || (operator & 524288 && t & 268435456)) {\r\n report(parser, 160);\r\n }\r\n if (prec + ((t === 8457273) << 8) - ((bit === t) << 12) <= minPrec)\r\n break;\r\n nextToken(parser, context | 32768);\r\n left = finishNode(parser, context, start, line, column, {\r\n type: t & 524288 || t & 268435456 ? 'LogicalExpression' : 'BinaryExpression',\r\n left,\r\n right: parseBinaryExpression(parser, context, inGroup, parser.tokenPos, parser.linePos, parser.colPos, prec, t, parseLeftHandSideExpression(parser, context, 0, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos)),\r\n operator: KeywordDescTable[t & 255]\r\n });\r\n }\r\n if (parser.token === 1077936157)\r\n report(parser, 24);\r\n return left;\r\n}\r\nfunction parseUnaryExpression(parser, context, isLHS, start, line, column, inGroup) {\r\n if (!isLHS)\r\n report(parser, 0);\r\n const unaryOperator = parser.token;\r\n nextToken(parser, context | 32768);\r\n const arg = parseLeftHandSideExpression(parser, context, 0, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos);\r\n if (parser.token === 8457273)\r\n report(parser, 31);\r\n if (context & 1024 && unaryOperator === 16863278) {\r\n if (arg.type === 'Identifier') {\r\n report(parser, 118);\r\n }\r\n else if (isPropertyWithPrivateFieldKey(arg)) {\r\n report(parser, 124);\r\n }\r\n }\r\n parser.assignable = 2;\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'UnaryExpression',\r\n operator: KeywordDescTable[unaryOperator & 255],\r\n argument: arg,\r\n prefix: true\r\n });\r\n}\r\nfunction parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, isPattern, inNew, start, line, column) {\r\n const { token } = parser;\r\n const expr = parseIdentifier(parser, context, isPattern);\r\n const { flags } = parser;\r\n if ((flags & 1) === 0) {\r\n if (parser.token === 86106) {\r\n return parseFunctionExpression(parser, context, 1, inGroup, start, line, column);\r\n }\r\n if ((parser.token & 143360) === 143360) {\r\n if (!isLHS)\r\n report(parser, 0);\r\n return parseAsyncArrowAfterIdent(parser, context, canAssign, start, line, column);\r\n }\r\n }\r\n if (!inNew && parser.token === 67174411) {\r\n return parseAsyncArrowOrCallExpression(parser, context, expr, canAssign, 1, 0, flags, start, line, column);\r\n }\r\n if (parser.token === 10) {\r\n classifyIdentifier(parser, context, token, 1);\r\n if (inNew)\r\n report(parser, 49);\r\n return parseArrowFromIdentifier(parser, context, parser.tokenValue, expr, inNew, canAssign, 0, start, line, column);\r\n }\r\n parser.assignable = 1;\r\n return expr;\r\n}\r\nfunction parseYieldExpression(parser, context, inGroup, canAssign, start, line, column) {\r\n if (inGroup)\r\n parser.destructible |= 256;\r\n if (context & 2097152) {\r\n nextToken(parser, context | 32768);\r\n if (context & 8388608)\r\n report(parser, 30);\r\n if (!canAssign)\r\n report(parser, 24);\r\n if (parser.token === 22)\r\n report(parser, 121);\r\n let argument = null;\r\n let delegate = false;\r\n if ((parser.flags & 1) === 0) {\r\n delegate = consumeOpt(parser, context | 32768, 8457014);\r\n if (parser.token & (12288 | 65536) || delegate) {\r\n argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos);\r\n }\r\n }\r\n parser.assignable = 2;\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'YieldExpression',\r\n argument,\r\n delegate\r\n });\r\n }\r\n if (context & 1024)\r\n report(parser, 95, 'yield');\r\n return parseIdentifierOrArrow(parser, context, start, line, column);\r\n}\r\nfunction parseAwaitExpression(parser, context, inNew, inGroup, start, line, column) {\r\n if (inGroup)\r\n parser.destructible |= 128;\r\n if (context & 4194304 || (context & 2048 && context & 8192)) {\r\n if (inNew)\r\n report(parser, 0);\r\n if (context & 8388608) {\r\n reportMessageAt(parser.index, parser.line, parser.index, 29);\r\n }\r\n nextToken(parser, context | 32768);\r\n const argument = parseLeftHandSideExpression(parser, context, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos);\r\n if (parser.token === 8457273)\r\n report(parser, 31);\r\n parser.assignable = 2;\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'AwaitExpression',\r\n argument\r\n });\r\n }\r\n if (context & 2048)\r\n report(parser, 96);\r\n return parseIdentifierOrArrow(parser, context, start, line, column);\r\n}\r\nfunction parseFunctionBody(parser, context, scope, origin, firstRestricted, scopeError) {\r\n const { tokenPos, linePos, colPos } = parser;\r\n consume(parser, context | 32768, 2162700);\r\n const body = [];\r\n const prevContext = context;\r\n if (parser.token !== 1074790415) {\r\n while (parser.token === 134283267) {\r\n const { index, tokenPos, tokenValue, token } = parser;\r\n const expr = parseLiteral(parser, context);\r\n if (isValidStrictMode(parser, index, tokenPos, tokenValue)) {\r\n context |= 1024;\r\n if (parser.flags & 128) {\r\n reportMessageAt(parser.index, parser.line, parser.tokenPos, 64);\r\n }\r\n if (parser.flags & 64) {\r\n reportMessageAt(parser.index, parser.line, parser.tokenPos, 8);\r\n }\r\n }\r\n body.push(parseDirective(parser, context, expr, token, tokenPos, parser.linePos, parser.colPos));\r\n }\r\n if (context & 1024) {\r\n if (firstRestricted) {\r\n if ((firstRestricted & 537079808) === 537079808) {\r\n report(parser, 116);\r\n }\r\n if ((firstRestricted & 36864) === 36864) {\r\n report(parser, 38);\r\n }\r\n }\r\n if (parser.flags & 512)\r\n report(parser, 116);\r\n if (parser.flags & 256)\r\n report(parser, 115);\r\n }\r\n if (context & 64 &&\r\n scope &&\r\n scopeError !== void 0 &&\r\n (prevContext & 1024) === 0 &&\r\n (context & 8192) === 0) {\r\n reportScopeError(scopeError);\r\n }\r\n }\r\n parser.flags =\r\n (parser.flags | 512 | 256 | 64) ^\r\n (512 | 256 | 64);\r\n parser.destructible = (parser.destructible | 256) ^ 256;\r\n while (parser.token !== 1074790415) {\r\n body.push(parseStatementListItem(parser, context, scope, 4, {}));\r\n }\r\n consume(parser, origin & (16 | 8) ? context | 32768 : context, 1074790415);\r\n parser.flags &= ~(128 | 64);\r\n if (parser.token === 1077936157)\r\n report(parser, 24);\r\n return finishNode(parser, context, tokenPos, linePos, colPos, {\r\n type: 'BlockStatement',\r\n body\r\n });\r\n}\r\nfunction parseSuperExpression(parser, context, start, line, column) {\r\n nextToken(parser, context);\r\n switch (parser.token) {\r\n case 67108991:\r\n report(parser, 162);\r\n case 67174411: {\r\n if ((context & 524288) === 0)\r\n report(parser, 26);\r\n if (context & 16384)\r\n report(parser, 27);\r\n parser.assignable = 2;\r\n break;\r\n }\r\n case 69271571:\r\n case 67108877: {\r\n if ((context & 262144) === 0)\r\n report(parser, 27);\r\n if (context & 16384)\r\n report(parser, 27);\r\n parser.assignable = 1;\r\n break;\r\n }\r\n default:\r\n report(parser, 28, 'super');\r\n }\r\n return finishNode(parser, context, start, line, column, { type: 'Super' });\r\n}\r\nfunction parseLeftHandSideExpression(parser, context, canAssign, inGroup, isLHS, start, line, column) {\r\n const expression = parsePrimaryExpression(parser, context, 2, 0, canAssign, 0, inGroup, isLHS, start, line, column);\r\n return parseMemberOrUpdateExpression(parser, context, expression, inGroup, 0, start, line, column);\r\n}\r\nfunction parseUpdateExpression(parser, context, expr, start, line, column) {\r\n if (parser.assignable & 2)\r\n report(parser, 53);\r\n const { token } = parser;\r\n nextToken(parser, context);\r\n parser.assignable = 2;\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'UpdateExpression',\r\n argument: expr,\r\n operator: KeywordDescTable[token & 255],\r\n prefix: false\r\n });\r\n}\r\nfunction parseMemberOrUpdateExpression(parser, context, expr, inGroup, inChain, start, line, column) {\r\n if ((parser.token & 33619968) === 33619968 && (parser.flags & 1) === 0) {\r\n expr = parseUpdateExpression(parser, context, expr, start, line, column);\r\n }\r\n else if ((parser.token & 67108864) === 67108864) {\r\n context = (context | 134217728) ^ 134217728;\r\n switch (parser.token) {\r\n case 67108877: {\r\n nextToken(parser, (context | 1073741824 | 8192) ^ 8192);\r\n parser.assignable = 1;\r\n const property = parsePropertyOrPrivatePropertyName(parser, context | 65536);\r\n expr = finishNode(parser, context, start, line, column, {\r\n type: 'MemberExpression',\r\n object: expr,\r\n computed: false,\r\n property\r\n });\r\n break;\r\n }\r\n case 69271571: {\r\n let restoreHasOptionalChaining = false;\r\n if ((parser.flags & 2048) === 2048) {\r\n restoreHasOptionalChaining = true;\r\n parser.flags = (parser.flags | 2048) ^ 2048;\r\n }\r\n nextToken(parser, context | 32768);\r\n const { tokenPos, linePos, colPos } = parser;\r\n const property = parseExpressions(parser, context, inGroup, 1, tokenPos, linePos, colPos);\r\n consume(parser, context, 20);\r\n parser.assignable = 1;\r\n expr = finishNode(parser, context, start, line, column, {\r\n type: 'MemberExpression',\r\n object: expr,\r\n computed: true,\r\n property\r\n });\r\n if (restoreHasOptionalChaining) {\r\n parser.flags |= 2048;\r\n }\r\n break;\r\n }\r\n case 67174411: {\r\n if ((parser.flags & 1024) === 1024) {\r\n parser.flags = (parser.flags | 1024) ^ 1024;\r\n return expr;\r\n }\r\n let restoreHasOptionalChaining = false;\r\n if ((parser.flags & 2048) === 2048) {\r\n restoreHasOptionalChaining = true;\r\n parser.flags = (parser.flags | 2048) ^ 2048;\r\n }\r\n const args = parseArguments(parser, context, inGroup);\r\n parser.assignable = 2;\r\n expr = finishNode(parser, context, start, line, column, {\r\n type: 'CallExpression',\r\n callee: expr,\r\n arguments: args\r\n });\r\n if (restoreHasOptionalChaining) {\r\n parser.flags |= 2048;\r\n }\r\n break;\r\n }\r\n case 67108991: {\r\n nextToken(parser, (context | 1073741824 | 8192) ^ 8192);\r\n parser.flags |= 2048;\r\n parser.assignable = 2;\r\n expr = parseOptionalChain(parser, context, expr, start, line, column);\r\n break;\r\n }\r\n default:\r\n if ((parser.flags & 2048) === 2048) {\r\n report(parser, 161);\r\n }\r\n parser.assignable = 2;\r\n expr = finishNode(parser, context, start, line, column, {\r\n type: 'TaggedTemplateExpression',\r\n tag: expr,\r\n quasi: parser.token === 67174408\r\n ? parseTemplate(parser, context | 65536)\r\n : parseTemplateLiteral(parser, context, parser.tokenPos, parser.linePos, parser.colPos)\r\n });\r\n }\r\n expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 1, start, line, column);\r\n }\r\n if (inChain === 0 && (parser.flags & 2048) === 2048) {\r\n parser.flags = (parser.flags | 2048) ^ 2048;\r\n expr = finishNode(parser, context, start, line, column, {\r\n type: 'ChainExpression',\r\n expression: expr\r\n });\r\n }\r\n return expr;\r\n}\r\nfunction parseOptionalChain(parser, context, expr, start, line, column) {\r\n let restoreHasOptionalChaining = false;\r\n let node;\r\n if (parser.token === 69271571 || parser.token === 67174411) {\r\n if ((parser.flags & 2048) === 2048) {\r\n restoreHasOptionalChaining = true;\r\n parser.flags = (parser.flags | 2048) ^ 2048;\r\n }\r\n }\r\n if (parser.token === 69271571) {\r\n nextToken(parser, context | 32768);\r\n const { tokenPos, linePos, colPos } = parser;\r\n const property = parseExpressions(parser, context, 0, 1, tokenPos, linePos, colPos);\r\n consume(parser, context, 20);\r\n parser.assignable = 2;\r\n node = finishNode(parser, context, start, line, column, {\r\n type: 'MemberExpression',\r\n object: expr,\r\n computed: true,\r\n optional: true,\r\n property\r\n });\r\n }\r\n else if (parser.token === 67174411) {\r\n const args = parseArguments(parser, context, 0);\r\n parser.assignable = 2;\r\n node = finishNode(parser, context, start, line, column, {\r\n type: 'CallExpression',\r\n callee: expr,\r\n arguments: args,\r\n optional: true\r\n });\r\n }\r\n else {\r\n if ((parser.token & (143360 | 4096)) === 0)\r\n report(parser, 155);\r\n const property = parseIdentifier(parser, context, 0);\r\n parser.assignable = 2;\r\n node = finishNode(parser, context, start, line, column, {\r\n type: 'MemberExpression',\r\n object: expr,\r\n computed: false,\r\n optional: true,\r\n property\r\n });\r\n }\r\n if (restoreHasOptionalChaining) {\r\n parser.flags |= 2048;\r\n }\r\n return node;\r\n}\r\nfunction parsePropertyOrPrivatePropertyName(parser, context) {\r\n if ((parser.token & (143360 | 4096)) === 0 && parser.token !== 131) {\r\n report(parser, 155);\r\n }\r\n return context & 1 && parser.token === 131\r\n ? parsePrivateIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos)\r\n : parseIdentifier(parser, context, 0);\r\n}\r\nfunction parseUpdateExpressionPrefixed(parser, context, inNew, isLHS, start, line, column) {\r\n if (inNew)\r\n report(parser, 54);\r\n if (!isLHS)\r\n report(parser, 0);\r\n const { token } = parser;\r\n nextToken(parser, context | 32768);\r\n const arg = parseLeftHandSideExpression(parser, context, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos);\r\n if (parser.assignable & 2) {\r\n report(parser, 53);\r\n }\r\n parser.assignable = 2;\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'UpdateExpression',\r\n argument: arg,\r\n operator: KeywordDescTable[token & 255],\r\n prefix: true\r\n });\r\n}\r\nfunction parsePrimaryExpression(parser, context, kind, inNew, canAssign, isPattern, inGroup, isLHS, start, line, column) {\r\n if ((parser.token & 143360) === 143360) {\r\n switch (parser.token) {\r\n case 209008:\r\n return parseAwaitExpression(parser, context, inNew, inGroup, start, line, column);\r\n case 241773:\r\n return parseYieldExpression(parser, context, inGroup, canAssign, start, line, column);\r\n case 209007:\r\n return parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, isPattern, inNew, start, line, column);\r\n }\r\n const { token, tokenValue } = parser;\r\n const expr = parseIdentifier(parser, context | 65536, isPattern);\r\n if (parser.token === 10) {\r\n if (!isLHS)\r\n report(parser, 0);\r\n classifyIdentifier(parser, context, token, 1);\r\n return parseArrowFromIdentifier(parser, context, tokenValue, expr, inNew, canAssign, 0, start, line, column);\r\n }\r\n if (context & 16384 && token === 537079928)\r\n report(parser, 127);\r\n if (token === 241739) {\r\n if (context & 1024)\r\n report(parser, 110);\r\n if (kind & (8 | 16))\r\n report(parser, 98);\r\n }\r\n parser.assignable =\r\n context & 1024 && (token & 537079808) === 537079808\r\n ? 2\r\n : 1;\r\n return expr;\r\n }\r\n if ((parser.token & 134217728) === 134217728) {\r\n return parseLiteral(parser, context);\r\n }\r\n switch (parser.token) {\r\n case 33619995:\r\n case 33619996:\r\n return parseUpdateExpressionPrefixed(parser, context, inNew, isLHS, start, line, column);\r\n case 16863278:\r\n case 16842800:\r\n case 16842801:\r\n case 25233970:\r\n case 25233971:\r\n case 16863277:\r\n case 16863279:\r\n return parseUnaryExpression(parser, context, isLHS, start, line, column, inGroup);\r\n case 86106:\r\n return parseFunctionExpression(parser, context, 0, inGroup, start, line, column);\r\n case 2162700:\r\n return parseObjectLiteral(parser, context, canAssign ? 0 : 1, inGroup, start, line, column);\r\n case 69271571:\r\n return parseArrayLiteral(parser, context, canAssign ? 0 : 1, inGroup, start, line, column);\r\n case 67174411:\r\n return parseParenthesizedExpression(parser, context | 65536, canAssign, 1, 0, start, line, column);\r\n case 86021:\r\n case 86022:\r\n case 86023:\r\n return parseNullOrTrueOrFalseLiteral(parser, context, start, line, column);\r\n case 86113:\r\n return parseThisExpression(parser, context);\r\n case 65540:\r\n return parseRegExpLiteral(parser, context, start, line, column);\r\n case 133:\r\n case 86096:\r\n return parseClassExpression(parser, context, inGroup, start, line, column);\r\n case 86111:\r\n return parseSuperExpression(parser, context, start, line, column);\r\n case 67174409:\r\n return parseTemplateLiteral(parser, context, start, line, column);\r\n case 67174408:\r\n return parseTemplate(parser, context);\r\n case 86109:\r\n return parseNewExpression(parser, context, inGroup, start, line, column);\r\n case 134283389:\r\n return parseBigIntLiteral(parser, context, start, line, column);\r\n case 131:\r\n return parsePrivateIdentifier(parser, context, start, line, column);\r\n case 86108:\r\n return parseImportCallOrMetaExpression(parser, context, inNew, inGroup, start, line, column);\r\n case 8456258:\r\n if (context & 16)\r\n return parseJSXRootElementOrFragment(parser, context, 1, start, line, column);\r\n default:\r\n if (isValidIdentifier(context, parser.token))\r\n return parseIdentifierOrArrow(parser, context, start, line, column);\r\n report(parser, 28, KeywordDescTable[parser.token & 255]);\r\n }\r\n}\r\nfunction parseImportCallOrMetaExpression(parser, context, inNew, inGroup, start, line, column) {\r\n let expr = parseIdentifier(parser, context, 0);\r\n if (parser.token === 67108877) {\r\n return parseImportMetaExpression(parser, context, expr, start, line, column);\r\n }\r\n if (inNew)\r\n report(parser, 138);\r\n expr = parseImportExpression(parser, context, inGroup, start, line, column);\r\n parser.assignable = 2;\r\n return parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column);\r\n}\r\nfunction parseImportMetaExpression(parser, context, meta, start, line, column) {\r\n if ((context & 2048) === 0)\r\n report(parser, 164);\r\n nextToken(parser, context);\r\n if (parser.token !== 143495 && parser.tokenValue !== 'meta')\r\n report(parser, 28, KeywordDescTable[parser.token & 255]);\r\n parser.assignable = 2;\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'MetaProperty',\r\n meta,\r\n property: parseIdentifier(parser, context, 0)\r\n });\r\n}\r\nfunction parseImportExpression(parser, context, inGroup, start, line, column) {\r\n consume(parser, context | 32768, 67174411);\r\n if (parser.token === 14)\r\n report(parser, 139);\r\n const source = parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos);\r\n consume(parser, context, 16);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'ImportExpression',\r\n source\r\n });\r\n}\r\nfunction parseBigIntLiteral(parser, context, start, line, column) {\r\n const { tokenRaw, tokenValue } = parser;\r\n nextToken(parser, context);\r\n parser.assignable = 2;\r\n return finishNode(parser, context, start, line, column, context & 512\r\n ? {\r\n type: 'Literal',\r\n value: tokenValue,\r\n bigint: tokenRaw.slice(0, -1),\r\n raw: tokenRaw\r\n }\r\n : {\r\n type: 'Literal',\r\n value: tokenValue,\r\n bigint: tokenRaw.slice(0, -1)\r\n });\r\n}\r\nfunction parseTemplateLiteral(parser, context, start, line, column) {\r\n parser.assignable = 2;\r\n const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser;\r\n consume(parser, context, 67174409);\r\n const quasis = [parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, true)];\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'TemplateLiteral',\r\n expressions: [],\r\n quasis\r\n });\r\n}\r\nfunction parseTemplate(parser, context) {\r\n context = (context | 134217728) ^ 134217728;\r\n const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser;\r\n consume(parser, context | 32768, 67174408);\r\n const quasis = [\r\n parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, false)\r\n ];\r\n const expressions = [parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)];\r\n if (parser.token !== 1074790415)\r\n report(parser, 81);\r\n while ((parser.token = scanTemplateTail(parser, context)) !== 67174409) {\r\n const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser;\r\n consume(parser, context | 32768, 67174408);\r\n quasis.push(parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, false));\r\n expressions.push(parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos));\r\n if (parser.token !== 1074790415)\r\n report(parser, 81);\r\n }\r\n {\r\n const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser;\r\n consume(parser, context, 67174409);\r\n quasis.push(parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, true));\r\n }\r\n return finishNode(parser, context, tokenPos, linePos, colPos, {\r\n type: 'TemplateLiteral',\r\n expressions,\r\n quasis\r\n });\r\n}\r\nfunction parseTemplateElement(parser, context, cooked, raw, start, line, col, tail) {\r\n const node = finishNode(parser, context, start, line, col, {\r\n type: 'TemplateElement',\r\n value: {\r\n cooked,\r\n raw\r\n },\r\n tail\r\n });\r\n const tailSize = tail ? 1 : 2;\r\n if (context & 2) {\r\n node.start += 1;\r\n node.range[0] += 1;\r\n node.end -= tailSize;\r\n node.range[1] -= tailSize;\r\n }\r\n if (context & 4) {\r\n node.loc.start.column += 1;\r\n node.loc.end.column -= tailSize;\r\n }\r\n return node;\r\n}\r\nfunction parseSpreadElement(parser, context, start, line, column) {\r\n context = (context | 134217728) ^ 134217728;\r\n consume(parser, context | 32768, 14);\r\n const argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos);\r\n parser.assignable = 1;\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'SpreadElement',\r\n argument\r\n });\r\n}\r\nfunction parseArguments(parser, context, inGroup) {\r\n nextToken(parser, context | 32768);\r\n const args = [];\r\n if (parser.token === 16) {\r\n nextToken(parser, context | 65536);\r\n return args;\r\n }\r\n while (parser.token !== 16) {\r\n if (parser.token === 14) {\r\n args.push(parseSpreadElement(parser, context, parser.tokenPos, parser.linePos, parser.colPos));\r\n }\r\n else {\r\n args.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos));\r\n }\r\n if (parser.token !== 18)\r\n break;\r\n nextToken(parser, context | 32768);\r\n if (parser.token === 16)\r\n break;\r\n }\r\n consume(parser, context, 16);\r\n return args;\r\n}\r\nfunction parseIdentifier(parser, context, isPattern) {\r\n const { tokenValue, tokenPos, linePos, colPos } = parser;\r\n nextToken(parser, context);\r\n return finishNode(parser, context, tokenPos, linePos, colPos, context & 268435456\r\n ? {\r\n type: 'Identifier',\r\n name: tokenValue,\r\n pattern: isPattern === 1\r\n }\r\n : {\r\n type: 'Identifier',\r\n name: tokenValue\r\n });\r\n}\r\nfunction parseLiteral(parser, context) {\r\n const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser;\r\n if (parser.token === 134283389) {\r\n return parseBigIntLiteral(parser, context, tokenPos, linePos, colPos);\r\n }\r\n nextToken(parser, context);\r\n parser.assignable = 2;\r\n return finishNode(parser, context, tokenPos, linePos, colPos, context & 512\r\n ? {\r\n type: 'Literal',\r\n value: tokenValue,\r\n raw: tokenRaw\r\n }\r\n : {\r\n type: 'Literal',\r\n value: tokenValue\r\n });\r\n}\r\nfunction parseNullOrTrueOrFalseLiteral(parser, context, start, line, column) {\r\n const raw = KeywordDescTable[parser.token & 255];\r\n const value = parser.token === 86023 ? null : raw === 'true';\r\n nextToken(parser, context);\r\n parser.assignable = 2;\r\n return finishNode(parser, context, start, line, column, context & 512\r\n ? {\r\n type: 'Literal',\r\n value,\r\n raw\r\n }\r\n : {\r\n type: 'Literal',\r\n value\r\n });\r\n}\r\nfunction parseThisExpression(parser, context) {\r\n const { tokenPos, linePos, colPos } = parser;\r\n nextToken(parser, context);\r\n parser.assignable = 2;\r\n return finishNode(parser, context, tokenPos, linePos, colPos, {\r\n type: 'ThisExpression'\r\n });\r\n}\r\nfunction parseFunctionDeclaration(parser, context, scope, origin, allowGen, flags, isAsync, start, line, column) {\r\n nextToken(parser, context | 32768);\r\n const isGenerator = allowGen ? optionalBit(parser, context, 8457014) : 0;\r\n let id = null;\r\n let firstRestricted;\r\n let functionScope = scope ? createScope() : void 0;\r\n if (parser.token === 67174411) {\r\n if ((flags & 1) === 0)\r\n report(parser, 37, 'Function');\r\n }\r\n else {\r\n const kind = origin & 4 && ((context & 8192) === 0 || (context & 2048) === 0)\r\n ? 4\r\n : 64;\r\n validateFunctionName(parser, context | ((context & 3072) << 11), parser.token);\r\n if (scope) {\r\n if (kind & 4) {\r\n addVarName(parser, context, scope, parser.tokenValue, kind);\r\n }\r\n else {\r\n addBlockName(parser, context, scope, parser.tokenValue, kind, origin);\r\n }\r\n functionScope = addChildScope(functionScope, 256);\r\n if (flags) {\r\n if (flags & 2) {\r\n declareUnboundVariable(parser, parser.tokenValue);\r\n }\r\n }\r\n }\r\n firstRestricted = parser.token;\r\n if (parser.token & 143360) {\r\n id = parseIdentifier(parser, context, 0);\r\n }\r\n else {\r\n report(parser, 28, KeywordDescTable[parser.token & 255]);\r\n }\r\n }\r\n context =\r\n ((context | 32243712) ^ 32243712) |\r\n 67108864 |\r\n ((isAsync * 2 + isGenerator) << 21) |\r\n (isGenerator ? 0 : 1073741824);\r\n if (scope)\r\n functionScope = addChildScope(functionScope, 512);\r\n const params = parseFormalParametersOrFormalList(parser, context | 8388608, functionScope, 0, 1);\r\n const body = parseFunctionBody(parser, (context | 8192 | 4096 | 131072) ^\r\n (8192 | 4096 | 131072), scope ? addChildScope(functionScope, 128) : functionScope, 8, firstRestricted, scope ? functionScope.scopeError : void 0);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'FunctionDeclaration',\r\n id,\r\n params,\r\n body,\r\n async: isAsync === 1,\r\n generator: isGenerator === 1\r\n });\r\n}\r\nfunction parseFunctionExpression(parser, context, isAsync, inGroup, start, line, column) {\r\n nextToken(parser, context | 32768);\r\n const isGenerator = optionalBit(parser, context, 8457014);\r\n const generatorAndAsyncFlags = (isAsync * 2 + isGenerator) << 21;\r\n let id = null;\r\n let firstRestricted;\r\n let scope = context & 64 ? createScope() : void 0;\r\n if ((parser.token & (143360 | 4096 | 36864)) > 0) {\r\n validateFunctionName(parser, ((context | 0x1ec0000) ^ 0x1ec0000) | generatorAndAsyncFlags, parser.token);\r\n if (scope)\r\n scope = addChildScope(scope, 256);\r\n firstRestricted = parser.token;\r\n id = parseIdentifier(parser, context, 0);\r\n }\r\n context =\r\n ((context | 32243712) ^ 32243712) |\r\n 67108864 |\r\n generatorAndAsyncFlags |\r\n (isGenerator ? 0 : 1073741824);\r\n if (scope)\r\n scope = addChildScope(scope, 512);\r\n const params = parseFormalParametersOrFormalList(parser, context | 8388608, scope, inGroup, 1);\r\n const body = parseFunctionBody(parser, context & ~(0x8001000 | 8192 | 4096 | 131072 | 16384), scope ? addChildScope(scope, 128) : scope, 0, firstRestricted, void 0);\r\n parser.assignable = 2;\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'FunctionExpression',\r\n id,\r\n params,\r\n body,\r\n async: isAsync === 1,\r\n generator: isGenerator === 1\r\n });\r\n}\r\nfunction parseArrayLiteral(parser, context, skipInitializer, inGroup, start, line, column) {\r\n const expr = parseArrayExpressionOrPattern(parser, context, void 0, skipInitializer, inGroup, 0, 2, 0, start, line, column);\r\n if (context & 256 && parser.destructible & 64) {\r\n report(parser, 61);\r\n }\r\n if (parser.destructible & 8) {\r\n report(parser, 60);\r\n }\r\n return expr;\r\n}\r\nfunction parseArrayExpressionOrPattern(parser, context, scope, skipInitializer, inGroup, isPattern, kind, origin, start, line, column) {\r\n nextToken(parser, context | 32768);\r\n const elements = [];\r\n let destructible = 0;\r\n context = (context | 134217728) ^ 134217728;\r\n while (parser.token !== 20) {\r\n if (consumeOpt(parser, context | 32768, 18)) {\r\n elements.push(null);\r\n }\r\n else {\r\n let left;\r\n const { token, tokenPos, linePos, colPos, tokenValue } = parser;\r\n if (token & 143360) {\r\n left = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos);\r\n if (parser.token === 1077936157) {\r\n if (parser.assignable & 2)\r\n report(parser, 24);\r\n nextToken(parser, context | 32768);\r\n if (scope)\r\n addVarOrBlock(parser, context, scope, tokenValue, kind, origin);\r\n const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);\r\n left = finishNode(parser, context, tokenPos, linePos, colPos, isPattern\r\n ? {\r\n type: 'AssignmentPattern',\r\n left,\r\n right\r\n }\r\n : {\r\n type: 'AssignmentExpression',\r\n operator: '=',\r\n left,\r\n right\r\n });\r\n destructible |=\r\n parser.destructible & 256\r\n ? 256\r\n : 0 | (parser.destructible & 128)\r\n ? 128\r\n : 0;\r\n }\r\n else if (parser.token === 18 || parser.token === 20) {\r\n if (parser.assignable & 2) {\r\n destructible |= 16;\r\n }\r\n else if (scope) {\r\n addVarOrBlock(parser, context, scope, tokenValue, kind, origin);\r\n }\r\n destructible |=\r\n parser.destructible & 256\r\n ? 256\r\n : 0 | (parser.destructible & 128)\r\n ? 128\r\n : 0;\r\n }\r\n else {\r\n destructible |=\r\n kind & 1\r\n ? 32\r\n : (kind & 2) === 0\r\n ? 16\r\n : 0;\r\n left = parseMemberOrUpdateExpression(parser, context, left, inGroup, 0, tokenPos, linePos, colPos);\r\n if (parser.token !== 18 && parser.token !== 20) {\r\n if (parser.token !== 1077936157)\r\n destructible |= 16;\r\n left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left);\r\n }\r\n else if (parser.token !== 1077936157) {\r\n destructible |=\r\n parser.assignable & 2\r\n ? 16\r\n : 32;\r\n }\r\n }\r\n }\r\n else if (token & 2097152) {\r\n left =\r\n parser.token === 2162700\r\n ? parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos)\r\n : parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos);\r\n destructible |= parser.destructible;\r\n parser.assignable =\r\n parser.destructible & 16\r\n ? 2\r\n : 1;\r\n if (parser.token === 18 || parser.token === 20) {\r\n if (parser.assignable & 2) {\r\n destructible |= 16;\r\n }\r\n }\r\n else if (parser.destructible & 8) {\r\n report(parser, 69);\r\n }\r\n else {\r\n left = parseMemberOrUpdateExpression(parser, context, left, inGroup, 0, tokenPos, linePos, colPos);\r\n destructible = parser.assignable & 2 ? 16 : 0;\r\n if (parser.token !== 18 && parser.token !== 20) {\r\n left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left);\r\n }\r\n else if (parser.token !== 1077936157) {\r\n destructible |=\r\n parser.assignable & 2\r\n ? 16\r\n : 32;\r\n }\r\n }\r\n }\r\n else if (token === 14) {\r\n left = parseSpreadOrRestElement(parser, context, scope, 20, kind, origin, 0, inGroup, isPattern, tokenPos, linePos, colPos);\r\n destructible |= parser.destructible;\r\n if (parser.token !== 18 && parser.token !== 20)\r\n report(parser, 28, KeywordDescTable[parser.token & 255]);\r\n }\r\n else {\r\n left = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos);\r\n if (parser.token !== 18 && parser.token !== 20) {\r\n left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left);\r\n if ((kind & (2 | 1)) === 0 && token === 67174411)\r\n destructible |= 16;\r\n }\r\n else if (parser.assignable & 2) {\r\n destructible |= 16;\r\n }\r\n else if (token === 67174411) {\r\n destructible |=\r\n parser.assignable & 1 && kind & (2 | 1)\r\n ? 32\r\n : 16;\r\n }\r\n }\r\n elements.push(left);\r\n if (consumeOpt(parser, context | 32768, 18)) {\r\n if (parser.token === 20)\r\n break;\r\n }\r\n else\r\n break;\r\n }\r\n }\r\n consume(parser, context, 20);\r\n const node = finishNode(parser, context, start, line, column, {\r\n type: isPattern ? 'ArrayPattern' : 'ArrayExpression',\r\n elements\r\n });\r\n if (!skipInitializer && parser.token & 4194304) {\r\n return parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node);\r\n }\r\n parser.destructible = destructible;\r\n return node;\r\n}\r\nfunction parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node) {\r\n if (parser.token !== 1077936157)\r\n report(parser, 24);\r\n nextToken(parser, context | 32768);\r\n if (destructible & 16)\r\n report(parser, 24);\r\n if (!isPattern)\r\n reinterpretToPattern(parser, node);\r\n const { tokenPos, linePos, colPos } = parser;\r\n const right = parseExpression(parser, context, 1, 1, inGroup, tokenPos, linePos, colPos);\r\n parser.destructible =\r\n ((destructible | 64 | 8) ^\r\n (8 | 64)) |\r\n (parser.destructible & 128 ? 128 : 0) |\r\n (parser.destructible & 256 ? 256 : 0);\r\n return finishNode(parser, context, start, line, column, isPattern\r\n ? {\r\n type: 'AssignmentPattern',\r\n left: node,\r\n right\r\n }\r\n : {\r\n type: 'AssignmentExpression',\r\n left: node,\r\n operator: '=',\r\n right\r\n });\r\n}\r\nfunction parseSpreadOrRestElement(parser, context, scope, closingToken, kind, origin, isAsync, inGroup, isPattern, start, line, column) {\r\n nextToken(parser, context | 32768);\r\n let argument = null;\r\n let destructible = 0;\r\n let { token, tokenValue, tokenPos, linePos, colPos } = parser;\r\n if (token & (4096 | 143360)) {\r\n parser.assignable = 1;\r\n argument = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos);\r\n token = parser.token;\r\n argument = parseMemberOrUpdateExpression(parser, context, argument, inGroup, 0, tokenPos, linePos, colPos);\r\n if (parser.token !== 18 && parser.token !== closingToken) {\r\n if (parser.assignable & 2 && parser.token === 1077936157)\r\n report(parser, 69);\r\n destructible |= 16;\r\n argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument);\r\n }\r\n if (parser.assignable & 2) {\r\n destructible |= 16;\r\n }\r\n else if (token === closingToken || token === 18) {\r\n if (scope)\r\n addVarOrBlock(parser, context, scope, tokenValue, kind, origin);\r\n }\r\n else {\r\n destructible |= 32;\r\n }\r\n destructible |= parser.destructible & 128 ? 128 : 0;\r\n }\r\n else if (token === closingToken) {\r\n report(parser, 39);\r\n }\r\n else if (token & 2097152) {\r\n argument =\r\n parser.token === 2162700\r\n ? parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos)\r\n : parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos);\r\n token = parser.token;\r\n if (token !== 1077936157 && token !== closingToken && token !== 18) {\r\n if (parser.destructible & 8)\r\n report(parser, 69);\r\n argument = parseMemberOrUpdateExpression(parser, context, argument, inGroup, 0, tokenPos, linePos, colPos);\r\n destructible |= parser.assignable & 2 ? 16 : 0;\r\n if ((parser.token & 4194304) === 4194304) {\r\n if (parser.token !== 1077936157)\r\n destructible |= 16;\r\n argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument);\r\n }\r\n else {\r\n if ((parser.token & 8454144) === 8454144) {\r\n argument = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, argument);\r\n }\r\n if (consumeOpt(parser, context | 32768, 22)) {\r\n argument = parseConditionalExpression(parser, context, argument, tokenPos, linePos, colPos);\r\n }\r\n destructible |=\r\n parser.assignable & 2\r\n ? 16\r\n : 32;\r\n }\r\n }\r\n else {\r\n destructible |=\r\n closingToken === 1074790415 && token !== 1077936157\r\n ? 16\r\n : parser.destructible;\r\n }\r\n }\r\n else {\r\n destructible |= 32;\r\n argument = parseLeftHandSideExpression(parser, context, 1, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos);\r\n const { token, tokenPos, linePos, colPos } = parser;\r\n if (token === 1077936157 && token !== closingToken && token !== 18) {\r\n if (parser.assignable & 2)\r\n report(parser, 24);\r\n argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument);\r\n destructible |= 16;\r\n }\r\n else {\r\n if (token === 18) {\r\n destructible |= 16;\r\n }\r\n else if (token !== closingToken) {\r\n argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument);\r\n }\r\n destructible |=\r\n parser.assignable & 1 ? 32 : 16;\r\n }\r\n parser.destructible = destructible;\r\n if (parser.token !== closingToken && parser.token !== 18)\r\n report(parser, 156);\r\n return finishNode(parser, context, start, line, column, {\r\n type: isPattern ? 'RestElement' : 'SpreadElement',\r\n argument: argument\r\n });\r\n }\r\n if (parser.token !== closingToken) {\r\n if (kind & 1)\r\n destructible |= isAsync ? 16 : 32;\r\n if (consumeOpt(parser, context | 32768, 1077936157)) {\r\n if (destructible & 16)\r\n report(parser, 24);\r\n reinterpretToPattern(parser, argument);\r\n const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);\r\n argument = finishNode(parser, context, tokenPos, linePos, colPos, isPattern\r\n ? {\r\n type: 'AssignmentPattern',\r\n left: argument,\r\n right\r\n }\r\n : {\r\n type: 'AssignmentExpression',\r\n left: argument,\r\n operator: '=',\r\n right\r\n });\r\n destructible = 16;\r\n }\r\n else {\r\n destructible |= 16;\r\n }\r\n }\r\n parser.destructible = destructible;\r\n return finishNode(parser, context, start, line, column, {\r\n type: isPattern ? 'RestElement' : 'SpreadElement',\r\n argument: argument\r\n });\r\n}\r\nfunction parseMethodDefinition(parser, context, kind, inGroup, start, line, column) {\r\n const modifierFlags = (kind & 64) === 0 ? 31981568 : 14680064;\r\n context =\r\n ((context | modifierFlags) ^ modifierFlags) |\r\n ((kind & 88) << 18) |\r\n 100925440;\r\n let scope = context & 64 ? addChildScope(createScope(), 512) : void 0;\r\n const params = parseMethodFormals(parser, context | 8388608, scope, kind, 1, inGroup);\r\n if (scope)\r\n scope = addChildScope(scope, 128);\r\n const body = parseFunctionBody(parser, context & ~(0x8001000 | 8192), scope, 0, void 0, void 0);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'FunctionExpression',\r\n params,\r\n body,\r\n async: (kind & 16) > 0,\r\n generator: (kind & 8) > 0,\r\n id: null\r\n });\r\n}\r\nfunction parseObjectLiteral(parser, context, skipInitializer, inGroup, start, line, column) {\r\n const expr = parseObjectLiteralOrPattern(parser, context, void 0, skipInitializer, inGroup, 0, 2, 0, start, line, column);\r\n if (context & 256 && parser.destructible & 64) {\r\n report(parser, 61);\r\n }\r\n if (parser.destructible & 8) {\r\n report(parser, 60);\r\n }\r\n return expr;\r\n}\r\nfunction parseObjectLiteralOrPattern(parser, context, scope, skipInitializer, inGroup, isPattern, kind, origin, start, line, column) {\r\n nextToken(parser, context);\r\n const properties = [];\r\n let destructible = 0;\r\n let prototypeCount = 0;\r\n context = (context | 134217728) ^ 134217728;\r\n while (parser.token !== 1074790415) {\r\n const { token, tokenValue, linePos, colPos, tokenPos } = parser;\r\n if (token === 14) {\r\n properties.push(parseSpreadOrRestElement(parser, context, scope, 1074790415, kind, origin, 0, inGroup, isPattern, tokenPos, linePos, colPos));\r\n }\r\n else {\r\n let state = 0;\r\n let key = null;\r\n let value;\r\n const t = parser.token;\r\n if (parser.token & (143360 | 4096) || parser.token === 121) {\r\n key = parseIdentifier(parser, context, 0);\r\n if (parser.token === 18 || parser.token === 1074790415 || parser.token === 1077936157) {\r\n state |= 4;\r\n if (context & 1024 && (token & 537079808) === 537079808) {\r\n destructible |= 16;\r\n }\r\n else {\r\n validateBindingIdentifier(parser, context, kind, token, 0);\r\n }\r\n if (scope)\r\n addVarOrBlock(parser, context, scope, tokenValue, kind, origin);\r\n if (consumeOpt(parser, context | 32768, 1077936157)) {\r\n destructible |= 8;\r\n const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);\r\n destructible |=\r\n parser.destructible & 256\r\n ? 256\r\n : 0 | (parser.destructible & 128)\r\n ? 128\r\n : 0;\r\n value = finishNode(parser, context, tokenPos, linePos, colPos, {\r\n type: 'AssignmentPattern',\r\n left: context & -2147483648 ? Object.assign({}, key) : key,\r\n right\r\n });\r\n }\r\n else {\r\n destructible |=\r\n (token === 209008 ? 128 : 0) |\r\n (token === 121 ? 16 : 0);\r\n value = context & -2147483648 ? Object.assign({}, key) : key;\r\n }\r\n }\r\n else if (consumeOpt(parser, context | 32768, 21)) {\r\n const { tokenPos, linePos, colPos } = parser;\r\n if (tokenValue === '__proto__')\r\n prototypeCount++;\r\n if (parser.token & 143360) {\r\n const tokenAfterColon = parser.token;\r\n const valueAfterColon = parser.tokenValue;\r\n destructible |= t === 121 ? 16 : 0;\r\n value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos);\r\n const { token } = parser;\r\n value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos);\r\n if (parser.token === 18 || parser.token === 1074790415) {\r\n if (token === 1077936157 || token === 1074790415 || token === 18) {\r\n destructible |= parser.destructible & 128 ? 128 : 0;\r\n if (parser.assignable & 2) {\r\n destructible |= 16;\r\n }\r\n else if (scope && (tokenAfterColon & 143360) === 143360) {\r\n addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin);\r\n }\r\n }\r\n else {\r\n destructible |=\r\n parser.assignable & 1\r\n ? 32\r\n : 16;\r\n }\r\n }\r\n else if ((parser.token & 4194304) === 4194304) {\r\n if (parser.assignable & 2) {\r\n destructible |= 16;\r\n }\r\n else if (token !== 1077936157) {\r\n destructible |= 32;\r\n }\r\n else if (scope) {\r\n addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin);\r\n }\r\n value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value);\r\n }\r\n else {\r\n destructible |= 16;\r\n if ((parser.token & 8454144) === 8454144) {\r\n value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value);\r\n }\r\n if (consumeOpt(parser, context | 32768, 22)) {\r\n value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos);\r\n }\r\n }\r\n }\r\n else if ((parser.token & 2097152) === 2097152) {\r\n value =\r\n parser.token === 69271571\r\n ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos)\r\n : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos);\r\n destructible = parser.destructible;\r\n parser.assignable =\r\n destructible & 16 ? 2 : 1;\r\n if (parser.token === 18 || parser.token === 1074790415) {\r\n if (parser.assignable & 2)\r\n destructible |= 16;\r\n }\r\n else if (parser.destructible & 8) {\r\n report(parser, 69);\r\n }\r\n else {\r\n value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos);\r\n destructible = parser.assignable & 2 ? 16 : 0;\r\n if ((parser.token & 4194304) === 4194304) {\r\n value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value);\r\n }\r\n else {\r\n if ((parser.token & 8454144) === 8454144) {\r\n value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value);\r\n }\r\n if (consumeOpt(parser, context | 32768, 22)) {\r\n value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos);\r\n }\r\n destructible |=\r\n parser.assignable & 2\r\n ? 16\r\n : 32;\r\n }\r\n }\r\n }\r\n else {\r\n value = parseLeftHandSideExpression(parser, context, 1, inGroup, 1, tokenPos, linePos, colPos);\r\n destructible |=\r\n parser.assignable & 1\r\n ? 32\r\n : 16;\r\n if (parser.token === 18 || parser.token === 1074790415) {\r\n if (parser.assignable & 2)\r\n destructible |= 16;\r\n }\r\n else {\r\n value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos);\r\n destructible = parser.assignable & 2 ? 16 : 0;\r\n if (parser.token !== 18 && token !== 1074790415) {\r\n if (parser.token !== 1077936157)\r\n destructible |= 16;\r\n value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value);\r\n }\r\n }\r\n }\r\n }\r\n else if (parser.token === 69271571) {\r\n destructible |= 16;\r\n if (token === 209007)\r\n state |= 16;\r\n state |=\r\n (token === 12402\r\n ? 256\r\n : token === 12403\r\n ? 512\r\n : 1) | 2;\r\n key = parseComputedPropertyName(parser, context, inGroup);\r\n destructible |= parser.assignable;\r\n value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos);\r\n }\r\n else if (parser.token & (143360 | 4096)) {\r\n destructible |= 16;\r\n if (token === 121)\r\n report(parser, 93);\r\n if (token === 209007) {\r\n if (parser.flags & 1)\r\n report(parser, 129);\r\n state |= 16;\r\n }\r\n key = parseIdentifier(parser, context, 0);\r\n state |=\r\n token === 12402\r\n ? 256\r\n : token === 12403\r\n ? 512\r\n : 1;\r\n value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos);\r\n }\r\n else if (parser.token === 67174411) {\r\n destructible |= 16;\r\n state |= 1;\r\n value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos);\r\n }\r\n else if (parser.token === 8457014) {\r\n destructible |= 16;\r\n if (token === 12402) {\r\n report(parser, 40);\r\n }\r\n else if (token === 12403) {\r\n report(parser, 41);\r\n }\r\n else if (token === 143483) {\r\n report(parser, 93);\r\n }\r\n nextToken(parser, context);\r\n state |=\r\n 8 | 1 | (token === 209007 ? 16 : 0);\r\n if (parser.token & 143360) {\r\n key = parseIdentifier(parser, context, 0);\r\n }\r\n else if ((parser.token & 134217728) === 134217728) {\r\n key = parseLiteral(parser, context);\r\n }\r\n else if (parser.token === 69271571) {\r\n state |= 2;\r\n key = parseComputedPropertyName(parser, context, inGroup);\r\n destructible |= parser.assignable;\r\n }\r\n else {\r\n report(parser, 28, KeywordDescTable[parser.token & 255]);\r\n }\r\n value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos);\r\n }\r\n else if ((parser.token & 134217728) === 134217728) {\r\n if (token === 209007)\r\n state |= 16;\r\n state |=\r\n token === 12402\r\n ? 256\r\n : token === 12403\r\n ? 512\r\n : 1;\r\n destructible |= 16;\r\n key = parseLiteral(parser, context);\r\n value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos);\r\n }\r\n else {\r\n report(parser, 130);\r\n }\r\n }\r\n else if ((parser.token & 134217728) === 134217728) {\r\n key = parseLiteral(parser, context);\r\n if (parser.token === 21) {\r\n consume(parser, context | 32768, 21);\r\n const { tokenPos, linePos, colPos } = parser;\r\n if (tokenValue === '__proto__')\r\n prototypeCount++;\r\n if (parser.token & 143360) {\r\n value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos);\r\n const { token, tokenValue: valueAfterColon } = parser;\r\n value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos);\r\n if (parser.token === 18 || parser.token === 1074790415) {\r\n if (token === 1077936157 || token === 1074790415 || token === 18) {\r\n if (parser.assignable & 2) {\r\n destructible |= 16;\r\n }\r\n else if (scope) {\r\n addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin);\r\n }\r\n }\r\n else {\r\n destructible |=\r\n parser.assignable & 1\r\n ? 32\r\n : 16;\r\n }\r\n }\r\n else if (parser.token === 1077936157) {\r\n if (parser.assignable & 2)\r\n destructible |= 16;\r\n value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value);\r\n }\r\n else {\r\n destructible |= 16;\r\n value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value);\r\n }\r\n }\r\n else if ((parser.token & 2097152) === 2097152) {\r\n value =\r\n parser.token === 69271571\r\n ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos)\r\n : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos);\r\n destructible = parser.destructible;\r\n parser.assignable =\r\n destructible & 16 ? 2 : 1;\r\n if (parser.token === 18 || parser.token === 1074790415) {\r\n if (parser.assignable & 2) {\r\n destructible |= 16;\r\n }\r\n }\r\n else if ((parser.destructible & 8) !== 8) {\r\n value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos);\r\n destructible = parser.assignable & 2 ? 16 : 0;\r\n if ((parser.token & 4194304) === 4194304) {\r\n value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value);\r\n }\r\n else {\r\n if ((parser.token & 8454144) === 8454144) {\r\n value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value);\r\n }\r\n if (consumeOpt(parser, context | 32768, 22)) {\r\n value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos);\r\n }\r\n destructible |=\r\n parser.assignable & 2\r\n ? 16\r\n : 32;\r\n }\r\n }\r\n }\r\n else {\r\n value = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos);\r\n destructible |=\r\n parser.assignable & 1\r\n ? 32\r\n : 16;\r\n if (parser.token === 18 || parser.token === 1074790415) {\r\n if (parser.assignable & 2) {\r\n destructible |= 16;\r\n }\r\n }\r\n else {\r\n value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos);\r\n destructible = parser.assignable & 1 ? 0 : 16;\r\n if (parser.token !== 18 && parser.token !== 1074790415) {\r\n if (parser.token !== 1077936157)\r\n destructible |= 16;\r\n value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value);\r\n }\r\n }\r\n }\r\n }\r\n else if (parser.token === 67174411) {\r\n state |= 1;\r\n value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos);\r\n destructible = parser.assignable | 16;\r\n }\r\n else {\r\n report(parser, 131);\r\n }\r\n }\r\n else if (parser.token === 69271571) {\r\n key = parseComputedPropertyName(parser, context, inGroup);\r\n destructible |= parser.destructible & 256 ? 256 : 0;\r\n state |= 2;\r\n if (parser.token === 21) {\r\n nextToken(parser, context | 32768);\r\n const { tokenPos, linePos, colPos, tokenValue, token: tokenAfterColon } = parser;\r\n if (parser.token & 143360) {\r\n value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos);\r\n const { token } = parser;\r\n value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos);\r\n if ((parser.token & 4194304) === 4194304) {\r\n destructible |=\r\n parser.assignable & 2\r\n ? 16\r\n : token === 1077936157\r\n ? 0\r\n : 32;\r\n value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value);\r\n }\r\n else if (parser.token === 18 || parser.token === 1074790415) {\r\n if (token === 1077936157 || token === 1074790415 || token === 18) {\r\n if (parser.assignable & 2) {\r\n destructible |= 16;\r\n }\r\n else if (scope && (tokenAfterColon & 143360) === 143360) {\r\n addVarOrBlock(parser, context, scope, tokenValue, kind, origin);\r\n }\r\n }\r\n else {\r\n destructible |=\r\n parser.assignable & 1\r\n ? 32\r\n : 16;\r\n }\r\n }\r\n else {\r\n destructible |= 16;\r\n value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value);\r\n }\r\n }\r\n else if ((parser.token & 2097152) === 2097152) {\r\n value =\r\n parser.token === 69271571\r\n ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos)\r\n : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos);\r\n destructible = parser.destructible;\r\n parser.assignable =\r\n destructible & 16 ? 2 : 1;\r\n if (parser.token === 18 || parser.token === 1074790415) {\r\n if (parser.assignable & 2)\r\n destructible |= 16;\r\n }\r\n else if (destructible & 8) {\r\n report(parser, 60);\r\n }\r\n else {\r\n value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos);\r\n destructible =\r\n parser.assignable & 2 ? destructible | 16 : 0;\r\n if ((parser.token & 4194304) === 4194304) {\r\n if (parser.token !== 1077936157)\r\n destructible |= 16;\r\n value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value);\r\n }\r\n else {\r\n if ((parser.token & 8454144) === 8454144) {\r\n value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value);\r\n }\r\n if (consumeOpt(parser, context | 32768, 22)) {\r\n value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos);\r\n }\r\n destructible |=\r\n parser.assignable & 2\r\n ? 16\r\n : 32;\r\n }\r\n }\r\n }\r\n else {\r\n value = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos);\r\n destructible |=\r\n parser.assignable & 1\r\n ? 32\r\n : 16;\r\n if (parser.token === 18 || parser.token === 1074790415) {\r\n if (parser.assignable & 2)\r\n destructible |= 16;\r\n }\r\n else {\r\n value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos);\r\n destructible = parser.assignable & 1 ? 0 : 16;\r\n if (parser.token !== 18 && parser.token !== 1074790415) {\r\n if (parser.token !== 1077936157)\r\n destructible |= 16;\r\n value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value);\r\n }\r\n }\r\n }\r\n }\r\n else if (parser.token === 67174411) {\r\n state |= 1;\r\n value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, linePos, colPos);\r\n destructible = 16;\r\n }\r\n else {\r\n report(parser, 42);\r\n }\r\n }\r\n else if (token === 8457014) {\r\n consume(parser, context | 32768, 8457014);\r\n state |= 8;\r\n if (parser.token & 143360) {\r\n const { token, line, index } = parser;\r\n key = parseIdentifier(parser, context, 0);\r\n state |= 1;\r\n if (parser.token === 67174411) {\r\n destructible |= 16;\r\n value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos);\r\n }\r\n else {\r\n reportMessageAt(index, line, index, token === 209007\r\n ? 44\r\n : token === 12402 || parser.token === 12403\r\n ? 43\r\n : 45, KeywordDescTable[token & 255]);\r\n }\r\n }\r\n else if ((parser.token & 134217728) === 134217728) {\r\n destructible |= 16;\r\n key = parseLiteral(parser, context);\r\n state |= 1;\r\n value = parseMethodDefinition(parser, context, state, inGroup, tokenPos, linePos, colPos);\r\n }\r\n else if (parser.token === 69271571) {\r\n destructible |= 16;\r\n state |= 2 | 1;\r\n key = parseComputedPropertyName(parser, context, inGroup);\r\n value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos);\r\n }\r\n else {\r\n report(parser, 123);\r\n }\r\n }\r\n else {\r\n report(parser, 28, KeywordDescTable[token & 255]);\r\n }\r\n destructible |= parser.destructible & 128 ? 128 : 0;\r\n parser.destructible = destructible;\r\n properties.push(finishNode(parser, context, tokenPos, linePos, colPos, {\r\n type: 'Property',\r\n key: key,\r\n value,\r\n kind: !(state & 768) ? 'init' : state & 512 ? 'set' : 'get',\r\n computed: (state & 2) > 0,\r\n method: (state & 1) > 0,\r\n shorthand: (state & 4) > 0\r\n }));\r\n }\r\n destructible |= parser.destructible;\r\n if (parser.token !== 18)\r\n break;\r\n nextToken(parser, context);\r\n }\r\n consume(parser, context, 1074790415);\r\n if (prototypeCount > 1)\r\n destructible |= 64;\r\n const node = finishNode(parser, context, start, line, column, {\r\n type: isPattern ? 'ObjectPattern' : 'ObjectExpression',\r\n properties\r\n });\r\n if (!skipInitializer && parser.token & 4194304) {\r\n return parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node);\r\n }\r\n parser.destructible = destructible;\r\n return node;\r\n}\r\nfunction parseMethodFormals(parser, context, scope, kind, type, inGroup) {\r\n consume(parser, context, 67174411);\r\n const params = [];\r\n parser.flags = (parser.flags | 128) ^ 128;\r\n if (parser.token === 16) {\r\n if (kind & 512) {\r\n report(parser, 35, 'Setter', 'one', '');\r\n }\r\n nextToken(parser, context);\r\n return params;\r\n }\r\n if (kind & 256) {\r\n report(parser, 35, 'Getter', 'no', 's');\r\n }\r\n if (kind & 512 && parser.token === 14) {\r\n report(parser, 36);\r\n }\r\n context = (context | 134217728) ^ 134217728;\r\n let setterArgs = 0;\r\n let isSimpleParameterList = 0;\r\n while (parser.token !== 18) {\r\n let left = null;\r\n const { tokenPos, linePos, colPos } = parser;\r\n if (parser.token & 143360) {\r\n if ((context & 1024) === 0) {\r\n if ((parser.token & 36864) === 36864) {\r\n parser.flags |= 256;\r\n }\r\n if ((parser.token & 537079808) === 537079808) {\r\n parser.flags |= 512;\r\n }\r\n }\r\n left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0, tokenPos, linePos, colPos);\r\n }\r\n else {\r\n if (parser.token === 2162700) {\r\n left = parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, 1, type, 0, tokenPos, linePos, colPos);\r\n }\r\n else if (parser.token === 69271571) {\r\n left = parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, 1, type, 0, tokenPos, linePos, colPos);\r\n }\r\n else if (parser.token === 14) {\r\n left = parseSpreadOrRestElement(parser, context, scope, 16, type, 0, 0, inGroup, 1, tokenPos, linePos, colPos);\r\n }\r\n isSimpleParameterList = 1;\r\n if (parser.destructible & (32 | 16))\r\n report(parser, 48);\r\n }\r\n if (parser.token === 1077936157) {\r\n nextToken(parser, context | 32768);\r\n isSimpleParameterList = 1;\r\n const right = parseExpression(parser, context, 1, 1, 0, parser.tokenPos, parser.linePos, parser.colPos);\r\n left = finishNode(parser, context, tokenPos, linePos, colPos, {\r\n type: 'AssignmentPattern',\r\n left: left,\r\n right\r\n });\r\n }\r\n setterArgs++;\r\n params.push(left);\r\n if (!consumeOpt(parser, context, 18))\r\n break;\r\n if (parser.token === 16) {\r\n break;\r\n }\r\n }\r\n if (kind & 512 && setterArgs !== 1) {\r\n report(parser, 35, 'Setter', 'one', '');\r\n }\r\n if (scope && scope.scopeError !== void 0)\r\n reportScopeError(scope.scopeError);\r\n if (isSimpleParameterList)\r\n parser.flags |= 128;\r\n consume(parser, context, 16);\r\n return params;\r\n}\r\nfunction parseComputedPropertyName(parser, context, inGroup) {\r\n nextToken(parser, context | 32768);\r\n const key = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos);\r\n consume(parser, context, 20);\r\n return key;\r\n}\r\nfunction parseParenthesizedExpression(parser, context, canAssign, kind, origin, start, line, column) {\r\n parser.flags = (parser.flags | 128) ^ 128;\r\n const { tokenPos: piStart, linePos: plStart, colPos: pcStart } = parser;\r\n nextToken(parser, context | 32768 | 1073741824);\r\n const scope = context & 64 ? addChildScope(createScope(), 1024) : void 0;\r\n context = (context | 134217728) ^ 134217728;\r\n if (consumeOpt(parser, context, 16)) {\r\n return parseParenthesizedArrow(parser, context, scope, [], canAssign, 0, start, line, column);\r\n }\r\n let destructible = 0;\r\n parser.destructible &= ~(256 | 128);\r\n let expr;\r\n let expressions = [];\r\n let isSequence = 0;\r\n let isSimpleParameterList = 0;\r\n const { tokenPos: iStart, linePos: lStart, colPos: cStart } = parser;\r\n parser.assignable = 1;\r\n while (parser.token !== 16) {\r\n const { token, tokenPos, linePos, colPos } = parser;\r\n if (token & (143360 | 4096)) {\r\n if (scope)\r\n addBlockName(parser, context, scope, parser.tokenValue, 1, 0);\r\n expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos);\r\n if (parser.token === 16 || parser.token === 18) {\r\n if (parser.assignable & 2) {\r\n destructible |= 16;\r\n isSimpleParameterList = 1;\r\n }\r\n else if ((token & 537079808) === 537079808 ||\r\n (token & 36864) === 36864) {\r\n isSimpleParameterList = 1;\r\n }\r\n }\r\n else {\r\n if (parser.token === 1077936157) {\r\n isSimpleParameterList = 1;\r\n }\r\n else {\r\n destructible |= 16;\r\n }\r\n expr = parseMemberOrUpdateExpression(parser, context, expr, 1, 0, tokenPos, linePos, colPos);\r\n if (parser.token !== 16 && parser.token !== 18) {\r\n expr = parseAssignmentExpression(parser, context, 1, 0, tokenPos, linePos, colPos, expr);\r\n }\r\n }\r\n }\r\n else if ((token & 2097152) === 2097152) {\r\n expr =\r\n token === 2162700\r\n ? parseObjectLiteralOrPattern(parser, context | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos)\r\n : parseArrayExpressionOrPattern(parser, context | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos);\r\n destructible |= parser.destructible;\r\n isSimpleParameterList = 1;\r\n parser.assignable = 2;\r\n if (parser.token !== 16 && parser.token !== 18) {\r\n if (destructible & 8)\r\n report(parser, 119);\r\n expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, tokenPos, linePos, colPos);\r\n destructible |= 16;\r\n if (parser.token !== 16 && parser.token !== 18) {\r\n expr = parseAssignmentExpression(parser, context, 0, 0, tokenPos, linePos, colPos, expr);\r\n }\r\n }\r\n }\r\n else if (token === 14) {\r\n expr = parseSpreadOrRestElement(parser, context, scope, 16, kind, origin, 0, 1, 0, tokenPos, linePos, colPos);\r\n if (parser.destructible & 16)\r\n report(parser, 72);\r\n isSimpleParameterList = 1;\r\n if (isSequence && (parser.token === 16 || parser.token === 18)) {\r\n expressions.push(expr);\r\n }\r\n destructible |= 8;\r\n break;\r\n }\r\n else {\r\n destructible |= 16;\r\n expr = parseExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos);\r\n if (isSequence && (parser.token === 16 || parser.token === 18)) {\r\n expressions.push(expr);\r\n }\r\n if (parser.token === 18) {\r\n if (!isSequence) {\r\n isSequence = 1;\r\n expressions = [expr];\r\n }\r\n }\r\n if (isSequence) {\r\n while (consumeOpt(parser, context | 32768, 18)) {\r\n expressions.push(parseExpression(parser, context, 1, 0, 1, parser.tokenPos, parser.linePos, parser.colPos));\r\n }\r\n parser.assignable = 2;\r\n expr = finishNode(parser, context, iStart, lStart, cStart, {\r\n type: 'SequenceExpression',\r\n expressions\r\n });\r\n }\r\n consume(parser, context, 16);\r\n parser.destructible = destructible;\r\n return expr;\r\n }\r\n if (isSequence && (parser.token === 16 || parser.token === 18)) {\r\n expressions.push(expr);\r\n }\r\n if (!consumeOpt(parser, context | 32768, 18))\r\n break;\r\n if (!isSequence) {\r\n isSequence = 1;\r\n expressions = [expr];\r\n }\r\n if (parser.token === 16) {\r\n destructible |= 8;\r\n break;\r\n }\r\n }\r\n if (isSequence) {\r\n parser.assignable = 2;\r\n expr = finishNode(parser, context, iStart, lStart, cStart, {\r\n type: 'SequenceExpression',\r\n expressions\r\n });\r\n }\r\n consume(parser, context, 16);\r\n if (destructible & 16 && destructible & 8)\r\n report(parser, 146);\r\n destructible |=\r\n parser.destructible & 256\r\n ? 256\r\n : 0 | (parser.destructible & 128)\r\n ? 128\r\n : 0;\r\n if (parser.token === 10) {\r\n if (destructible & (32 | 16))\r\n report(parser, 47);\r\n if (context & (4194304 | 2048) && destructible & 128)\r\n report(parser, 29);\r\n if (context & (1024 | 2097152) && destructible & 256) {\r\n report(parser, 30);\r\n }\r\n if (isSimpleParameterList)\r\n parser.flags |= 128;\r\n return parseParenthesizedArrow(parser, context, scope, isSequence ? expressions : [expr], canAssign, 0, start, line, column);\r\n }\r\n else if (destructible & 8) {\r\n report(parser, 140);\r\n }\r\n parser.destructible = ((parser.destructible | 256) ^ 256) | destructible;\r\n return context & 128\r\n ? finishNode(parser, context, piStart, plStart, pcStart, {\r\n type: 'ParenthesizedExpression',\r\n expression: expr\r\n })\r\n : expr;\r\n}\r\nfunction parseIdentifierOrArrow(parser, context, start, line, column) {\r\n const { tokenValue } = parser;\r\n const expr = parseIdentifier(parser, context, 0);\r\n parser.assignable = 1;\r\n if (parser.token === 10) {\r\n let scope = void 0;\r\n if (context & 64)\r\n scope = createArrowHeadParsingScope(parser, context, tokenValue);\r\n parser.flags = (parser.flags | 128) ^ 128;\r\n return parseArrowFunctionExpression(parser, context, scope, [expr], 0, start, line, column);\r\n }\r\n return expr;\r\n}\r\nfunction parseArrowFromIdentifier(parser, context, value, expr, inNew, canAssign, isAsync, start, line, column) {\r\n if (!canAssign)\r\n report(parser, 55);\r\n if (inNew)\r\n report(parser, 49);\r\n parser.flags &= ~128;\r\n const scope = context & 64 ? createArrowHeadParsingScope(parser, context, value) : void 0;\r\n return parseArrowFunctionExpression(parser, context, scope, [expr], isAsync, start, line, column);\r\n}\r\nfunction parseParenthesizedArrow(parser, context, scope, params, canAssign, isAsync, start, line, column) {\r\n if (!canAssign)\r\n report(parser, 55);\r\n for (let i = 0; i < params.length; ++i)\r\n reinterpretToPattern(parser, params[i]);\r\n return parseArrowFunctionExpression(parser, context, scope, params, isAsync, start, line, column);\r\n}\r\nfunction parseArrowFunctionExpression(parser, context, scope, params, isAsync, start, line, column) {\r\n if (parser.flags & 1)\r\n report(parser, 46);\r\n consume(parser, context | 32768, 10);\r\n context = ((context | 15728640) ^ 15728640) | (isAsync << 22);\r\n const expression = parser.token !== 2162700;\r\n let body;\r\n if (scope && scope.scopeError !== void 0) {\r\n reportScopeError(scope.scopeError);\r\n }\r\n if (expression) {\r\n body = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos);\r\n }\r\n else {\r\n if (scope)\r\n scope = addChildScope(scope, 128);\r\n body = parseFunctionBody(parser, (context | 134221824 | 8192 | 16384) ^\r\n (134221824 | 8192 | 16384), scope, 16, void 0, void 0);\r\n switch (parser.token) {\r\n case 69271571:\r\n if ((parser.flags & 1) === 0) {\r\n report(parser, 113);\r\n }\r\n break;\r\n case 67108877:\r\n case 67174409:\r\n case 22:\r\n report(parser, 114);\r\n case 67174411:\r\n if ((parser.flags & 1) === 0) {\r\n report(parser, 113);\r\n }\r\n parser.flags |= 1024;\r\n break;\r\n }\r\n if ((parser.token & 8454144) === 8454144 && (parser.flags & 1) === 0)\r\n report(parser, 28, KeywordDescTable[parser.token & 255]);\r\n if ((parser.token & 33619968) === 33619968)\r\n report(parser, 122);\r\n }\r\n parser.assignable = 2;\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'ArrowFunctionExpression',\r\n params,\r\n body,\r\n async: isAsync === 1,\r\n expression\r\n });\r\n}\r\nfunction parseFormalParametersOrFormalList(parser, context, scope, inGroup, kind) {\r\n consume(parser, context, 67174411);\r\n parser.flags = (parser.flags | 128) ^ 128;\r\n const params = [];\r\n if (consumeOpt(parser, context, 16))\r\n return params;\r\n context = (context | 134217728) ^ 134217728;\r\n let isSimpleParameterList = 0;\r\n while (parser.token !== 18) {\r\n let left;\r\n const { tokenPos, linePos, colPos } = parser;\r\n if (parser.token & 143360) {\r\n if ((context & 1024) === 0) {\r\n if ((parser.token & 36864) === 36864) {\r\n parser.flags |= 256;\r\n }\r\n if ((parser.token & 537079808) === 537079808) {\r\n parser.flags |= 512;\r\n }\r\n }\r\n left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0, tokenPos, linePos, colPos);\r\n }\r\n else {\r\n if (parser.token === 2162700) {\r\n left = parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, 1, kind, 0, tokenPos, linePos, colPos);\r\n }\r\n else if (parser.token === 69271571) {\r\n left = parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, 1, kind, 0, tokenPos, linePos, colPos);\r\n }\r\n else if (parser.token === 14) {\r\n left = parseSpreadOrRestElement(parser, context, scope, 16, kind, 0, 0, inGroup, 1, tokenPos, linePos, colPos);\r\n }\r\n else {\r\n report(parser, 28, KeywordDescTable[parser.token & 255]);\r\n }\r\n isSimpleParameterList = 1;\r\n if (parser.destructible & (32 | 16)) {\r\n report(parser, 48);\r\n }\r\n }\r\n if (parser.token === 1077936157) {\r\n nextToken(parser, context | 32768);\r\n isSimpleParameterList = 1;\r\n const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos);\r\n left = finishNode(parser, context, tokenPos, linePos, colPos, {\r\n type: 'AssignmentPattern',\r\n left,\r\n right\r\n });\r\n }\r\n params.push(left);\r\n if (!consumeOpt(parser, context, 18))\r\n break;\r\n if (parser.token === 16) {\r\n break;\r\n }\r\n }\r\n if (isSimpleParameterList)\r\n parser.flags |= 128;\r\n if (scope && (isSimpleParameterList || context & 1024) && scope.scopeError !== void 0) {\r\n reportScopeError(scope.scopeError);\r\n }\r\n consume(parser, context, 16);\r\n return params;\r\n}\r\nfunction parseMembeExpressionNoCall(parser, context, expr, inGroup, start, line, column) {\r\n const { token } = parser;\r\n if (token & 67108864) {\r\n if (token === 67108877) {\r\n nextToken(parser, context | 1073741824);\r\n parser.assignable = 1;\r\n const property = parsePropertyOrPrivatePropertyName(parser, context);\r\n return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, {\r\n type: 'MemberExpression',\r\n object: expr,\r\n computed: false,\r\n property\r\n }), 0, start, line, column);\r\n }\r\n else if (token === 69271571) {\r\n nextToken(parser, context | 32768);\r\n const { tokenPos, linePos, colPos } = parser;\r\n const property = parseExpressions(parser, context, inGroup, 1, tokenPos, linePos, colPos);\r\n consume(parser, context, 20);\r\n parser.assignable = 1;\r\n return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, {\r\n type: 'MemberExpression',\r\n object: expr,\r\n computed: true,\r\n property\r\n }), 0, start, line, column);\r\n }\r\n else if (token === 67174408 || token === 67174409) {\r\n parser.assignable = 2;\r\n return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, {\r\n type: 'TaggedTemplateExpression',\r\n tag: expr,\r\n quasi: parser.token === 67174408\r\n ? parseTemplate(parser, context | 65536)\r\n : parseTemplateLiteral(parser, context, parser.tokenPos, parser.linePos, parser.colPos)\r\n }), 0, start, line, column);\r\n }\r\n }\r\n return expr;\r\n}\r\nfunction parseNewExpression(parser, context, inGroup, start, line, column) {\r\n const id = parseIdentifier(parser, context | 32768, 0);\r\n const { tokenPos, linePos, colPos } = parser;\r\n if (consumeOpt(parser, context, 67108877)) {\r\n if (context & 67108864 && parser.token === 143494) {\r\n parser.assignable = 2;\r\n return parseMetaProperty(parser, context, id, start, line, column);\r\n }\r\n report(parser, 92);\r\n }\r\n parser.assignable = 2;\r\n if ((parser.token & 16842752) === 16842752) {\r\n report(parser, 63, KeywordDescTable[parser.token & 255]);\r\n }\r\n const expr = parsePrimaryExpression(parser, context, 2, 1, 0, 0, inGroup, 1, tokenPos, linePos, colPos);\r\n context = (context | 134217728) ^ 134217728;\r\n if (parser.token === 67108991)\r\n report(parser, 163);\r\n const callee = parseMembeExpressionNoCall(parser, context, expr, inGroup, tokenPos, linePos, colPos);\r\n parser.assignable = 2;\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'NewExpression',\r\n callee,\r\n arguments: parser.token === 67174411 ? parseArguments(parser, context, inGroup) : []\r\n });\r\n}\r\nfunction parseMetaProperty(parser, context, meta, start, line, column) {\r\n const property = parseIdentifier(parser, context, 0);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'MetaProperty',\r\n meta,\r\n property\r\n });\r\n}\r\nfunction parseAsyncArrowAfterIdent(parser, context, canAssign, start, line, column) {\r\n if (parser.token === 209008)\r\n report(parser, 29);\r\n if (context & (1024 | 2097152) && parser.token === 241773) {\r\n report(parser, 30);\r\n }\r\n if ((parser.token & 537079808) === 537079808) {\r\n parser.flags |= 512;\r\n }\r\n return parseArrowFromIdentifier(parser, context, parser.tokenValue, parseIdentifier(parser, context, 0), 0, canAssign, 1, start, line, column);\r\n}\r\nfunction parseAsyncArrowOrCallExpression(parser, context, callee, canAssign, kind, origin, flags, start, line, column) {\r\n nextToken(parser, context | 32768);\r\n const scope = context & 64 ? addChildScope(createScope(), 1024) : void 0;\r\n context = (context | 134217728) ^ 134217728;\r\n if (consumeOpt(parser, context, 16)) {\r\n if (parser.token === 10) {\r\n if (flags & 1)\r\n report(parser, 46);\r\n return parseParenthesizedArrow(parser, context, scope, [], canAssign, 1, start, line, column);\r\n }\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'CallExpression',\r\n callee,\r\n arguments: []\r\n });\r\n }\r\n let destructible = 0;\r\n let expr = null;\r\n let isSimpleParameterList = 0;\r\n parser.destructible =\r\n (parser.destructible | 256 | 128) ^\r\n (256 | 128);\r\n const params = [];\r\n while (parser.token !== 16) {\r\n const { token, tokenPos, linePos, colPos } = parser;\r\n if (token & (143360 | 4096)) {\r\n if (scope)\r\n addBlockName(parser, context, scope, parser.tokenValue, kind, 0);\r\n expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos);\r\n if (parser.token === 16 || parser.token === 18) {\r\n if (parser.assignable & 2) {\r\n destructible |= 16;\r\n isSimpleParameterList = 1;\r\n }\r\n else if ((token & 537079808) === 537079808) {\r\n parser.flags |= 512;\r\n }\r\n else if ((token & 36864) === 36864) {\r\n parser.flags |= 256;\r\n }\r\n }\r\n else {\r\n if (parser.token === 1077936157) {\r\n isSimpleParameterList = 1;\r\n }\r\n else {\r\n destructible |= 16;\r\n }\r\n expr = parseMemberOrUpdateExpression(parser, context, expr, 1, 0, tokenPos, linePos, colPos);\r\n if (parser.token !== 16 && parser.token !== 18) {\r\n expr = parseAssignmentExpression(parser, context, 1, 0, tokenPos, linePos, colPos, expr);\r\n }\r\n }\r\n }\r\n else if (token & 2097152) {\r\n expr =\r\n token === 2162700\r\n ? parseObjectLiteralOrPattern(parser, context, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos)\r\n : parseArrayExpressionOrPattern(parser, context, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos);\r\n destructible |= parser.destructible;\r\n isSimpleParameterList = 1;\r\n if (parser.token !== 16 && parser.token !== 18) {\r\n if (destructible & 8)\r\n report(parser, 119);\r\n expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, tokenPos, linePos, colPos);\r\n destructible |= 16;\r\n if ((parser.token & 8454144) === 8454144) {\r\n expr = parseBinaryExpression(parser, context, 1, start, line, column, 4, token, expr);\r\n }\r\n if (consumeOpt(parser, context | 32768, 22)) {\r\n expr = parseConditionalExpression(parser, context, expr, start, line, column);\r\n }\r\n }\r\n }\r\n else if (token === 14) {\r\n expr = parseSpreadOrRestElement(parser, context, scope, 16, kind, origin, 1, 1, 0, tokenPos, linePos, colPos);\r\n destructible |= (parser.token === 16 ? 0 : 16) | parser.destructible;\r\n isSimpleParameterList = 1;\r\n }\r\n else {\r\n expr = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos);\r\n destructible = parser.assignable;\r\n params.push(expr);\r\n while (consumeOpt(parser, context | 32768, 18)) {\r\n params.push(parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos));\r\n }\r\n destructible |= parser.assignable;\r\n consume(parser, context, 16);\r\n parser.destructible = destructible | 16;\r\n parser.assignable = 2;\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'CallExpression',\r\n callee,\r\n arguments: params\r\n });\r\n }\r\n params.push(expr);\r\n if (!consumeOpt(parser, context | 32768, 18))\r\n break;\r\n }\r\n consume(parser, context, 16);\r\n destructible |=\r\n parser.destructible & 256\r\n ? 256\r\n : 0 | (parser.destructible & 128)\r\n ? 128\r\n : 0;\r\n if (parser.token === 10) {\r\n if (destructible & (32 | 16))\r\n report(parser, 25);\r\n if (parser.flags & 1 || flags & 1)\r\n report(parser, 46);\r\n if (destructible & 128)\r\n report(parser, 29);\r\n if (context & (1024 | 2097152) && destructible & 256)\r\n report(parser, 30);\r\n if (isSimpleParameterList)\r\n parser.flags |= 128;\r\n return parseParenthesizedArrow(parser, context, scope, params, canAssign, 1, start, line, column);\r\n }\r\n else if (destructible & 8) {\r\n report(parser, 60);\r\n }\r\n parser.assignable = 2;\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'CallExpression',\r\n callee,\r\n arguments: params\r\n });\r\n}\r\nfunction parseRegExpLiteral(parser, context, start, line, column) {\r\n const { tokenRaw, tokenRegExp, tokenValue } = parser;\r\n nextToken(parser, context);\r\n parser.assignable = 2;\r\n return context & 512\r\n ? finishNode(parser, context, start, line, column, {\r\n type: 'Literal',\r\n value: tokenValue,\r\n regex: tokenRegExp,\r\n raw: tokenRaw\r\n })\r\n : finishNode(parser, context, start, line, column, {\r\n type: 'Literal',\r\n value: tokenValue,\r\n regex: tokenRegExp\r\n });\r\n}\r\nfunction parseClassDeclaration(parser, context, scope, flags, start, line, column) {\r\n context = (context | 16777216 | 1024) ^ 16777216;\r\n let decorators = parseDecorators(parser, context);\r\n if (decorators.length) {\r\n start = parser.tokenPos;\r\n line = parser.linePos;\r\n column = parser.colPos;\r\n }\r\n if (parser.leadingDecorators.length) {\r\n parser.leadingDecorators.push(...decorators);\r\n decorators = parser.leadingDecorators;\r\n parser.leadingDecorators = [];\r\n }\r\n nextToken(parser, context);\r\n let id = null;\r\n let superClass = null;\r\n const { tokenValue } = parser;\r\n if (parser.token & 4096 && parser.token !== 20567) {\r\n if (isStrictReservedWord(parser, context, parser.token)) {\r\n report(parser, 115);\r\n }\r\n if ((parser.token & 537079808) === 537079808) {\r\n report(parser, 116);\r\n }\r\n if (scope) {\r\n addBlockName(parser, context, scope, tokenValue, 32, 0);\r\n if (flags) {\r\n if (flags & 2) {\r\n declareUnboundVariable(parser, tokenValue);\r\n }\r\n }\r\n }\r\n id = parseIdentifier(parser, context, 0);\r\n }\r\n else {\r\n if ((flags & 1) === 0)\r\n report(parser, 37, 'Class');\r\n }\r\n let inheritedContext = context;\r\n if (consumeOpt(parser, context | 32768, 20567)) {\r\n superClass = parseLeftHandSideExpression(parser, context, 0, 0, 0, parser.tokenPos, parser.linePos, parser.colPos);\r\n inheritedContext |= 524288;\r\n }\r\n else {\r\n inheritedContext = (inheritedContext | 524288) ^ 524288;\r\n }\r\n const body = parseClassBody(parser, inheritedContext, context, scope, 2, 8, 0);\r\n return finishNode(parser, context, start, line, column, context & 1\r\n ? {\r\n type: 'ClassDeclaration',\r\n id,\r\n superClass,\r\n decorators,\r\n body\r\n }\r\n : {\r\n type: 'ClassDeclaration',\r\n id,\r\n superClass,\r\n body\r\n });\r\n}\r\nfunction parseClassExpression(parser, context, inGroup, start, line, column) {\r\n let id = null;\r\n let superClass = null;\r\n context = (context | 1024 | 16777216) ^ 16777216;\r\n const decorators = parseDecorators(parser, context);\r\n if (decorators.length) {\r\n start = parser.tokenPos;\r\n line = parser.linePos;\r\n column = parser.colPos;\r\n }\r\n nextToken(parser, context);\r\n if (parser.token & 4096 && parser.token !== 20567) {\r\n if (isStrictReservedWord(parser, context, parser.token))\r\n report(parser, 115);\r\n if ((parser.token & 537079808) === 537079808) {\r\n report(parser, 116);\r\n }\r\n id = parseIdentifier(parser, context, 0);\r\n }\r\n let inheritedContext = context;\r\n if (consumeOpt(parser, context | 32768, 20567)) {\r\n superClass = parseLeftHandSideExpression(parser, context, 0, inGroup, 0, parser.tokenPos, parser.linePos, parser.colPos);\r\n inheritedContext |= 524288;\r\n }\r\n else {\r\n inheritedContext = (inheritedContext | 524288) ^ 524288;\r\n }\r\n const body = parseClassBody(parser, inheritedContext, context, void 0, 2, 0, inGroup);\r\n parser.assignable = 2;\r\n return finishNode(parser, context, start, line, column, context & 1\r\n ? {\r\n type: 'ClassExpression',\r\n id,\r\n superClass,\r\n decorators,\r\n body\r\n }\r\n : {\r\n type: 'ClassExpression',\r\n id,\r\n superClass,\r\n body\r\n });\r\n}\r\nfunction parseDecorators(parser, context) {\r\n const list = [];\r\n if (context & 1) {\r\n while (parser.token === 133) {\r\n list.push(parseDecoratorList(parser, context, parser.tokenPos, parser.linePos, parser.colPos));\r\n }\r\n }\r\n return list;\r\n}\r\nfunction parseDecoratorList(parser, context, start, line, column) {\r\n nextToken(parser, context | 32768);\r\n let expression = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 0, 1, start, line, column);\r\n expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'Decorator',\r\n expression\r\n });\r\n}\r\nfunction parseClassBody(parser, context, inheritedContext, scope, kind, origin, inGroup) {\r\n const { tokenPos, linePos, colPos } = parser;\r\n consume(parser, context | 32768, 2162700);\r\n context = (context | 134217728) ^ 134217728;\r\n let hasConstr = parser.flags & 32;\r\n parser.flags = (parser.flags | 32) ^ 32;\r\n const body = [];\r\n let decorators;\r\n while (parser.token !== 1074790415) {\r\n let length = 0;\r\n decorators = parseDecorators(parser, context);\r\n length = decorators.length;\r\n if (length > 0 && parser.tokenValue === 'constructor') {\r\n report(parser, 107);\r\n }\r\n if (parser.token === 1074790415)\r\n report(parser, 106);\r\n if (consumeOpt(parser, context, 1074790417)) {\r\n if (length > 0)\r\n report(parser, 117);\r\n continue;\r\n }\r\n body.push(parseClassElementList(parser, context, scope, inheritedContext, kind, decorators, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos));\r\n }\r\n consume(parser, origin & 8 ? context | 32768 : context, 1074790415);\r\n parser.flags = (parser.flags & ~32) | hasConstr;\r\n return finishNode(parser, context, tokenPos, linePos, colPos, {\r\n type: 'ClassBody',\r\n body\r\n });\r\n}\r\nfunction parseClassElementList(parser, context, scope, inheritedContext, type, decorators, isStatic, inGroup, start, line, column) {\r\n let kind = isStatic ? 32 : 0;\r\n let key = null;\r\n const { token, tokenPos, linePos, colPos } = parser;\r\n if (token & (143360 | 36864)) {\r\n key = parseIdentifier(parser, context, 0);\r\n switch (token) {\r\n case 36972:\r\n if (!isStatic &&\r\n parser.token !== 67174411 &&\r\n (parser.token & 1048576) !== 1048576 &&\r\n parser.token !== 1077936157) {\r\n return parseClassElementList(parser, context, scope, inheritedContext, type, decorators, 1, inGroup, start, line, column);\r\n }\r\n break;\r\n case 209007:\r\n if (parser.token !== 67174411 && (parser.flags & 1) === 0) {\r\n if (context & 1 && (parser.token & 1073741824) === 1073741824) {\r\n return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos);\r\n }\r\n kind |= 16 | (optionalBit(parser, context, 8457014) ? 8 : 0);\r\n }\r\n break;\r\n case 12402:\r\n if (parser.token !== 67174411) {\r\n if (context & 1 && (parser.token & 1073741824) === 1073741824) {\r\n return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos);\r\n }\r\n kind |= 256;\r\n }\r\n break;\r\n case 12403:\r\n if (parser.token !== 67174411) {\r\n if (context & 1 && (parser.token & 1073741824) === 1073741824) {\r\n return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos);\r\n }\r\n kind |= 512;\r\n }\r\n break;\r\n }\r\n }\r\n else if (token === 69271571) {\r\n kind |= 2;\r\n key = parseComputedPropertyName(parser, inheritedContext, inGroup);\r\n }\r\n else if ((token & 134217728) === 134217728) {\r\n key = parseLiteral(parser, context);\r\n }\r\n else if (token === 8457014) {\r\n kind |= 8;\r\n nextToken(parser, context);\r\n }\r\n else if (context & 1 && parser.token === 131) {\r\n kind |= 4096;\r\n key = parsePrivateIdentifier(parser, context | 16384, tokenPos, linePos, colPos);\r\n }\r\n else if (context & 1 && (parser.token & 1073741824) === 1073741824) {\r\n kind |= 128;\r\n }\r\n else if (isStatic && token === 2162700) {\r\n return parseStaticBlock(parser, context, scope, tokenPos, linePos, colPos);\r\n }\r\n else if (token === 122) {\r\n key = parseIdentifier(parser, context, 0);\r\n if (parser.token !== 67174411)\r\n report(parser, 28, KeywordDescTable[parser.token & 255]);\r\n }\r\n else {\r\n report(parser, 28, KeywordDescTable[parser.token & 255]);\r\n }\r\n if (kind & (8 | 16 | 768)) {\r\n if (parser.token & 143360) {\r\n key = parseIdentifier(parser, context, 0);\r\n }\r\n else if ((parser.token & 134217728) === 134217728) {\r\n key = parseLiteral(parser, context);\r\n }\r\n else if (parser.token === 69271571) {\r\n kind |= 2;\r\n key = parseComputedPropertyName(parser, context, 0);\r\n }\r\n else if (parser.token === 122) {\r\n key = parseIdentifier(parser, context, 0);\r\n }\r\n else if (context & 1 && parser.token === 131) {\r\n kind |= 4096;\r\n key = parsePrivateIdentifier(parser, context, tokenPos, linePos, colPos);\r\n }\r\n else\r\n report(parser, 132);\r\n }\r\n if ((kind & 2) === 0) {\r\n if (parser.tokenValue === 'constructor') {\r\n if ((parser.token & 1073741824) === 1073741824) {\r\n report(parser, 126);\r\n }\r\n else if ((kind & 32) === 0 && parser.token === 67174411) {\r\n if (kind & (768 | 16 | 128 | 8)) {\r\n report(parser, 51, 'accessor');\r\n }\r\n else if ((context & 524288) === 0) {\r\n if (parser.flags & 32)\r\n report(parser, 52);\r\n else\r\n parser.flags |= 32;\r\n }\r\n }\r\n kind |= 64;\r\n }\r\n else if ((kind & 4096) === 0 &&\r\n kind & (32 | 768 | 8 | 16) &&\r\n parser.tokenValue === 'prototype') {\r\n report(parser, 50);\r\n }\r\n }\r\n if (context & 1 && parser.token !== 67174411) {\r\n return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos);\r\n }\r\n const value = parseMethodDefinition(parser, context, kind, inGroup, parser.tokenPos, parser.linePos, parser.colPos);\r\n return finishNode(parser, context, start, line, column, context & 1\r\n ? {\r\n type: 'MethodDefinition',\r\n kind: (kind & 32) === 0 && kind & 64\r\n ? 'constructor'\r\n : kind & 256\r\n ? 'get'\r\n : kind & 512\r\n ? 'set'\r\n : 'method',\r\n static: (kind & 32) > 0,\r\n computed: (kind & 2) > 0,\r\n key,\r\n decorators,\r\n value\r\n }\r\n : {\r\n type: 'MethodDefinition',\r\n kind: (kind & 32) === 0 && kind & 64\r\n ? 'constructor'\r\n : kind & 256\r\n ? 'get'\r\n : kind & 512\r\n ? 'set'\r\n : 'method',\r\n static: (kind & 32) > 0,\r\n computed: (kind & 2) > 0,\r\n key,\r\n value\r\n });\r\n}\r\nfunction parsePrivateIdentifier(parser, context, start, line, column) {\r\n nextToken(parser, context);\r\n const { tokenValue } = parser;\r\n if (tokenValue === 'constructor')\r\n report(parser, 125);\r\n nextToken(parser, context);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'PrivateIdentifier',\r\n name: tokenValue\r\n });\r\n}\r\nfunction parsePropertyDefinition(parser, context, key, state, decorators, start, line, column) {\r\n let value = null;\r\n if (state & 8)\r\n report(parser, 0);\r\n if (parser.token === 1077936157) {\r\n nextToken(parser, context | 32768);\r\n const { tokenPos, linePos, colPos } = parser;\r\n if (parser.token === 537079928)\r\n report(parser, 116);\r\n value = parsePrimaryExpression(parser, context | 16384, 2, 0, 1, 0, 0, 1, tokenPos, linePos, colPos);\r\n if ((parser.token & 1073741824) !== 1073741824 ||\r\n (parser.token & 4194304) === 4194304) {\r\n value = parseMemberOrUpdateExpression(parser, context | 16384, value, 0, 0, tokenPos, linePos, colPos);\r\n value = parseAssignmentExpression(parser, context | 16384, 0, 0, tokenPos, linePos, colPos, value);\r\n if (parser.token === 18) {\r\n value = parseSequenceExpression(parser, context, 0, start, line, column, value);\r\n }\r\n }\r\n }\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'PropertyDefinition',\r\n key,\r\n value,\r\n static: (state & 32) > 0,\r\n computed: (state & 2) > 0,\r\n decorators\r\n });\r\n}\r\nfunction parseBindingPattern(parser, context, scope, type, origin, start, line, column) {\r\n if (parser.token & 143360)\r\n return parseAndClassifyIdentifier(parser, context, scope, type, origin, start, line, column);\r\n if ((parser.token & 2097152) !== 2097152)\r\n report(parser, 28, KeywordDescTable[parser.token & 255]);\r\n const left = parser.token === 69271571\r\n ? parseArrayExpressionOrPattern(parser, context, scope, 1, 0, 1, type, origin, start, line, column)\r\n : parseObjectLiteralOrPattern(parser, context, scope, 1, 0, 1, type, origin, start, line, column);\r\n if (parser.destructible & 16)\r\n report(parser, 48);\r\n if (parser.destructible & 32)\r\n report(parser, 48);\r\n return left;\r\n}\r\nfunction parseAndClassifyIdentifier(parser, context, scope, kind, origin, start, line, column) {\r\n const { tokenValue, token } = parser;\r\n if (context & 1024) {\r\n if ((token & 537079808) === 537079808) {\r\n report(parser, 116);\r\n }\r\n else if ((token & 36864) === 36864) {\r\n report(parser, 115);\r\n }\r\n }\r\n if ((token & 20480) === 20480) {\r\n report(parser, 100);\r\n }\r\n if (context & (2048 | 2097152) && token === 241773) {\r\n report(parser, 30);\r\n }\r\n if (token === 241739) {\r\n if (kind & (8 | 16))\r\n report(parser, 98);\r\n }\r\n if (context & (4194304 | 2048) && token === 209008) {\r\n report(parser, 96);\r\n }\r\n nextToken(parser, context);\r\n if (scope)\r\n addVarOrBlock(parser, context, scope, tokenValue, kind, origin);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'Identifier',\r\n name: tokenValue\r\n });\r\n}\r\nfunction parseJSXRootElementOrFragment(parser, context, inJSXChild, start, line, column) {\r\n nextToken(parser, context);\r\n if (parser.token === 8456259) {\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'JSXFragment',\r\n openingFragment: parseOpeningFragment(parser, context, start, line, column),\r\n children: parseJSXChildren(parser, context),\r\n closingFragment: parseJSXClosingFragment(parser, context, inJSXChild, parser.tokenPos, parser.linePos, parser.colPos)\r\n });\r\n }\r\n let closingElement = null;\r\n let children = [];\r\n const openingElement = parseJSXOpeningFragmentOrSelfCloseElement(parser, context, inJSXChild, start, line, column);\r\n if (!openingElement.selfClosing) {\r\n children = parseJSXChildren(parser, context);\r\n closingElement = parseJSXClosingElement(parser, context, inJSXChild, parser.tokenPos, parser.linePos, parser.colPos);\r\n const close = isEqualTagName(closingElement.name);\r\n if (isEqualTagName(openingElement.name) !== close)\r\n report(parser, 150, close);\r\n }\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'JSXElement',\r\n children,\r\n openingElement,\r\n closingElement\r\n });\r\n}\r\nfunction parseOpeningFragment(parser, context, start, line, column) {\r\n scanJSXToken(parser, context);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'JSXOpeningFragment'\r\n });\r\n}\r\nfunction parseJSXClosingElement(parser, context, inJSXChild, start, line, column) {\r\n consume(parser, context, 25);\r\n const name = parseJSXElementName(parser, context, parser.tokenPos, parser.linePos, parser.colPos);\r\n if (inJSXChild) {\r\n consume(parser, context, 8456259);\r\n }\r\n else {\r\n parser.token = scanJSXToken(parser, context);\r\n }\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'JSXClosingElement',\r\n name\r\n });\r\n}\r\nfunction parseJSXClosingFragment(parser, context, inJSXChild, start, line, column) {\r\n consume(parser, context, 25);\r\n if (inJSXChild) {\r\n consume(parser, context, 8456259);\r\n }\r\n else {\r\n consume(parser, context, 8456259);\r\n }\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'JSXClosingFragment'\r\n });\r\n}\r\nfunction parseJSXChildren(parser, context) {\r\n const children = [];\r\n while (parser.token !== 25) {\r\n parser.index = parser.tokenPos = parser.startPos;\r\n parser.column = parser.colPos = parser.startColumn;\r\n parser.line = parser.linePos = parser.startLine;\r\n scanJSXToken(parser, context);\r\n children.push(parseJSXChild(parser, context, parser.tokenPos, parser.linePos, parser.colPos));\r\n }\r\n return children;\r\n}\r\nfunction parseJSXChild(parser, context, start, line, column) {\r\n if (parser.token === 138)\r\n return parseJSXText(parser, context, start, line, column);\r\n if (parser.token === 2162700)\r\n return parseJSXExpressionContainer(parser, context, 0, 0, start, line, column);\r\n if (parser.token === 8456258)\r\n return parseJSXRootElementOrFragment(parser, context, 0, start, line, column);\r\n report(parser, 0);\r\n}\r\nfunction parseJSXText(parser, context, start, line, column) {\r\n scanJSXToken(parser, context);\r\n const node = {\r\n type: 'JSXText',\r\n value: parser.tokenValue\r\n };\r\n if (context & 512) {\r\n node.raw = parser.tokenRaw;\r\n }\r\n return finishNode(parser, context, start, line, column, node);\r\n}\r\nfunction parseJSXOpeningFragmentOrSelfCloseElement(parser, context, inJSXChild, start, line, column) {\r\n if ((parser.token & 143360) !== 143360 && (parser.token & 4096) !== 4096)\r\n report(parser, 0);\r\n const tagName = parseJSXElementName(parser, context, parser.tokenPos, parser.linePos, parser.colPos);\r\n const attributes = parseJSXAttributes(parser, context);\r\n const selfClosing = parser.token === 8457016;\r\n if (parser.token === 8456259) {\r\n scanJSXToken(parser, context);\r\n }\r\n else {\r\n consume(parser, context, 8457016);\r\n if (inJSXChild) {\r\n consume(parser, context, 8456259);\r\n }\r\n else {\r\n scanJSXToken(parser, context);\r\n }\r\n }\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'JSXOpeningElement',\r\n name: tagName,\r\n attributes,\r\n selfClosing\r\n });\r\n}\r\nfunction parseJSXElementName(parser, context, start, line, column) {\r\n scanJSXIdentifier(parser);\r\n let key = parseJSXIdentifier(parser, context, start, line, column);\r\n if (parser.token === 21)\r\n return parseJSXNamespacedName(parser, context, key, start, line, column);\r\n while (consumeOpt(parser, context, 67108877)) {\r\n scanJSXIdentifier(parser);\r\n key = parseJSXMemberExpression(parser, context, key, start, line, column);\r\n }\r\n return key;\r\n}\r\nfunction parseJSXMemberExpression(parser, context, object, start, line, column) {\r\n const property = parseJSXIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'JSXMemberExpression',\r\n object,\r\n property\r\n });\r\n}\r\nfunction parseJSXAttributes(parser, context) {\r\n const attributes = [];\r\n while (parser.token !== 8457016 && parser.token !== 8456259 && parser.token !== 1048576) {\r\n attributes.push(parseJsxAttribute(parser, context, parser.tokenPos, parser.linePos, parser.colPos));\r\n }\r\n return attributes;\r\n}\r\nfunction parseJSXSpreadAttribute(parser, context, start, line, column) {\r\n nextToken(parser, context);\r\n consume(parser, context, 14);\r\n const expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos);\r\n consume(parser, context, 1074790415);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'JSXSpreadAttribute',\r\n argument: expression\r\n });\r\n}\r\nfunction parseJsxAttribute(parser, context, start, line, column) {\r\n if (parser.token === 2162700)\r\n return parseJSXSpreadAttribute(parser, context, start, line, column);\r\n scanJSXIdentifier(parser);\r\n let value = null;\r\n let name = parseJSXIdentifier(parser, context, start, line, column);\r\n if (parser.token === 21) {\r\n name = parseJSXNamespacedName(parser, context, name, start, line, column);\r\n }\r\n if (parser.token === 1077936157) {\r\n const token = scanJSXAttributeValue(parser, context);\r\n const { tokenPos, linePos, colPos } = parser;\r\n switch (token) {\r\n case 134283267:\r\n value = parseLiteral(parser, context);\r\n break;\r\n case 8456258:\r\n value = parseJSXRootElementOrFragment(parser, context, 1, tokenPos, linePos, colPos);\r\n break;\r\n case 2162700:\r\n value = parseJSXExpressionContainer(parser, context, 1, 1, tokenPos, linePos, colPos);\r\n break;\r\n default:\r\n report(parser, 149);\r\n }\r\n }\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'JSXAttribute',\r\n value,\r\n name\r\n });\r\n}\r\nfunction parseJSXNamespacedName(parser, context, namespace, start, line, column) {\r\n consume(parser, context, 21);\r\n const name = parseJSXIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'JSXNamespacedName',\r\n namespace,\r\n name\r\n });\r\n}\r\nfunction parseJSXExpressionContainer(parser, context, inJSXChild, isAttr, start, line, column) {\r\n nextToken(parser, context | 32768);\r\n const { tokenPos, linePos, colPos } = parser;\r\n if (parser.token === 14)\r\n return parseJSXSpreadChild(parser, context, start, line, column);\r\n let expression = null;\r\n if (parser.token === 1074790415) {\r\n if (isAttr)\r\n report(parser, 152);\r\n expression = parseJSXEmptyExpression(parser, context, parser.startPos, parser.startLine, parser.startColumn);\r\n }\r\n else {\r\n expression = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos);\r\n }\r\n if (inJSXChild) {\r\n consume(parser, context, 1074790415);\r\n }\r\n else {\r\n scanJSXToken(parser, context);\r\n }\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'JSXExpressionContainer',\r\n expression\r\n });\r\n}\r\nfunction parseJSXSpreadChild(parser, context, start, line, column) {\r\n consume(parser, context, 14);\r\n const expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos);\r\n consume(parser, context, 1074790415);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'JSXSpreadChild',\r\n expression\r\n });\r\n}\r\nfunction parseJSXEmptyExpression(parser, context, start, line, column) {\r\n parser.startPos = parser.tokenPos;\r\n parser.startLine = parser.linePos;\r\n parser.startColumn = parser.colPos;\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'JSXEmptyExpression'\r\n });\r\n}\r\nfunction parseJSXIdentifier(parser, context, start, line, column) {\r\n const { tokenValue } = parser;\r\n nextToken(parser, context);\r\n return finishNode(parser, context, start, line, column, {\r\n type: 'JSXIdentifier',\r\n name: tokenValue\r\n });\r\n}\n\nvar estree = /*#__PURE__*/Object.freeze({\n __proto__: null\n});\n\nvar version$1 = \"4.4.2\";\n\nconst version = version$1;\r\nfunction parseScript(source, options) {\r\n return parseSource(source, options, 0);\r\n}\r\nfunction parseModule(source, options) {\r\n return parseSource(source, options, 1024 | 2048);\r\n}\r\nfunction parse(source, options) {\r\n return parseSource(source, options, 0);\r\n}\n\nexport { estree as ESTree, parse, parseModule, parseScript, version };\n", "// Astring is a tiny and fast JavaScript code generator from an ESTree-compliant AST.\n//\n// Astring was written by David Bonnet and released under an MIT license.\n//\n// The Git repository for Astring is available at:\n// https://github.com/davidbonnet/astring.git\n//\n// Please use the GitHub bug tracker to report issues:\n// https://github.com/davidbonnet/astring/issues\n\nconst { stringify } = JSON\n\n/* c8 ignore if */\nif (!String.prototype.repeat) {\n /* c8 ignore next */\n throw new Error(\n 'String.prototype.repeat is undefined, see https://github.com/davidbonnet/astring#installation',\n )\n}\n\n/* c8 ignore if */\nif (!String.prototype.endsWith) {\n /* c8 ignore next */\n throw new Error(\n 'String.prototype.endsWith is undefined, see https://github.com/davidbonnet/astring#installation',\n )\n}\n\nconst OPERATOR_PRECEDENCE = {\n '||': 2,\n '??': 3,\n '&&': 4,\n '|': 5,\n '^': 6,\n '&': 7,\n '==': 8,\n '!=': 8,\n '===': 8,\n '!==': 8,\n '<': 9,\n '>': 9,\n '<=': 9,\n '>=': 9,\n in: 9,\n instanceof: 9,\n '<<': 10,\n '>>': 10,\n '>>>': 10,\n '+': 11,\n '-': 11,\n '*': 12,\n '%': 12,\n '/': 12,\n '**': 13,\n}\n\n// Enables parenthesis regardless of precedence\nexport const NEEDS_PARENTHESES = 17\n\nexport const EXPRESSIONS_PRECEDENCE = {\n // Definitions\n ArrayExpression: 20,\n TaggedTemplateExpression: 20,\n ThisExpression: 20,\n Identifier: 20,\n PrivateIdentifier: 20,\n Literal: 18,\n TemplateLiteral: 20,\n Super: 20,\n SequenceExpression: 20,\n // Operations\n MemberExpression: 19,\n ChainExpression: 19,\n CallExpression: 19,\n NewExpression: 19,\n // Other definitions\n ArrowFunctionExpression: NEEDS_PARENTHESES,\n ClassExpression: NEEDS_PARENTHESES,\n FunctionExpression: NEEDS_PARENTHESES,\n ObjectExpression: NEEDS_PARENTHESES,\n // Other operations\n UpdateExpression: 16,\n UnaryExpression: 15,\n AwaitExpression: 15,\n BinaryExpression: 14,\n LogicalExpression: 13,\n ConditionalExpression: 4,\n AssignmentExpression: 3,\n YieldExpression: 2,\n RestElement: 1,\n}\n\nfunction formatSequence(state, nodes) {\n /*\n Writes into `state` a sequence of `nodes`.\n */\n const { generator } = state\n state.write('(')\n if (nodes != null && nodes.length > 0) {\n generator[nodes[0].type](nodes[0], state)\n const { length } = nodes\n for (let i = 1; i < length; i++) {\n const param = nodes[i]\n state.write(', ')\n generator[param.type](param, state)\n }\n }\n state.write(')')\n}\n\nfunction expressionNeedsParenthesis(state, node, parentNode, isRightHand) {\n const nodePrecedence = state.expressionsPrecedence[node.type]\n if (nodePrecedence === NEEDS_PARENTHESES) {\n return true\n }\n const parentNodePrecedence = state.expressionsPrecedence[parentNode.type]\n if (nodePrecedence !== parentNodePrecedence) {\n // Different node types\n return (\n (!isRightHand &&\n nodePrecedence === 15 &&\n parentNodePrecedence === 14 &&\n parentNode.operator === '**') ||\n nodePrecedence < parentNodePrecedence\n )\n }\n if (nodePrecedence !== 13 && nodePrecedence !== 14) {\n // Not a `LogicalExpression` or `BinaryExpression`\n return false\n }\n if (node.operator === '**' && parentNode.operator === '**') {\n // Exponentiation operator has right-to-left associativity\n return !isRightHand\n }\n if (\n nodePrecedence === 13 &&\n parentNodePrecedence === 13 &&\n (node.operator === '??' || parentNode.operator === '??')\n ) {\n // Nullish coalescing and boolean operators cannot be combined\n return true\n }\n if (isRightHand) {\n // Parenthesis are used if both operators have the same precedence\n return (\n OPERATOR_PRECEDENCE[node.operator] <=\n OPERATOR_PRECEDENCE[parentNode.operator]\n )\n }\n return (\n OPERATOR_PRECEDENCE[node.operator] <\n OPERATOR_PRECEDENCE[parentNode.operator]\n )\n}\n\nfunction formatExpression(state, node, parentNode, isRightHand) {\n /*\n Writes into `state` the provided `node`, adding parenthesis around if the provided `parentNode` needs it. If `node` is a right-hand argument, the provided `isRightHand` parameter should be `true`.\n */\n const { generator } = state\n if (expressionNeedsParenthesis(state, node, parentNode, isRightHand)) {\n state.write('(')\n generator[node.type](node, state)\n state.write(')')\n } else {\n generator[node.type](node, state)\n }\n}\n\nfunction reindent(state, text, indent, lineEnd) {\n /*\n Writes into `state` the `text` string reindented with the provided `indent`.\n */\n const lines = text.split('\\n')\n const end = lines.length - 1\n state.write(lines[0].trim())\n if (end > 0) {\n state.write(lineEnd)\n for (let i = 1; i < end; i++) {\n state.write(indent + lines[i].trim() + lineEnd)\n }\n state.write(indent + lines[end].trim())\n }\n}\n\nfunction formatComments(state, comments, indent, lineEnd) {\n /*\n Writes into `state` the provided list of `comments`, with the given `indent` and `lineEnd` strings.\n Line comments will end with `\"\\n\"` regardless of the value of `lineEnd`.\n Expects to start on a new unindented line.\n */\n const { length } = comments\n for (let i = 0; i < length; i++) {\n const comment = comments[i]\n state.write(indent)\n if (comment.type[0] === 'L') {\n // Line comment\n state.write('// ' + comment.value.trim() + '\\n', comment)\n } else {\n // Block comment\n state.write('/*')\n reindent(state, comment.value, indent, lineEnd)\n state.write('*/' + lineEnd)\n }\n }\n}\n\nfunction hasCallExpression(node) {\n /*\n Returns `true` if the provided `node` contains a call expression and `false` otherwise.\n */\n let currentNode = node\n while (currentNode != null) {\n const { type } = currentNode\n if (type[0] === 'C' && type[1] === 'a') {\n // Is CallExpression\n return true\n } else if (type[0] === 'M' && type[1] === 'e' && type[2] === 'm') {\n // Is MemberExpression\n currentNode = currentNode.object\n } else {\n return false\n }\n }\n}\n\nfunction formatVariableDeclaration(state, node) {\n /*\n Writes into `state` a variable declaration.\n */\n const { generator } = state\n const { declarations } = node\n state.write(node.kind + ' ')\n const { length } = declarations\n if (length > 0) {\n generator.VariableDeclarator(declarations[0], state)\n for (let i = 1; i < length; i++) {\n state.write(', ')\n generator.VariableDeclarator(declarations[i], state)\n }\n }\n}\n\nlet ForInStatement,\n FunctionDeclaration,\n RestElement,\n BinaryExpression,\n ArrayExpression,\n BlockStatement\n\nexport const GENERATOR = {\n /*\n Default generator.\n */\n Program(node, state) {\n const indent = state.indent.repeat(state.indentLevel)\n const { lineEnd, writeComments } = state\n if (writeComments && node.comments != null) {\n formatComments(state, node.comments, indent, lineEnd)\n }\n const statements = node.body\n const { length } = statements\n for (let i = 0; i < length; i++) {\n const statement = statements[i]\n if (writeComments && statement.comments != null) {\n formatComments(state, statement.comments, indent, lineEnd)\n }\n state.write(indent)\n this[statement.type](statement, state)\n state.write(lineEnd)\n }\n if (writeComments && node.trailingComments != null) {\n formatComments(state, node.trailingComments, indent, lineEnd)\n }\n },\n BlockStatement: (BlockStatement = function (node, state) {\n const indent = state.indent.repeat(state.indentLevel++)\n const { lineEnd, writeComments } = state\n const statementIndent = indent + state.indent\n state.write('{')\n const statements = node.body\n if (statements != null && statements.length > 0) {\n state.write(lineEnd)\n if (writeComments && node.comments != null) {\n formatComments(state, node.comments, statementIndent, lineEnd)\n }\n const { length } = statements\n for (let i = 0; i < length; i++) {\n const statement = statements[i]\n if (writeComments && statement.comments != null) {\n formatComments(state, statement.comments, statementIndent, lineEnd)\n }\n state.write(statementIndent)\n this[statement.type](statement, state)\n state.write(lineEnd)\n }\n state.write(indent)\n } else {\n if (writeComments && node.comments != null) {\n state.write(lineEnd)\n formatComments(state, node.comments, statementIndent, lineEnd)\n state.write(indent)\n }\n }\n if (writeComments && node.trailingComments != null) {\n formatComments(state, node.trailingComments, statementIndent, lineEnd)\n }\n state.write('}')\n state.indentLevel--\n }),\n ClassBody: BlockStatement,\n StaticBlock(node, state) {\n state.write('static ')\n this.BlockStatement(node, state)\n },\n EmptyStatement(node, state) {\n state.write(';')\n },\n ExpressionStatement(node, state) {\n const precedence = state.expressionsPrecedence[node.expression.type]\n if (\n precedence === NEEDS_PARENTHESES ||\n (precedence === 3 && node.expression.left.type[0] === 'O')\n ) {\n // Should always have parentheses or is an AssignmentExpression to an ObjectPattern\n state.write('(')\n this[node.expression.type](node.expression, state)\n state.write(')')\n } else {\n this[node.expression.type](node.expression, state)\n }\n state.write(';')\n },\n IfStatement(node, state) {\n state.write('if (')\n this[node.test.type](node.test, state)\n state.write(') ')\n this[node.consequent.type](node.consequent, state)\n if (node.alternate != null) {\n state.write(' else ')\n this[node.alternate.type](node.alternate, state)\n }\n },\n LabeledStatement(node, state) {\n this[node.label.type](node.label, state)\n state.write(': ')\n this[node.body.type](node.body, state)\n },\n BreakStatement(node, state) {\n state.write('break')\n if (node.label != null) {\n state.write(' ')\n this[node.label.type](node.label, state)\n }\n state.write(';')\n },\n ContinueStatement(node, state) {\n state.write('continue')\n if (node.label != null) {\n state.write(' ')\n this[node.label.type](node.label, state)\n }\n state.write(';')\n },\n WithStatement(node, state) {\n state.write('with (')\n this[node.object.type](node.object, state)\n state.write(') ')\n this[node.body.type](node.body, state)\n },\n SwitchStatement(node, state) {\n const indent = state.indent.repeat(state.indentLevel++)\n const { lineEnd, writeComments } = state\n state.indentLevel++\n const caseIndent = indent + state.indent\n const statementIndent = caseIndent + state.indent\n state.write('switch (')\n this[node.discriminant.type](node.discriminant, state)\n state.write(') {' + lineEnd)\n const { cases: occurences } = node\n const { length: occurencesCount } = occurences\n for (let i = 0; i < occurencesCount; i++) {\n const occurence = occurences[i]\n if (writeComments && occurence.comments != null) {\n formatComments(state, occurence.comments, caseIndent, lineEnd)\n }\n if (occurence.test) {\n state.write(caseIndent + 'case ')\n this[occurence.test.type](occurence.test, state)\n state.write(':' + lineEnd)\n } else {\n state.write(caseIndent + 'default:' + lineEnd)\n }\n const { consequent } = occurence\n const { length: consequentCount } = consequent\n for (let i = 0; i < consequentCount; i++) {\n const statement = consequent[i]\n if (writeComments && statement.comments != null) {\n formatComments(state, statement.comments, statementIndent, lineEnd)\n }\n state.write(statementIndent)\n this[statement.type](statement, state)\n state.write(lineEnd)\n }\n }\n state.indentLevel -= 2\n state.write(indent + '}')\n },\n ReturnStatement(node, state) {\n state.write('return')\n if (node.argument) {\n state.write(' ')\n this[node.argument.type](node.argument, state)\n }\n state.write(';')\n },\n ThrowStatement(node, state) {\n state.write('throw ')\n this[node.argument.type](node.argument, state)\n state.write(';')\n },\n TryStatement(node, state) {\n state.write('try ')\n this[node.block.type](node.block, state)\n if (node.handler) {\n const { handler } = node\n if (handler.param == null) {\n state.write(' catch ')\n } else {\n state.write(' catch (')\n this[handler.param.type](handler.param, state)\n state.write(') ')\n }\n this[handler.body.type](handler.body, state)\n }\n if (node.finalizer) {\n state.write(' finally ')\n this[node.finalizer.type](node.finalizer, state)\n }\n },\n WhileStatement(node, state) {\n state.write('while (')\n this[node.test.type](node.test, state)\n state.write(') ')\n this[node.body.type](node.body, state)\n },\n DoWhileStatement(node, state) {\n state.write('do ')\n this[node.body.type](node.body, state)\n state.write(' while (')\n this[node.test.type](node.test, state)\n state.write(');')\n },\n ForStatement(node, state) {\n state.write('for (')\n if (node.init != null) {\n const { init } = node\n if (init.type[0] === 'V') {\n formatVariableDeclaration(state, init)\n } else {\n this[init.type](init, state)\n }\n }\n state.write('; ')\n if (node.test) {\n this[node.test.type](node.test, state)\n }\n state.write('; ')\n if (node.update) {\n this[node.update.type](node.update, state)\n }\n state.write(') ')\n this[node.body.type](node.body, state)\n },\n ForInStatement: (ForInStatement = function (node, state) {\n state.write(`for ${node.await ? 'await ' : ''}(`)\n const { left } = node\n if (left.type[0] === 'V') {\n formatVariableDeclaration(state, left)\n } else {\n this[left.type](left, state)\n }\n // Identifying whether node.type is `ForInStatement` or `ForOfStatement`\n state.write(node.type[3] === 'I' ? ' in ' : ' of ')\n this[node.right.type](node.right, state)\n state.write(') ')\n this[node.body.type](node.body, state)\n }),\n ForOfStatement: ForInStatement,\n DebuggerStatement(node, state) {\n state.write('debugger;', node)\n },\n FunctionDeclaration: (FunctionDeclaration = function (node, state) {\n state.write(\n (node.async ? 'async ' : '') +\n (node.generator ? 'function* ' : 'function ') +\n (node.id ? node.id.name : ''),\n node,\n )\n formatSequence(state, node.params)\n state.write(' ')\n this[node.body.type](node.body, state)\n }),\n FunctionExpression: FunctionDeclaration,\n VariableDeclaration(node, state) {\n formatVariableDeclaration(state, node)\n state.write(';')\n },\n VariableDeclarator(node, state) {\n this[node.id.type](node.id, state)\n if (node.init != null) {\n state.write(' = ')\n this[node.init.type](node.init, state)\n }\n },\n ClassDeclaration(node, state) {\n state.write('class ' + (node.id ? `${node.id.name} ` : ''), node)\n if (node.superClass) {\n state.write('extends ')\n const { superClass } = node\n const { type } = superClass\n const precedence = state.expressionsPrecedence[type]\n if (\n (type[0] !== 'C' || type[1] !== 'l' || type[5] !== 'E') &&\n (precedence === NEEDS_PARENTHESES ||\n precedence < state.expressionsPrecedence.ClassExpression)\n ) {\n // Not a ClassExpression that needs parentheses\n state.write('(')\n this[node.superClass.type](superClass, state)\n state.write(')')\n } else {\n this[superClass.type](superClass, state)\n }\n state.write(' ')\n }\n this.ClassBody(node.body, state)\n },\n ImportDeclaration(node, state) {\n state.write('import ')\n const { specifiers } = node\n const { length } = specifiers\n // TODO: Once babili is fixed, put this after condition\n // https://github.com/babel/babili/issues/430\n let i = 0\n if (length > 0) {\n for (; i < length; ) {\n if (i > 0) {\n state.write(', ')\n }\n const specifier = specifiers[i]\n const type = specifier.type[6]\n if (type === 'D') {\n // ImportDefaultSpecifier\n state.write(specifier.local.name, specifier)\n i++\n } else if (type === 'N') {\n // ImportNamespaceSpecifier\n state.write('* as ' + specifier.local.name, specifier)\n i++\n } else {\n // ImportSpecifier\n break\n }\n }\n if (i < length) {\n state.write('{')\n for (;;) {\n const specifier = specifiers[i]\n const { name } = specifier.imported\n state.write(name, specifier)\n if (name !== specifier.local.name) {\n state.write(' as ' + specifier.local.name)\n }\n if (++i < length) {\n state.write(', ')\n } else {\n break\n }\n }\n state.write('}')\n }\n state.write(' from ')\n }\n this.Literal(node.source, state)\n state.write(';')\n },\n ImportExpression(node, state) {\n state.write('import(')\n this[node.source.type](node.source, state)\n state.write(')')\n },\n ExportDefaultDeclaration(node, state) {\n state.write('export default ')\n this[node.declaration.type](node.declaration, state)\n if (\n state.expressionsPrecedence[node.declaration.type] != null &&\n node.declaration.type[0] !== 'F'\n ) {\n // All expression nodes except `FunctionExpression`\n state.write(';')\n }\n },\n ExportNamedDeclaration(node, state) {\n state.write('export ')\n if (node.declaration) {\n this[node.declaration.type](node.declaration, state)\n } else {\n state.write('{')\n const { specifiers } = node,\n { length } = specifiers\n if (length > 0) {\n for (let i = 0; ; ) {\n const specifier = specifiers[i]\n const { name } = specifier.local\n state.write(name, specifier)\n if (name !== specifier.exported.name) {\n state.write(' as ' + specifier.exported.name)\n }\n if (++i < length) {\n state.write(', ')\n } else {\n break\n }\n }\n }\n state.write('}')\n if (node.source) {\n state.write(' from ')\n this.Literal(node.source, state)\n }\n state.write(';')\n }\n },\n ExportAllDeclaration(node, state) {\n if (node.exported != null) {\n state.write('export * as ' + node.exported.name + ' from ')\n } else {\n state.write('export * from ')\n }\n this.Literal(node.source, state)\n state.write(';')\n },\n MethodDefinition(node, state) {\n if (node.static) {\n state.write('static ')\n }\n const kind = node.kind[0]\n if (kind === 'g' || kind === 's') {\n // Getter or setter\n state.write(node.kind + ' ')\n }\n if (node.value.async) {\n state.write('async ')\n }\n if (node.value.generator) {\n state.write('*')\n }\n if (node.computed) {\n state.write('[')\n this[node.key.type](node.key, state)\n state.write(']')\n } else {\n this[node.key.type](node.key, state)\n }\n formatSequence(state, node.value.params)\n state.write(' ')\n this[node.value.body.type](node.value.body, state)\n },\n ClassExpression(node, state) {\n this.ClassDeclaration(node, state)\n },\n ArrowFunctionExpression(node, state) {\n state.write(node.async ? 'async ' : '', node)\n const { params } = node\n if (params != null) {\n // Omit parenthesis if only one named parameter\n if (params.length === 1 && params[0].type[0] === 'I') {\n // If params[0].type[0] starts with 'I', it can't be `ImportDeclaration` nor `IfStatement` and thus is `Identifier`\n state.write(params[0].name, params[0])\n } else {\n formatSequence(state, node.params)\n }\n }\n state.write(' => ')\n if (node.body.type[0] === 'O') {\n // Body is an object expression\n state.write('(')\n this.ObjectExpression(node.body, state)\n state.write(')')\n } else {\n this[node.body.type](node.body, state)\n }\n },\n ThisExpression(node, state) {\n state.write('this', node)\n },\n Super(node, state) {\n state.write('super', node)\n },\n RestElement: (RestElement = function (node, state) {\n state.write('...')\n this[node.argument.type](node.argument, state)\n }),\n SpreadElement: RestElement,\n YieldExpression(node, state) {\n state.write(node.delegate ? 'yield*' : 'yield')\n if (node.argument) {\n state.write(' ')\n this[node.argument.type](node.argument, state)\n }\n },\n AwaitExpression(node, state) {\n state.write('await ', node)\n formatExpression(state, node.argument, node)\n },\n TemplateLiteral(node, state) {\n const { quasis, expressions } = node\n state.write('`')\n const { length } = expressions\n for (let i = 0; i < length; i++) {\n const expression = expressions[i]\n const quasi = quasis[i]\n state.write(quasi.value.raw, quasi)\n state.write('${')\n this[expression.type](expression, state)\n state.write('}')\n }\n const quasi = quasis[quasis.length - 1]\n state.write(quasi.value.raw, quasi)\n state.write('`')\n },\n TemplateElement(node, state) {\n state.write(node.value.raw, node)\n },\n TaggedTemplateExpression(node, state) {\n formatExpression(state, node.tag, node)\n this[node.quasi.type](node.quasi, state)\n },\n ArrayExpression: (ArrayExpression = function (node, state) {\n state.write('[')\n if (node.elements.length > 0) {\n const { elements } = node,\n { length } = elements\n for (let i = 0; ; ) {\n const element = elements[i]\n if (element != null) {\n this[element.type](element, state)\n }\n if (++i < length) {\n state.write(', ')\n } else {\n if (element == null) {\n state.write(', ')\n }\n break\n }\n }\n }\n state.write(']')\n }),\n ArrayPattern: ArrayExpression,\n ObjectExpression(node, state) {\n const indent = state.indent.repeat(state.indentLevel++)\n const { lineEnd, writeComments } = state\n const propertyIndent = indent + state.indent\n state.write('{')\n if (node.properties.length > 0) {\n state.write(lineEnd)\n if (writeComments && node.comments != null) {\n formatComments(state, node.comments, propertyIndent, lineEnd)\n }\n const comma = ',' + lineEnd\n const { properties } = node,\n { length } = properties\n for (let i = 0; ; ) {\n const property = properties[i]\n if (writeComments && property.comments != null) {\n formatComments(state, property.comments, propertyIndent, lineEnd)\n }\n state.write(propertyIndent)\n this[property.type](property, state)\n if (++i < length) {\n state.write(comma)\n } else {\n break\n }\n }\n state.write(lineEnd)\n if (writeComments && node.trailingComments != null) {\n formatComments(state, node.trailingComments, propertyIndent, lineEnd)\n }\n state.write(indent + '}')\n } else if (writeComments) {\n if (node.comments != null) {\n state.write(lineEnd)\n formatComments(state, node.comments, propertyIndent, lineEnd)\n if (node.trailingComments != null) {\n formatComments(state, node.trailingComments, propertyIndent, lineEnd)\n }\n state.write(indent + '}')\n } else if (node.trailingComments != null) {\n state.write(lineEnd)\n formatComments(state, node.trailingComments, propertyIndent, lineEnd)\n state.write(indent + '}')\n } else {\n state.write('}')\n }\n } else {\n state.write('}')\n }\n state.indentLevel--\n },\n Property(node, state) {\n if (node.method || node.kind[0] !== 'i') {\n // Either a method or of kind `set` or `get` (not `init`)\n this.MethodDefinition(node, state)\n } else {\n if (!node.shorthand) {\n if (node.computed) {\n state.write('[')\n this[node.key.type](node.key, state)\n state.write(']')\n } else {\n this[node.key.type](node.key, state)\n }\n state.write(': ')\n }\n this[node.value.type](node.value, state)\n }\n },\n PropertyDefinition(node, state) {\n if (node.static) {\n state.write('static ')\n }\n if (node.computed) {\n state.write('[')\n }\n this[node.key.type](node.key, state)\n if (node.computed) {\n state.write(']')\n }\n if (node.value == null) {\n if (node.key.type[0] !== 'F') {\n state.write(';')\n }\n return\n }\n state.write(' = ')\n this[node.value.type](node.value, state)\n state.write(';')\n },\n ObjectPattern(node, state) {\n state.write('{')\n if (node.properties.length > 0) {\n const { properties } = node,\n { length } = properties\n for (let i = 0; ; ) {\n this[properties[i].type](properties[i], state)\n if (++i < length) {\n state.write(', ')\n } else {\n break\n }\n }\n }\n state.write('}')\n },\n SequenceExpression(node, state) {\n formatSequence(state, node.expressions)\n },\n UnaryExpression(node, state) {\n if (node.prefix) {\n const {\n operator,\n argument,\n argument: { type },\n } = node\n state.write(operator)\n const needsParentheses = expressionNeedsParenthesis(state, argument, node)\n if (\n !needsParentheses &&\n (operator.length > 1 ||\n (type[0] === 'U' &&\n (type[1] === 'n' || type[1] === 'p') &&\n argument.prefix &&\n argument.operator[0] === operator &&\n (operator === '+' || operator === '-')))\n ) {\n // Large operator or argument is UnaryExpression or UpdateExpression node\n state.write(' ')\n }\n if (needsParentheses) {\n state.write(operator.length > 1 ? ' (' : '(')\n this[type](argument, state)\n state.write(')')\n } else {\n this[type](argument, state)\n }\n } else {\n // FIXME: This case never occurs\n this[node.argument.type](node.argument, state)\n state.write(node.operator)\n }\n },\n UpdateExpression(node, state) {\n // Always applied to identifiers or members, no parenthesis check needed\n if (node.prefix) {\n state.write(node.operator)\n this[node.argument.type](node.argument, state)\n } else {\n this[node.argument.type](node.argument, state)\n state.write(node.operator)\n }\n },\n AssignmentExpression(node, state) {\n this[node.left.type](node.left, state)\n state.write(' ' + node.operator + ' ')\n this[node.right.type](node.right, state)\n },\n AssignmentPattern(node, state) {\n this[node.left.type](node.left, state)\n state.write(' = ')\n this[node.right.type](node.right, state)\n },\n BinaryExpression: (BinaryExpression = function (node, state) {\n const isIn = node.operator === 'in'\n if (isIn) {\n // Avoids confusion in `for` loops initializers\n state.write('(')\n }\n formatExpression(state, node.left, node, false)\n state.write(' ' + node.operator + ' ')\n formatExpression(state, node.right, node, true)\n if (isIn) {\n state.write(')')\n }\n }),\n LogicalExpression: BinaryExpression,\n ConditionalExpression(node, state) {\n const { test } = node\n const precedence = state.expressionsPrecedence[test.type]\n if (\n precedence === NEEDS_PARENTHESES ||\n precedence <= state.expressionsPrecedence.ConditionalExpression\n ) {\n state.write('(')\n this[test.type](test, state)\n state.write(')')\n } else {\n this[test.type](test, state)\n }\n state.write(' ? ')\n this[node.consequent.type](node.consequent, state)\n state.write(' : ')\n this[node.alternate.type](node.alternate, state)\n },\n NewExpression(node, state) {\n state.write('new ')\n const precedence = state.expressionsPrecedence[node.callee.type]\n if (\n precedence === NEEDS_PARENTHESES ||\n precedence < state.expressionsPrecedence.CallExpression ||\n hasCallExpression(node.callee)\n ) {\n state.write('(')\n this[node.callee.type](node.callee, state)\n state.write(')')\n } else {\n this[node.callee.type](node.callee, state)\n }\n formatSequence(state, node['arguments'])\n },\n CallExpression(node, state) {\n const precedence = state.expressionsPrecedence[node.callee.type]\n if (\n precedence === NEEDS_PARENTHESES ||\n precedence < state.expressionsPrecedence.CallExpression\n ) {\n state.write('(')\n this[node.callee.type](node.callee, state)\n state.write(')')\n } else {\n this[node.callee.type](node.callee, state)\n }\n if (node.optional) {\n state.write('?.')\n }\n formatSequence(state, node['arguments'])\n },\n ChainExpression(node, state) {\n this[node.expression.type](node.expression, state)\n },\n MemberExpression(node, state) {\n const precedence = state.expressionsPrecedence[node.object.type]\n if (\n precedence === NEEDS_PARENTHESES ||\n precedence < state.expressionsPrecedence.MemberExpression\n ) {\n state.write('(')\n this[node.object.type](node.object, state)\n state.write(')')\n } else {\n this[node.object.type](node.object, state)\n }\n if (node.computed) {\n if (node.optional) {\n state.write('?.')\n }\n state.write('[')\n this[node.property.type](node.property, state)\n state.write(']')\n } else {\n if (node.optional) {\n state.write('?.')\n } else {\n state.write('.')\n }\n this[node.property.type](node.property, state)\n }\n },\n MetaProperty(node, state) {\n state.write(node.meta.name + '.' + node.property.name, node)\n },\n Identifier(node, state) {\n state.write(node.name, node)\n },\n PrivateIdentifier(node, state) {\n state.write(`#${node.name}`, node)\n },\n Literal(node, state) {\n if (node.raw != null) {\n // Non-standard property\n state.write(node.raw, node)\n } else if (node.regex != null) {\n this.RegExpLiteral(node, state)\n } else if (node.bigint != null) {\n state.write(node.bigint + 'n', node)\n } else {\n state.write(stringify(node.value), node)\n }\n },\n RegExpLiteral(node, state) {\n const { regex } = node\n state.write(`/${regex.pattern}/${regex.flags}`, node)\n },\n}\n\nconst EMPTY_OBJECT = {}\n\n/*\nDEPRECATED: Alternate export of `GENERATOR`.\n*/\nexport const baseGenerator = GENERATOR\n\nclass State {\n constructor(options) {\n const setup = options == null ? EMPTY_OBJECT : options\n this.output = ''\n // Functional options\n if (setup.output != null) {\n this.output = setup.output\n this.write = this.writeToStream\n } else {\n this.output = ''\n }\n this.generator = setup.generator != null ? setup.generator : GENERATOR\n this.expressionsPrecedence =\n setup.expressionsPrecedence != null\n ? setup.expressionsPrecedence\n : EXPRESSIONS_PRECEDENCE\n // Formating setup\n this.indent = setup.indent != null ? setup.indent : ' '\n this.lineEnd = setup.lineEnd != null ? setup.lineEnd : '\\n'\n this.indentLevel =\n setup.startingIndentLevel != null ? setup.startingIndentLevel : 0\n this.writeComments = setup.comments ? setup.comments : false\n // Source map\n if (setup.sourceMap != null) {\n this.write =\n setup.output == null ? this.writeAndMap : this.writeToStreamAndMap\n this.sourceMap = setup.sourceMap\n this.line = 1\n this.column = 0\n this.lineEndSize = this.lineEnd.split('\\n').length - 1\n this.mapping = {\n original: null,\n // Uses the entire state to avoid generating ephemeral objects\n generated: this,\n name: undefined,\n source: setup.sourceMap.file || setup.sourceMap._file,\n }\n }\n }\n\n write(code) {\n this.output += code\n }\n\n writeToStream(code) {\n this.output.write(code)\n }\n\n writeAndMap(code, node) {\n this.output += code\n this.map(code, node)\n }\n\n writeToStreamAndMap(code, node) {\n this.output.write(code)\n this.map(code, node)\n }\n\n map(code, node) {\n if (node != null) {\n const { type } = node\n if (type[0] === 'L' && type[2] === 'n') {\n // LineComment\n this.column = 0\n this.line++\n return\n }\n if (node.loc != null) {\n const { mapping } = this\n mapping.original = node.loc.start\n mapping.name = node.name\n this.sourceMap.addMapping(mapping)\n }\n if (\n (type[0] === 'T' && type[8] === 'E') ||\n (type[0] === 'L' && type[1] === 'i' && typeof node.value === 'string')\n ) {\n // TemplateElement or Literal string node\n const { length } = code\n let { column, line } = this\n for (let i = 0; i < length; i++) {\n if (code[i] === '\\n') {\n column = 0\n line++\n } else {\n column++\n }\n }\n this.column = column\n this.line = line\n return\n }\n }\n const { length } = code\n const { lineEnd } = this\n if (length > 0) {\n if (\n this.lineEndSize > 0 &&\n (lineEnd.length === 1\n ? code[length - 1] === lineEnd\n : code.endsWith(lineEnd))\n ) {\n this.line += this.lineEndSize\n this.column = 0\n } else {\n this.column += length\n }\n }\n }\n\n toString() {\n return this.output\n }\n}\n\nexport function generate(node, options) {\n /*\n Returns a string representing the rendered code of the provided AST `node`.\n The `options` are:\n\n - `indent`: string to use for indentation (defaults to `\u2423\u2423`)\n - `lineEnd`: string to use for line endings (defaults to `\\n`)\n - `startingIndentLevel`: indent level to start from (defaults to `0`)\n - `comments`: generate comments if `true` (defaults to `false`)\n - `output`: output stream to write the rendered code to (defaults to `null`)\n - `generator`: custom code generator (defaults to `GENERATOR`)\n - `expressionsPrecedence`: custom map of node types and their precedence level (defaults to `EXPRESSIONS_PRECEDENCE`)\n */\n const state = new State(options)\n // Travel through the AST node and generate the code\n state.generator[node.type](node, state)\n return state.output\n}\n", "let ForInStatement,\n FunctionDeclaration,\n RestElement,\n BinaryExpression,\n ArrayExpression,\n Block,\n MethodDefinition\n\nconst ignore = Function.prototype\n\nclass Found {\n constructor(node, state) {\n this.node = node\n this.state = state\n }\n}\n\nexport const defaultTraveler = {\n go(node, state) {\n /*\n Starts travelling through the specified AST `node` with the provided `state`.\n This method is recursively called by each node handler.\n */\n if (this[node.type]) {\n this[node.type](node, state)\n }\n },\n find(predicate, node, state) {\n /*\n Returns { node, state } for which `predicate(node, state)` returns truthy,\n starting at the specified AST `node` and with the provided `state`.\n Otherwise, returns `undefined`.\n */\n const finder = Object.create(this)\n finder.go = function (node, state) {\n if (predicate(node, state)) {\n throw new Found(node, state)\n }\n this[node.type](node, state)\n }\n try {\n finder.go(node, state)\n } catch (error) {\n if (error instanceof Found) {\n return error\n } else {\n throw error\n }\n }\n },\n makeChild(properties = {}) {\n /*\n Returns a custom AST traveler that inherits from `this` traveler with its own provided `properties` and the property `super` that points to the parent traveler object.\n */\n const traveler = Object.create(this)\n traveler.super = this\n for (let key in properties) {\n traveler[key] = properties[key]\n }\n return traveler\n },\n Program: (Block = function (node, state) {\n const { body } = node\n if (body != null) {\n const { length } = body\n for (let i = 0; i < length; i++) {\n this.go(body[i], state)\n }\n }\n }),\n BlockStatement: Block,\n StaticBlock: Block,\n EmptyStatement: ignore,\n ExpressionStatement(node, state) {\n this.go(node.expression, state)\n },\n IfStatement(node, state) {\n this.go(node.test, state)\n this.go(node.consequent, state)\n if (node.alternate != null) {\n this.go(node.alternate, state)\n }\n },\n LabeledStatement(node, state) {\n this.go(node.label, state)\n this.go(node.body, state)\n },\n BreakStatement(node, state) {\n if (node.label) {\n this.go(node.label, state)\n }\n },\n ContinueStatement(node, state) {\n if (node.label) {\n this.go(node.label, state)\n }\n },\n WithStatement(node, state) {\n this.go(node.object, state)\n this.go(node.body, state)\n },\n SwitchStatement(node, state) {\n this.go(node.discriminant, state)\n const { cases } = node,\n { length } = cases\n for (let i = 0; i < length; i++) {\n this.go(cases[i], state)\n }\n },\n SwitchCase(node, state) {\n if (node.test != null) {\n this.go(node.test, state)\n }\n const statements = node.consequent,\n { length } = statements\n for (let i = 0; i < length; i++) {\n this.go(statements[i], state)\n }\n },\n ReturnStatement(node, state) {\n if (node.argument) {\n this.go(node.argument, state)\n }\n },\n ThrowStatement(node, state) {\n this.go(node.argument, state)\n },\n TryStatement(node, state) {\n this.go(node.block, state)\n if (node.handler != null) {\n this.go(node.handler, state)\n }\n if (node.finalizer != null) {\n this.go(node.finalizer, state)\n }\n },\n CatchClause(node, state) {\n if (node.param != null) {\n this.go(node.param, state)\n }\n this.go(node.body, state)\n },\n WhileStatement(node, state) {\n this.go(node.test, state)\n this.go(node.body, state)\n },\n DoWhileStatement(node, state) {\n this.go(node.body, state)\n this.go(node.test, state)\n },\n ForStatement(node, state) {\n if (node.init != null) {\n this.go(node.init, state)\n }\n if (node.test != null) {\n this.go(node.test, state)\n }\n if (node.update != null) {\n this.go(node.update, state)\n }\n this.go(node.body, state)\n },\n ForInStatement: (ForInStatement = function (node, state) {\n this.go(node.left, state)\n this.go(node.right, state)\n this.go(node.body, state)\n }),\n DebuggerStatement: ignore,\n FunctionDeclaration: (FunctionDeclaration = function (node, state) {\n if (node.id != null) {\n this.go(node.id, state)\n }\n const { params } = node\n if (params != null) {\n for (let i = 0, { length } = params; i < length; i++) {\n this.go(params[i], state)\n }\n }\n this.go(node.body, state)\n }),\n VariableDeclaration(node, state) {\n const { declarations } = node,\n { length } = declarations\n for (let i = 0; i < length; i++) {\n this.go(declarations[i], state)\n }\n },\n VariableDeclarator(node, state) {\n this.go(node.id, state)\n if (node.init != null) {\n this.go(node.init, state)\n }\n },\n ArrowFunctionExpression(node, state) {\n const { params } = node\n if (params != null) {\n for (let i = 0, { length } = params; i < length; i++) {\n this.go(params[i], state)\n }\n }\n this.go(node.body, state)\n },\n ThisExpression: ignore,\n ArrayExpression: (ArrayExpression = function (node, state) {\n const { elements } = node,\n { length } = elements\n for (let i = 0; i < length; i++) {\n let element = elements[i]\n if (element != null) {\n this.go(elements[i], state)\n }\n }\n }),\n ObjectExpression(node, state) {\n const { properties } = node,\n { length } = properties\n for (let i = 0; i < length; i++) {\n this.go(properties[i], state)\n }\n },\n Property(node, state) {\n this.go(node.key, state)\n if (node.value != null) {\n this.go(node.value, state)\n }\n },\n FunctionExpression: FunctionDeclaration,\n SequenceExpression(node, state) {\n const { expressions } = node,\n { length } = expressions\n for (let i = 0; i < length; i++) {\n this.go(expressions[i], state)\n }\n },\n UnaryExpression(node, state) {\n this.go(node.argument, state)\n },\n UpdateExpression(node, state) {\n this.go(node.argument, state)\n },\n AssignmentExpression(node, state) {\n this.go(node.left, state)\n this.go(node.right, state)\n },\n BinaryExpression: (BinaryExpression = function (node, state) {\n this.go(node.left, state)\n this.go(node.right, state)\n }),\n LogicalExpression: BinaryExpression,\n ConditionalExpression(node, state) {\n this.go(node.test, state)\n this.go(node.consequent, state)\n this.go(node.alternate, state)\n },\n NewExpression(node, state) {\n this.CallExpression(node, state)\n },\n CallExpression(node, state) {\n this.go(node.callee, state)\n const args = node['arguments'],\n { length } = args\n for (let i = 0; i < length; i++) {\n this.go(args[i], state)\n }\n },\n MemberExpression(node, state) {\n this.go(node.object, state)\n this.go(node.property, state)\n },\n Identifier: ignore,\n PrivateIdentifier: ignore,\n Literal: ignore,\n ForOfStatement: ForInStatement,\n ClassDeclaration(node, state) {\n if (node.id) {\n this.go(node.id, state)\n }\n if (node.superClass) {\n this.go(node.superClass, state)\n }\n this.go(node.body, state)\n },\n ClassBody: Block,\n ImportDeclaration(node, state) {\n const { specifiers } = node,\n { length } = specifiers\n for (let i = 0; i < length; i++) {\n this.go(specifiers[i], state)\n }\n this.go(node.source, state)\n },\n ImportNamespaceSpecifier(node, state) {\n this.go(node.local, state)\n },\n ImportDefaultSpecifier(node, state) {\n this.go(node.local, state)\n },\n ImportSpecifier(node, state) {\n this.go(node.imported, state)\n this.go(node.local, state)\n },\n ExportDefaultDeclaration(node, state) {\n this.go(node.declaration, state)\n },\n ExportNamedDeclaration(node, state) {\n if (node.declaration) {\n this.go(node.declaration, state)\n }\n const { specifiers } = node,\n { length } = specifiers\n for (let i = 0; i < length; i++) {\n this.go(specifiers[i], state)\n }\n if (node.source) {\n this.go(node.source, state)\n }\n },\n ExportSpecifier(node, state) {\n this.go(node.local, state)\n this.go(node.exported, state)\n },\n ExportAllDeclaration(node, state) {\n this.go(node.source, state)\n },\n MethodDefinition: (MethodDefinition = function (node, state) {\n this.go(node.key, state)\n this.go(node.value, state)\n }),\n PropertyDefinition: MethodDefinition,\n ClassExpression(node, state) {\n this.ClassDeclaration(node, state)\n },\n Super: ignore,\n RestElement: (RestElement = function (node, state) {\n this.go(node.argument, state)\n }),\n SpreadElement: RestElement,\n YieldExpression(node, state) {\n if (node.argument) {\n this.go(node.argument, state)\n }\n },\n TaggedTemplateExpression(node, state) {\n this.go(node.tag, state)\n this.go(node.quasi, state)\n },\n TemplateLiteral(node, state) {\n const { quasis, expressions } = node\n for (let i = 0, { length } = expressions; i < length; i++) {\n this.go(expressions[i], state)\n }\n for (let i = 0, { length } = quasis; i < length; i++) {\n this.go(quasis[i], state)\n }\n },\n TemplateElement: ignore,\n ObjectPattern(node, state) {\n const { properties } = node,\n { length } = properties\n for (let i = 0; i < length; i++) {\n this.go(properties[i], state)\n }\n },\n ArrayPattern: ArrayExpression,\n AssignmentPattern(node, state) {\n this.go(node.left, state)\n this.go(node.right, state)\n },\n MetaProperty(node, state) {\n this.go(node.meta, state)\n this.go(node.property, state)\n },\n AwaitExpression(node, state) {\n this.go(node.argument, state)\n },\n}\n", "import { defaultTraveler } from './defaultTraveler'\n\nfunction attachCommentsToNode(\n traveler,\n state,\n parent,\n children,\n findHeadingComments,\n) {\n let { index } = state\n const { comments } = state\n let comment = comments[index]\n // Hack to tackle https://github.com/babel/minify/issues/866\n let boundComments, trailingComments\n if (comment == null) {\n return\n }\n if (children == null || children.length === 0) {\n // No children, attach comments to parent\n boundComments = parent.comments != null ? parent.comments : []\n while (comment != null && comment.end <= parent.end) {\n boundComments.push(comment)\n comment = comments[++index]\n }\n state.index = index\n if (boundComments.length !== 0 && parent.comments == null) {\n parent.comments = boundComments\n }\n return\n }\n // Look for heading block comments not immediately followed by a child\n if (findHeadingComments) {\n boundComments = parent.comments != null ? parent.comments : []\n const { start } = children[0]\n while (\n comment != null &&\n (comment.type[0] === 'B' || comment.type[0] === 'M') &&\n comment.end <= start\n ) {\n boundComments.push(comment)\n comment = comments[++index]\n }\n if (boundComments.length !== 0 && parent.comments == null)\n parent.comments = boundComments\n }\n // Attach comments to children\n for (let i = 0, { length } = children; comment != null && i < length; i++) {\n const child = children[i]\n boundComments = []\n while (comment != null && comment.end <= child.start) {\n boundComments.push(comment)\n comment = comments[++index]\n }\n // Check if next comment is line comment and on the same line if location is provided\n if (\n comment != null &&\n comment.loc != null &&\n (comment.type[0] === 'L' || comment.type[0] === 'S')\n ) {\n if (comment.loc.start.line === child.loc.end.line) {\n boundComments.push(comment)\n comment = comments[++index]\n }\n }\n if (boundComments.length !== 0) {\n child.comments = boundComments\n }\n // Travel through child\n state.index = index\n traveler[child.type](child, state)\n index = state.index\n comment = comments[index]\n }\n // Look for remaining comments\n trailingComments = []\n while (comment != null && comment.end <= parent.end) {\n trailingComments.push(comment)\n comment = comments[++index]\n }\n if (trailingComments.length !== 0) {\n parent.trailingComments = trailingComments\n }\n state.index = index\n}\n\nfunction Block(node, state) {\n attachCommentsToNode(this, state, node, node.body, true)\n}\n\nlet traveler = defaultTraveler.makeChild({\n Program: Block,\n BlockStatement: Block,\n ClassBody: Block,\n ObjectExpression(node, state) {\n attachCommentsToNode(this, state, node, node.properties, true)\n },\n ArrayExpression(node, state) {\n attachCommentsToNode(this, state, node, node.elements, true)\n },\n SwitchStatement(node, state) {\n attachCommentsToNode(this, state, node, node.cases, false)\n },\n SwitchCase(node, state) {\n attachCommentsToNode(this, state, node, node.consequent, false)\n },\n // TODO: Consider ArrayExpression ?\n})\n\nexport function attachComments(node, comments) {\n /*\n Modifies in-place the AST starting at `node` by attaching the provided `comments` and returns that AST.\n */\n traveler[node.type](node, {\n comments,\n index: 0,\n })\n return node\n}\n", "// Astravel is tiny and fast ESTree-compliant AST walker and modifier.\n//\n// Astravel was written by David Bonnet and released under an MIT license.\n//\n// The Git repository for Astravel is available at:\n// https://github.com/davidbonnet/astravel.git\n//\n// Please use the GitHub bug tracker to report issues:\n// https://github.com/davidbonnet/astravel/issues\n\nimport { defaultTraveler } from './defaultTraveler'\nexport { attachComments } from './attachComments'\n\nexport function makeTraveler(properties) {\n /*\n Returns a custom AST traveler that inherits from the `defaultTraveler` with its own provided `properties` and the property `super` that points to the parent traveler object.\n */\n return defaultTraveler.makeChild(properties)\n}\n\nexport { defaultTraveler }\n", "import { parseModule } from \"meriyah\";\r\nimport { generate } from \"astring\";\r\nimport { makeTraveler } from \"astravel\";\r\nimport { encodeUrl } from \"./url\";\n\r\n// i am a cat. i like to be petted. i like to be fed. i like to be\r\n\r\n// js rewiter is NOT finished\r\n\r\n// location\r\n// window\r\n// self\r\n// globalThis\r\n// this\r\n// top\r\n// parent\r\n\r\nconst Ignore = Function.prototype;\r\n\r\n\r\nexport function rewriteJs(js: string, origin?: URL) {\r\n try {\r\n const ast = parseModule(js, {\r\n module: true,\r\n webcompat: true\r\n });\r\n \r\n const identifierList = [\r\n \"window\",\r\n \"self\",\r\n \"globalThis\",\r\n \"parent\",\r\n \"top\",\r\n \"location\",\r\n \"opener\"\r\n ]\r\n \r\n const customTraveler = makeTraveler({\r\n go: (node) => {\r\n if (this[node.type]) {\r\n this[node.type](node);\r\n } else {\r\n console.log(node)\r\n }\r\n },\r\n\r\n Program: (node) => {\r\n if (node.body) {\r\n for (let i = 0; i < node.body.length; i++) {\r\n this.go(node.body[i]);\r\n }\r\n }\r\n },\r\n \r\n ImportDeclaration: (node) => {\r\n node.source.value = encodeUrl(node.source.value, origin);\r\n },\r\n \r\n ImportExpression: (node) => {\r\n node.source.value = encodeUrl(node.source.value, origin);\r\n },\r\n \r\n ExportAllDeclaration: (node) => {\r\n node.source.value = encodeUrl(node.source.value, origin);\r\n },\r\n \r\n ExportNamedDeclaration: (node) => {\r\n if (node.source) node.source.value = encodeUrl(node.source.value, origin);\r\n },\r\n\r\n ExpressionStatement: (node) => {\r\n this.go(node.expression);\r\n },\r\n\r\n FunctionDeclaration: (node) => {\r\n if (node.params) {\r\n node.params = node.params.map((param) => {\r\n if (param.type !== \"Identifier\") this.go(param);\r\n\r\n return param;\r\n });\r\n }\r\n\r\n this.go(node.body);\r\n },\r\n\r\n BlockStatement: (node) => {\r\n if (node.body) {\r\n for (let i = 0; i < node.body.length; i++) {\r\n this.go(node.body[i]);\r\n }\r\n }\r\n },\r\n\r\n ArrayExpression: (node) => {\r\n for (let i = 0; i < node.elements.length; i++) {\r\n this.go(node.elements[i]);\r\n }\r\n },\r\n\r\n CallExpression: (node) => {\r\n if (node.arguments) {\r\n for (let i = 0; i < node.arguments.length; i++) {\r\n this.go(node.arguments[i]);\r\n }\r\n }\r\n\r\n this.go(node.callee);\r\n },\r\n\r\n AssignmentExpression: (node) => {\r\n // visiting node.left gets tricky when dealing with multiple scopes, will be implemented later\r\n this.go(node.left);\r\n this.go(node.right);\r\n },\r\n\r\n VariableDeclaration: (node) => {\r\n for (let i = 0; i < node.declarations.length; i++) {\r\n this.go(node.declarations[i]);\r\n } \r\n },\r\n\r\n VariableDeclarator: (node) => {\r\n this.go(node.init);\r\n },\r\n\r\n MemberExpression: (node) => {\r\n this.go(node.object);\r\n },\r\n\r\n IfStatement: (node) => {\r\n this.go(node.test);\r\n this.go(node.consequent);\r\n this.go(node.alternate);\r\n },\r\n\r\n LogicalExpression: (node) => {\r\n this.go(node.left);\r\n this.go(node.right);\r\n },\r\n \r\n Identifier: (node) => {\r\n if (identifierList.includes(node.name)) {\r\n node.name = \"__\" + node.name; \r\n }\r\n }\r\n });\r\n\r\n customTraveler.go(ast);\r\n \r\n return generate(ast);\r\n } catch (error) {\r\n console.log(js);\r\n // throw new Error(error);\r\n\r\n return js;\r\n }\r\n}\r\n", "import { rewriteJs } from \"./js\";\r\n\r\nfunction canParseUrl(url: string, origin?: URL) {\r\n try {\r\n new URL(url, origin);\r\n\r\n return true;\r\n } catch {\r\n return false;\r\n }\r\n}\r\n\r\n// something is broken with this but i didn't debug it\r\nexport function encodeUrl(url: string, origin?: URL) {\r\n if (!origin) {\r\n origin = new URL(self.__scramjet$config.codec.decode(location.href.slice((location.origin + self.__scramjet$config.prefix).length)));\r\n }\r\n\r\n if (url.startsWith(\"javascript:\")) {\r\n return \"javascript:\" + rewriteJs(url.slice(\"javascript:\".length));\r\n } else if (/^(#|mailto|about|data)/.test(url)) {\r\n return url;\r\n } else if (canParseUrl(url, origin)) {\r\n return location.origin + self.__scramjet$config.prefix + self.__scramjet$config.codec.encode(new URL(url, origin).href);\r\n }\r\n}\r\n\r\n// something is also broken with this but i didn't debug it\r\nexport function decodeUrl(url: string) {\r\n if (/^(#|about|data|mailto|javascript)/.test(url)) {\r\n return url;\r\n } else if (canParseUrl(url)) {\r\n return self.__scramjet$config.codec.decode(url.slice((location.origin + self.__scramjet$config.prefix).length))\r\n } else {\r\n return url;\r\n }\r\n}", "import { encodeUrl } from \"./url\";\r\n\r\nexport function rewriteCss(css: string, origin?: URL) {\r\n css = css.replace(/(?<=url\\(\"?'?)[^\"'][\\S]*[^\"'](?=\"?'?\\);?)/gm, (match) => encodeUrl(match, origin));\r\n //painful regex simulator\r\n css = css.replace(/@import\\s+(['\"])?([^'\"\\);]+)\\1?\\s*(?:;|$)/gm, (match, quote, url) => {\r\n return `@import ${quote || \"\"}${encodeUrl(url.trim(), origin)}${quote || \"\"};`; \r\n });\r\n return css;\r\n \r\n}\r\n", null, null, null, null, null, null, "/** 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, "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, \""\");\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, "import { Parser } from \"htmlparser2\";\r\nimport { DomHandler, Element } from \"domhandler\";\r\nimport { hasAttrib } from \"domutils\";\r\nimport render from \"dom-serializer\";\r\nimport { encodeUrl } from \"./url\";\r\nimport { rewriteCss } from \"./css\";\r\nimport { rewriteJs } from \"./js\";\r\nimport { isScramjetFile } from \"../\";\r\n\r\nexport function rewriteHtml(html: string, origin?: URL) {\r\n const handler = new DomHandler((err, dom) => dom);\r\n const parser = new Parser(handler);\r\n\r\n parser.write(html);\r\n parser.end();\r\n\r\n return render(traverseParsedHtml(handler.root, origin));\r\n}\r\n\r\n// i need to add the attributes in during rewriting\r\n\r\nfunction traverseParsedHtml(node, origin?: URL) {\r\n /* csp attributes */\r\n if (hasAttrib(node, \"nonce\")) delete node.attribs.nonce;\r\n if (hasAttrib(node, \"integrity\")) delete node.attribs.integrity;\r\n if (hasAttrib(node, \"csp\")) delete node.attribs.csp;\r\n\r\n /* url attributes */\r\n if (hasAttrib(node, \"src\") && !isScramjetFile(node.attribs.src)) node.attribs.src = encodeUrl(node.attribs.src, origin);\r\n if (hasAttrib(node, \"href\")) node.attribs.href = encodeUrl(node.attribs.href, origin);\r\n if (hasAttrib(node, \"data\")) node.attribs.data = encodeUrl(node.attribs.data, origin);\r\n if (hasAttrib(node, \"action\")) node.attribs.action = encodeUrl(node.attribs.action, origin);\r\n if (hasAttrib(node, \"formaction\")) node.attribs.formaction = encodeUrl(node.attribs.formaction, origin);\r\n \r\n /* other */\r\n if (hasAttrib(node, \"srcdoc\")) node.attribs.srcdoc = rewriteHtml(node.attribs.srcdoc, origin);\r\n if (hasAttrib(node, \"srcset\")) node.attribs.srcset = rewriteSrcset(node.attribs.srcset, origin);\r\n if (hasAttrib(node, \"imagesrcset\")) node.attribs.imagesrcset = rewriteSrcset(node.attribs.imagesrcset, origin);\r\n if (hasAttrib(node, \"style\")) node.attribs.style = rewriteCss(node.attribs.style, origin);\r\n\r\n if (node.name === \"style\" && node.children[0] !== undefined) node.children[0].data = rewriteCss(node.children[0].data, origin);\r\n if (node.name === \"script\" && /(application|text)\\/javascript|importmap|undefined/.test(node.attribs.type) && node.children[0] !== undefined) node.children[0].data = rewriteJs(node.children[0].data, origin);\r\n if (node.name === \"meta\" && hasAttrib(node, \"http-equiv\")) {\r\n if (node.attribs[\"http-equiv\"] === \"content-security-policy\") {\r\n node = {};\r\n } else if (node.attribs[\"http-equiv\"] === \"refresh\" && node.attribs.content.includes(\"url\")) {\r\n const contentArray = node.attribs.content.split(\"url=\");\r\n contentArray[1] = encodeUrl(contentArray[1].trim(), origin);\r\n node.attribs.content = contentArray.join(\"url=\");\r\n }\r\n }\r\n\r\n if (node.name === \"head\") {\r\n const scramjetScripts = [];\r\n [\"codecs\", \"config\", \"bundle\", \"client\"].forEach((script) => {\r\n scramjetScripts.push(new Element(\"script\", {\r\n src: self.__scramjet$config[script]\r\n }));\r\n });\r\n\r\n node.children.unshift(...scramjetScripts);\r\n }\r\n\r\n if (node.childNodes) {\r\n for (const childNode in node.childNodes) {\r\n node.childNodes[childNode] = traverseParsedHtml(node.childNodes[childNode], origin);\r\n }\r\n }\r\n\r\n return node;\r\n}\r\n\r\n// stole from osana lmao\r\nexport function rewriteSrcset(srcset: string, origin?: URL) {\r\n const urls = srcset.split(/ [0-9]+x,? ?/g);\r\n if (!urls) return \"\";\r\n const sufixes = srcset.match(/ [0-9]+x,? ?/g);\r\n if (!sufixes) return \"\";\r\n const rewrittenUrls = urls.map((url, i) => {\r\n if (url && sufixes[i]) {\r\n return encodeUrl(url, origin) + sufixes[i];\r\n }\r\n });\r\n\r\n return rewrittenUrls.join(\"\");\r\n}\r\n", "import { encodeUrl } from \"./url\";\r\nimport { BareHeaders } from \"@mercuryworkshop/bare-mux\";\r\n\r\nconst cspHeaders = [\r\n \"cross-origin-embedder-policy\",\r\n \"cross-origin-opener-policy\",\r\n \"cross-origin-resource-policy\",\r\n \"content-security-policy\",\r\n \"content-security-policy-report-only\",\r\n \"expect-ct\",\r\n \"feature-policy\",\r\n \"origin-isolation\",\r\n \"strict-transport-security\",\r\n \"upgrade-insecure-requests\",\r\n \"x-content-type-options\",\r\n \"x-download-options\",\r\n \"x-frame-options\",\r\n \"x-permitted-cross-domain-policies\",\r\n \"x-powered-by\",\r\n \"x-xss-protection\",\r\n];\r\n\r\nconst urlHeaders = [\r\n \"location\",\r\n \"content-location\",\r\n \"referer\"\r\n];\r\n\r\nexport function rewriteHeaders(rawHeaders: BareHeaders, origin?: URL) {\r\n const headers = {};\r\n\r\n for (const key in rawHeaders) {\r\n headers[key.toLowerCase()] = rawHeaders[key];\r\n }\r\n\r\n cspHeaders.forEach((header) => {\r\n delete headers[header];\r\n });\r\n\r\n urlHeaders.forEach((header) => {\r\n if (headers[header])\r\n headers[header] = encodeUrl(headers[header] as string, origin);\r\n });\r\n\r\n if (headers[\"link\"]) {\r\n headers[\"link\"] = headers[\"link\"].replace(/<(.*?)>/gi, (match) => encodeUrl(match, origin));\r\n }\r\n\r\n return headers;\r\n}", "import { encodeUrl, decodeUrl } from \"./rewriters/url\";\r\nimport { rewriteCss } from \"./rewriters/css\";\r\nimport { rewriteHtml, rewriteSrcset } from \"./rewriters/html\";\r\nimport { rewriteJs } from \"./rewriters/js\";\r\nimport { rewriteHeaders } from \"./rewriters/headers\";\r\n\r\nexport function isScramjetFile(src: string) {\r\n let bool = false;\r\n [\"codecs\", \"client\", \"bundle\", \"worker\", \"config\"].forEach((file) => {\r\n if (src === self.__scramjet$config[file]) bool = true;\r\n });\r\n\r\n return bool;\r\n}\r\n\r\nconst bundle = {\r\n rewriters: {\r\n url: {\r\n encodeUrl, decodeUrl\r\n },\r\n rewriteCss,\r\n rewriteHtml,\r\n rewriteSrcset,\r\n rewriteJs,\r\n rewriteHeaders\r\n },\r\n isScramjetFile\r\n}\r\n\r\ndeclare global {\r\n interface Window {\r\n __scramjet$bundle: typeof bundle;\r\n }\r\n}\r\n\r\nself.__scramjet$bundle = bundle;"],
|
|
5
|
-
"mappings": ";;AAAA,MAAM,gBAAgB;AAAA,IAClB,CAAC,CAAC,GAAG;AAAA,IACL,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,CAAC,GAAG;AAAA,IACL,CAAC,CAAC,GAAG;AAAA,IACL,CAAC,CAAC,GAAG;AAAA,IACL,CAAC,CAAC,GAAG;AAAA,IACL,CAAC,CAAC,GAAG;AAAA,IACL,CAAC,CAAC,GAAG;AAAA,IACL,CAAC,CAAC,GAAG;AAAA,IACL,CAAC,CAAC,GAAG;AAAA,IACL,CAAC,CAAC,GAAG;AAAA,IACL,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,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YAAY,GAAG,WAAW,GAAG,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,IAAI,GAAG,YAAY,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,GAAG,UAAU,IAAI,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,UAAU,GAAG,YAAY,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,GAAG,IAAI,GAAG,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,GAAG,WAAW,GAAG,IAAI,GAAG,UAAU,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,WAAW,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,YAAY,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,YAAY,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,YAAY,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,KAAK,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,IAAI,GAAG,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,YAAY,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,KAAK,GAAG,GAAG,KAAK,IAAI,GAAG,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,YAAY,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,UAAU,GAAG,YAAY,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,UAAU,GAAG,YAAY,GAAG,GAAG,GAAG,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,UAAU,GAAG,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,KAAK,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,GAAG,QAAQ,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,YAAY,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,WAAW,IAAI,GAAG,KAAK,GAAG,YAAY,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,UAAU,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,IAAI,GAAG,GAAG,GAAG,GAAG,YAAY,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,UAAU,IAAI,GAAG,GAAG,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,GAAG,GAAG,UAAU,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,YAAY,GAAG,KAAK,GAAG,YAAY,GAAG,IAAI,IAAI,GAAG,KAAK,GAAG,YAAY,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,UAAU,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,IAAI,GAAG,KAAK,GAAG,YAAY,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,YAAY,GAAG,GAAG,GAAG,YAAY,IAAI,GAAG,QAAQ,GAAG,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,YAAY,MAAM,GAAG,YAAY,GAAG,MAAM,GAAG,OAAO,IAAI,GAAG,IAAI,KAAK,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,IAAI,GAAG,KAAK,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GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,KAAK,GAAG,GAAG,KAAK,IAAI,GAAG,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,MAAM,GAAG,GAAG,GAAG,YAAY,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,YAAY,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,YAAY,GAAG,IAAI,GAAG,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,YAAY,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,YAAY,GAAG,GAAG,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,KAAK,IAAI,GAAG,YAAY,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,GAAG,QAAQ,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,YAAY,GAAG,SAAS,GAAG,KAAK,GAAG,IAAI,GAAG,WAAW,IAAI,GAAG,KAAK,GAAG,KAAK,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,YAAY,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,YAAY,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,IAAI,GAAG,GAAG,GAAG,UAAU,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,YAAY,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,GAAG,GAAG,WAAW,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,UAAU,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,OAAO,IAAI,GAAG,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,KAAK,KAAK,GAAG,GAAG,GAAG,YAAY,GAAG,OAAO,KAAK,GAAG,GAAG,GAAG,KAAK,KAAK,GAAG,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KAAK,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,YAAY,GAAG,OAAO,KAAK,GAAG,KAAK,GAAG,GAAG,IAAI,IAAI,GAAG,YAAY,GAAG,WAAW,GAAG,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,WAAW,IAAI,GAAG,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,GAAG,WAAW,GAAG,KAAK,IAAI,GAAG,WAAW,GAAG,YAAY,GAAG,OAAQ,KAAK,GAAG,KAAK,IAAI,GAAG,OAAO,KAAK,GAAG,WAAW,GAAG,YAAY,GAAG,GAAG,IAAI,GAAG,WAAW,GAAG,YAAY,GAAG,GAAG,GAAG,IAAI,GAAG,YAAY,GAAG,KAAK,GAAG,GAAG,IAAI,IAAI,GAAG,KAAK,GAAG,GAAG,IAAI,IAAI,GAAG,YAAY,GAAG,GAAG,IAAI,GAAG,YAAY,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,IAAI,GAAG,YAAY,GAAG,GAAG,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,YAAY,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,YAAY,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,GAAG,YAAY,GAAG,GAAG,GAAG,IAAI,GAAG,UAAU,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,GAAG,YAAY,GAAG,KAAK,GAAG,YAAY,GAAG,YAAY,GAAG,GAAG,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,GAAG,YAAY,GAAG,GAAG,IAAI,OAAO,GAAG,KAAK,GAAG,GAAG,MAAM,GAAG,IAAI,IAAI,GAAG,KAAK,MAAM,GAAG,KAAK,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,GAAG,KAAK,GAAG,GAAG,IAAI,MAAM,GAAG,KAAK,GAAG,GAAG,OAAO,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,WAAW,WAAW,YAAY,SAAS,YAAY,YAAY,WAAW,YAAY,WAAW,YAAY,YAAY,YAAY,YAAY,WAAW,QAAQ,SAAS,YAAY,YAAY,OAAO,UAAU,YAAY,YAAY,SAAS,YAAY,SAAS,KAAK,UAAU,YAAY,KAAK,QAAQ,QAAQ,KAAK,YAAY,YAAY,YAAY,UAAU,MAAM,UAAU,YAAY,YAAY,YAAY,UAAU,OAAO,IAAI,SAAS,UAAU,UAAU,WAAY,YAAY,YAAY,YAAY,MAAM,QAAQ,OAAO,YAAY,UAAU,QAAQ,YAAY,WAAW,OAAO,WAAW,WAAW,YAAY,MAAM,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAU,YAAY,YAAY,YAAY,YAAY,WAAW,WAAW,YAAY,YAAY,YAAY,OAAO,YAAY,KAAK,YAAY,YAAY,YAAY,YAAY,YAAY,MAAM,YAAY,YAAY,YAAY,SAAS,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAW,YAAY,WAAW,YAAY,YAAY,YAAY,SAAS,YAAY,YAAY,YAAY,YAAY,SAAS,YAAY,IAAI,IAAI,YAAY,YAAY,MAAM,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,IAAI,YAAY,OAAO,YAAY,QAAQ,WAAW,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,MAAM,WAAW,YAAY,YAAY,WAAW,WAAW,YAAY,WAAW,YAAY,WAAW,QAAQ,WAAW,YAAY,YAAY,OAAO,OAAO,YAAY,WAAW,OAAO,YAAY,YAAY,SAAS,YAAY,OAAO,OAAO,UAAU,YAAY,YAAY,UAAU,OAAO,YAAY,YAAY,YAAY,OAAO,YAAY,YAAY,YAAY,YAAY,YAAY,OAAO,YAAY,YAAY,SAAS,WAAW,QAAQ,YAAY,OAAO,QAAQ,YAAY,UAAU,UAAU,OAAO,YAAY,YAAY,IAAI,YAAY,YAAY,MAAM,OAAO,QAAQ,KAAK,CAAC;AAExxhB,WAAS,YAAY,QAAQ;AACzB,WAAO;AACP,WAAQ,OAAO,cAAc,OAAO,OAAO,WAAW,EAAE,OAAO,KAAK;AAAA,EACxE;AACA,WAAS,0BAA0B,QAAQ,IAAI;AAC3C,SAAK,KAAK,WAAY;AAClB,aAAO;AACX,UAAM,KAAK,OAAO,OAAO,WAAW,OAAO,QAAQ,CAAC;AACpD,SAAK,KAAK,WAAY;AAClB,aAAO;AACX,SAAK,OAAO,cAAc,UAAU,KAAK,SAAU,OAAO,KAAK;AAC/D,SAAM,eAAe,OAAO,KAAK,CAAC,MAAM,KAAM,KAAK,OAAO,GAAG;AACzD,aAAO,QAAQ,IAAI,cAAc,EAAE,CAAC;AAAA,IACxC;AACA,WAAO;AACP,WAAO;AACP,WAAO;AAAA,EACX;AACA,WAAS,gBAAgB,QAAQ,OAAO;AACpC,WAAO,cAAc,OAAO,OAAO,WAAW,EAAE,OAAO,KAAK;AAC5D,WAAO,SAAS;AAChB,SAAK,QAAQ,OAAO,GAAG;AACnB,aAAO,SAAS;AAChB,aAAO;AAAA,IACX;AAAA,EACJ;AACA,WAAS,YAAY,QAAQ;AACzB,WAAO,SAAS;AAChB,WAAO,cAAc,OAAO,OAAO,WAAW,EAAE,OAAO,KAAK;AAC5D,WAAO,SAAS;AAChB,WAAO;AAAA,EACX;AACA,WAAS,6BAA6B,IAAI;AACtC,WAAQ,OAAO,OACX,OAAO,SACP,OAAO,OACP,OAAO,QACN,MAAM,QAAQ,MAAM,QACrB,OAAO,QACP,OAAO,QACP,OAAO,SACP,OAAO,QACP,OAAO;AAAA,EACf;AACA,WAAS,cAAc,WAAW;AAC9B,WAAO,aAAa,QACd,OAAO,aAAa,SAAS,IAC7B,OAAO,aAAa,cAAc,EAAE,IAAI,OAAO,aAAa,YAAY,IAAK;AAAA,EACvF;AACA,WAAS,MAAM,MAAM;AACjB,WAAO,OAAO,KAAK,OAAO,KAAM,OAAO,KAAK,KAAM;AAAA,EACtD;AACA,WAAS,iBAAiB,GAAG;AACzB,YAAQ,GAAG;AAAA,MACP,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACD,eAAO;AAAA,MACX;AACI,aAAK,IAAI,YAAY;AACjB,iBAAO;AACX,aAAK,IAAI,UAAU;AACf,iBAAO;AACX,eAAO;AAAA,IACf;AAAA,EACJ;AAEA,MAAM,YAAY;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,IAAI;AAAA,IACJ;AAAA,IACA;AAAA,IACA,IAAI;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,IAAI;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA,IAAI,KAAK,MAAM,KAAK;AAAA,IACpB,IAAI,KAAK,MAAM,KAAK;AAAA,IACpB,IAAI,KAAK,KAAK;AAAA,IACd,IAAI,KAAK,KAAK;AAAA,IACd,IAAI,KAAK,KAAK;AAAA,IACd,IAAI,KAAK,KAAK;AAAA,IACd,IAAI,KAAK,KAAK;AAAA,IACd,IAAI,KAAK,KAAK;AAAA,IACd,IAAI,KAAK,MAAM;AAAA,IACf,IAAI,KAAK,MAAM;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,IAAI,IAAI;AAAA,IACR;AAAA,IACA,IAAI,IAAI,IAAI;AAAA,IACZ,IAAI,IAAI,IAAI;AAAA,IACZ,IAAI,IAAI,IAAI;AAAA,IACZ,IAAI,IAAI,IAAI;AAAA,IACZ,IAAI,IAAI,IAAI;AAAA,IACZ,IAAI,IAAI,IAAI;AAAA,IACZ,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR,IAAI,IAAI;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACA,MAAM,YAAY;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACA,MAAM,WAAW;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACA,WAAS,kBAAkB,MAAM;AAC7B,WAAO,QAAQ,MACT,UAAU,IAAI,IACb,eAAe,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,UAAU,GAAE,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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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,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,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,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,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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",
|
|
6
|
-
"names": ["e", "next", "ch", "scope", "body", "tokenPos", "linePos", "colPos", "tokenValue", "tokenRaw", "token", "line", "i", "quasi", "length", "ForInStatement", "FunctionDeclaration", "RestElement", "BinaryExpression", "ArrayExpression", "Block", "MethodDefinition", "ignore", "Function", "prototype", "Found", "constructor", "node", "state", "defaultTraveler", "go", "type", "find", "predicate", "finder", "Object", "create", "error", "makeChild", "properties", "traveler", "super", "key", "Program", "body", "length", "i", "BlockStatement", "StaticBlock", "EmptyStatement", "ExpressionStatement", "expression", "IfStatement", "test", "consequent", "alternate", "LabeledStatement", "label", "BreakStatement", "ContinueStatement", "WithStatement", "object", "SwitchStatement", "discriminant", "cases", "SwitchCase", "statements", "ReturnStatement", "argument", "ThrowStatement", "TryStatement", "block", "handler", "finalizer", "CatchClause", "param", "WhileStatement", "DoWhileStatement", "ForStatement", "init", "update", "left", "right", "DebuggerStatement", "id", "params", "VariableDeclaration", "declarations", "VariableDeclarator", "ArrowFunctionExpression", "ThisExpression", "elements", "element", "ObjectExpression", "Property", "value", "FunctionExpression", "SequenceExpression", "expressions", "UnaryExpression", "UpdateExpression", "AssignmentExpression", "LogicalExpression", "ConditionalExpression", "NewExpression", "CallExpression", "callee", "args", "MemberExpression", "property", "Identifier", "PrivateIdentifier", "Literal", "ForOfStatement", "ClassDeclaration", "superClass", "ClassBody", "ImportDeclaration", "specifiers", "source", "ImportNamespaceSpecifier", "local", "ImportDefaultSpecifier", "ImportSpecifier", "imported", "ExportDefaultDeclaration", "declaration", "ExportNamedDeclaration", "ExportSpecifier", "exported", "ExportAllDeclaration", "PropertyDefinition", "ClassExpression", "Super", "SpreadElement", "YieldExpression", "TaggedTemplateExpression", "tag", "quasi", "TemplateLiteral", "quasis", "TemplateElement", "ObjectPattern", "ArrayPattern", "AssignmentPattern", "MetaProperty", "meta", "AwaitExpression", "attachCommentsToNode", "traveler", "state", "parent", "children", "findHeadingComments", "index", "comments", "comment", "boundComments", "trailingComments", "length", "end", "push", "start", "type", "i", "child", "loc", "line", "Block", "node", "body", "defaultTraveler", "makeChild", "Program", "BlockStatement", "ClassBody", "ObjectExpression", "properties", "ArrayExpression", "elements", "SwitchStatement", "cases", "SwitchCase", "consequent", "makeTraveler", "properties", "defaultTraveler", "makeChild", "decodeMap", "fromCodePoint", "_a", "CharCodes", "BinTrieFlags", "EntityDecoderState", "DecodingMode", "_a", "fromCodePoint", "CharCodes", "State", "QuoteType", "_a", "fromCodePoint", "ElementType", "Text", "Comment", "_a", "CDATA", "isTag", "Text", "Comment", "isTag", "CDATA", "Text", "Comment", "CDATA", "escape", "EntityLevel", "EncodingMode", "_a", "DocumentPosition"]
|
|
7
|
-
}
|
|
1
|
+
{"version":3,"file":"scramjet.bundle.js","sources":["webpack://@mercuryworkshop/scramjet/./node_modules/.pnpm/set-cookie-parser@2.7.1/node_modules/set-cookie-parser/lib/set-cookie.js","webpack://@mercuryworkshop/scramjet//home/runner/work/scramjet/scramjet/src/clientsync/^\\.\\/.*$/","webpack://@mercuryworkshop/scramjet/./srcsync","webpack://@mercuryworkshop/scramjet/./src/client/client.ts","webpack://@mercuryworkshop/scramjet/./src/client/dom/attr.ts","webpack://@mercuryworkshop/scramjet/./src/client/dom/beacon.ts","webpack://@mercuryworkshop/scramjet/./src/client/dom/cookie.ts","webpack://@mercuryworkshop/scramjet/./src/client/dom/css.ts","webpack://@mercuryworkshop/scramjet/./src/client/dom/document.ts","webpack://@mercuryworkshop/scramjet/./src/client/dom/element.ts","webpack://@mercuryworkshop/scramjet/./src/client/dom/fontface.ts","webpack://@mercuryworkshop/scramjet/./src/client/dom/fragments.ts","webpack://@mercuryworkshop/scramjet/./src/client/dom/history.ts","webpack://@mercuryworkshop/scramjet/./src/client/dom/open.ts","webpack://@mercuryworkshop/scramjet/./src/client/dom/origin.ts","webpack://@mercuryworkshop/scramjet/./src/client/dom/performance.ts","webpack://@mercuryworkshop/scramjet/./src/client/dom/protocol.ts","webpack://@mercuryworkshop/scramjet/./src/client/dom/serviceworker.ts","webpack://@mercuryworkshop/scramjet/./src/client/dom/storage.ts","webpack://@mercuryworkshop/scramjet/./src/client/entry.ts","webpack://@mercuryworkshop/scramjet/./src/client/events.ts","webpack://@mercuryworkshop/scramjet/./src/client/helpers.ts","webpack://@mercuryworkshop/scramjet/./src/client/location.ts","webpack://@mercuryworkshop/scramjet/./src/client/shared/antiantidebugger.ts","webpack://@mercuryworkshop/scramjet/./src/client/shared/blob.ts","webpack://@mercuryworkshop/scramjet/./src/client/shared/caches.ts","webpack://@mercuryworkshop/scramjet/./src/client/shared/chrome.ts","webpack://@mercuryworkshop/scramjet/./src/client/shared/err.ts","webpack://@mercuryworkshop/scramjet/./src/client/shared/error.ts","webpack://@mercuryworkshop/scramjet/./src/client/shared/eval.ts","webpack://@mercuryworkshop/scramjet/./src/client/shared/event.ts","webpack://@mercuryworkshop/scramjet/./src/client/shared/function.ts","webpack://@mercuryworkshop/scramjet/./src/client/shared/import.ts","webpack://@mercuryworkshop/scramjet/./src/client/shared/indexeddb.ts","webpack://@mercuryworkshop/scramjet/./src/client/shared/opfs.ts","webpack://@mercuryworkshop/scramjet/./src/client/shared/postmessage.ts","webpack://@mercuryworkshop/scramjet/./src/client/shared/realm.ts","webpack://@mercuryworkshop/scramjet/./src/client/shared/requests/eventsource.ts","webpack://@mercuryworkshop/scramjet/./src/client/shared/requests/fetch.ts","webpack://@mercuryworkshop/scramjet/./src/client/shared/requests/websocket.ts","webpack://@mercuryworkshop/scramjet/./src/client/shared/requests/xmlhttprequest.ts","webpack://@mercuryworkshop/scramjet/./src/client/shared/settimeout.ts","webpack://@mercuryworkshop/scramjet/./src/client/shared/sourcemaps.ts","webpack://@mercuryworkshop/scramjet/./src/client/shared/worker.ts","webpack://@mercuryworkshop/scramjet/./src/client/shared/wrap.ts","webpack://@mercuryworkshop/scramjet/./src/client/singletonbox.ts","webpack://@mercuryworkshop/scramjet/./src/client/swruntime.ts","webpack://@mercuryworkshop/scramjet/./src/client/worker/importScripts.ts","webpack://@mercuryworkshop/scramjet/./src/controller/controller.ts","webpack://@mercuryworkshop/scramjet/./src/controller/frame.ts","webpack://@mercuryworkshop/scramjet/./src/controller/index.ts","webpack://@mercuryworkshop/scramjet/./src/entry.ts","webpack://@mercuryworkshop/scramjet/./src/log.ts","webpack://@mercuryworkshop/scramjet/./src/shared/cookie.ts","webpack://@mercuryworkshop/scramjet/./src/shared/headers.ts","webpack://@mercuryworkshop/scramjet/./src/shared/htmlRules.ts","webpack://@mercuryworkshop/scramjet/./src/shared/index.ts","webpack://@mercuryworkshop/scramjet/./src/shared/rewriters/css.ts","webpack://@mercuryworkshop/scramjet/./src/shared/rewriters/headers.ts","webpack://@mercuryworkshop/scramjet/./src/shared/rewriters/html.ts","webpack://@mercuryworkshop/scramjet/./src/shared/rewriters/js.ts","webpack://@mercuryworkshop/scramjet/./src/shared/rewriters/url.ts","webpack://@mercuryworkshop/scramjet/./src/shared/rewriters/wasm.ts","webpack://@mercuryworkshop/scramjet/./src/shared/rewriters/worker.ts","webpack://@mercuryworkshop/scramjet/./src/shared/security/forceReferrer.ts","webpack://@mercuryworkshop/scramjet/./src/shared/security/siteTests.ts","webpack://@mercuryworkshop/scramjet/./src/symbols.ts","webpack://@mercuryworkshop/scramjet/./src/worker/error.ts","webpack://@mercuryworkshop/scramjet/./src/worker/fakesw.ts","webpack://@mercuryworkshop/scramjet/./src/worker/fetch.ts","webpack://@mercuryworkshop/scramjet/./src/worker/index.ts","webpack://@mercuryworkshop/scramjet/./node_modules/.pnpm/@mercuryworkshop+bare-mux@2.1.9/node_modules/@mercuryworkshop/bare-mux/dist/index.mjs","webpack://@mercuryworkshop/scramjet/./node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/esm/foreignNames.js","webpack://@mercuryworkshop/scramjet/./node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/esm/index.js","webpack://@mercuryworkshop/scramjet/./node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/esm/index.js","webpack://@mercuryworkshop/scramjet/./node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/esm/index.js","webpack://@mercuryworkshop/scramjet/./node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/esm/node.js","webpack://@mercuryworkshop/scramjet/./node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/helpers.js","webpack://@mercuryworkshop/scramjet/./node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/decode-codepoint.js","webpack://@mercuryworkshop/scramjet/./node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/decode.js","webpack://@mercuryworkshop/scramjet/./node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/escape.js","webpack://@mercuryworkshop/scramjet/./node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/generated/decode-data-html.js","webpack://@mercuryworkshop/scramjet/./node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/generated/decode-data-xml.js","webpack://@mercuryworkshop/scramjet/./node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/index.js","webpack://@mercuryworkshop/scramjet/./node_modules/.pnpm/htmlparser2@10.0.0/node_modules/htmlparser2/dist/esm/Parser.js","webpack://@mercuryworkshop/scramjet/./node_modules/.pnpm/htmlparser2@10.0.0/node_modules/htmlparser2/dist/esm/Tokenizer.js","webpack://@mercuryworkshop/scramjet/./node_modules/.pnpm/idb@8.0.3/node_modules/idb/build/index.js","webpack://@mercuryworkshop/scramjet/./rewriter/wasm/out/snippets/wasm-4b0f351a8e6eeb46/inline0.js","webpack://@mercuryworkshop/scramjet/./rewriter/wasm/out/wasm.js","webpack://@mercuryworkshop/scramjet/webpack/runtime/compat_get_default_export","webpack://@mercuryworkshop/scramjet/webpack/runtime/define_property_getters","webpack://@mercuryworkshop/scramjet/webpack/runtime/has_own_property","webpack://@mercuryworkshop/scramjet/webpack/runtime/make_namespace_object"],"sourcesContent":["\"use strict\";\n\nvar defaultParseOptions = {\n decodeValues: true,\n map: false,\n silent: false,\n};\n\nfunction isNonEmptyString(str) {\n return typeof str === \"string\" && !!str.trim();\n}\n\nfunction parseString(setCookieValue, options) {\n var parts = setCookieValue.split(\";\").filter(isNonEmptyString);\n\n var nameValuePairStr = parts.shift();\n var parsed = parseNameValuePair(nameValuePairStr);\n var name = parsed.name;\n var value = parsed.value;\n\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n try {\n value = options.decodeValues ? decodeURIComponent(value) : value; // decode cookie value\n } catch (e) {\n console.error(\n \"set-cookie-parser encountered an error while decoding a cookie with value '\" +\n value +\n \"'. Set options.decodeValues to false to disable this feature.\",\n e\n );\n }\n\n var cookie = {\n name: name,\n value: value,\n };\n\n parts.forEach(function (part) {\n var sides = part.split(\"=\");\n var key = sides.shift().trimLeft().toLowerCase();\n var value = sides.join(\"=\");\n if (key === \"expires\") {\n cookie.expires = new Date(value);\n } else if (key === \"max-age\") {\n cookie.maxAge = parseInt(value, 10);\n } else if (key === \"secure\") {\n cookie.secure = true;\n } else if (key === \"httponly\") {\n cookie.httpOnly = true;\n } else if (key === \"samesite\") {\n cookie.sameSite = value;\n } else if (key === \"partitioned\") {\n cookie.partitioned = true;\n } else {\n cookie[key] = value;\n }\n });\n\n return cookie;\n}\n\nfunction parseNameValuePair(nameValuePairStr) {\n // Parses name-value-pair according to rfc6265bis draft\n\n var name = \"\";\n var value = \"\";\n var nameValueArr = nameValuePairStr.split(\"=\");\n if (nameValueArr.length > 1) {\n name = nameValueArr.shift();\n value = nameValueArr.join(\"=\"); // everything after the first =, joined by a \"=\" if there was more than one part\n } else {\n value = nameValuePairStr;\n }\n\n return { name: name, value: value };\n}\n\nfunction parse(input, options) {\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n if (!input) {\n if (!options.map) {\n return [];\n } else {\n return {};\n }\n }\n\n if (input.headers) {\n if (typeof input.headers.getSetCookie === \"function\") {\n // for fetch responses - they combine headers of the same type in the headers array,\n // but getSetCookie returns an uncombined array\n input = input.headers.getSetCookie();\n } else if (input.headers[\"set-cookie\"]) {\n // fast-path for node.js (which automatically normalizes header names to lower-case\n input = input.headers[\"set-cookie\"];\n } else {\n // slow-path for other environments - see #25\n var sch =\n input.headers[\n Object.keys(input.headers).find(function (key) {\n return key.toLowerCase() === \"set-cookie\";\n })\n ];\n // warn if called on a request-like object with a cookie header rather than a set-cookie header - see #34, 36\n if (!sch && input.headers.cookie && !options.silent) {\n console.warn(\n \"Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning.\"\n );\n }\n input = sch;\n }\n }\n if (!Array.isArray(input)) {\n input = [input];\n }\n\n if (!options.map) {\n return input.filter(isNonEmptyString).map(function (str) {\n return parseString(str, options);\n });\n } else {\n var cookies = {};\n return input.filter(isNonEmptyString).reduce(function (cookies, str) {\n var cookie = parseString(str, options);\n cookies[cookie.name] = cookie;\n return cookies;\n }, cookies);\n }\n}\n\n/*\n Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas\n that are within a single set-cookie field-value, such as in the Expires portion.\n\n This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2\n Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128\n React Native's fetch does this for *every* header, including set-cookie.\n\n Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25\n Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation\n*/\nfunction splitCookiesString(cookiesString) {\n if (Array.isArray(cookiesString)) {\n return cookiesString;\n }\n if (typeof cookiesString !== \"string\") {\n return [];\n }\n\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos;\n pos += 1;\n\n skipWhitespace();\n nextStart = pos;\n\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n // we found cookies separator\n cookiesSeparatorFound = true;\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n\n return cookiesStrings;\n}\n\nmodule.exports = parse;\nmodule.exports.parse = parse;\nmodule.exports.parseString = parseString;\nmodule.exports.splitCookiesString = splitCookiesString;\n","var map = {\n \"./\": \"3255\",\n \"./client\": \"336\",\n \"./client.ts\": \"336\",\n \"./dom/attr\": \"1077\",\n \"./dom/attr.ts\": \"1077\",\n \"./dom/beacon\": \"7430\",\n \"./dom/beacon.ts\": \"7430\",\n \"./dom/cookie\": \"9116\",\n \"./dom/cookie.ts\": \"9116\",\n \"./dom/css\": \"6447\",\n \"./dom/css.ts\": \"6447\",\n \"./dom/document\": \"5351\",\n \"./dom/document.ts\": \"5351\",\n \"./dom/element\": \"7828\",\n \"./dom/element.ts\": \"7828\",\n \"./dom/fontface\": \"5426\",\n \"./dom/fontface.ts\": \"5426\",\n \"./dom/fragments\": \"5465\",\n \"./dom/fragments.ts\": \"5465\",\n \"./dom/history\": \"9804\",\n \"./dom/history.ts\": \"9804\",\n \"./dom/open\": \"7758\",\n \"./dom/open.ts\": \"7758\",\n \"./dom/origin\": \"6012\",\n \"./dom/origin.ts\": \"6012\",\n \"./dom/performance\": \"6286\",\n \"./dom/performance.ts\": \"6286\",\n \"./dom/protocol\": \"1974\",\n \"./dom/protocol.ts\": \"1974\",\n \"./dom/serviceworker\": \"9201\",\n \"./dom/serviceworker.ts\": \"9201\",\n \"./dom/storage\": \"5289\",\n \"./dom/storage.ts\": \"5289\",\n \"./entry\": \"1323\",\n \"./entry.ts\": \"1323\",\n \"./events\": \"1862\",\n \"./events.ts\": \"1862\",\n \"./helpers\": \"94\",\n \"./helpers.ts\": \"94\",\n \"./index\": \"3255\",\n \"./index.ts\": \"3255\",\n \"./location\": \"3696\",\n \"./location.ts\": \"3696\",\n \"./shared/antiantidebugger\": \"8382\",\n \"./shared/antiantidebugger.ts\": \"8382\",\n \"./shared/blob\": \"4634\",\n \"./shared/blob.ts\": \"4634\",\n \"./shared/caches\": \"5026\",\n \"./shared/caches.ts\": \"5026\",\n \"./shared/chrome\": \"6627\",\n \"./shared/chrome.ts\": \"6627\",\n \"./shared/err\": \"582\",\n \"./shared/err.ts\": \"582\",\n \"./shared/error\": \"6143\",\n \"./shared/error.ts\": \"6143\",\n \"./shared/eval\": \"591\",\n \"./shared/eval.ts\": \"591\",\n \"./shared/event\": \"3481\",\n \"./shared/event.ts\": \"3481\",\n \"./shared/function\": \"249\",\n \"./shared/function.ts\": \"249\",\n \"./shared/import\": \"2468\",\n \"./shared/import.ts\": \"2468\",\n \"./shared/indexeddb\": \"4338\",\n \"./shared/indexeddb.ts\": \"4338\",\n \"./shared/opfs\": \"6593\",\n \"./shared/opfs.ts\": \"6593\",\n \"./shared/postmessage\": \"1320\",\n \"./shared/postmessage.ts\": \"1320\",\n \"./shared/realm\": \"1914\",\n \"./shared/realm.ts\": \"1914\",\n \"./shared/requests/eventsource\": \"9701\",\n \"./shared/requests/eventsource.ts\": \"9701\",\n \"./shared/requests/fetch\": \"6972\",\n \"./shared/requests/fetch.ts\": \"6972\",\n \"./shared/requests/websocket\": \"9931\",\n \"./shared/requests/websocket.ts\": \"9931\",\n \"./shared/requests/xmlhttprequest\": \"248\",\n \"./shared/requests/xmlhttprequest.ts\": \"248\",\n \"./shared/settimeout\": \"7418\",\n \"./shared/settimeout.ts\": \"7418\",\n \"./shared/sourcemaps\": \"7791\",\n \"./shared/sourcemaps.ts\": \"7791\",\n \"./shared/worker\": \"9399\",\n \"./shared/worker.ts\": \"9399\",\n \"./shared/wrap\": \"581\",\n \"./shared/wrap.ts\": \"581\",\n \"./singletonbox\": \"1229\",\n \"./singletonbox.ts\": \"1229\",\n \"./swruntime\": \"8409\",\n \"./swruntime.ts\": \"8409\",\n \"./worker/importScripts\": \"9353\",\n \"./worker/importScripts.ts\": \"9353\"\n};\n\n\nfunction webpackContext(req) {\n var id = webpackContextResolve(req);\n return __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n if(!__webpack_require__.o(map, req)) {\n var e = new Error(\"Cannot find module '\" + req + \"'\");\n e.code = 'MODULE_NOT_FOUND';\n throw e;\n }\n return map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n return Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 7302;\n","function webpackEmptyContext(req) {\n var e = new Error(\"Cannot find module '\" + req + \"'\");\n e.code = 'MODULE_NOT_FOUND';\n throw e;\n}\nwebpackEmptyContext.keys = () => ([]);\nwebpackEmptyContext.resolve = webpackEmptyContext;\nwebpackEmptyContext.id = 409;\nmodule.exports = webpackEmptyContext;\n","import { ScramjetFrame } from \"@/controller/frame\";\nimport { SCRAMJETCLIENT, SCRAMJETFRAME } from \"@/symbols\";\nimport { getOwnPropertyDescriptorHandler } from \"@client/helpers\";\nimport { createLocationProxy } from \"@client/location\";\nimport { createWrapFn } from \"@client/shared/wrap\";\nimport { NavigateEvent } from \"@client/events\";\nimport { rewriteUrl, unrewriteUrl, type URLMeta } from \"@rewriters/url\";\nimport { config, flagEnabled } from \"@/shared\";\nimport { CookieStore } from \"@/shared/cookie\";\nimport { iswindow } from \"./entry\";\nimport { SingletonBox } from \"./singletonbox\";\nimport BareClient from \"@mercuryworkshop/bare-mux\";\n\ntype NativeStore = {\n\tstore: Record<string, any>;\n\tcall: (target: string, that: any, ...args) => any;\n\tconstruct: (target: string, ...args) => any;\n};\ntype DescriptorStore = {\n\tstore: Record<string, PropertyDescriptor>;\n\tget: (target: string, that: any) => any;\n\tset: (target: string, that: any, value: any) => void;\n};\n//eslint-disable-next-line\nexport type AnyFunction = Function;\n\nexport type ScramjetModule = {\n\tenabled: (client: ScramjetClient) => boolean | undefined;\n\tdisabled: (\n\t\tclient: ScramjetClient,\n\t\tself: typeof globalThis\n\t) => void | undefined;\n\torder: number | undefined;\n\tdefault: (client: ScramjetClient, self: typeof globalThis) => void;\n};\n\nexport type ProxyCtx = {\n\tfn: AnyFunction;\n\tthis: any;\n\targs: any[];\n\tnewTarget: AnyFunction;\n\treturn: (r: any) => void;\n\tcall: () => any;\n};\nexport type Proxy = {\n\tconstruct?(ctx: ProxyCtx): any;\n\tapply?(ctx: ProxyCtx): any;\n};\n\nexport type TrapCtx<T> = {\n\tthis: any;\n\tget: () => T;\n\tset: (v: T) => void;\n};\nexport type Trap<T> = {\n\twritable?: boolean;\n\tvalue?: any;\n\tenumerable?: boolean;\n\tconfigurable?: boolean;\n\tget?: (ctx: TrapCtx<T>) => T;\n\tset?: (ctx: TrapCtx<T>, v: T) => void;\n};\n\nexport class ScramjetClient {\n\tlocationProxy: any;\n\tserviceWorker: ServiceWorkerContainer;\n\t// epoxy: EpoxyClient;\n\tbare: BareClient;\n\n\tnatives: NativeStore;\n\tdescriptors: DescriptorStore;\n\twrapfn: (i: any, ...args: any) => any;\n\n\tcookieStore = new CookieStore();\n\n\teventcallbacks: Map<\n\t\tany,\n\t\t[\n\t\t\t{\n\t\t\t\tevent: string;\n\t\t\t\toriginalCallback: AnyFunction;\n\t\t\t\tproxiedCallback: AnyFunction;\n\t\t\t},\n\t\t]\n\t> = new Map();\n\n\tmeta: URLMeta;\n\n\tbox: SingletonBox;\n\n\tconstructor(public global: typeof globalThis) {\n\t\tif (SCRAMJETCLIENT in global) {\n\t\t\tconsole.error(\n\t\t\t\t\"attempted to initialize a scramjet client, but one is already loaded - this is very bad\"\n\t\t\t);\n\t\t\tthrow new Error();\n\t\t}\n\n\t\tif (iswindow) {\n\t\t\ttry {\n\t\t\t\tif (SCRAMJETCLIENT in global.parent) {\n\t\t\t\t\tthis.box = global.parent[SCRAMJETCLIENT].box;\n\t\t\t\t}\n\t\t\t} catch {}\n\t\t\ttry {\n\t\t\t\tif (SCRAMJETCLIENT in global.top) {\n\t\t\t\t\tthis.box = global.top[SCRAMJETCLIENT].box;\n\t\t\t\t}\n\t\t\t} catch {}\n\t\t\ttry {\n\t\t\t\tif (global.opener && SCRAMJETCLIENT in global.opener) {\n\t\t\t\t\tthis.box = global.opener[SCRAMJETCLIENT].box;\n\t\t\t\t}\n\t\t\t} catch {}\n\t\t\tif (!this.box) {\n\t\t\t\tdbg.warn(\"Creating SingletonBox\");\n\t\t\t\tthis.box = new SingletonBox(this);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.box = new SingletonBox(this);\n\t\t}\n\n\t\tthis.box.registerClient(this, global as Self);\n\n\t\t/*\n\t\tinitEpoxy().then(() => {\n\t\t\tlet options = new EpoxyClientOptions();\n\t\t\toptions.user_agent = navigator.userAgent;\n\t\t\tthis.epoxy = new EpoxyClient(config.wisp, options);\n\t\t});\n\t\t*/\n\n\t\tif (iswindow) {\n\t\t\t// this.bare = new EpoxyClient();\n\t\t\tthis.bare = new BareClient();\n\t\t} else {\n\t\t\tthis.bare = new BareClient(\n\t\t\t\tnew Promise((resolve) => {\n\t\t\t\t\taddEventListener(\"message\", ({ data }) => {\n\t\t\t\t\t\tif (typeof data !== \"object\") return;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\"$scramjet$type\" in data &&\n\t\t\t\t\t\t\tdata.$scramjet$type === \"baremuxinit\"\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tresolve(data.port);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\n\t\tthis.serviceWorker = this.global.navigator.serviceWorker;\n\n\t\tif (iswindow) {\n\t\t\tglobal.document[SCRAMJETCLIENT] = this;\n\t\t}\n\n\t\tthis.wrapfn = createWrapFn(this, global);\n\t\tthis.natives = {\n\t\t\tstore: new Proxy(\n\t\t\t\t{},\n\t\t\t\t{\n\t\t\t\t\tget: (target, prop: string) => {\n\t\t\t\t\t\tif (prop in target) {\n\t\t\t\t\t\t\treturn target[prop];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst split = prop.split(\".\");\n\t\t\t\t\t\tconst realProp = split.pop();\n\t\t\t\t\t\tconst realTarget = split.reduce((a, b) => a?.[b], this.global);\n\n\t\t\t\t\t\tif (!realTarget) return;\n\n\t\t\t\t\t\tconst original = Reflect.get(realTarget, realProp);\n\t\t\t\t\t\ttarget[prop] = original;\n\n\t\t\t\t\t\treturn target[prop];\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t),\n\t\t\tconstruct(target: string, ...args) {\n\t\t\t\tconst original = this.store[target];\n\t\t\t\tif (!original) return null;\n\n\t\t\t\treturn new original(...args);\n\t\t\t},\n\t\t\tcall(target: string, that: any, ...args) {\n\t\t\t\tconst original = this.store[target];\n\t\t\t\tif (!original) return null;\n\n\t\t\t\treturn original.call(that, ...args);\n\t\t\t},\n\t\t};\n\t\tthis.descriptors = {\n\t\t\tstore: new Proxy(\n\t\t\t\t{},\n\t\t\t\t{\n\t\t\t\t\tget: (target, prop: string) => {\n\t\t\t\t\t\tif (prop in target) {\n\t\t\t\t\t\t\treturn target[prop];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst split = prop.split(\".\");\n\t\t\t\t\t\tconst realProp = split.pop();\n\t\t\t\t\t\tconst realTarget = split.reduce((a, b) => a?.[b], this.global);\n\n\t\t\t\t\t\tif (!realTarget) return;\n\n\t\t\t\t\t\tconst original = client.natives.call(\n\t\t\t\t\t\t\t\"Object.getOwnPropertyDescriptor\",\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\trealTarget,\n\t\t\t\t\t\t\trealProp\n\t\t\t\t\t\t);\n\t\t\t\t\t\ttarget[prop] = original;\n\n\t\t\t\t\t\treturn target[prop];\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t),\n\t\t\tget(target: string, that: any) {\n\t\t\t\tconst original = this.store[target];\n\t\t\t\tif (!original) return null;\n\n\t\t\t\treturn original.get.call(that);\n\t\t\t},\n\t\t\tset(target: string, that: any, value: any) {\n\t\t\t\tconst original = this.store[target];\n\t\t\t\tif (!original) return null;\n\n\t\t\t\toriginal.set.call(that, value);\n\t\t\t},\n\t\t};\n\t\t// eslint-disable-next-line @typescript-eslint/no-this-alias\n\t\tconst client = this;\n\t\tthis.meta = {\n\t\t\tget origin() {\n\t\t\t\treturn client.url;\n\t\t\t},\n\t\t\tget base() {\n\t\t\t\tif (iswindow) {\n\t\t\t\t\tconst base = client.natives.call(\n\t\t\t\t\t\t\"Document.prototype.querySelector\",\n\t\t\t\t\t\tclient.global.document,\n\t\t\t\t\t\t\"base\"\n\t\t\t\t\t);\n\t\t\t\t\tif (base) {\n\t\t\t\t\t\tlet url = base.getAttribute(\"href\");\n\t\t\t\t\t\tif (!url) return client.url;\n\t\t\t\t\t\tconst frag = url.indexOf(\"#\");\n\t\t\t\t\t\turl = url.substring(0, frag === -1 ? undefined : frag);\n\t\t\t\t\t\tif (!url) return client.url;\n\n\t\t\t\t\t\treturn new URL(url, client.url.origin);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn client.url;\n\t\t\t},\n\t\t\tget topFrameName() {\n\t\t\t\tif (!iswindow)\n\t\t\t\t\tthrow new Error(\"topFrameName was called from a worker?\");\n\n\t\t\t\tlet currentWin = client.global;\n\t\t\t\tif (currentWin.parent.window == currentWin.window) {\n\t\t\t\t\t// we're top level & we don't have a frame name\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\t// find the topmost frame that's controlled by scramjet, stopping before the real top frame\n\t\t\t\twhile (currentWin.parent.window !== currentWin.window) {\n\t\t\t\t\tif (!currentWin.parent.window[SCRAMJETCLIENT]) break;\n\t\t\t\t\tcurrentWin = currentWin.parent.window;\n\t\t\t\t}\n\n\t\t\t\tconst curclient = currentWin[SCRAMJETCLIENT];\n\t\t\t\tconst frame = curclient.descriptors.get(\n\t\t\t\t\t\"window.frameElement\",\n\t\t\t\t\tcurrentWin\n\t\t\t\t);\n\t\t\t\tif (!frame) {\n\t\t\t\t\t// we're inside an iframe, but the top frame is scramjet-controlled and top level, so we can't get a top frame name\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tif (!frame.name) {\n\t\t\t\t\t// the top frame is scramjet-controlled, but it has no name. this is user error\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t\"YOU NEED TO USE `new ScramjetFrame()`! DIRECT IFRAMES WILL NOT WORK\"\n\t\t\t\t\t);\n\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn frame.name;\n\t\t\t},\n\t\t\tget parentFrameName() {\n\t\t\t\tif (!iswindow)\n\t\t\t\t\tthrow new Error(\"parentFrameName was called from a worker?\");\n\t\t\t\tif (client.global.parent.window == client.global.window) {\n\t\t\t\t\t// we're top level & we don't have a frame name\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tlet parentWin = client.global.parent.window;\n\t\t\t\tif (parentWin[SCRAMJETCLIENT]) {\n\t\t\t\t\t// we're inside an iframe, and the parent is scramjet-controlled\n\t\t\t\t\tconst parentClient = parentWin[SCRAMJETCLIENT];\n\t\t\t\t\tconst frame = parentClient.descriptors.get(\n\t\t\t\t\t\t\"window.frameElement\",\n\t\t\t\t\t\tparentWin\n\t\t\t\t\t);\n\n\t\t\t\t\tif (!frame) {\n\t\t\t\t\t\t// parent is scramjet controlled and top-level. there is no parent frame name\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!frame.name) {\n\t\t\t\t\t\t// the parent frame is scramjet-controlled, but it has no name. this is user error\n\t\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t\t\"YOU NEED TO USE `new ScramjetFrame()`! DIRECT IFRAMES WILL NOT WORK\"\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn frame.name;\n\t\t\t\t} else {\n\t\t\t\t\t// we're inside an iframe, and the parent is not scramjet-controlled\n\t\t\t\t\t// return our own frame name\n\t\t\t\t\tconst frame = client.descriptors.get(\n\t\t\t\t\t\t\"window.frameElement\",\n\t\t\t\t\t\tclient.global\n\t\t\t\t\t);\n\t\t\t\t\tif (!frame.name) {\n\t\t\t\t\t\t// the parent frame is not scramjet-controlled, so we can't get a parent frame name\n\t\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t\t\"YOU NEED TO USE `new ScramjetFrame()`! DIRECT IFRAMES WILL NOT WORK\"\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn frame.name;\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t\tthis.locationProxy = createLocationProxy(this, global);\n\n\t\tglobal[SCRAMJETCLIENT] = this;\n\t}\n\n\tget frame(): ScramjetFrame | null {\n\t\tif (!iswindow) return null;\n\t\tconst frame = this.descriptors.get(\"window.frameElement\", this.global);\n\n\t\tif (!frame) return null; // we're top level\n\t\tconst sframe = frame[SCRAMJETFRAME];\n\n\t\tif (!sframe) {\n\t\t\t// we're in a subframe, recurse upward until we find one\n\t\t\tlet currentwin = this.global.window;\n\t\t\twhile (currentwin.parent !== currentwin) {\n\t\t\t\tlet currentclient = currentwin[SCRAMJETCLIENT];\n\t\t\t\tlet currentFrame = currentclient.descriptors.get(\n\t\t\t\t\t\"window.frameElement\",\n\t\t\t\t\tcurrentwin\n\t\t\t\t);\n\t\t\t\tif (!currentFrame) return null; // ??\n\t\t\t\tif (currentFrame && currentFrame[SCRAMJETFRAME]) {\n\t\t\t\t\treturn currentFrame[SCRAMJETFRAME];\n\t\t\t\t}\n\t\t\t\tcurrentwin = currentwin.parent.window;\n\t\t\t}\n\t\t}\n\n\t\treturn sframe;\n\t}\n\tget isSubframe(): boolean {\n\t\tif (!iswindow) return false;\n\t\tconst frame = this.descriptors.get(\"window.frameElement\", this.global);\n\n\t\tif (!frame) return false; // we're top level\n\t\tconst sframe = frame[SCRAMJETFRAME];\n\t\tif (!sframe) return true;\n\n\t\treturn false;\n\t}\n\tloadcookies(cookiestr: string) {\n\t\tthis.cookieStore.load(cookiestr);\n\t}\n\n\thook() {\n\t\tconst context = import.meta.webpackContext(\".\", {\n\t\t\trecursive: true,\n\t\t});\n\n\t\tconst modules: ScramjetModule[] = [];\n\n\t\tfor (const key of context.keys()) {\n\t\t\tconst module = context(key) as ScramjetModule;\n\t\t\tif (!key.endsWith(\".ts\")) continue;\n\t\t\tif (\n\t\t\t\t(key.startsWith(\"./dom/\") && \"window\" in this.global) ||\n\t\t\t\t(key.startsWith(\"./worker/\") && \"WorkerGlobalScope\" in this.global) ||\n\t\t\t\tkey.startsWith(\"./shared/\")\n\t\t\t) {\n\t\t\t\tmodules.push(module);\n\t\t\t}\n\t\t}\n\n\t\tmodules.sort((a, b) => {\n\t\t\tconst aorder = a.order || 0;\n\t\t\tconst border = b.order || 0;\n\n\t\t\treturn aorder - border;\n\t\t});\n\n\t\tfor (const module of modules) {\n\t\t\tif (!module.enabled || module.enabled(this))\n\t\t\t\tmodule.default(this, this.global);\n\t\t\telse if (module.disabled) module.disabled(this, this.global);\n\t\t}\n\t}\n\n\tget url(): URL {\n\t\treturn new URL(unrewriteUrl(this.global.location.href));\n\t}\n\n\tset url(url: URL | string) {\n\t\tif (url instanceof URL) url = url.toString();\n\n\t\tconst ev = new NavigateEvent(url);\n\t\tif (this.frame) {\n\t\t\tthis.frame.dispatchEvent(ev);\n\t\t}\n\t\tif (ev.defaultPrevented) return;\n\n\t\tthis.global.location.href = rewriteUrl(ev.url, this.meta);\n\t}\n\n\t// below are the utilities for proxying and trapping dom APIs\n\t// you don't have to understand this it just makes the rest easier\n\t// i'll document it eventually\n\n\tProxy(name: string | string[], handler: Proxy) {\n\t\tif (Array.isArray(name)) {\n\t\t\tfor (const n of name) {\n\t\t\t\tthis.Proxy(n, handler);\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst split = name.split(\".\");\n\t\tconst prop = split.pop();\n\t\tconst target = split.reduce((a, b) => a?.[b], this.global);\n\t\tif (!target) return;\n\n\t\tif (!(name in this.natives.store)) {\n\t\t\tconst original = Reflect.get(target, prop);\n\t\t\tthis.natives.store[name] = original;\n\t\t}\n\n\t\tthis.RawProxy(target, prop, handler);\n\t}\n\tRawProxy(target: any, prop: string, handler: Proxy) {\n\t\tif (!target) return;\n\t\tif (!prop) return;\n\t\tif (!Reflect.has(target, prop)) return;\n\n\t\tconst value = Reflect.get(target, prop);\n\t\tdelete target[prop];\n\n\t\tconst h: ProxyHandler<any> = {};\n\n\t\tif (handler.construct) {\n\t\t\th.construct = function (\n\t\t\t\tconstructor: any,\n\t\t\t\targs: any[],\n\t\t\t\tnewTarget: AnyFunction\n\t\t\t) {\n\t\t\t\tlet returnValue: any = undefined;\n\t\t\t\tlet earlyreturn = false;\n\n\t\t\t\tconst ctx: ProxyCtx = {\n\t\t\t\t\tfn: constructor,\n\t\t\t\t\tthis: null,\n\t\t\t\t\targs,\n\t\t\t\t\tnewTarget: newTarget,\n\t\t\t\t\treturn: (r: any) => {\n\t\t\t\t\t\tearlyreturn = true;\n\t\t\t\t\t\treturnValue = r;\n\t\t\t\t\t},\n\t\t\t\t\tcall: () => {\n\t\t\t\t\t\tearlyreturn = true;\n\t\t\t\t\t\treturnValue = Reflect.construct(ctx.fn, ctx.args, ctx.newTarget);\n\n\t\t\t\t\t\treturn returnValue;\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\thandler.construct(ctx);\n\n\t\t\t\tif (earlyreturn) {\n\t\t\t\t\treturn returnValue;\n\t\t\t\t}\n\n\t\t\t\treturn Reflect.construct(ctx.fn, ctx.args, ctx.newTarget);\n\t\t\t};\n\t\t}\n\n\t\tif (handler.apply) {\n\t\t\th.apply = (fn: any, that: any, args: any[]) => {\n\t\t\t\tlet returnValue: any = undefined;\n\t\t\t\tlet earlyreturn = false;\n\n\t\t\t\tconst ctx: ProxyCtx = {\n\t\t\t\t\tfn,\n\t\t\t\t\tthis: that,\n\t\t\t\t\targs,\n\t\t\t\t\tnewTarget: null,\n\t\t\t\t\treturn: (r: any) => {\n\t\t\t\t\t\tearlyreturn = true;\n\t\t\t\t\t\treturnValue = r;\n\t\t\t\t\t},\n\t\t\t\t\tcall: () => {\n\t\t\t\t\t\tearlyreturn = true;\n\t\t\t\t\t\treturnValue = Reflect.apply(ctx.fn, ctx.this, ctx.args);\n\n\t\t\t\t\t\treturn returnValue;\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tconst pst = Error.prepareStackTrace;\n\n\t\t\t\tError.prepareStackTrace = function (err, s) {\n\t\t\t\t\tif (\n\t\t\t\t\t\ts[0].getFileName() &&\n\t\t\t\t\t\t!s[0].getFileName().startsWith(location.origin + config.prefix)\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn { stack: err.stack };\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\ttry {\n\t\t\t\t\thandler.apply(ctx);\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (err instanceof Error) {\n\t\t\t\t\t\tif ((err.stack as any) instanceof Object) {\n\t\t\t\t\t\t\t//@ts-expect-error i'm not going to explain this\n\t\t\t\t\t\t\terr.stack = err.stack.stack;\n\t\t\t\t\t\t\tconsole.error(\"ERROR FROM SCRAMJET INTERNALS\", err);\n\t\t\t\t\t\t\tif (!flagEnabled(\"allowFailedIntercepts\", this.url)) {\n\t\t\t\t\t\t\t\tthrow err;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthrow err;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow err;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tError.prepareStackTrace = pst;\n\n\t\t\t\tif (earlyreturn) {\n\t\t\t\t\treturn returnValue;\n\t\t\t\t}\n\n\t\t\t\treturn Reflect.apply(ctx.fn, ctx.this, ctx.args);\n\t\t\t};\n\t\t}\n\n\t\th.getOwnPropertyDescriptor = getOwnPropertyDescriptorHandler;\n\t\ttarget[prop] = new Proxy(value, h);\n\t}\n\tTrap<T>(name: string | string[], descriptor: Trap<T>): PropertyDescriptor {\n\t\tif (Array.isArray(name)) {\n\t\t\tfor (const n of name) {\n\t\t\t\tthis.Trap(n, descriptor);\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst split = name.split(\".\");\n\t\tconst prop = split.pop();\n\t\tconst target = split.reduce((a, b) => a?.[b], this.global);\n\t\tif (!target) return;\n\n\t\tconst original = this.natives.call(\n\t\t\t\"Object.getOwnPropertyDescriptor\",\n\t\t\tnull,\n\t\t\ttarget,\n\t\t\tprop\n\t\t);\n\t\tthis.descriptors.store[name] = original;\n\n\t\treturn this.RawTrap(target, prop, descriptor);\n\t}\n\tRawTrap<T>(\n\t\ttarget: any,\n\t\tprop: string,\n\t\tdescriptor: Trap<T>\n\t): PropertyDescriptor {\n\t\tif (!target) return;\n\t\tif (!prop) return;\n\t\tif (!Reflect.has(target, prop)) return;\n\n\t\tconst oldDescriptor = this.natives.call(\n\t\t\t\"Object.getOwnPropertyDescriptor\",\n\t\t\tnull,\n\t\t\ttarget,\n\t\t\tprop\n\t\t);\n\n\t\tconst ctx: TrapCtx<T> = {\n\t\t\tthis: null,\n\t\t\tget: function () {\n\t\t\t\treturn oldDescriptor && oldDescriptor.get.call(this.this);\n\t\t\t},\n\t\t\tset: function (v: T) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-expressions\n\t\t\t\toldDescriptor && oldDescriptor.set.call(this.this, v);\n\t\t\t},\n\t\t};\n\n\t\tdelete target[prop];\n\n\t\tconst desc: PropertyDescriptor = {};\n\n\t\tif (descriptor.get) {\n\t\t\tdesc.get = function () {\n\t\t\t\tctx.this = this;\n\n\t\t\t\treturn descriptor.get(ctx);\n\t\t\t};\n\t\t} else if (oldDescriptor?.get) {\n\t\t\tdesc.get = oldDescriptor.get;\n\t\t}\n\n\t\tif (descriptor.set) {\n\t\t\tdesc.set = function (v: T) {\n\t\t\t\tctx.this = this;\n\n\t\t\t\tdescriptor.set(ctx, v);\n\t\t\t};\n\t\t} else if (oldDescriptor?.set) {\n\t\t\tdesc.set = oldDescriptor.set;\n\t\t}\n\n\t\tif (descriptor.enumerable) desc.enumerable = descriptor.enumerable;\n\t\telse if (oldDescriptor?.enumerable)\n\t\t\tdesc.enumerable = oldDescriptor.enumerable;\n\t\tif (descriptor.configurable) desc.configurable = descriptor.configurable;\n\t\telse if (oldDescriptor?.configurable)\n\t\t\tdesc.configurable = oldDescriptor.configurable;\n\n\t\tObject.defineProperty(target, prop, desc);\n\n\t\treturn oldDescriptor;\n\t}\n}\n","import { ScramjetClient } from \"@client/index\";\n\nexport default function (client: ScramjetClient, _self: typeof window) {\n\tclient.Trap(\"Element.prototype.attributes\", {\n\t\tget(ctx) {\n\t\t\tconst map = ctx.get() as NamedNodeMap;\n\t\t\tconst proxy = new Proxy(map, {\n\t\t\t\tget(target, prop, _receiver) {\n\t\t\t\t\tconst value = Reflect.get(target, prop);\n\n\t\t\t\t\tif (prop === \"length\") {\n\t\t\t\t\t\treturn Object.keys(proxy).length;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (prop === \"getNamedItem\") {\n\t\t\t\t\t\treturn (name: string) => proxy[name];\n\t\t\t\t\t}\n\t\t\t\t\tif (prop === \"getNamedItemNS\") {\n\t\t\t\t\t\treturn (namespace: string, name: string) =>\n\t\t\t\t\t\t\tproxy[`${namespace}:${name}`];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (prop in NamedNodeMap.prototype && typeof value === \"function\") {\n\t\t\t\t\t\treturn new Proxy(value, {\n\t\t\t\t\t\t\tapply(target, that, args) {\n\t\t\t\t\t\t\t\tif (that === proxy) {\n\t\t\t\t\t\t\t\t\treturn Reflect.apply(target, map, args);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn Reflect.apply(target, that, args);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t(typeof prop === \"string\" || typeof prop === \"number\") &&\n\t\t\t\t\t\t!isNaN(Number(prop))\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst position = Object.keys(proxy)[prop];\n\n\t\t\t\t\t\treturn map[position];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!this.has(target, prop)) return undefined;\n\n\t\t\t\t\treturn value;\n\t\t\t\t},\n\t\t\t\townKeys(target) {\n\t\t\t\t\tconst keys = Reflect.ownKeys(target);\n\n\t\t\t\t\treturn keys.filter((key) => this.has(target, key));\n\t\t\t\t},\n\t\t\t\thas(target, prop) {\n\t\t\t\t\tif (typeof prop === \"symbol\") return Reflect.has(target, prop);\n\t\t\t\t\tif (prop.startsWith(\"scramjet-attr-\")) return false;\n\t\t\t\t\tif (map[prop]?.name?.startsWith(\"scramjet-attr-\")) return false;\n\n\t\t\t\t\treturn Reflect.has(target, prop);\n\t\t\t\t},\n\t\t\t});\n\n\t\t\treturn proxy;\n\t\t},\n\t});\n\n\tclient.Trap([\"Attr.prototype.value\", \"Attr.prototype.nodeValue\"], {\n\t\tget(ctx) {\n\t\t\tif (ctx.this?.ownerElement) {\n\t\t\t\treturn ctx.this.ownerElement.getAttribute(ctx.this.name);\n\t\t\t}\n\n\t\t\treturn ctx.get();\n\t\t},\n\t\tset(ctx, value) {\n\t\t\tif (ctx.this?.ownerElement) {\n\t\t\t\treturn ctx.this.ownerElement.setAttribute(ctx.this.name, value);\n\t\t\t}\n\n\t\t\treturn ctx.set(value);\n\t\t},\n\t});\n}\n","import { rewriteUrl } from \"@rewriters/url\";\nimport { ScramjetClient } from \"@client/index\";\n\nexport default function (client: ScramjetClient, _self: Self) {\n\tclient.Proxy(\"Navigator.prototype.sendBeacon\", {\n\t\tapply(ctx) {\n\t\t\tctx.args[0] = rewriteUrl(ctx.args[0], client.meta);\n\t\t},\n\t});\n}\n","import type { MessageC2W, MessageW2C } from \"@/worker\";\nimport { ScramjetClient } from \"@client/index\";\n\nexport default function (client: ScramjetClient, self: typeof window) {\n\tclient.serviceWorker.addEventListener(\n\t\t\"message\",\n\t\t({ data }: { data: MessageW2C }) => {\n\t\t\tif (!(\"scramjet$type\" in data)) return;\n\n\t\t\tif (data.scramjet$type === \"cookie\") {\n\t\t\t\tclient.cookieStore.setCookies([data.cookie], new URL(data.url));\n\t\t\t\tconst msg = {\n\t\t\t\t\tscramjet$token: data.scramjet$token,\n\t\t\t\t\tscramjet$type: \"cookie\",\n\t\t\t\t};\n\t\t\t\tclient.serviceWorker.controller.postMessage(msg);\n\t\t\t}\n\t\t}\n\t);\n\n\tclient.Trap(\"Document.prototype.cookie\", {\n\t\tget() {\n\t\t\treturn client.cookieStore.getCookies(client.url, true);\n\t\t},\n\t\tset(ctx, value: string) {\n\t\t\tclient.cookieStore.setCookies([value], client.url);\n\t\t\tconst controller = client.descriptors.get(\n\t\t\t\t\"ServiceWorkerContainer.prototype.controller\",\n\t\t\t\tclient.serviceWorker\n\t\t\t);\n\t\t\tif (controller) {\n\t\t\t\tclient.natives.call(\"ServiceWorker.prototype.postMessage\", controller, {\n\t\t\t\t\tscramjet$type: \"cookie\",\n\t\t\t\t\tcookie: value,\n\t\t\t\t\turl: client.url.href,\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n\n\t// @ts-ignore\n\tdelete self.cookieStore;\n}\n","import { rewriteCss, unrewriteCss } from \"@rewriters/css\";\nimport { ScramjetClient } from \"@client/index\";\n\nexport default function (client: ScramjetClient) {\n\tclient.Proxy(\"CSSStyleDeclaration.prototype.setProperty\", {\n\t\tapply(ctx) {\n\t\t\tif (!ctx.args[1]) return;\n\t\t\tctx.args[1] = rewriteCss(ctx.args[1], client.meta);\n\t\t},\n\t});\n\n\tclient.Proxy(\"CSSStyleDeclaration.prototype.getPropertyValue\", {\n\t\tapply(ctx) {\n\t\t\tconst v = ctx.call();\n\t\t\tif (!v) return v;\n\t\t\tctx.return(unrewriteCss(v));\n\t\t},\n\t});\n\n\tclient.Trap(\"CSSStyleDeclaration.prototype.cssText\", {\n\t\tset(ctx, value: string) {\n\t\t\tctx.set(rewriteCss(value, client.meta));\n\t\t},\n\t\tget(ctx) {\n\t\t\treturn unrewriteCss(ctx.get());\n\t\t},\n\t});\n\n\tclient.Proxy(\"CSSStyleSheet.prototype.insertRule\", {\n\t\tapply(ctx) {\n\t\t\tctx.args[0] = rewriteCss(ctx.args[0], client.meta);\n\t\t},\n\t});\n\n\tclient.Proxy(\"CSSStyleSheet.prototype.replace\", {\n\t\tapply(ctx) {\n\t\t\tctx.args[0] = rewriteCss(ctx.args[0], client.meta);\n\t\t},\n\t});\n\n\tclient.Proxy(\"CSSStyleSheet.prototype.replaceSync\", {\n\t\tapply(ctx) {\n\t\t\tctx.args[0] = rewriteCss(ctx.args[0], client.meta);\n\t\t},\n\t});\n\n\tclient.Trap(\"CSSRule.prototype.cssText\", {\n\t\tset(ctx, value: string) {\n\t\t\tctx.set(rewriteCss(value, client.meta));\n\t\t},\n\t\tget(ctx) {\n\t\t\treturn unrewriteCss(ctx.get());\n\t\t},\n\t});\n\n\tclient.Proxy(\"CSSStyleValue.parse\", {\n\t\tapply(ctx) {\n\t\t\tif (!ctx.args[1]) return;\n\t\t\tctx.args[1] = rewriteCss(ctx.args[1], client.meta);\n\t\t},\n\t});\n\n\tclient.Trap(\"HTMLElement.prototype.style\", {\n\t\tget(ctx) {\n\t\t\t// unfortunate and dumb hack. we have to trap every property of this\n\t\t\t// since the prototype chain is fucked\n\n\t\t\tconst style = ctx.get() as CSSStyleDeclaration;\n\n\t\t\treturn new Proxy(style, {\n\t\t\t\tget(target, prop) {\n\t\t\t\t\tconst value = Reflect.get(target, prop);\n\n\t\t\t\t\tif (typeof value === \"function\") {\n\t\t\t\t\t\treturn new Proxy(value, {\n\t\t\t\t\t\t\tapply(target, that, args) {\n\t\t\t\t\t\t\t\treturn Reflect.apply(target, style, args);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tif (prop in CSSStyleDeclaration.prototype) return value;\n\t\t\t\t\tif (!value) return value;\n\n\t\t\t\t\treturn unrewriteCss(value);\n\t\t\t\t},\n\t\t\t\tset(target, prop, value) {\n\t\t\t\t\tif (prop == \"cssText\" || value == \"\" || typeof value !== \"string\") {\n\t\t\t\t\t\treturn Reflect.set(target, prop, value);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Reflect.set(target, prop, rewriteCss(value, client.meta));\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tset(ctx, value: string) {\n\t\t\t// this will actually run the trap for cssText. don't rewrite it here\n\t\t\tctx.set(value);\n\t\t},\n\t});\n}\n","import { rewriteHtml } from \"@rewriters/html\";\nimport { ScramjetClient } from \"@client/index\";\n\nexport default function (client: ScramjetClient, _self: Self) {\n\tconst tostring = String;\n\tclient.Proxy(\n\t\t[\"Document.prototype.querySelector\", \"Document.prototype.querySelectorAll\"],\n\t\t{\n\t\t\tapply(ctx) {\n\t\t\t\tctx.args[0] = tostring(ctx.args[0]).replace(\n\t\t\t\t\t/((?:^|\\s)\\b\\w+\\[(?:src|href|data-href))[\\^]?(=['\"]?(?:https?[:])?\\/\\/)/,\n\t\t\t\t\t\"$1*$2\"\n\t\t\t\t);\n\t\t\t},\n\t\t}\n\t);\n\n\tclient.Proxy(\"Document.prototype.write\", {\n\t\tapply(ctx) {\n\t\t\tif (ctx.args[0])\n\t\t\t\ttry {\n\t\t\t\t\tctx.args[0] = rewriteHtml(\n\t\t\t\t\t\tctx.args[0],\n\t\t\t\t\t\tclient.cookieStore,\n\t\t\t\t\t\tclient.meta,\n\t\t\t\t\t\tfalse\n\t\t\t\t\t);\n\t\t\t\t} catch {}\n\t\t},\n\t});\n\n\tclient.Trap(\"Document.prototype.referrer\", {\n\t\tget() {\n\t\t\treturn client.url.toString();\n\t\t},\n\t});\n\n\tclient.Proxy(\"Document.prototype.writeln\", {\n\t\tapply(ctx) {\n\t\t\tif (ctx.args[0])\n\t\t\t\ttry {\n\t\t\t\t\tctx.args[0] = rewriteHtml(\n\t\t\t\t\t\tctx.args[0],\n\t\t\t\t\t\tclient.cookieStore,\n\t\t\t\t\t\tclient.meta,\n\t\t\t\t\t\tfalse\n\t\t\t\t\t);\n\t\t\t\t} catch {}\n\t\t},\n\t});\n\n\tclient.Proxy(\"Document.prototype.parseHTMLUnsafe\", {\n\t\tapply(ctx) {\n\t\t\tif (ctx.args[0])\n\t\t\t\ttry {\n\t\t\t\t\tctx.args[0] = rewriteHtml(\n\t\t\t\t\t\tctx.args[0],\n\t\t\t\t\t\tclient.cookieStore,\n\t\t\t\t\t\tclient.meta,\n\t\t\t\t\t\tfalse\n\t\t\t\t\t);\n\t\t\t\t} catch {}\n\t\t},\n\t});\n}\n","import { htmlRules } from \"@/shared/htmlRules\";\nimport { rewriteCss, unrewriteCss } from \"@rewriters/css\";\nimport { rewriteHtml, unrewriteHtml } from \"@rewriters/html\";\nimport { rewriteJs } from \"@rewriters/js\";\nimport { rewriteUrl, unrewriteUrl } from \"@rewriters/url\";\nimport { SCRAMJETCLIENT } from \"@/symbols\";\nimport { ScramjetClient } from \"@client/index\";\n\nconst encoder = new TextEncoder();\nfunction bytesToBase64(bytes: Uint8Array) {\n\tconst binString = Array.from(bytes, (byte) =>\n\t\tString.fromCodePoint(byte)\n\t).join(\"\");\n\n\treturn btoa(binString);\n}\nexport default function (client: ScramjetClient, self: typeof window) {\n\tconst attrObject = {\n\t\tnonce: [self.HTMLElement],\n\t\tintegrity: [self.HTMLScriptElement, self.HTMLLinkElement],\n\t\tcsp: [self.HTMLIFrameElement],\n\t\tcredentialless: [self.HTMLIFrameElement],\n\t\tsrc: [\n\t\t\tself.HTMLImageElement,\n\t\t\tself.HTMLMediaElement,\n\t\t\tself.HTMLIFrameElement,\n\t\t\tself.HTMLFrameElement,\n\t\t\tself.HTMLEmbedElement,\n\t\t\tself.HTMLScriptElement,\n\t\t\tself.HTMLSourceElement,\n\t\t],\n\t\thref: [self.HTMLAnchorElement, self.HTMLLinkElement],\n\t\tdata: [self.HTMLObjectElement],\n\t\taction: [self.HTMLFormElement],\n\t\tformaction: [self.HTMLButtonElement, self.HTMLInputElement],\n\t\tsrcdoc: [self.HTMLIFrameElement],\n\t\tposter: [self.HTMLVideoElement],\n\t\timagesrcset: [self.HTMLLinkElement],\n\t};\n\n\tconst urlinterfaces = [\n\t\tself.HTMLAnchorElement.prototype,\n\t\tself.HTMLAreaElement.prototype,\n\t];\n\tconst originalhrefs = [\n\t\tclient.natives.call(\n\t\t\t\"Object.getOwnPropertyDescriptor\",\n\t\t\tnull,\n\t\t\tself.HTMLAnchorElement.prototype,\n\t\t\t\"href\"\n\t\t),\n\t\tclient.natives.call(\n\t\t\t\"Object.getOwnPropertyDescriptor\",\n\t\t\tnull,\n\t\t\tself.HTMLAreaElement.prototype,\n\t\t\t\"href\"\n\t\t),\n\t];\n\n\tconst attrs = Object.keys(attrObject);\n\n\tfor (const attr of attrs) {\n\t\tfor (const element of attrObject[attr]) {\n\t\t\tconst descriptor = client.natives.call(\n\t\t\t\t\"Object.getOwnPropertyDescriptor\",\n\t\t\t\tnull,\n\t\t\t\telement.prototype,\n\t\t\t\tattr\n\t\t\t);\n\t\t\tObject.defineProperty(element.prototype, attr, {\n\t\t\t\tget() {\n\t\t\t\t\tif ([\"src\", \"data\", \"href\", \"action\", \"formaction\"].includes(attr)) {\n\t\t\t\t\t\treturn unrewriteUrl(descriptor.get.call(this));\n\t\t\t\t\t}\n\n\t\t\t\t\treturn descriptor.get.call(this);\n\t\t\t\t},\n\n\t\t\t\tset(value) {\n\t\t\t\t\treturn this.setAttribute(attr, value);\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\t// note that href is not here\n\tconst urlprops = [\n\t\t\"protocol\",\n\t\t\"hash\",\n\t\t\"host\",\n\t\t\"hostname\",\n\t\t\"origin\",\n\t\t\"pathname\",\n\t\t\"port\",\n\t\t\"search\",\n\t];\n\tfor (const prop of urlprops) {\n\t\tfor (const i in urlinterfaces) {\n\t\t\tconst target = urlinterfaces[i];\n\t\t\tconst desc = originalhrefs[i];\n\t\t\tclient.RawTrap(target, prop, {\n\t\t\t\tget(ctx) {\n\t\t\t\t\tconst href = desc.get.call(ctx.this);\n\t\t\t\t\tif (!href) return href;\n\n\t\t\t\t\tconst url = new URL(unrewriteUrl(href));\n\n\t\t\t\t\treturn url[prop];\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\tclient.Trap(\"Node.prototype.baseURI\", {\n\t\tget(ctx) {\n\t\t\tconst node = ctx.this as Node;\n\t\t\tlet base = node.ownerDocument?.querySelector(\"base\");\n\t\t\tif (node instanceof Document) base = node.querySelector(\"base\");\n\n\t\t\tif (base) {\n\t\t\t\treturn new URL(base.href, client.url.origin).href;\n\t\t\t}\n\n\t\t\treturn client.url.origin;\n\t\t},\n\t\tset(ctx, v) {\n\t\t\treturn false;\n\t\t},\n\t});\n\n\tclient.Proxy(\"Element.prototype.getAttribute\", {\n\t\tapply(ctx) {\n\t\t\tconst [name] = ctx.args;\n\n\t\t\tif (name.startsWith(\"scramjet-attr\")) {\n\t\t\t\treturn ctx.return(null);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tclient.natives.call(\n\t\t\t\t\t\"Element.prototype.hasAttribute\",\n\t\t\t\t\tctx.this,\n\t\t\t\t\t`scramjet-attr-${name}`\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tconst attrib = ctx.fn.call(ctx.this, `scramjet-attr-${name}`);\n\t\t\t\tif (attrib === null) return ctx.return(\"\");\n\n\t\t\t\treturn ctx.return(attrib);\n\t\t\t}\n\t\t},\n\t});\n\n\tclient.Proxy(\"Element.prototype.getAttributeNames\", {\n\t\tapply(ctx) {\n\t\t\tconst attrNames = ctx.call() as string[];\n\t\t\tconst cleaned = attrNames.filter(\n\t\t\t\t(attr) => !attr.startsWith(\"scramjet-attr\")\n\t\t\t);\n\n\t\t\tctx.return(cleaned);\n\t\t},\n\t});\n\n\tclient.Proxy(\"Element.prototype.getAttributeNode\", {\n\t\tapply(ctx) {\n\t\t\tif (ctx.args[0].startsWith(\"scramjet-attr\")) return ctx.return(null);\n\t\t},\n\t});\n\n\tclient.Proxy(\"Element.prototype.hasAttribute\", {\n\t\tapply(ctx) {\n\t\t\tif (ctx.args[0].startsWith(\"scramjet-attr\")) return ctx.return(false);\n\t\t},\n\t});\n\n\tclient.Proxy(\"Element.prototype.setAttribute\", {\n\t\tapply(ctx) {\n\t\t\tconst [name, value] = ctx.args;\n\n\t\t\tconst ruleList = htmlRules.find((rule) => {\n\t\t\t\tconst r = rule[name.toLowerCase()];\n\t\t\t\tif (!r) return false;\n\t\t\t\tif (r === \"*\") return true;\n\t\t\t\tif (typeof r === \"function\") return false; // this can't happen but ts\n\n\t\t\t\treturn r.includes(ctx.this.tagName.toLowerCase());\n\t\t\t});\n\n\t\t\tif (ruleList) {\n\t\t\t\tconst ret = ruleList.fn(value, client.meta, client.cookieStore);\n\t\t\t\tif (ret == null) {\n\t\t\t\t\tclient.natives.call(\n\t\t\t\t\t\t\"Element.prototype.removeAttribute\",\n\t\t\t\t\t\tctx.this,\n\t\t\t\t\t\tname\n\t\t\t\t\t);\n\t\t\t\t\tctx.return(undefined);\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tctx.args[1] = ret;\n\t\t\t\tctx.fn.call(ctx.this, `scramjet-attr-${ctx.args[0]}`, value);\n\t\t\t}\n\t\t},\n\t});\n\n\t// i actually need to do something with this\n\tclient.Proxy(\"Element.prototype.setAttributeNode\", {\n\t\tapply(_ctx) {},\n\t});\n\n\tclient.Proxy(\"Element.prototype.setAttributeNS\", {\n\t\tapply(ctx) {\n\t\t\tconst [_namespace, name, value] = ctx.args;\n\n\t\t\tconst ruleList = htmlRules.find((rule) => {\n\t\t\t\tconst r = rule[name.toLowerCase()];\n\t\t\t\tif (!r) return false;\n\t\t\t\tif (r === \"*\") return true;\n\t\t\t\tif (typeof r === \"function\") return false; // this can't happen but ts\n\n\t\t\t\treturn r.includes(ctx.this.tagName.toLowerCase());\n\t\t\t});\n\n\t\t\tif (ruleList) {\n\t\t\t\tctx.args[2] = ruleList.fn(value, client.meta, client.cookieStore);\n\t\t\t\tclient.natives.call(\n\t\t\t\t\t\"Element.prototype.setAttribute\",\n\t\t\t\t\tctx.this,\n\t\t\t\t\t`scramjet-attr-${ctx.args[1]}`,\n\t\t\t\t\tvalue\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t});\n\n\t// this is separate from the regular href handlers because it returns an SVGAnimatedString\n\tclient.Trap(\"SVGAnimatedString.prototype.baseVal\", {\n\t\tget(ctx) {\n\t\t\tconst href = ctx.get() as string;\n\t\t\tif (!href) return href;\n\n\t\t\treturn unrewriteUrl(href);\n\t\t},\n\t\tset(ctx, val: string) {\n\t\t\tctx.set(rewriteUrl(val, client.meta));\n\t\t},\n\t});\n\tclient.Trap(\"SVGAnimatedString.prototype.animVal\", {\n\t\tget(ctx) {\n\t\t\tconst href = ctx.get() as string;\n\t\t\tif (!href) return href;\n\n\t\t\treturn unrewriteUrl(href);\n\t\t},\n\t\t// it has no setter\n\t});\n\n\tclient.Proxy(\"Element.prototype.removeAttribute\", {\n\t\tapply(ctx) {\n\t\t\tif (ctx.args[0].startsWith(\"scramjet-attr\")) return ctx.return(undefined);\n\t\t\tif (\n\t\t\t\tclient.natives.call(\n\t\t\t\t\t\"Element.prototype.hasAttribute\",\n\t\t\t\t\tctx.this,\n\t\t\t\t\tctx.args[0]\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tctx.fn.call(ctx.this, `scramjet-attr-${ctx.args[0]}`);\n\t\t\t}\n\t\t},\n\t});\n\n\tclient.Proxy(\"Element.prototype.toggleAttribute\", {\n\t\tapply(ctx) {\n\t\t\tif (ctx.args[0].startsWith(\"scramjet-attr\")) return ctx.return(false);\n\t\t\tif (\n\t\t\t\tclient.natives.call(\n\t\t\t\t\t\"Element.prototype.hasAttribute\",\n\t\t\t\t\tctx.this,\n\t\t\t\t\tctx.args[0]\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tctx.fn.call(ctx.this, `scramjet-attr-${ctx.args[0]}`);\n\t\t\t}\n\t\t},\n\t});\n\n\tclient.Trap(\"Element.prototype.innerHTML\", {\n\t\tset(ctx, value: string) {\n\t\t\tlet newval;\n\t\t\tif (ctx.this instanceof self.HTMLScriptElement) {\n\t\t\t\tnewval = rewriteJs(value, \"(anonymous script element)\", client.meta);\n\t\t\t\tclient.natives.call(\n\t\t\t\t\t\"Element.prototype.setAttribute\",\n\t\t\t\t\tctx.this,\n\t\t\t\t\t\"scramjet-attr-script-source-src\",\n\t\t\t\t\tbytesToBase64(encoder.encode(newval))\n\t\t\t\t);\n\t\t\t} else if (ctx.this instanceof self.HTMLStyleElement) {\n\t\t\t\tnewval = rewriteCss(value, client.meta);\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\tnewval = rewriteHtml(value, client.cookieStore, client.meta);\n\t\t\t\t} catch {\n\t\t\t\t\tnewval = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tctx.set(newval);\n\t\t},\n\t\tget(ctx) {\n\t\t\tif (ctx.this instanceof self.HTMLScriptElement) {\n\t\t\t\tconst scriptSource = client.natives.call(\n\t\t\t\t\t\"Element.prototype.getAttribute\",\n\t\t\t\t\tctx.this,\n\t\t\t\t\t\"scramjet-attr-script-source-src\"\n\t\t\t\t);\n\n\t\t\t\tif (scriptSource) {\n\t\t\t\t\treturn atob(scriptSource);\n\t\t\t\t}\n\n\t\t\t\treturn ctx.get();\n\t\t\t}\n\t\t\tif (ctx.this instanceof self.HTMLStyleElement) {\n\t\t\t\treturn ctx.get();\n\t\t\t}\n\n\t\t\treturn unrewriteHtml(ctx.get());\n\t\t},\n\t});\n\n\tclient.Trap(\"Node.prototype.textContent\", {\n\t\tset(ctx, value: string) {\n\t\t\t// TODO: box the instanceofs\n\t\t\tif (ctx.this instanceof self.HTMLScriptElement) {\n\t\t\t\tconst newval: string = rewriteJs(\n\t\t\t\t\tvalue,\n\t\t\t\t\t\"(anonymous script element)\",\n\t\t\t\t\tclient.meta\n\t\t\t\t) as string;\n\t\t\t\tclient.natives.call(\n\t\t\t\t\t\"Element.prototype.setAttribute\",\n\t\t\t\t\tctx.this,\n\t\t\t\t\t\"scramjet-attr-script-source-src\",\n\t\t\t\t\tbytesToBase64(encoder.encode(newval))\n\t\t\t\t);\n\n\t\t\t\treturn ctx.set(newval);\n\t\t\t} else if (ctx.this instanceof self.HTMLStyleElement) {\n\t\t\t\treturn ctx.set(rewriteCss(value, client.meta));\n\t\t\t} else {\n\t\t\t\treturn ctx.set(value);\n\t\t\t}\n\t\t},\n\t\tget(ctx) {\n\t\t\tif (ctx.this instanceof self.HTMLScriptElement) {\n\t\t\t\tconst scriptSource = client.natives.call(\n\t\t\t\t\t\"Element.prototype.getAttribute\",\n\t\t\t\t\tctx.this,\n\t\t\t\t\t\"scramjet-attr-script-source-src\"\n\t\t\t\t);\n\n\t\t\t\tif (scriptSource) {\n\t\t\t\t\treturn atob(scriptSource);\n\t\t\t\t}\n\n\t\t\t\treturn ctx.get();\n\t\t\t}\n\t\t\tif (ctx.this instanceof self.HTMLStyleElement) {\n\t\t\t\treturn unrewriteCss(ctx.get() as string);\n\t\t\t}\n\n\t\t\treturn ctx.get();\n\t\t},\n\t});\n\n\tclient.Trap(\"Element.prototype.outerHTML\", {\n\t\tset(ctx, value: string) {\n\t\t\tctx.set(rewriteHtml(value, client.cookieStore, client.meta));\n\t\t},\n\t\tget(ctx) {\n\t\t\treturn unrewriteHtml(ctx.get());\n\t\t},\n\t});\n\n\tclient.Proxy(\"Element.prototype.setHTMLUnsafe\", {\n\t\tapply(ctx) {\n\t\t\ttry {\n\t\t\t\tctx.args[0] = rewriteHtml(\n\t\t\t\t\tctx.args[0],\n\t\t\t\t\tclient.cookieStore,\n\t\t\t\t\tclient.meta,\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t} catch {}\n\t\t},\n\t});\n\n\tclient.Proxy(\"Element.prototype.getHTML\", {\n\t\tapply(ctx) {\n\t\t\tctx.return(unrewriteHtml(ctx.call()));\n\t\t},\n\t});\n\n\tclient.Proxy(\"Element.prototype.insertAdjacentHTML\", {\n\t\tapply(ctx) {\n\t\t\tif (ctx.args[1])\n\t\t\t\ttry {\n\t\t\t\t\tctx.args[1] = rewriteHtml(\n\t\t\t\t\t\tctx.args[1],\n\t\t\t\t\t\tclient.cookieStore,\n\t\t\t\t\t\tclient.meta,\n\t\t\t\t\t\tfalse\n\t\t\t\t\t);\n\t\t\t\t} catch {}\n\t\t},\n\t});\n\tclient.Proxy(\"Audio\", {\n\t\tconstruct(ctx) {\n\t\t\tif (ctx.args[0]) ctx.args[0] = rewriteUrl(ctx.args[0], client.meta);\n\t\t},\n\t});\n\tclient.Proxy(\"Text.prototype.appendData\", {\n\t\tapply(ctx) {\n\t\t\tif (ctx.this.parentElement?.tagName === \"STYLE\") {\n\t\t\t\tctx.args[0] = rewriteCss(ctx.args[0], client.meta);\n\t\t\t}\n\t\t},\n\t});\n\n\tclient.Proxy(\"Text.prototype.insertData\", {\n\t\tapply(ctx) {\n\t\t\tif (ctx.this.parentElement?.tagName === \"STYLE\") {\n\t\t\t\tctx.args[1] = rewriteCss(ctx.args[1], client.meta);\n\t\t\t}\n\t\t},\n\t});\n\n\tclient.Proxy(\"Text.prototype.replaceData\", {\n\t\tapply(ctx) {\n\t\t\tif (ctx.this.parentElement?.tagName === \"STYLE\") {\n\t\t\t\tctx.args[2] = rewriteCss(ctx.args[2], client.meta);\n\t\t\t}\n\t\t},\n\t});\n\n\tclient.Trap(\"Text.prototype.wholeText\", {\n\t\tget(ctx) {\n\t\t\tif (ctx.this.parentElement?.tagName === \"STYLE\") {\n\t\t\t\treturn unrewriteCss(ctx.get() as string);\n\t\t\t}\n\n\t\t\treturn ctx.get();\n\t\t},\n\t\tset(ctx, v) {\n\t\t\tif (ctx.this.parentElement?.tagName === \"STYLE\") {\n\t\t\t\treturn ctx.set(rewriteCss(v as string, client.meta));\n\t\t\t}\n\n\t\t\treturn ctx.set(v);\n\t\t},\n\t});\n\n\tclient.Trap(\n\t\t[\n\t\t\t\"HTMLIFrameElement.prototype.contentWindow\",\n\t\t\t\"HTMLFrameElement.prototype.contentWindow\",\n\t\t\t\"HTMLObjectElement.prototype.contentWindow\",\n\t\t\t\"HTMLEmbedElement.prototype.contentWindow\",\n\t\t],\n\t\t{\n\t\t\tget(ctx) {\n\t\t\t\tconst realwin = ctx.get() as Window;\n\t\t\t\tif (!realwin) return realwin;\n\n\t\t\t\tif (!(SCRAMJETCLIENT in realwin)) {\n\t\t\t\t\t// hook the iframe before the client can start to steal globals out of it\n\t\t\t\t\tconst newclient = new ScramjetClient(realwin);\n\t\t\t\t\tnewclient.hook();\n\t\t\t\t}\n\n\t\t\t\treturn realwin;\n\t\t\t},\n\t\t}\n\t);\n\n\tclient.Trap(\n\t\t[\n\t\t\t\"HTMLIFrameElement.prototype.contentDocument\",\n\t\t\t\"HTMLFrameElement.prototype.contentDocument\",\n\t\t\t\"HTMLObjectElement.prototype.contentDocument\",\n\t\t\t\"HTMLEmbedElement.prototype.contentDocument\",\n\t\t],\n\t\t{\n\t\t\tget(ctx) {\n\t\t\t\tconst realwin = client.descriptors.get(\n\t\t\t\t\t`${ctx.this.constructor.name}.prototype.contentWindow`,\n\t\t\t\t\tctx.this\n\t\t\t\t);\n\t\t\t\tif (!realwin) return realwin;\n\n\t\t\t\tif (!(SCRAMJETCLIENT in realwin)) {\n\t\t\t\t\tconst newclient = new ScramjetClient(realwin);\n\t\t\t\t\tnewclient.hook();\n\t\t\t\t}\n\n\t\t\t\treturn realwin.document;\n\t\t\t},\n\t\t}\n\t);\n\n\tclient.Proxy(\n\t\t[\n\t\t\t\"HTMLIFrameElement.prototype.getSVGDocument\",\n\t\t\t\"HTMLObjectElement.prototype.getSVGDocument\",\n\t\t\t\"HTMLEmbedElement.prototype.getSVGDocument\",\n\t\t],\n\t\t{\n\t\t\tapply(ctx) {\n\t\t\t\tconst doc = ctx.call();\n\t\t\t\tif (doc) {\n\t\t\t\t\t// we trap the contentDocument, this is really the scramjet version\n\t\t\t\t\treturn ctx.return(ctx.this.contentDocument);\n\t\t\t\t}\n\t\t\t},\n\t\t}\n\t);\n\n\tclient.Proxy(\"DOMParser.prototype.parseFromString\", {\n\t\tapply(ctx) {\n\t\t\tif (ctx.args[1] === \"text/html\") {\n\t\t\t\ttry {\n\t\t\t\t\tctx.args[0] = rewriteHtml(\n\t\t\t\t\t\tctx.args[0],\n\t\t\t\t\t\tclient.cookieStore,\n\t\t\t\t\t\tclient.meta,\n\t\t\t\t\t\tfalse\n\t\t\t\t\t);\n\t\t\t\t} catch {}\n\t\t\t}\n\t\t},\n\t});\n}\n","import { rewriteCss } from \"@rewriters/css\";\nimport { ScramjetClient } from \"@client/index\";\n\nexport default function (client: ScramjetClient, _self: Self) {\n\tclient.Proxy(\"FontFace\", {\n\t\tconstruct(ctx) {\n\t\t\tctx.args[1] = rewriteCss(ctx.args[1], client.meta);\n\t\t},\n\t});\n}\n","import { rewriteHtml } from \"@rewriters/html\";\nimport { ScramjetClient } from \"@client/index\";\n\nexport default function (client: ScramjetClient, _self: Self) {\n\tclient.Proxy(\"Range.prototype.createContextualFragment\", {\n\t\tapply(ctx) {\n\t\t\tctx.args[0] = rewriteHtml(ctx.args[0], client.cookieStore, client.meta);\n\t\t},\n\t});\n}\n","import { rewriteUrl } from \"@rewriters/url\";\nimport { ScramjetClient } from \"@client/index\";\nimport { UrlChangeEvent } from \"@client/events\";\nimport { SCRAMJETCLIENT } from \"@/symbols\";\n\nexport default function (client: ScramjetClient, _self: Self) {\n\tclient.Proxy(\n\t\t[\"History.prototype.pushState\", \"History.prototype.replaceState\"],\n\t\t{\n\t\t\tapply(ctx) {\n\t\t\t\tif (ctx.args[2] || ctx.args[2] === \"\")\n\t\t\t\t\tctx.args[2] = rewriteUrl(ctx.args[2], client.meta);\n\t\t\t\tctx.call();\n\t\t\t\tconst {\n\t\t\t\t\tconstructor: { constructor: Function },\n\t\t\t\t} = ctx.this;\n\t\t\t\tconst callerGlobalThisProxied: Self = Function(\"return globalThis\")();\n\t\t\t\tconst callerClient = callerGlobalThisProxied[SCRAMJETCLIENT];\n\n\t\t\t\tif (callerGlobalThisProxied.name === client.meta.topFrameName) {\n\t\t\t\t\tconst ev = new UrlChangeEvent(callerClient.url.href);\n\t\t\t\t\tclient.frame?.dispatchEvent(ev);\n\t\t\t\t}\n\t\t\t},\n\t\t}\n\t);\n}\n","import { ScramjetClient } from \"@client/index\";\nimport { SCRAMJETCLIENT } from \"@/symbols\";\nimport { rewriteUrl } from \"@rewriters/url\";\n\nexport default function (client: ScramjetClient) {\n\tclient.Proxy(\"window.open\", {\n\t\tapply(ctx) {\n\t\t\tif (ctx.args[0]) ctx.args[0] = rewriteUrl(ctx.args[0], client.meta);\n\n\t\t\tif (ctx.args[1] === \"_top\" || ctx.args[1] === \"_unfencedTop\")\n\t\t\t\tctx.args[1] = client.meta.topFrameName;\n\t\t\tif (ctx.args[1] === \"_parent\") ctx.args[1] = client.meta.parentFrameName;\n\n\t\t\tconst realwin = ctx.call();\n\n\t\t\tif (!realwin) return ctx.return(realwin);\n\n\t\t\tif (SCRAMJETCLIENT in realwin) {\n\t\t\t\treturn ctx.return(realwin[SCRAMJETCLIENT].global);\n\t\t\t} else {\n\t\t\t\tconst newclient = new ScramjetClient(realwin);\n\t\t\t\t// hook the opened window\n\t\t\t\tnewclient.hook();\n\n\t\t\t\treturn ctx.return(newclient.global);\n\t\t\t}\n\t\t},\n\t});\n\n\tclient.Trap(\"window.frameElement\", {\n\t\tget(ctx) {\n\t\t\tconst f = ctx.get() as HTMLIFrameElement | null;\n\t\t\tif (!f) return f;\n\n\t\t\tconst win = f.ownerDocument.defaultView;\n\t\t\tif (win[SCRAMJETCLIENT]) {\n\t\t\t\t// then this is a subframe in a scramjet context, and it's safe to pass back the real iframe\n\t\t\t\treturn f;\n\t\t\t} else {\n\t\t\t\t// no, the top frame is outside the sandbox\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t});\n}\n","import { ScramjetClient } from \"@client/index\";\n\nexport default function (client: ScramjetClient, _self: Self) {\n\tclient.Trap(\"origin\", {\n\t\tget() {\n\t\t\t// this isn't right!!\n\t\t\treturn client.url.origin;\n\t\t},\n\t\tset() {\n\t\t\treturn false;\n\t\t},\n\t});\n\n\tclient.Trap(\"Document.prototype.URL\", {\n\t\tget() {\n\t\t\treturn client.url.href;\n\t\t},\n\t\tset() {\n\t\t\treturn false;\n\t\t},\n\t});\n\n\tclient.Trap(\"Document.prototype.documentURI\", {\n\t\tget() {\n\t\t\treturn client.url.href;\n\t\t},\n\t\tset() {\n\t\t\treturn false;\n\t\t},\n\t});\n\n\tclient.Trap(\"Document.prototype.domain\", {\n\t\tget() {\n\t\t\treturn client.url.hostname;\n\t\t},\n\t\tset() {\n\t\t\treturn false;\n\t\t},\n\t});\n}\n","import { unrewriteUrl } from \"@rewriters/url\";\nimport { ScramjetClient } from \"@client/index\";\nimport { config } from \"@/shared\";\n\nexport default function (client: ScramjetClient, _self: Self) {\n\tclient.Trap(\"PerformanceEntry.prototype.name\", {\n\t\tget(ctx) {\n\t\t\t// name is going to be a url typically\n\t\t\tconst name = ctx.get() as string;\n\n\t\t\tif (name && name.startsWith(location.origin + config.prefix)) {\n\t\t\t\treturn unrewriteUrl(name);\n\t\t\t}\n\n\t\t\treturn name;\n\t\t},\n\t});\n\n\tconst filterEntries = (entries: PerformanceEntry[]) => {\n\t\treturn entries.filter((entry) => {\n\t\t\tfor (const file of Object.values(config.files)) {\n\t\t\t\tif (entry.name.startsWith(location.origin + file)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn true;\n\t\t});\n\t};\n\n\tclient.Proxy(\n\t\t[\n\t\t\t\"Performance.prototype.getEntries\",\n\t\t\t\"Performance.prototype.getEntriesByType\",\n\t\t\t\"Performance.prototype.getEntriesByName\",\n\t\t\t\"PerformanceObserverEntryList.prototype.getEntries\",\n\t\t\t\"PerformanceObserverEntryList.prototype.getEntriesByType\",\n\t\t\t\"PerformanceObserverEntryList.prototype.getEntriesByName\",\n\t\t],\n\t\t{\n\t\t\tapply(ctx) {\n\t\t\t\tconst entries = ctx.call() as PerformanceEntry[];\n\n\t\t\t\treturn ctx.return(filterEntries(entries));\n\t\t\t},\n\t\t}\n\t);\n}\n","import { rewriteUrl } from \"@rewriters/url\";\nimport { ScramjetClient } from \"@client/index\";\n\nexport default function (client: ScramjetClient, self: Self) {\n\tclient.Proxy(\"Navigator.prototype.registerProtocolHandler\", {\n\t\tapply(ctx) {\n\t\t\tctx.args[1] = rewriteUrl(ctx.args[1], client.meta);\n\t\t},\n\t});\n\tclient.Proxy(\"Navigator.prototype.unregisterProtocolHandler\", {\n\t\tapply(ctx) {\n\t\t\tctx.args[1] = rewriteUrl(ctx.args[1], client.meta);\n\t\t},\n\t});\n}\n","import { ScramjetClient } from \"@client/index\";\nimport { type MessageC2W } from \"@/worker\";\nimport { flagEnabled } from \"@/shared\";\nimport { rewriteUrl } from \"@rewriters/url\";\n\n// we need a late order because we're mangling with addEventListener at a higher level\nexport const order = 2;\n\nexport const enabled = (client: ScramjetClient) =>\n\tflagEnabled(\"serviceworkers\", client.url);\n\nexport function disabled(_client: ScramjetClient, _self: Self) {\n\tReflect.deleteProperty(Navigator.prototype, \"serviceWorker\");\n}\n\ntype FakeRegistrationState = {\n\tscope: string;\n\tactive: ServiceWorker;\n};\n\nexport default function (client: ScramjetClient, _self: Self) {\n\tconst registrationmap: WeakMap<\n\t\tServiceWorkerRegistration,\n\t\tFakeRegistrationState\n\t> = new WeakMap();\n\tclient.Proxy(\"EventTarget.prototype.addEventListener\", {\n\t\tapply(ctx) {\n\t\t\tif (registrationmap.get(ctx.this)) {\n\t\t\t\t// do nothing\n\t\t\t\tctx.return(undefined);\n\t\t\t}\n\t\t},\n\t});\n\n\tclient.Proxy(\"EventTarget.prototype.removeEventListener\", {\n\t\tapply(ctx) {\n\t\t\tif (registrationmap.get(ctx.this)) {\n\t\t\t\t// do nothing\n\t\t\t\tctx.return(undefined);\n\t\t\t}\n\t\t},\n\t});\n\n\tclient.Proxy(\"ServiceWorkerContainer.prototype.getRegistration\", {\n\t\tapply(ctx) {\n\t\t\tctx.return(new Promise((resolve) => resolve(registration)));\n\t\t},\n\t});\n\n\tclient.Proxy(\"ServiceWorkerContainer.prototype.getRegistrations\", {\n\t\tapply(ctx) {\n\t\t\tctx.return(new Promise((resolve) => resolve([registration])));\n\t\t},\n\t});\n\n\tclient.Trap(\"ServiceWorkerContainer.prototype.ready\", {\n\t\tget(_ctx) {\n\t\t\treturn new Promise((resolve) => resolve(registration));\n\t\t},\n\t});\n\n\tclient.Trap(\"ServiceWorkerContainer.prototype.controller\", {\n\t\tget(ctx) {\n\t\t\treturn registration?.active;\n\t\t},\n\t});\n\n\tclient.Proxy(\"ServiceWorkerContainer.prototype.register\", {\n\t\tapply(ctx) {\n\t\t\tconst fakeRegistration = new EventTarget() as ServiceWorkerRegistration;\n\t\t\tObject.setPrototypeOf(\n\t\t\t\tfakeRegistration,\n\t\t\t\tself.ServiceWorkerRegistration.prototype\n\t\t\t);\n\t\t\tfakeRegistration.constructor = ctx.fn;\n\t\t\tlet url = rewriteUrl(ctx.args[0], client.meta) + \"?dest=serviceworker\";\n\t\t\tif (ctx.args[1] && ctx.args[1].type === \"module\") {\n\t\t\t\turl += \"&type=module\";\n\t\t\t}\n\n\t\t\tconst worker = client.natives.construct(\"SharedWorker\", url);\n\t\t\tconst handle = worker.port;\n\t\t\tconst state: FakeRegistrationState = {\n\t\t\t\tscope: ctx.args[0],\n\t\t\t\tactive: handle as ServiceWorker,\n\t\t\t};\n\t\t\tconst controller = client.descriptors.get(\n\t\t\t\t\"ServiceWorkerContainer.prototype.controller\",\n\t\t\t\tclient.serviceWorker\n\t\t\t);\n\n\t\t\tclient.natives.call(\n\t\t\t\t\"ServiceWorker.prototype.postMessage\",\n\t\t\t\tcontroller,\n\t\t\t\t{\n\t\t\t\t\tscramjet$type: \"registerServiceWorker\",\n\t\t\t\t\tport: handle,\n\t\t\t\t\torigin: client.url.origin,\n\t\t\t\t} as MessageC2W,\n\t\t\t\t[handle]\n\t\t\t);\n\n\t\t\tregistrationmap.set(fakeRegistration, state);\n\t\t\tctx.return(new Promise((resolve) => resolve(fakeRegistration)));\n\t\t},\n\t});\n}\n","import { ScramjetClient } from \"@client/index\";\n\nexport default function (client: ScramjetClient, self: typeof window) {\n\tconst handler: ProxyHandler<Storage> = {\n\t\tget(target, prop) {\n\t\t\tswitch (prop) {\n\t\t\t\tcase \"getItem\":\n\t\t\t\t\treturn (key: string) => {\n\t\t\t\t\t\treturn target.getItem(client.url.host + \"@\" + key);\n\t\t\t\t\t};\n\n\t\t\t\tcase \"setItem\":\n\t\t\t\t\treturn (key: string, value: string) => {\n\t\t\t\t\t\treturn target.setItem(client.url.host + \"@\" + key, value);\n\t\t\t\t\t};\n\n\t\t\t\tcase \"removeItem\":\n\t\t\t\t\treturn (key: string) => {\n\t\t\t\t\t\treturn target.removeItem(client.url.host + \"@\" + key);\n\t\t\t\t\t};\n\n\t\t\t\tcase \"clear\":\n\t\t\t\t\treturn () => {\n\t\t\t\t\t\tfor (const key in Object.keys(target)) {\n\t\t\t\t\t\t\tif (key.startsWith(client.url.host)) {\n\t\t\t\t\t\t\t\ttarget.removeItem(key);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\tcase \"key\":\n\t\t\t\t\treturn (index: number) => {\n\t\t\t\t\t\tconst keys = Object.keys(target).filter((key) =>\n\t\t\t\t\t\t\tkey.startsWith(client.url.host)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn target.getItem(keys[index]);\n\t\t\t\t\t};\n\n\t\t\t\tcase \"length\":\n\t\t\t\t\treturn Object.keys(target).filter((key) =>\n\t\t\t\t\t\tkey.startsWith(client.url.host)\n\t\t\t\t\t).length;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif (prop in Object.prototype || typeof prop === \"symbol\") {\n\t\t\t\t\t\treturn Reflect.get(target, prop);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn target.getItem(client.url.host + \"@\" + (prop as string));\n\t\t\t}\n\t\t},\n\n\t\tset(target, prop, value) {\n\t\t\ttarget.setItem(client.url.host + \"@\" + (prop as string), value);\n\n\t\t\treturn true;\n\t\t},\n\n\t\townKeys(target) {\n\t\t\treturn Reflect.ownKeys(target)\n\t\t\t\t.filter((f) => typeof f === \"string\" && f.startsWith(client.url.host))\n\t\t\t\t.map((f) =>\n\t\t\t\t\ttypeof f === \"string\" ? f.substring(client.url.host.length + 1) : f\n\t\t\t\t);\n\t\t},\n\n\t\tgetOwnPropertyDescriptor(target, property) {\n\t\t\treturn {\n\t\t\t\tvalue: target.getItem(client.url.host + \"@\" + (property as string)),\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true,\n\t\t\t};\n\t\t},\n\n\t\tdefineProperty(target, property, attributes) {\n\t\t\ttarget.setItem(\n\t\t\t\tclient.url.host + \"@\" + (property as string),\n\t\t\t\tattributes.value\n\t\t\t);\n\n\t\t\treturn true;\n\t\t},\n\t};\n\n\tconst realLocalStorage = self.localStorage;\n\n\tconst localStorageProxy = new Proxy(self.localStorage, handler);\n\tconst sessionStorageProxy = new Proxy(self.sessionStorage, handler);\n\n\tdelete self.localStorage;\n\tdelete self.sessionStorage;\n\n\tself.localStorage = localStorageProxy;\n\tself.sessionStorage = sessionStorageProxy;\n}\n","// entrypoint for scramjet.client.js\n\nimport { loadCodecs, setConfig } from \"@/shared/index\";\nimport { SCRAMJETCLIENT } from \"@/symbols\";\nimport { ScramjetClient } from \"@client/index\";\nimport { ScramjetContextEvent, UrlChangeEvent } from \"@client/events\";\nimport { ScramjetServiceWorkerRuntime } from \"@client/swruntime\";\nimport { ScramjetConfig } from \"@/types\";\n\nexport const iswindow = \"window\" in globalThis && window instanceof Window;\nexport const isworker = \"WorkerGlobalScope\" in globalThis;\nexport const issw = \"ServiceWorkerGlobalScope\" in globalThis;\nexport const isdedicated = \"DedicatedWorkerGlobalScope\" in globalThis;\nexport const isshared = \"SharedWorkerGlobalScope\" in globalThis;\nexport const isemulatedsw =\n\t\"location\" in globalThis &&\n\tnew URL(globalThis.location.href).searchParams.get(\"dest\") ===\n\t\t\"serviceworker\";\n\nfunction createFrameId() {\n\treturn `${Array(8)\n\t\t.fill(0)\n\t\t.map(() => Math.floor(Math.random() * 36).toString(36))\n\t\t.join(\"\")}`;\n}\n\nexport function loadAndHook(config: ScramjetConfig) {\n\tsetConfig(config);\n\tdbg.log(\"initializing scramjet client\");\n\t// if it already exists, that means the handlers have probably already been setup by the parent document\n\tif (!(SCRAMJETCLIENT in <Partial<typeof self>>globalThis)) {\n\t\tloadCodecs();\n\n\t\tconst client = new ScramjetClient(globalThis);\n\t\tconst frame: HTMLIFrameElement =\n\t\t\tglobalThis.frameElement as HTMLIFrameElement;\n\t\tif (frame && !frame.name) {\n\t\t\t// all frames need to be named for our logic to work\n\t\t\tframe.name = createFrameId();\n\t\t}\n\n\t\tif (globalThis.COOKIE) client.loadcookies(globalThis.COOKIE);\n\n\t\tclient.hook();\n\n\t\tif (isemulatedsw) {\n\t\t\tconst runtime = new ScramjetServiceWorkerRuntime(client);\n\t\t\truntime.hook();\n\t\t}\n\n\t\tconst contextev = new ScramjetContextEvent(client.global.window, client);\n\t\tclient.frame?.dispatchEvent(contextev);\n\t\tconst urlchangeev = new UrlChangeEvent(client.url.href);\n\t\tif (!client.isSubframe) client.frame?.dispatchEvent(urlchangeev);\n\t}\n\n\tReflect.deleteProperty(globalThis, \"WASM\");\n\tReflect.deleteProperty(globalThis, \"COOKIE\");\n}\n","import { ScramjetClient } from \"@client/index\";\n\n/**\n * Union type for all global Scramjet events.\n */\nexport type ScramjetGlobalEvent = ScramjetGlobalDownloadEvent;\n\n/**\n * Event class for proxified download interception.\n */\nexport class ScramjetGlobalDownloadEvent extends Event {\n\ttype = \"download\";\n\tconstructor(public download: ScramjetDownload) {\n\t\tsuper(\"download\");\n\t}\n}\n\n/**\n * Map for all global Scramjet events with their corresponding event types.\n */\nexport type ScramjetGlobalEvents = {\n\tdownload: ScramjetGlobalDownloadEvent;\n};\n\n/**\n * Event for proxified download interception.\n */\nexport type ScramjetDownload = {\n\tfilename?: string;\n\turl: string;\n\ttype: string;\n\tbody: ReadableStream<Uint8Array>;\n\tlength: number;\n};\n\n/**\n * Union type for all Scramjet proxified navigation events.\n */\nexport type ScramjetEvent =\n\t| NavigateEvent\n\t| UrlChangeEvent\n\t| ScramjetContextEvent;\n\n/**\n * Type map for all Scramjet navigation events with their corresponding event types.\n */\nexport type ScramjetEvents = {\n\tnavigate: NavigateEvent;\n\turlchange: UrlChangeEvent;\n\tcontextInit: ScramjetContextEvent;\n};\n\n/**\n * Navigation event class fired when Scramjet frame navigates to a new proxified URL.\n */\nexport class NavigateEvent extends Event {\n\ttype = \"navigate\";\n\tconstructor(public url: string) {\n\t\tsuper(\"navigate\");\n\t}\n}\n\n/**\n * URL change event class fired when the proxified URL changes in a Scramjet frame.\n */\nexport class UrlChangeEvent extends Event {\n\ttype = \"urlchange\";\n\tconstructor(public url: string) {\n\t\tsuper(\"urlchange\");\n\t}\n}\n\n/**\n * Event class fired when Scramjet initializes in a frame.\n */\nexport class ScramjetContextEvent extends Event {\n\ttype = \"contextInit\";\n\tconstructor(\n\t\tpublic window: Self,\n\t\tpublic client: ScramjetClient\n\t) {\n\t\tsuper(\"contextInit\");\n\t}\n}\n","export function getOwnPropertyDescriptorHandler(target, prop) {\n\tconst realDescriptor = Reflect.getOwnPropertyDescriptor(target, prop);\n\n\treturn realDescriptor;\n}\n","import { ScramjetClient } from \"@client/index\";\nimport { UrlChangeEvent } from \"@client/events\";\nimport { rewriteUrl } from \"@rewriters/url\";\nimport { iswindow } from \"@client/entry\";\n\nexport function createLocationProxy(\n\tclient: ScramjetClient,\n\tself: typeof globalThis\n) {\n\tconst Location = iswindow ? self.Location : self.WorkerLocation;\n\t// location cannot be Proxy()d\n\tconst fakeLocation: any = {};\n\tObject.setPrototypeOf(fakeLocation, Location.prototype);\n\tfakeLocation.constructor = Location;\n\n\t// for some reason it's on the object for Location and on the prototype for WorkerLocation??\n\tconst descriptorSource = iswindow ? self.location : Location.prototype;\n\tconst urlprops = [\n\t\t\"protocol\",\n\t\t\"hash\",\n\t\t\"host\",\n\t\t\"hostname\",\n\t\t\"href\",\n\t\t\"origin\",\n\t\t\"pathname\",\n\t\t\"port\",\n\t\t\"search\",\n\t];\n\tfor (const prop of urlprops) {\n\t\tconst native = client.natives.call(\n\t\t\t\"Object.getOwnPropertyDescriptor\",\n\t\t\tnull,\n\t\t\tdescriptorSource,\n\t\t\tprop\n\t\t);\n\t\tif (!native) continue;\n\n\t\tconst desc: Partial<PropertyDescriptor> = {\n\t\t\tconfigurable: false,\n\t\t\tenumerable: true,\n\t\t};\n\t\tif (native.get) {\n\t\t\tdesc.get = new Proxy(native.get, {\n\t\t\t\tapply() {\n\t\t\t\t\treturn client.url[prop];\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t\tif (native.set) {\n\t\t\tdesc.set = new Proxy(native.set, {\n\t\t\t\tapply(target, that, args) {\n\t\t\t\t\tif (prop === \"href\") {\n\t\t\t\t\t\t// special case\n\t\t\t\t\t\tclient.url = args[0];\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (prop === \"hash\") {\n\t\t\t\t\t\tself.location.hash = args[0];\n\t\t\t\t\t\tconst ev = new UrlChangeEvent(client.url.href);\n\t\t\t\t\t\tif (!client.isSubframe) client.frame?.dispatchEvent(ev);\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst url = new URL(client.url.href);\n\t\t\t\t\turl[prop] = args[0];\n\t\t\t\t\tclient.url = url;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t\tObject.defineProperty(fakeLocation, prop, desc);\n\t}\n\n\t// functions\n\tfakeLocation.toString = new Proxy(self.location.toString, {\n\t\tapply() {\n\t\t\treturn client.url.href;\n\t\t},\n\t});\n\n\tif (self.location.valueOf)\n\t\tfakeLocation.valueOf = new Proxy(self.location.valueOf, {\n\t\t\tapply() {\n\t\t\t\treturn client.url.href;\n\t\t\t},\n\t\t});\n\tif (self.location.assign)\n\t\tfakeLocation.assign = new Proxy(self.location.assign, {\n\t\t\tapply(target, that, args) {\n\t\t\t\targs[0] = rewriteUrl(args[0], client.meta);\n\t\t\t\tReflect.apply(target, self.location, args);\n\n\t\t\t\tconst urlchangeev = new UrlChangeEvent(client.url.href);\n\t\t\t\tif (!client.isSubframe) client.frame?.dispatchEvent(urlchangeev);\n\t\t\t},\n\t\t});\n\tif (self.location.reload)\n\t\tfakeLocation.reload = new Proxy(self.location.reload, {\n\t\t\tapply(target, that, args) {\n\t\t\t\tReflect.apply(target, self.location, args);\n\t\t\t},\n\t\t});\n\tif (self.location.replace)\n\t\tfakeLocation.replace = new Proxy(self.location.replace, {\n\t\t\tapply(target, that, args) {\n\t\t\t\targs[0] = rewriteUrl(args[0], client.meta);\n\t\t\t\tReflect.apply(target, self.location, args);\n\n\t\t\t\tconst urlchangeev = new UrlChangeEvent(client.url.href);\n\t\t\t\tif (!client.isSubframe) client.frame?.dispatchEvent(urlchangeev);\n\t\t\t},\n\t\t});\n\n\treturn fakeLocation;\n}\n","import { ScramjetClient } from \"@client/index\";\n\nexport default function (client: ScramjetClient) {\n\tclient.Proxy(\"console.clear\", {\n\t\tapply(ctx) {\n\t\t\t// fuck you\n\t\t\tctx.return(undefined);\n\t\t},\n\t});\n\n\tconst log = console.log;\n\tclient.Trap(\"console.log\", {\n\t\tset(_ctx, _v) {\n\t\t\t// is there a legitimate reason to let sites do this?\n\t\t},\n\t\tget(_ctx) {\n\t\t\treturn log;\n\t\t},\n\t});\n}\n","import { rewriteBlob, unrewriteBlob } from \"@rewriters/url\";\nimport { ScramjetClient } from \"@client/index\";\nexport default function (client: ScramjetClient) {\n\t// hide the origin from object urls from the page\n\tclient.Proxy(\"URL.createObjectURL\", {\n\t\tapply(ctx) {\n\t\t\tconst url: string = ctx.call();\n\t\t\tif (url.startsWith(\"blob:\")) {\n\t\t\t\tctx.return(rewriteBlob(url, client.meta));\n\t\t\t} else {\n\t\t\t\tctx.return(url);\n\t\t\t}\n\t\t},\n\t});\n\n\tclient.Proxy(\"URL.revokeObjectURL\", {\n\t\tapply(ctx) {\n\t\t\tctx.args[0] = unrewriteBlob(ctx.args[0]);\n\t\t},\n\t});\n}\n","import { rewriteUrl } from \"@rewriters/url\";\nimport { ScramjetClient } from \"@client/index\";\n\nexport default function (client: ScramjetClient, _self: Self) {\n\tclient.Proxy(\"CacheStorage.prototype.open\", {\n\t\tapply(ctx) {\n\t\t\tctx.args[0] = `${client.url.origin}@${ctx.args[0]}`;\n\t\t},\n\t});\n\n\tclient.Proxy(\"CacheStorage.prototype.has\", {\n\t\tapply(ctx) {\n\t\t\tctx.args[0] = `${client.url.origin}@${ctx.args[0]}`;\n\t\t},\n\t});\n\n\tclient.Proxy(\"CacheStorage.prototype.match\", {\n\t\tapply(ctx) {\n\t\t\tif (typeof ctx.args[0] === \"string\" || ctx.args[0] instanceof URL) {\n\t\t\t\tctx.args[0] = rewriteUrl(ctx.args[0], client.meta);\n\t\t\t}\n\t\t},\n\t});\n\n\tclient.Proxy(\"CacheStorage.prototype.delete\", {\n\t\tapply(ctx) {\n\t\t\tctx.args[0] = `${client.url.origin}@${ctx.args[0]}`;\n\t\t},\n\t});\n\n\tclient.Proxy(\"Cache.prototype.add\", {\n\t\tapply(ctx) {\n\t\t\tif (typeof ctx.args[0] === \"string\" || ctx.args[0] instanceof URL) {\n\t\t\t\tctx.args[0] = rewriteUrl(ctx.args[0], client.meta);\n\t\t\t}\n\t\t},\n\t});\n\n\tclient.Proxy(\"Cache.prototype.addAll\", {\n\t\tapply(ctx) {\n\t\t\tfor (let i = 0; i < ctx.args[0].length; i++) {\n\t\t\t\tif (\n\t\t\t\t\ttypeof ctx.args[0][i] === \"string\" ||\n\t\t\t\t\tctx.args[0][i] instanceof URL\n\t\t\t\t) {\n\t\t\t\t\tctx.args[0][i] = rewriteUrl(ctx.args[0][i], client.meta);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t});\n\n\tclient.Proxy(\"Cache.prototype.put\", {\n\t\tapply(ctx) {\n\t\t\tif (typeof ctx.args[0] === \"string\" || ctx.args[0] instanceof URL) {\n\t\t\t\tctx.args[0] = rewriteUrl(ctx.args[0], client.meta);\n\t\t\t}\n\t\t},\n\t});\n\n\tclient.Proxy(\"Cache.prototype.match\", {\n\t\tapply(ctx) {\n\t\t\tif (typeof ctx.args[0] === \"string\" || ctx.args[0] instanceof URL) {\n\t\t\t\tctx.args[0] = rewriteUrl(ctx.args[0], client.meta);\n\t\t\t}\n\t\t},\n\t});\n\n\tclient.Proxy(\"Cache.prototype.matchAll\", {\n\t\tapply(ctx) {\n\t\t\tif (\n\t\t\t\t(ctx.args[0] && typeof ctx.args[0] === \"string\") ||\n\t\t\t\t(ctx.args[0] && ctx.args[0] instanceof URL)\n\t\t\t) {\n\t\t\t\tctx.args[0] = rewriteUrl(ctx.args[0], client.meta);\n\t\t\t}\n\t\t},\n\t});\n\n\tclient.Proxy(\"Cache.prototype.keys\", {\n\t\tapply(ctx) {\n\t\t\tif (\n\t\t\t\t(ctx.args[0] && typeof ctx.args[0] === \"string\") ||\n\t\t\t\t(ctx.args[0] && ctx.args[0] instanceof URL)\n\t\t\t) {\n\t\t\t\tctx.args[0] = rewriteUrl(ctx.args[0], client.meta);\n\t\t\t}\n\t\t},\n\t});\n\n\tclient.Proxy(\"Cache.prototype.delete\", {\n\t\tapply(ctx) {\n\t\t\tif (typeof ctx.args[0] === \"string\" || ctx.args[0] instanceof URL) {\n\t\t\t\tctx.args[0] = rewriteUrl(ctx.args[0], client.meta);\n\t\t\t}\n\t\t},\n\t});\n}\n","// delete all chrome specific apis, or apis that are not supported by any browser other than chrome\n// these are not worth emulating and typically cause issues\n\nimport { isemulatedsw, iswindow } from \"@client/entry\";\nimport { ScramjetClient } from \"@client/index\";\n\n// type self as any here, most of these are not defined in the types\nexport default function (client: ScramjetClient, self: any) {\n\tconst del = (name: string) => {\n\t\tconst split = name.split(\".\");\n\t\tconst prop = split.pop();\n\t\tconst target = split.reduce((a, b) => a?.[b], self);\n\t\tif (!target) return;\n\t\tif (prop && prop in target) {\n\t\t\tdelete target[prop];\n\t\t} else {\n\t\t}\n\t};\n\n\t// obviously\n\t// del(\"chrome\");\n\n\t// ShapeDetector https://developer.chrome.com/docs/capabilities/shape-detection\n\tdel(\"BarcodeDetector\");\n\tdel(\"FaceDetector\");\n\tdel(\"TextDetector\");\n\n\t// background synchronization api\n\tif (iswindow) {\n\t\tdel(\"ServiceWorkerRegistration.prototype.sync\");\n\t}\n\tif (isemulatedsw) {\n\t\tdel(\"SyncManager\");\n\t\tdel(\"SyncEvent\");\n\t}\n\n\t// trustedtypes\n\tdel(\"TrustedHTML\");\n\tdel(\"TrustedScript\");\n\tdel(\"TrustedScriptURL\");\n\tdel(\"TrustedTypePolicy\");\n\tdel(\"TrustedTypePolicyFactory\");\n\tself.__defineGetter__(\"trustedTypes\", () => undefined);\n\n\t// whatever this is\n\tdel(\"Navigator.prototype.joinAdInterestGroup\");\n\n\tif (!iswindow) return;\n\t// DOM specific ones below here\n\n\tdel(\"MediaDevices.prototype.setCaptureHandleConfig\");\n\n\t// web bluetooth api\n\tdel(\"Navigator.prototype.bluetooth\");\n\tdel(\"Bluetooth\");\n\tdel(\"BluetoothDevice\");\n\tdel(\"BluetoothRemoteGATTServer\");\n\tdel(\"BluetoothRemoteGATTCharacteristic\");\n\tdel(\"BluetoothRemoteGATTDescriptor\");\n\tdel(\"BluetoothUUID\");\n\n\t// contact picker api\n\tdel(\"Navigator.prototype.contacts\");\n\tdel(\"ContactAddress\");\n\tdel(\"ContactManager\");\n\n\t// Idle Detection API\n\tdel(\"IdleDetector\");\n\n\t// Presentation API\n\tdel(\"Navigator.prototype.presentation\");\n\tdel(\"Presentation\");\n\tdel(\"PresentationConnection\");\n\tdel(\"PresentationReceiver\");\n\tdel(\"PresentationRequest\");\n\tdel(\"PresentationAvailability\");\n\tdel(\"PresentationConnectionAvailableEvent\");\n\tdel(\"PresentationConnectionCloseEvent\");\n\tdel(\"PresentationConnectionList\");\n\n\t// Window Controls Overlay API\n\tdel(\"WindowControlsOverlay\");\n\tdel(\"WindowControlsOverlayGeometryChangeEvent\");\n\tdel(\"Navigator.prototype.windowControlsOverlay\");\n\n\t// WebHID API\n\tdel(\"Navigator.prototype.hid\");\n\tdel(\"HID\");\n\tdel(\"HIDDevice\");\n\tdel(\"HIDConnectionEvent\");\n\tdel(\"HIDInputReportEvent\");\n\n\t// Navigation API (not chrome only but it's really annoying to implement)\n\tdel(\"navigation\");\n\tdel(\"NavigateEvent\");\n\tdel(\"NavigationActivation\");\n\tdel(\"NavigationCurrentEntryChangeEvent\");\n\tdel(\"NavigationDestination\");\n\tdel(\"NavigationHistoryEntry\");\n\tdel(\"NavigationTransition\");\n}\n","import { flagEnabled } from \"@/shared\";\nimport { ScramjetClient } from \"@client/index\";\n\nexport const enabled = (client: ScramjetClient) =>\n\tflagEnabled(\"captureErrors\", client.url);\nexport function argdbg(arg, recurse = []) {\n\tswitch (typeof arg) {\n\t\tcase \"string\":\n\t\t\tbreak;\n\t\tcase \"object\":\n\t\t\tif (\n\t\t\t\targ &&\n\t\t\t\targ[Symbol.iterator] &&\n\t\t\t\ttypeof arg[Symbol.iterator] === \"function\"\n\t\t\t)\n\t\t\t\tfor (const prop in arg) {\n\t\t\t\t\t// make sure it's not a getter\n\t\t\t\t\tconst desc = Object.getOwnPropertyDescriptor(arg, prop);\n\t\t\t\t\tif (desc && desc.get) continue;\n\n\t\t\t\t\tconst ar = arg[prop];\n\t\t\t\t\tif (recurse.includes(ar)) continue;\n\t\t\t\t\trecurse.push(ar);\n\t\t\t\t\targdbg(ar, recurse);\n\t\t\t\t}\n\t\t\tbreak;\n\t}\n}\n\nexport default function (client: ScramjetClient, self: typeof globalThis) {\n\tconst warn = console.warn;\n\tself.$scramerr = function scramerr(e) {\n\t\twarn(\"CAUGHT ERROR\", e);\n\t};\n\n\tself.$scramdbg = function scramdbg(args, t) {\n\t\tif (args && typeof args === \"object\" && args.length > 0) argdbg(args);\n\t\targdbg(t);\n\n\t\treturn t;\n\t};\n\n\tclient.Proxy(\"Promise.prototype.catch\", {\n\t\tapply(ctx) {\n\t\t\tif (ctx.args[0])\n\t\t\t\tctx.args[0] = new Proxy(ctx.args[0], {\n\t\t\t\t\tapply(target, that, args) {\n\t\t\t\t\t\t// console.warn(\"CAUGHT PROMISE REJECTION\", args);\n\t\t\t\t\t\tReflect.apply(target, that, args);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t},\n\t});\n}\n","import { config, flagEnabled } from \"@/shared\";\nimport { unrewriteUrl } from \"@rewriters/url\";\nimport { ScramjetClient } from \"@client/index\";\n\nexport const enabled = (client: ScramjetClient) =>\n\tflagEnabled(\"cleanErrors\", client.url);\n\nexport default function (client: ScramjetClient, _self: Self) {\n\t// v8 only. all we need to do is clean the scramjet urls from stack traces\n\tconst closure = (error, stack) => {\n\t\tlet newstack = error.stack;\n\n\t\tfor (let i = 0; i < stack.length; i++) {\n\t\t\tconst url = stack[i].getFileName();\n\n\t\t\ttry {\n\t\t\t\tif (url.endsWith(config.files.all)) {\n\t\t\t\t\t// strip stack frames including scramjet handlers from the trace\n\t\t\t\t\tconst lines = newstack.split(\"\\n\");\n\t\t\t\t\tconst line = lines.find((l) => l.includes(url));\n\t\t\t\t\tlines.splice(line, 1);\n\t\t\t\t\tnewstack = lines.join(\"\\n\");\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t} catch {}\n\n\t\t\ttry {\n\t\t\t\tnewstack = newstack.replaceAll(url, unrewriteUrl(url));\n\t\t\t} catch {}\n\t\t}\n\n\t\treturn newstack;\n\t};\n\tclient.Trap(\"Error.prepareStackTrace\", {\n\t\tget(_ctx) {\n\t\t\t// this is a funny js quirk. the getter is ran every time you type something in console\n\t\t\treturn closure;\n\t\t},\n\t\tset(_value) {\n\t\t\t// just ignore it if a site tries setting their own. not much we can really do\n\t\t},\n\t});\n}\n","import { config } from \"@/shared\";\nimport { rewriteJs } from \"@rewriters/js\";\nimport { ScramjetClient } from \"@client/index\";\n\nexport default function (client: ScramjetClient, self: Self) {\n\t// used for proxying *direct eval*\n\t// eval(\"...\") -> eval($scramjet$rewrite(\"...\"))\n\tObject.defineProperty(self, config.globals.rewritefn, {\n\t\tvalue: function (js: any) {\n\t\t\tif (typeof js !== \"string\") return js;\n\n\t\t\tconst rewritten = rewriteJs(js, \"(direct eval proxy)\", client.meta);\n\n\t\t\treturn rewritten;\n\t\t},\n\t\twritable: false,\n\t\tconfigurable: false,\n\t});\n}\n\nexport function indirectEval(this: ScramjetClient, strict: boolean, js: any) {\n\t// > If the argument of eval() is not a string, eval() returns the argument unchanged\n\tif (typeof js !== \"string\") return js;\n\n\tlet indirection: typeof eval;\n\tif (this.url.hostname === \"accounts.google.com\") {\n\t\tconsole.log(\"USING STRICT EVAL - BOTGUARD\");\n\t\tindirection = new Function(`\n\t\t\t\"use strict\";\n\t\t\treturn eval;\n\t\t`) as typeof eval;\n\t} else {\n\t\tindirection = this.global.eval;\n\t}\n\n\treturn indirection(\n\t\trewriteJs(js, \"(indirect eval proxy)\", this.meta) as string\n\t);\n}\n","import { iswindow } from \"@client/entry\";\nimport { unrewriteUrl } from \"@rewriters/url\";\nimport { SCRAMJETCLIENT } from \"@/symbols\";\nimport { ScramjetClient } from \"@client/index\";\nimport { getOwnPropertyDescriptorHandler } from \"@client/helpers\";\n\nconst realOnEvent = Symbol.for(\"scramjet original onevent function\");\n\nexport default function (client: ScramjetClient, self: Self) {\n\tconst handlers = {\n\t\tmessage: {\n\t\t\t_init() {\n\t\t\t\tif (typeof this.data === \"object\" && \"$scramjet$type\" in this.data) {\n\t\t\t\t\t// this is a ctl message\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tports() {\n\t\t\t\t// don't know why i have to do this?\n\t\t\t\treturn this.ports;\n\t\t\t},\n\t\t\tsource() {\n\t\t\t\tif (this.source === null) return null;\n\n\t\t\t\t// const scram: ScramjetClient = this.source[SCRAMJETCLIENT];\n\n\t\t\t\t// if (scram) return scram.globalProxy;\n\n\t\t\t\treturn this.source;\n\t\t\t},\n\t\t\torigin() {\n\t\t\t\tif (typeof this.data === \"object\" && \"$scramjet$origin\" in this.data)\n\t\t\t\t\treturn this.data.$scramjet$origin;\n\n\t\t\t\treturn client.url.origin;\n\t\t\t},\n\t\t\tdata() {\n\t\t\t\tif (typeof this.data === \"object\" && \"$scramjet$data\" in this.data)\n\t\t\t\t\treturn this.data.$scramjet$data;\n\n\t\t\t\treturn this.data;\n\t\t\t},\n\t\t},\n\t\thashchange: {\n\t\t\toldURL() {\n\t\t\t\treturn unrewriteUrl(this.oldURL);\n\t\t\t},\n\t\t\tnewURL() {\n\t\t\t\treturn unrewriteUrl(this.newURL);\n\t\t\t},\n\t\t},\n\t\tstorage: {\n\t\t\t_init() {\n\t\t\t\treturn this.key.startsWith(client.url.host + \"@\");\n\t\t\t},\n\t\t\tkey() {\n\t\t\t\treturn this.key.substring(this.key.indexOf(\"@\") + 1);\n\t\t\t},\n\t\t\turl() {\n\t\t\t\treturn unrewriteUrl(this.url);\n\t\t\t},\n\t\t},\n\t};\n\n\tfunction wraplistener(listener: (...args: any) => any) {\n\t\treturn new Proxy(listener, {\n\t\t\tapply(target, that, args) {\n\t\t\t\tconst realEvent: Event = args[0];\n\n\t\t\t\t// we only need to handle events dispatched from the browser\n\t\t\t\tif (realEvent.isTrusted) {\n\t\t\t\t\tconst type = realEvent.type;\n\n\t\t\t\t\tif (type in handlers) {\n\t\t\t\t\t\tconst handler = handlers[type];\n\n\t\t\t\t\t\tif (handler._init) {\n\t\t\t\t\t\t\tif (handler._init.call(realEvent) === false) return;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\targs[0] = new Proxy(realEvent, {\n\t\t\t\t\t\t\tget(target, prop, reciever) {\n\t\t\t\t\t\t\t\tconst value = Reflect.get(target, prop);\n\t\t\t\t\t\t\t\tif (prop in handler) {\n\t\t\t\t\t\t\t\t\treturn handler[prop].call(target);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (typeof value === \"function\") {\n\t\t\t\t\t\t\t\t\treturn new Proxy(value, {\n\t\t\t\t\t\t\t\t\t\tapply(target, that, args) {\n\t\t\t\t\t\t\t\t\t\t\tif (that === reciever) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn Reflect.apply(target, realEvent, args);\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\treturn Reflect.apply(target, that, args);\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgetOwnPropertyDescriptor: getOwnPropertyDescriptorHandler,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!self.event) {\n\t\t\t\t\tObject.defineProperty(self, \"event\", {\n\t\t\t\t\t\tget() {\n\t\t\t\t\t\t\treturn args[0];\n\t\t\t\t\t\t},\n\t\t\t\t\t\tconfigurable: true,\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tconst rv = Reflect.apply(target, that, args);\n\n\t\t\t\treturn rv;\n\t\t\t},\n\t\t\tgetOwnPropertyDescriptor: getOwnPropertyDescriptorHandler,\n\t\t});\n\t}\n\n\tclient.Proxy(\"EventTarget.prototype.addEventListener\", {\n\t\tapply(ctx) {\n\t\t\tif (typeof ctx.args[1] !== \"function\") return;\n\n\t\t\tconst origlistener = ctx.args[1];\n\t\t\tconst proxylistener = wraplistener(origlistener);\n\n\t\t\tctx.args[1] = proxylistener;\n\n\t\t\tlet arr = client.eventcallbacks.get(ctx.this);\n\t\t\tarr ||= [] as any;\n\t\t\tarr.push({\n\t\t\t\tevent: ctx.args[0] as string,\n\t\t\t\toriginalCallback: origlistener,\n\t\t\t\tproxiedCallback: proxylistener,\n\t\t\t});\n\t\t\tclient.eventcallbacks.set(ctx.this, arr);\n\t\t},\n\t});\n\n\tclient.Proxy(\"EventTarget.prototype.removeEventListener\", {\n\t\tapply(ctx) {\n\t\t\tif (typeof ctx.args[1] !== \"function\") return;\n\n\t\t\tconst arr = client.eventcallbacks.get(ctx.this);\n\t\t\tif (!arr) return;\n\n\t\t\tconst i = arr.findIndex(\n\t\t\t\t(e) => e.event === ctx.args[0] && e.originalCallback === ctx.args[1]\n\t\t\t);\n\t\t\tif (i === -1) return;\n\n\t\t\tconst r = arr.splice(i, 1);\n\t\t\tclient.eventcallbacks.set(ctx.this, arr);\n\n\t\t\tctx.args[1] = r[0].proxiedCallback;\n\t\t},\n\t});\n\n\tconst targets = [self.self, self.MessagePort.prototype] as Array<any>;\n\tif (iswindow) targets.push(self.HTMLElement.prototype);\n\tif (self.Worker) targets.push(self.Worker.prototype);\n\n\tfor (const target of targets) {\n\t\tconst keys = Reflect.ownKeys(target);\n\n\t\tfor (const key of keys) {\n\t\t\tif (\n\t\t\t\ttypeof key === \"string\" &&\n\t\t\t\tkey.startsWith(\"on\") &&\n\t\t\t\thandlers[key.slice(2)]\n\t\t\t) {\n\t\t\t\tconst descriptor = client.natives.call(\n\t\t\t\t\t\"Object.getOwnPropertyDescriptor\",\n\t\t\t\t\tnull,\n\t\t\t\t\ttarget,\n\t\t\t\t\tkey\n\t\t\t\t);\n\t\t\t\tif (!descriptor.get || !descriptor.set || !descriptor.configurable)\n\t\t\t\t\tcontinue;\n\n\t\t\t\t// these are the `onmessage`, `onclick`, etc. properties\n\t\t\t\tclient.RawTrap(target, key, {\n\t\t\t\t\tget(ctx) {\n\t\t\t\t\t\tif (this[realOnEvent]) return this[realOnEvent];\n\n\t\t\t\t\t\treturn ctx.get();\n\t\t\t\t\t},\n\t\t\t\t\tset(ctx, value: any) {\n\t\t\t\t\t\tthis[realOnEvent] = value;\n\n\t\t\t\t\t\tif (typeof value !== \"function\") return ctx.set(value);\n\n\t\t\t\t\t\tctx.set(wraplistener(value));\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n}\n","import { rewriteJs } from \"@rewriters/js\";\nimport { ScramjetClient, ProxyCtx, Proxy } from \"@client/index\";\n\nfunction rewriteFunction(ctx: ProxyCtx, client: ScramjetClient) {\n\tconst stringifiedFunction = ctx.call().toString();\n\n\tconst content = rewriteJs(\n\t\t`return ${stringifiedFunction}`,\n\t\t\"(function proxy)\",\n\t\tclient.meta\n\t);\n\tctx.return(ctx.fn(content)());\n}\n\nexport default function (client: ScramjetClient, _self: Self) {\n\tconst handler: Proxy = {\n\t\tapply(ctx: ProxyCtx) {\n\t\t\trewriteFunction(ctx, client);\n\t\t},\n\t\tconstruct(ctx) {\n\t\t\trewriteFunction(ctx, client);\n\t\t},\n\t};\n\n\tclient.Proxy(\"Function\", handler);\n\n\tconst RawFunction = client.natives.call(\n\t\t\"eval\",\n\t\tnull,\n\t\t\"(function () {})\"\n\t).constructor;\n\tconst RawAsyncFunction = client.natives.call(\n\t\t\"eval\",\n\t\tnull,\n\t\t\"(async function () {})\"\n\t).constructor;\n\tconst RawGeneratorFunction = client.natives.call(\n\t\t\"eval\",\n\t\tnull,\n\t\t\"(function* () {})\"\n\t).constructor;\n\tconst RawAsyncGeneratorFunction = client.natives.call(\n\t\t\"eval\",\n\t\tnull,\n\t\t\"(async function* () {})\"\n\t).constructor;\n\n\tclient.RawProxy(RawFunction.prototype, \"constructor\", handler);\n\tclient.RawProxy(RawAsyncFunction.prototype, \"constructor\", handler);\n\tclient.RawProxy(RawGeneratorFunction.prototype, \"constructor\", handler);\n\tclient.RawProxy(RawAsyncGeneratorFunction.prototype, \"constructor\", handler);\n}\n","import { ScramjetClient } from \"@client/index\";\nimport { config } from \"@/shared\";\nimport { rewriteUrl } from \"@rewriters/url\";\n\nexport default function (client: ScramjetClient, self: Self) {\n\tconst boundimport = client.natives.call(\n\t\t\"Function\",\n\t\tnull,\n\t\t\"url\",\n\t\t\"return import(url)\"\n\t);\n\n\tObject.defineProperty(self, config.globals.importfn, {\n\t\tvalue: function (base: string, url: string) {\n\t\t\tconst resolved = new URL(url, base).href;\n\n\t\t\tif (\n\t\t\t\turl.includes(\":\") ||\n\t\t\t\turl.startsWith(\"/\") ||\n\t\t\t\turl.startsWith(\".\") ||\n\t\t\t\turl.startsWith(\"..\")\n\t\t\t) {\n\t\t\t\t// this is a url\n\t\t\t\treturn boundimport(`${rewriteUrl(resolved, client.meta)}?type=module`);\n\t\t\t} else {\n\t\t\t\t// this is a specifier handled by importmaps\n\t\t\t\treturn boundimport(url);\n\t\t\t}\n\t\t},\n\t\twritable: false,\n\t\tconfigurable: false,\n\t\tenumerable: false,\n\t});\n\tObject.defineProperty(self, config.globals.metafn, {\n\t\tvalue: function (metaobj: any, base: string) {\n\t\t\tmetaobj.url = base;\n\t\t\tmetaobj.resolve = function (url: string) {\n\t\t\t\treturn new URL(url, base).href;\n\t\t\t};\n\n\t\t\treturn metaobj;\n\t\t},\n\t\twritable: false,\n\t\tconfigurable: false,\n\t\tenumerable: false,\n\t});\n}\n","import { ScramjetClient } from \"@client/index\";\n\nexport default function (client: ScramjetClient) {\n\tclient.Proxy(\"IDBFactory.prototype.open\", {\n\t\tapply(ctx) {\n\t\t\tctx.args[0] = `${client.url.origin}@${ctx.args[0]}`;\n\t\t},\n\t});\n\n\tclient.Trap(\"IDBDatabase.prototype.name\", {\n\t\tget(ctx) {\n\t\t\tconst name = ctx.get() as string;\n\n\t\t\treturn name.substring(name.indexOf(\"@\") + 1);\n\t\t},\n\t});\n}\n","import { ScramjetClient } from \"@client/index\";\n\nexport default function (client: ScramjetClient) {\n\tclient.Proxy(\"StorageManager.prototype.getDirectory\", {\n\t\tapply(ctx) {\n\t\t\tconst rootPromise = ctx.call() as Promise<FileSystemDirectoryHandle>;\n\t\t\tctx.return(\n\t\t\t\t(async () => {\n\t\t\t\t\tconst root = await rootPromise;\n\t\t\t\t\tconst directory = await root.getDirectoryHandle(\n\t\t\t\t\t\t`${client.url.origin.replace(/\\/|\\s|\\./g, \"-\")}`,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcreate: true,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t\tObject.defineProperty(directory, \"name\", {\n\t\t\t\t\t\tvalue: \"\",\n\t\t\t\t\t\twritable: false,\n\t\t\t\t\t});\n\n\t\t\t\t\treturn directory;\n\t\t\t\t})()\n\t\t\t);\n\t\t},\n\t});\n}\n","import { iswindow } from \"@client/entry\";\nimport { SCRAMJETCLIENT } from \"@/symbols\";\nimport { ScramjetClient } from \"@client/index\";\nimport { POLLUTANT } from \"@client/shared/realm\";\n\nexport default function (client: ScramjetClient) {\n\tif (iswindow)\n\t\tclient.Proxy(\"window.postMessage\", {\n\t\t\tapply(ctx) {\n\t\t\t\t// so we need to send the real origin here, since the recieving window can't possibly know.\n\t\t\t\t// except, remember that this code is being ran in a different realm than the invoker, so if we ask our `client` it may give us the wrong origin\n\t\t\t\t// if we were given any object that came from the real realm we can use that to get the real origin\n\t\t\t\t// and this works in every case EXCEPT for the fact that all three arguments can be strings which are copied instead of cloned\n\t\t\t\t// so we have to use `$setrealm` which will pollute this with an object from the real realm\n\n\t\t\t\tlet pollutant;\n\n\t\t\t\tif (typeof ctx.args[0] === \"object\" && ctx.args[0] !== null) {\n\t\t\t\t\tpollutant = ctx.args[0]; // try to use the first object we can find because it's more reliable\n\t\t\t\t} else if (typeof ctx.args[2] === \"object\" && ctx.args[2] !== null) {\n\t\t\t\t\tpollutant = ctx.args[2]; // next try to use transfer\n\t\t\t\t} else if (\n\t\t\t\t\tctx.this &&\n\t\t\t\t\tPOLLUTANT in ctx.this &&\n\t\t\t\t\ttypeof ctx.this[POLLUTANT] === \"object\" &&\n\t\t\t\t\tctx.this[POLLUTANT] !== null\n\t\t\t\t) {\n\t\t\t\t\tpollutant = ctx.this[POLLUTANT]; // lastly try to use the object from $setrealm\n\t\t\t\t} else {\n\t\t\t\t\tpollutant = {}; // give up\n\t\t\t\t}\n\n\t\t\t\t// and now we can steal Function from the caller's realm\n\t\t\t\tconst {\n\t\t\t\t\tconstructor: { constructor: Function },\n\t\t\t\t} = pollutant;\n\n\t\t\t\t// invoking stolen function will give us the caller's globalThis, remember scramjet has already proxied it!!!\n\t\t\t\tconst callerGlobalThisProxied: Self = Function(\"return globalThis\")();\n\t\t\t\tconst callerClient = callerGlobalThisProxied[SCRAMJETCLIENT];\n\n\t\t\t\t// this WOULD be enough but the source argument of MessageEvent has to return the caller's window\n\t\t\t\t// and if we just call it normally it would be coming from here, which WILL NOT BE THE CALLER'S because the accessor is from the parent\n\t\t\t\t// so with the stolen function we wrap postmessage so the source will truly be the caller's window (remember that function is scramjet's!!!)\n\t\t\t\tconst wrappedPostMessage = Function(\"...args\", \"this(...args)\");\n\n\t\t\t\tctx.args[0] = {\n\t\t\t\t\t$scramjet$messagetype: \"window\",\n\t\t\t\t\t$scramjet$origin: callerClient.url.origin,\n\t\t\t\t\t$scramjet$data: ctx.args[0],\n\t\t\t\t};\n\n\t\t\t\t// * origin because obviously\n\t\t\t\tif (typeof ctx.args[1] === \"string\") ctx.args[1] = \"*\";\n\t\t\t\tif (typeof ctx.args[1] === \"object\") ctx.args[1].targetOrigin = \"*\";\n\n\t\t\t\tctx.return(wrappedPostMessage.call(ctx.fn, ...ctx.args));\n\t\t\t},\n\t\t});\n\n\tconst toproxy = [\"MessagePort.prototype.postMessage\"];\n\n\tif (self.Worker) toproxy.push(\"Worker.prototype.postMessage\");\n\tif (!iswindow) toproxy.push(\"self.postMessage\"); // only do the generic version if we're in a worker\n\n\tclient.Proxy(toproxy, {\n\t\tapply(ctx) {\n\t\t\t// origin/source doesn't need to be preserved - it's null in the message event\n\n\t\t\tctx.args[0] = {\n\t\t\t\t$scramjet$messagetype: \"worker\",\n\t\t\t\t$scramjet$data: ctx.args[0],\n\t\t\t};\n\t\t},\n\t});\n}\n","import { ScramjetClient } from \"@client/index\";\nimport { config } from \"@/shared\";\n\nexport const POLLUTANT = Symbol.for(\"scramjet realm pollutant\");\n\nexport default function (client: ScramjetClient, self: typeof globalThis) {\n\t// object.$setrealm({}).postMessage(...)\n\t// the empty object is the \"pollutant\" which can reconstruct the real realm\n\t// i explain more in postmessage.ts\n\tObject.defineProperty(self.Object.prototype, config.globals.setrealmfn, {\n\t\tvalue(pollution: object) {\n\t\t\t// this is bad!! sites could detect this\n\t\t\tObject.defineProperty(this, POLLUTANT, {\n\t\t\t\tvalue: pollution,\n\t\t\t\twritable: false,\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: false,\n\t\t\t});\n\n\t\t\treturn this;\n\t\t},\n\t\twritable: true,\n\t\tconfigurable: true,\n\t\tenumerable: false,\n\t});\n}\n","import { rewriteUrl, unrewriteUrl } from \"@rewriters/url\";\nimport { ScramjetClient } from \"@client/index\";\n\nexport default function (client: ScramjetClient) {\n\tclient.Proxy(\"EventSource\", {\n\t\tconstruct(ctx) {\n\t\t\tctx.args[0] = rewriteUrl(ctx.args[0], client.meta);\n\t\t},\n\t});\n\n\tclient.Trap(\"EventSource.prototype.url\", {\n\t\tget(ctx) {\n\t\t\tunrewriteUrl(ctx.get() as string);\n\t\t},\n\t});\n}\n","import { isemulatedsw } from \"@client/entry\";\nimport { rewriteUrl, unrewriteUrl } from \"@rewriters/url\";\nimport { ScramjetClient } from \"@client/index\";\n\nexport default function (client: ScramjetClient) {\n\tclient.Proxy(\"fetch\", {\n\t\tapply(ctx) {\n\t\t\tif (typeof ctx.args[0] === \"string\" || ctx.args[0] instanceof URL) {\n\t\t\t\tctx.args[0] = rewriteUrl(ctx.args[0], client.meta);\n\n\t\t\t\tif (isemulatedsw) ctx.args[0] += \"?from=swruntime\";\n\t\t\t}\n\t\t},\n\t});\n\n\tclient.Proxy(\"Request\", {\n\t\tconstruct(ctx) {\n\t\t\tif (typeof ctx.args[0] === \"string\" || ctx.args[0] instanceof URL) {\n\t\t\t\tctx.args[0] = rewriteUrl(ctx.args[0], client.meta);\n\n\t\t\t\tif (isemulatedsw) ctx.args[0] += \"?from=swruntime\";\n\t\t\t}\n\t\t},\n\t});\n\n\tclient.Trap(\"Response.prototype.url\", {\n\t\tget(ctx) {\n\t\t\treturn unrewriteUrl(ctx.get() as string);\n\t\t},\n\t});\n\n\tclient.Trap(\"Request.prototype.url\", {\n\t\tget(ctx) {\n\t\t\treturn unrewriteUrl(ctx.get() as string);\n\t\t},\n\t});\n}\n","import { type BareWebSocket } from \"@mercuryworkshop/bare-mux\";\nimport { ScramjetClient } from \"@client/index\";\n\ntype FakeWebSocketState = {\n\textensions: string;\n\tprotocol: string;\n\turl: string;\n\tbinaryType: string;\n\tbarews: BareWebSocket;\n\n\tonclose?: (ev: CloseEvent) => any;\n\tonerror?: (ev: Event) => any;\n\tonmessage?: (ev: MessageEvent) => any;\n\tonopen?: (ev: Event) => any;\n};\ntype FakeWebSocketStreamState = {\n\textensions: string;\n\tprotocol: string;\n\turl: string;\n\tbarews: BareWebSocket;\n\n\topened: any;\n\tclosed: any;\n\treadable: ReadableStream;\n\twritable: WritableStream;\n};\nexport default function (client: ScramjetClient, self: typeof globalThis) {\n\tconst socketmap: WeakMap<WebSocket, FakeWebSocketState> = new WeakMap();\n\tconst socketstreammap: WeakMap<object, FakeWebSocketStreamState> =\n\t\tnew WeakMap();\n\tclient.Proxy(\"WebSocket\", {\n\t\tconstruct(ctx) {\n\t\t\tconst fakeWebSocket = new EventTarget() as WebSocket;\n\t\t\tObject.setPrototypeOf(fakeWebSocket, ctx.fn.prototype);\n\t\t\tfakeWebSocket.constructor = ctx.fn;\n\n\t\t\tconst trustEvent = (ev: Event) =>\n\t\t\t\tnew Proxy(ev, {\n\t\t\t\t\tget(target, prop) {\n\t\t\t\t\t\tif (prop === \"isTrusted\") return true;\n\n\t\t\t\t\t\treturn Reflect.get(target, prop);\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\tconst barews = client.bare.createWebSocket(\n\t\t\t\tctx.args[0],\n\t\t\t\tctx.args[1],\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\"User-Agent\": self.navigator.userAgent,\n\t\t\t\t\tOrigin: client.url.origin,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tconst state: FakeWebSocketState = {\n\t\t\t\textensions: \"\",\n\t\t\t\tprotocol: \"\",\n\t\t\t\turl: ctx.args[0],\n\t\t\t\tbinaryType: \"blob\",\n\t\t\t\tbarews,\n\n\t\t\t\tonclose: null,\n\t\t\t\tonerror: null,\n\t\t\t\tonmessage: null,\n\t\t\t\tonopen: null,\n\t\t\t};\n\n\t\t\tfunction fakeEventSend(fakeev: Event) {\n\t\t\t\tstate[\"on\" + fakeev.type]?.(trustEvent(fakeev));\n\t\t\t\tfakeWebSocket.dispatchEvent(fakeev);\n\t\t\t}\n\n\t\t\tbarews.addEventListener(\"open\", () => {\n\t\t\t\tfakeEventSend(new Event(\"open\"));\n\t\t\t});\n\t\t\tbarews.addEventListener(\"close\", (ev) => {\n\t\t\t\tfakeEventSend(new CloseEvent(\"close\", ev));\n\t\t\t});\n\t\t\tbarews.addEventListener(\"message\", async (ev) => {\n\t\t\t\tlet payload = ev.data;\n\t\t\t\tif (typeof payload === \"string\") {\n\t\t\t\t\t// DO NOTHING\n\t\t\t\t} else if (\"byteLength\" in payload) {\n\t\t\t\t\t// arraybuffer, convert to blob if needed or set the proper prototype\n\t\t\t\t\tif (state.binaryType === \"blob\") {\n\t\t\t\t\t\tpayload = new Blob([payload]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tObject.setPrototypeOf(payload, ArrayBuffer.prototype);\n\t\t\t\t\t}\n\t\t\t\t} else if (\"arrayBuffer\" in payload) {\n\t\t\t\t\t// blob, convert to arraybuffer if neccesary.\n\t\t\t\t\tif (state.binaryType === \"arraybuffer\") {\n\t\t\t\t\t\tpayload = await payload.arrayBuffer();\n\t\t\t\t\t\tObject.setPrototypeOf(payload, ArrayBuffer.prototype);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst fakeev = new MessageEvent(\"message\", {\n\t\t\t\t\tdata: payload,\n\t\t\t\t\torigin: ev.origin,\n\t\t\t\t\tlastEventId: ev.lastEventId,\n\t\t\t\t\tsource: ev.source,\n\t\t\t\t\tports: ev.ports,\n\t\t\t\t});\n\n\t\t\t\tfakeEventSend(fakeev);\n\t\t\t});\n\t\t\tbarews.addEventListener(\"error\", () => {\n\t\t\t\tfakeEventSend(new Event(\"error\"));\n\t\t\t});\n\n\t\t\tsocketmap.set(fakeWebSocket, state);\n\t\t\tctx.return(fakeWebSocket);\n\t\t},\n\t});\n\tclient.Trap(\"WebSocket.prototype.binaryType\", {\n\t\tget(ctx) {\n\t\t\tconst ws = socketmap.get(ctx.this);\n\n\t\t\treturn ws.binaryType;\n\t\t},\n\t\tset(ctx, v: string) {\n\t\t\tconst ws = socketmap.get(ctx.this);\n\t\t\tif (v === \"blob\" || v === \"arraybuffer\") ws.binaryType = v;\n\t\t},\n\t});\n\n\tclient.Trap(\"WebSocket.prototype.bufferedAmount\", {\n\t\tget() {\n\t\t\treturn 0;\n\t\t},\n\t});\n\n\tclient.Trap(\"WebSocket.prototype.extensions\", {\n\t\tget(ctx) {\n\t\t\tconst ws = socketmap.get(ctx.this);\n\n\t\t\treturn ws.extensions;\n\t\t},\n\t});\n\n\tclient.Trap(\"WebSocket.prototype.onclose\", {\n\t\tget(ctx) {\n\t\t\tconst ws = socketmap.get(ctx.this);\n\n\t\t\treturn ws.onclose;\n\t\t},\n\t\tset(ctx, v: (ev: CloseEvent) => any) {\n\t\t\tconst ws = socketmap.get(ctx.this);\n\t\t\tws.onclose = v;\n\t\t},\n\t});\n\n\tclient.Trap(\"WebSocket.prototype.onerror\", {\n\t\tget(ctx) {\n\t\t\tconst ws = socketmap.get(ctx.this);\n\n\t\t\treturn ws.onerror;\n\t\t},\n\t\tset(ctx, v: (ev: Event) => any) {\n\t\t\tconst ws = socketmap.get(ctx.this);\n\t\t\tws.onerror = v;\n\t\t},\n\t});\n\n\tclient.Trap(\"WebSocket.prototype.onmessage\", {\n\t\tget(ctx) {\n\t\t\tconst ws = socketmap.get(ctx.this);\n\n\t\t\treturn ws.onmessage;\n\t\t},\n\t\tset(ctx, v: (ev: MessageEvent) => any) {\n\t\t\tconst ws = socketmap.get(ctx.this);\n\t\t\tws.onmessage = v;\n\t\t},\n\t});\n\n\tclient.Trap(\"WebSocket.prototype.onopen\", {\n\t\tget(ctx) {\n\t\t\tconst ws = socketmap.get(ctx.this);\n\n\t\t\treturn ws.onopen;\n\t\t},\n\t\tset(ctx, v: (ev: Event) => any) {\n\t\t\tconst ws = socketmap.get(ctx.this);\n\t\t\tws.onopen = v;\n\t\t},\n\t});\n\n\tclient.Trap(\"WebSocket.prototype.url\", {\n\t\tget(ctx) {\n\t\t\tconst ws = socketmap.get(ctx.this);\n\n\t\t\treturn ws.url;\n\t\t},\n\t});\n\n\tclient.Trap(\"WebSocket.prototype.protocol\", {\n\t\tget(ctx) {\n\t\t\tconst ws = socketmap.get(ctx.this);\n\n\t\t\treturn ws.protocol;\n\t\t},\n\t});\n\n\tclient.Trap(\"WebSocket.prototype.readyState\", {\n\t\tget(ctx) {\n\t\t\tconst ws = socketmap.get(ctx.this);\n\n\t\t\treturn ws.barews.readyState;\n\t\t},\n\t});\n\n\tclient.Proxy(\"WebSocket.prototype.send\", {\n\t\tapply(ctx) {\n\t\t\tconst ws = socketmap.get(ctx.this);\n\n\t\t\tctx.return(ws.barews.send(ctx.args[0]));\n\t\t},\n\t});\n\n\tclient.Proxy(\"WebSocket.prototype.close\", {\n\t\tapply(ctx) {\n\t\t\tconst ws = socketmap.get(ctx.this);\n\t\t\tif (ctx.args[0] === undefined) ctx.args[0] = 1000;\n\t\t\tif (ctx.args[1] === undefined) ctx.args[1] = \"\";\n\t\t\tctx.return(ws.barews.close(ctx.args[0], ctx.args[1]));\n\t\t},\n\t});\n\n\tclient.Proxy(\"WebSocketStream\", {\n\t\tconstruct(ctx) {\n\t\t\tconst fakeWebSocket = {};\n\t\t\tObject.setPrototypeOf(fakeWebSocket, ctx.fn.prototype);\n\t\t\tfakeWebSocket.constructor = ctx.fn;\n\n\t\t\tconst barews = client.bare.createWebSocket(\n\t\t\t\tctx.args[0],\n\t\t\t\tctx.args[1],\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\"User-Agent\": self.navigator.userAgent,\n\t\t\t\t\tOrigin: client.url.origin,\n\t\t\t\t}\n\t\t\t);\n\t\t\tctx.args[1]?.signal.addEventListener(\"abort\", () => {\n\t\t\t\tbarews.close(1000, \"\");\n\t\t\t});\n\t\t\tlet openResolver, closeResolver;\n\t\t\tlet openRejector;\n\t\t\tconst state: FakeWebSocketStreamState = {\n\t\t\t\textensions: \"\",\n\t\t\t\tprotocol: \"\",\n\t\t\t\turl: ctx.args[0],\n\t\t\t\tbarews,\n\n\t\t\t\topened: new Promise((resolve, reject) => {\n\t\t\t\t\topenResolver = resolve;\n\t\t\t\t\topenRejector = reject;\n\t\t\t\t}),\n\t\t\t\tclosed: new Promise((resolve) => {\n\t\t\t\t\tcloseResolver = resolve;\n\t\t\t\t}),\n\t\t\t\treadable: new ReadableStream({\n\t\t\t\t\tstart(controller) {\n\t\t\t\t\t\tbarews.addEventListener(\"message\", async (ev: MessageEvent) => {\n\t\t\t\t\t\t\tlet payload = ev.data;\n\t\t\t\t\t\t\tif (typeof payload === \"string\") {\n\t\t\t\t\t\t\t\t// DO NOTHING\n\t\t\t\t\t\t\t} else if (\"byteLength\" in payload) {\n\t\t\t\t\t\t\t\t// arraybuffer, set the realms prototype so its recognized\n\t\t\t\t\t\t\t\tObject.setPrototypeOf(payload, ArrayBuffer.prototype);\n\t\t\t\t\t\t\t} else if (\"arrayBuffer\" in payload) {\n\t\t\t\t\t\t\t\t// blob, convert to arraybuffer\n\t\t\t\t\t\t\t\tpayload = await payload.arrayBuffer();\n\t\t\t\t\t\t\t\tObject.setPrototypeOf(payload, ArrayBuffer.prototype);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcontroller.enqueue(payload);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\twritable: new WritableStream({\n\t\t\t\t\twrite(chunk) {\n\t\t\t\t\t\tbarews.send(chunk);\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t};\n\t\t\tbarews.addEventListener(\"open\", () => {\n\t\t\t\topenResolver({\n\t\t\t\t\treadable: state.readable,\n\t\t\t\t\twritable: state.writable,\n\t\t\t\t\textensions: state.extensions,\n\t\t\t\t\tprotocol: state.protocol,\n\t\t\t\t});\n\t\t\t});\n\t\t\tbarews.addEventListener(\"close\", (ev: CloseEvent) => {\n\t\t\t\tcloseResolver({ code: ev.code, reason: ev.reason });\n\t\t\t});\n\n\t\t\tbarews.addEventListener(\"error\", (ev: Event) => {\n\t\t\t\topenRejector(ev);\n\t\t\t});\n\n\t\t\tsocketstreammap.set(fakeWebSocket, state);\n\t\t\tctx.return(fakeWebSocket);\n\t\t},\n\t});\n\n\tclient.Trap(\"WebSocketStream.prototype.closed\", {\n\t\tget(ctx) {\n\t\t\tconst ws = socketstreammap.get(ctx.this);\n\n\t\t\treturn ws.closed;\n\t\t},\n\t});\n\n\tclient.Trap(\"WebSocketStream.prototype.opened\", {\n\t\tget(ctx) {\n\t\t\tconst ws = socketstreammap.get(ctx.this);\n\n\t\t\treturn ws.opened;\n\t\t},\n\t});\n\n\tclient.Trap(\"WebSocketStream.prototype.url\", {\n\t\tget(ctx) {\n\t\t\tconst ws = socketstreammap.get(ctx.this);\n\n\t\t\treturn ws.url;\n\t\t},\n\t});\n\n\tclient.Proxy(\"WebSocketStream.prototype.close\", {\n\t\tapply(ctx) {\n\t\t\tconst ws = socketstreammap.get(ctx.this);\n\t\t\tif (ctx.args[0]) {\n\t\t\t\tif (ctx.args[0].closeCode === undefined) ctx.args[0].closeCode = 1000;\n\t\t\t\tif (ctx.args[0].reason === undefined) ctx.args[0].reason = \"\";\n\n\t\t\t\treturn ctx.return(\n\t\t\t\t\tws.barews.close(ctx.args[0].closeCode, ctx.args[0].reason)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn ctx.return(ws.barews.close(1000, \"\"));\n\t\t},\n\t});\n}\n","import { config, flagEnabled } from \"@/shared\";\nimport { rewriteUrl, unrewriteUrl } from \"@rewriters/url\";\nimport { ScramjetClient } from \"@client/index\";\n\nexport default function (client: ScramjetClient, self: Self) {\n\tlet worker;\n\tif (self.Worker && flagEnabled(\"syncxhr\", client.url)) {\n\t\tworker = client.natives.construct(\"Worker\", config.files.sync);\n\t}\n\tconst ARGS = Symbol(\"xhr original args\");\n\tconst HEADERS = Symbol(\"xhr headers\");\n\n\tclient.Proxy(\"XMLHttpRequest.prototype.open\", {\n\t\tapply(ctx) {\n\t\t\tif (ctx.args[1]) ctx.args[1] = rewriteUrl(ctx.args[1], client.meta);\n\t\t\tif (ctx.args[2] === undefined) ctx.args[2] = true;\n\t\t\tctx.this[ARGS] = ctx.args;\n\t\t},\n\t});\n\n\tclient.Proxy(\"XMLHttpRequest.prototype.setRequestHeader\", {\n\t\tapply(ctx) {\n\t\t\tconst headers = ctx.this[HEADERS] || (ctx.this[HEADERS] = {});\n\t\t\theaders[ctx.args[0]] = ctx.args[1];\n\t\t},\n\t});\n\n\tclient.Proxy(\"XMLHttpRequest.prototype.send\", {\n\t\tapply(ctx) {\n\t\t\tconst args = ctx.this[ARGS];\n\t\t\tif (!args || args[2]) return;\n\n\t\t\tif (!flagEnabled(\"syncxhr\", client.url)) {\n\t\t\t\tconsole.warn(\"ignoring request - sync xhr disabled in flags\");\n\n\t\t\t\treturn ctx.return(undefined);\n\t\t\t}\n\n\t\t\t// it's a sync request\n\t\t\t// sync xhr to service worker is not supported\n\t\t\t// there's a nice way of polyfilling this though, we can spin on an atomic using sharedarraybuffer. this will maintain the sync behavior\n\n\t\t\t//@ts-ignore\n\t\t\tconst sab = new SharedArrayBuffer(1024, { maxByteLength: 2147483647 });\n\t\t\tconst view = new DataView(sab);\n\n\t\t\tclient.natives.call(\"Worker.prototype.postMessage\", worker, {\n\t\t\t\tsab,\n\t\t\t\targs,\n\t\t\t\theaders: ctx.this[HEADERS],\n\t\t\t\tbody: ctx.args[0],\n\t\t\t});\n\n\t\t\tconst now = performance.now();\n\t\t\twhile (view.getUint8(0) === 0) {\n\t\t\t\tif (performance.now() - now > 1000) {\n\t\t\t\t\tthrow new Error(\"xhr timeout\");\n\t\t\t\t}\n\t\t\t\t/* spin */\n\t\t\t}\n\n\t\t\tconst status = view.getUint16(1);\n\t\t\tconst headersLength = view.getUint32(3);\n\n\t\t\tconst headersab = new Uint8Array(headersLength);\n\t\t\theadersab.set(new Uint8Array(sab.slice(7, 7 + headersLength)));\n\t\t\tconst headers = new TextDecoder().decode(headersab);\n\n\t\t\tconst bodyLength = view.getUint32(7 + headersLength);\n\t\t\tconst bodyab = new Uint8Array(bodyLength);\n\t\t\tbodyab.set(\n\t\t\t\tnew Uint8Array(\n\t\t\t\t\tsab.slice(11 + headersLength, 11 + headersLength + bodyLength)\n\t\t\t\t)\n\t\t\t);\n\t\t\tconst body = new TextDecoder().decode(bodyab);\n\n\t\t\t// these should be using proxies to not leak scram strings but who cares\n\t\t\tclient.RawTrap(ctx.this, \"status\", {\n\t\t\t\tget() {\n\t\t\t\t\treturn status;\n\t\t\t\t},\n\t\t\t});\n\t\t\tclient.RawTrap(ctx.this, \"responseText\", {\n\t\t\t\tget() {\n\t\t\t\t\treturn body;\n\t\t\t\t},\n\t\t\t});\n\t\t\tclient.RawTrap(ctx.this, \"response\", {\n\t\t\t\tget() {\n\t\t\t\t\tif (ctx.this.responseType === \"arraybuffer\") return bodyab.buffer;\n\n\t\t\t\t\treturn body;\n\t\t\t\t},\n\t\t\t});\n\t\t\tclient.RawTrap(ctx.this, \"responseXML\", {\n\t\t\t\tget() {\n\t\t\t\t\tconst parser = new DOMParser();\n\n\t\t\t\t\treturn parser.parseFromString(body, \"text/xml\");\n\t\t\t\t},\n\t\t\t});\n\t\t\tclient.RawTrap(ctx.this, \"getAllResponseHeaders\", {\n\t\t\t\tget() {\n\t\t\t\t\treturn () => headers;\n\t\t\t\t},\n\t\t\t});\n\t\t\tclient.RawTrap(ctx.this, \"getResponseHeader\", {\n\t\t\t\tget() {\n\t\t\t\t\treturn (header: string) => {\n\t\t\t\t\t\tconst re = new RegExp(`^${header}: (.*)$`, \"m\");\n\t\t\t\t\t\tconst match = re.exec(headers);\n\n\t\t\t\t\t\treturn match ? match[1] : null;\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// send has no return value right\n\t\t\tctx.return(undefined);\n\t\t},\n\t});\n\n\tclient.Trap(\"XMLHttpRequest.prototype.responseURL\", {\n\t\tget(ctx) {\n\t\t\treturn unrewriteUrl(ctx.get() as string);\n\t\t},\n\t});\n}\n","import { rewriteJs } from \"@rewriters/js\";\nimport { ScramjetClient } from \"@client/index\";\n\nexport default function (client: ScramjetClient, self: Self) {\n\tclient.Proxy([\"setTimeout\", \"setInterval\"], {\n\t\tapply(ctx) {\n\t\t\tif (ctx.args.length > 0 && typeof ctx.args[0] === \"string\") {\n\t\t\t\tctx.args[0] = rewriteJs(\n\t\t\t\t\tctx.args[0],\n\t\t\t\t\t\"(setTimeout string eval)\",\n\t\t\t\t\tclient.meta\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t});\n}\n","import { config, flagEnabled } from \"@/shared\";\nimport { SCRAMJETCLIENT, SCRAMJETCLIENTNAME } from \"@/symbols\";\nimport { ProxyCtx, ScramjetClient } from \"@client/index\";\n\nenum RewriteType {\n\tInsert = 0,\n\tReplace = 1,\n}\n\ntype Rewrite = {\n\tstart: number;\n} & (\n\t| {\n\t\t\ttype: RewriteType.Insert;\n\t\t\tsize: number;\n\t }\n\t| {\n\t\t\ttype: RewriteType.Replace;\n\t\t\tend: number;\n\t\t\tstr: string;\n\t }\n);\n\nexport type SourceMaps = Record<string, Rewrite[]>;\n\nfunction getEnd(rewrite: Rewrite): number {\n\tif (rewrite.type === RewriteType.Insert) {\n\t\treturn rewrite.start + rewrite.size;\n\t} else if (rewrite.type === RewriteType.Replace) {\n\t\treturn rewrite.end;\n\t}\n\tthrow \"unreachable\";\n}\n\nfunction registerRewrites(\n\tclient: ScramjetClient,\n\tbuf: Array<number>,\n\ttag: string\n) {\n\tconst sourcemap = Uint8Array.from(buf);\n\tconst view = new DataView(sourcemap.buffer);\n\tconst decoder = new TextDecoder(\"utf-8\");\n\n\tconst rewrites: Rewrite[] = [];\n\n\tconst rewritelen = view.getUint32(0, true);\n\tlet cursor = 4;\n\tfor (let i = 0; i < rewritelen; i++) {\n\t\tconst start = view.getUint32(cursor, true);\n\t\tcursor += 4;\n\t\tconst size = view.getUint32(cursor, true);\n\t\tcursor += 4;\n\n\t\tconst type = view.getUint8(cursor) as RewriteType;\n\t\tcursor += 1;\n\n\t\tif (type == RewriteType.Insert) {\n\t\t\trewrites.push({ type, start, size });\n\t\t} else if (type == RewriteType.Replace) {\n\t\t\tconst end = start + size;\n\n\t\t\tconst oldLen = view.getUint32(cursor, true);\n\t\t\tcursor += 4;\n\n\t\t\tconst oldStr = decoder.decode(\n\t\t\t\tsourcemap.subarray(cursor, cursor + oldLen)\n\t\t\t);\n\n\t\t\trewrites.push({ type, start, end, str: oldStr });\n\t\t}\n\t}\n\n\tclient.box.sourcemaps[tag] = rewrites;\n}\n\nconst SCRAMTAG = \"/*scramtag \";\n\nfunction extractTag(fn: string): [string, number, number] | null {\n\t// every function rewritten will have a scramtag comment\n\t// it will look like this:\n\t// function name()[possible whitespace]/*scramtag [index] [tag]*/[possible whitespace]{ ... }\n\n\tlet start = fn.indexOf(SCRAMTAG);\n\t// no scramtag, probably native function or stolen from scramjet\n\tif (start === -1) return null;\n\n\tconst end = fn.indexOf(\"*/\", start);\n\tif (end === -1) {\n\t\tconsole.log(fn, start, end);\n\t\tthrow new Error(\"unreachable\");\n\t}\n\n\tlet tag = fn.substring(start + 2, end).split(\" \");\n\n\tif (\n\t\ttag.length !== 3 ||\n\t\ttag[0] !== \"scramtag\" ||\n\t\t!Number.isSafeInteger(+tag[1])\n\t) {\n\t\tconsole.log(fn, start, end, tag);\n\t\tthrow new Error(\"invalid tag\");\n\t}\n\n\treturn [tag[2], start, +tag[1]];\n}\n\nfunction doUnrewrite(client: ScramjetClient, ctx: ProxyCtx) {\n\tconst stringified: string = ctx.fn.call(ctx.this);\n\n\tconst extracted = extractTag(stringified);\n\tif (!extracted) return ctx.return(stringified);\n\tconst [tag, tagOffset, tagStart] = extracted;\n\n\tconst fnStart = tagStart - tagOffset;\n\tconst fnEnd = fnStart + stringified.length;\n\tconst rewrites = client.box.sourcemaps[tag];\n\n\tif (!rewrites) {\n\t\tconsole.warn(\"failed to get rewrites for tag\", tag);\n\n\t\treturn ctx.return(stringified);\n\t}\n\n\tlet i = 0;\n\t// skip all rewrites in the file before the fn\n\twhile (i < rewrites.length) {\n\t\tif (rewrites[i].start < fnStart) i++;\n\t\telse break;\n\t}\n\n\tlet end = i;\n\twhile (end < rewrites.length) {\n\t\tif (getEnd(rewrites[end]) < fnEnd) end++;\n\t\telse break;\n\t}\n\tconst fnrewrites = rewrites.slice(i, end);\n\n\tlet newString = \"\";\n\tlet lastpos = 0;\n\n\tfor (const rewrite of fnrewrites) {\n\t\tnewString += stringified.slice(lastpos, rewrite.start - fnStart);\n\n\t\tif (rewrite.type === RewriteType.Insert) {\n\t\t\tlastpos = rewrite.start + rewrite.size - fnStart;\n\t\t} else if (rewrite.type === RewriteType.Replace) {\n\t\t\tnewString += rewrite.str;\n\t\t\tlastpos = rewrite.end - fnStart;\n\t\t} else {\n\t\t\tthrow \"unreachable\";\n\t\t}\n\t}\n\n\tnewString += stringified.slice(lastpos);\n\tnewString = newString.replace(`${SCRAMTAG}${tagStart} ${tag}*/`, \"\");\n\n\treturn ctx.return(newString);\n}\n\nexport const enabled = (client: ScramjetClient) =>\n\tflagEnabled(\"sourcemaps\", client.url);\n\nexport default function (client: ScramjetClient, self: Self) {\n\t// every script will push a sourcemap\n\tObject.defineProperty(self, config.globals.pushsourcemapfn, {\n\t\tvalue: (buf: Array<number>, tag: string) => {\n\t\t\tconst before = performance.now();\n\t\t\tregisterRewrites(client, buf, tag);\n\t\t\tdbg.time(client.meta, before, `scramtag parse for ${tag}`);\n\t\t},\n\t\tenumerable: false,\n\t\twritable: false,\n\t\tconfigurable: false,\n\t});\n\n\t// when we rewrite javascript it will make function.toString leak internals\n\t// this can lead to double rewrites which is bad\n\tclient.Proxy(\"Function.prototype.toString\", {\n\t\tapply(ctx) {\n\t\t\tconst before = performance.now();\n\t\t\tdoUnrewrite(client, ctx);\n\t\t\t// dbg.time(client.meta, before, `scramtag unrewrite for ${ctx.fn.name}`);\n\t\t},\n\t});\n}\n","import { BareMuxConnection } from \"@mercuryworkshop/bare-mux\";\nimport { rewriteUrl } from \"@rewriters/url\";\nimport { ScramjetClient } from \"@client/index\";\n\nexport default function (client: ScramjetClient, _self: typeof globalThis) {\n\tclient.Proxy(\"Worker\", {\n\t\tconstruct(ctx) {\n\t\t\tctx.args[0] = rewriteUrl(ctx.args[0], client.meta) + \"?dest=worker\";\n\n\t\t\tif (ctx.args[1] && ctx.args[1].type === \"module\") {\n\t\t\t\tctx.args[0] += \"&type=module\";\n\t\t\t}\n\n\t\t\tconst worker = ctx.call();\n\t\t\tconst conn = new BareMuxConnection();\n\n\t\t\t(async () => {\n\t\t\t\tconst port = await conn.getInnerPort();\n\t\t\t\tclient.natives.call(\n\t\t\t\t\t\"Worker.prototype.postMessage\",\n\t\t\t\t\tworker,\n\t\t\t\t\t{\n\t\t\t\t\t\t$scramjet$type: \"baremuxinit\",\n\t\t\t\t\t\tport,\n\t\t\t\t\t},\n\t\t\t\t\t[port]\n\t\t\t\t);\n\t\t\t})();\n\t\t},\n\t});\n\n\t// sharedworkers can only be constructed from window\n\tclient.Proxy(\"SharedWorker\", {\n\t\tconstruct(ctx) {\n\t\t\tctx.args[0] = rewriteUrl(ctx.args[0], client.meta) + \"?dest=sharedworker\";\n\n\t\t\tif (ctx.args[1] && typeof ctx.args[1] === \"string\")\n\t\t\t\tctx.args[1] = `${client.url.origin}@${ctx.args[1]}`;\n\n\t\t\tif (ctx.args[1] && typeof ctx.args[1] === \"object\") {\n\t\t\t\tif (ctx.args[1].type === \"module\") {\n\t\t\t\t\tctx.args[0] += \"&type=module\";\n\t\t\t\t}\n\n\t\t\t\tif (ctx.args[1].name) {\n\t\t\t\t\tctx.args[1].name = `${client.url.origin}@${ctx.args[1].name}`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst worker = ctx.call();\n\t\t\tconst conn = new BareMuxConnection();\n\n\t\t\t(async () => {\n\t\t\t\tconst port = await conn.getInnerPort();\n\t\t\t\tclient.natives.call(\n\t\t\t\t\t\"MessagePort.prototype.postMessage\",\n\t\t\t\t\tworker.port,\n\t\t\t\t\t{\n\t\t\t\t\t\t$scramjet$type: \"baremuxinit\",\n\t\t\t\t\t\tport,\n\t\t\t\t\t},\n\t\t\t\t\t[port]\n\t\t\t\t);\n\t\t\t})();\n\t\t},\n\t});\n\n\tclient.Proxy(\"Worklet.prototype.addModule\", {\n\t\tapply(ctx) {\n\t\t\tif (ctx.args[0])\n\t\t\t\tctx.args[0] = rewriteUrl(ctx.args[0], client.meta) + \"?dest=worklet\";\n\t\t},\n\t});\n}\n","import { iswindow } from \"@client/entry\";\nimport { SCRAMJETCLIENT } from \"@/symbols\";\nimport { ScramjetClient } from \"@client/index\";\nimport { config } from \"@/shared\";\n// import { argdbg } from \"@client/shared/err\";\nimport { indirectEval } from \"@client/shared/eval\";\n\nexport function createWrapFn(client: ScramjetClient, self: typeof globalThis) {\n\treturn function (identifier: any, strict: boolean) {\n\t\tif (identifier === self.location) return client.locationProxy;\n\t\tif (identifier === self.eval) return indirectEval.bind(client, strict);\n\n\t\tif (iswindow) {\n\t\t\tif (identifier === self.parent) {\n\t\t\t\tif (SCRAMJETCLIENT in self.parent) {\n\t\t\t\t\t// ... then we're in a subframe, and the parent frame is also in a proxy context, so we should return its proxy\n\t\t\t\t\treturn self.parent;\n\t\t\t\t} else {\n\t\t\t\t\t// ... then we should pretend we aren't nested and return the current window\n\t\t\t\t\treturn self;\n\t\t\t\t}\n\t\t\t} else if (identifier === self.top) {\n\t\t\t\t// instead of returning top, we need to return the uppermost parent that's inside a scramjet context\n\t\t\t\tlet current = self;\n\n\t\t\t\tfor (;;) {\n\t\t\t\t\tconst test = current.parent.self;\n\t\t\t\t\tif (test === current) break; // there is no parent, actual or emulated.\n\n\t\t\t\t\t// ... then `test` represents a window outside of the proxy context, and therefore `current` is the topmost window in the proxy context\n\t\t\t\t\tif (!(SCRAMJETCLIENT in test)) break;\n\n\t\t\t\t\t// test is also insde a proxy, so we should continue up the chain\n\t\t\t\t\tcurrent = test;\n\t\t\t\t}\n\n\t\t\t\treturn current;\n\t\t\t}\n\t\t}\n\n\t\treturn identifier;\n\t};\n}\n\nexport const order = 4;\nexport default function (client: ScramjetClient, self: typeof globalThis) {\n\tObject.defineProperty(self, config.globals.wrapfn, {\n\t\tvalue: client.wrapfn,\n\t\twritable: false,\n\t\tconfigurable: false,\n\t\tenumerable: false,\n\t});\n\tObject.defineProperty(self, config.globals.wrappropertyfn, {\n\t\tvalue: function (str) {\n\t\t\tif (\n\t\t\t\tstr === \"location\" ||\n\t\t\t\tstr === \"parent\" ||\n\t\t\t\tstr === \"top\" ||\n\t\t\t\tstr === \"eval\"\n\t\t\t)\n\t\t\t\treturn config.globals.wrappropertybase + str;\n\n\t\t\treturn str;\n\t\t},\n\t\twritable: false,\n\t\tconfigurable: false,\n\t\tenumerable: false,\n\t});\n\tObject.defineProperty(self, config.globals.cleanrestfn, {\n\t\tvalue: function (obj) {\n\t\t\t// TODO\n\t\t},\n\t\twritable: false,\n\t\tconfigurable: false,\n\t\tenumerable: false,\n\t});\n\n\tObject.defineProperty(\n\t\tself.Object.prototype,\n\t\tconfig.globals.wrappropertybase + \"location\",\n\t\t{\n\t\t\tget: function () {\n\t\t\t\t// if (this.location.constructor.toString().includes(\"Location\")) {\n\n\t\t\t\tif (this === self || this === self.document) {\n\t\t\t\t\treturn client.locationProxy;\n\t\t\t\t}\n\n\t\t\t\treturn this.location;\n\t\t\t},\n\t\t\tset(value: any) {\n\t\t\t\tif (this === self || this === self.document) {\n\t\t\t\t\tclient.url = value;\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.location = value;\n\t\t\t},\n\t\t\tconfigurable: false,\n\t\t\tenumerable: false,\n\t\t}\n\t);\n\tObject.defineProperty(\n\t\tself.Object.prototype,\n\t\tconfig.globals.wrappropertybase + \"parent\",\n\t\t{\n\t\t\tget: function () {\n\t\t\t\treturn client.wrapfn(this.parent, false);\n\t\t\t},\n\t\t\tset(value: any) {\n\t\t\t\t// i guess??\n\t\t\t\tthis.parent = value;\n\t\t\t},\n\t\t\tconfigurable: false,\n\t\t\tenumerable: false,\n\t\t}\n\t);\n\tObject.defineProperty(\n\t\tself.Object.prototype,\n\t\tconfig.globals.wrappropertybase + \"top\",\n\t\t{\n\t\t\tget: function () {\n\t\t\t\treturn client.wrapfn(this.top, false);\n\t\t\t},\n\t\t\tset(value: any) {\n\t\t\t\tthis.top = value;\n\t\t\t},\n\t\t\tconfigurable: false,\n\t\t\tenumerable: false,\n\t\t}\n\t);\n\tObject.defineProperty(\n\t\tself.Object.prototype,\n\t\tconfig.globals.wrappropertybase + \"eval\",\n\t\t{\n\t\t\tget: function () {\n\t\t\t\treturn client.wrapfn(this.eval, true);\n\t\t\t},\n\t\t\tset(value: any) {\n\t\t\t\tthis.eval = value;\n\t\t\t},\n\t\t\tconfigurable: false,\n\t\t\tenumerable: false,\n\t\t}\n\t);\n\n\tself.$scramitize = function (v) {\n\t\tif (v === location) debugger;\n\t\tif (iswindow) {\n\t\t\t// if (v === self.parent) debugger;\n\t\t\tif (v === self.top) debugger;\n\t\t}\n\n\t\tif (typeof v === \"string\" && v.includes(\"scramjet\")) debugger;\n\t\tif (typeof v === \"string\" && v.includes(location.origin)) debugger;\n\n\t\treturn v;\n\t};\n\n\t// location = \"...\" can't be rewritten as wrapfn(location) = ..., so instead it will actually be rewritten as\n\t// ((t)=>$scramjet$tryset(location,\"+=\",t)||location+=t)(...);\n\t// it has to be a discrete function because there's always the possibility that \"location\" is a local variable\n\t// we have to use an IIFE to avoid duplicating side-effects in the getter\n\tObject.defineProperty(self, config.globals.trysetfn, {\n\t\tvalue: function (lhs: any, op: string, rhs: any) {\n\t\t\t// TODO: not cross frame safe\n\t\t\tif (lhs instanceof self.Location) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tclient.locationProxy.href = rhs;\n\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\t\twritable: false,\n\t\tconfigurable: false,\n\t});\n}\n","import { ScramjetClient } from \"./client\";\nimport { SourceMaps } from \"./shared/sourcemaps\";\n\nexport class SingletonBox {\n\tclients: ScramjetClient[] = [];\n\tglobals: Map<Self, ScramjetClient> = new Map();\n\tdocuments: Map<Document, ScramjetClient> = new Map();\n\tlocations: Map<Location, ScramjetClient> = new Map();\n\n\tsourcemaps: SourceMaps = {};\n\n\tconstructor(public ownerclient: ScramjetClient) {}\n\n\tregisterClient(client: ScramjetClient, global: Self) {\n\t\tthis.clients.push(client);\n\t\tthis.globals.set(global, client);\n\t\tthis.documents.set(global.document, client);\n\t\tthis.locations.set(global.location, client);\n\t}\n}\n","import { unrewriteUrl } from \"@rewriters/url\";\nimport { ScramjetClient } from \"@client/index\";\n\nexport class ScramjetServiceWorkerRuntime {\n\trecvport: MessagePort;\n\tconstructor(public client: ScramjetClient) {\n\t\t// @ts-ignore\n\t\tself.onconnect = (cevent: MessageEvent) => {\n\t\t\tconst port = cevent.ports[0];\n\t\t\tdbg.log(\"sw\", \"connected\");\n\n\t\t\tport.addEventListener(\"message\", (event) => {\n\t\t\t\tconsole.log(\"sw\", event.data);\n\t\t\t\tif (\"scramjet$type\" in event.data) {\n\t\t\t\t\tif (event.data.scramjet$type === \"init\") {\n\t\t\t\t\t\tthis.recvport = event.data.scramjet$port;\n\t\t\t\t\t\tthis.recvport.postMessage({ scramjet$type: \"init\" });\n\t\t\t\t\t} else {\n\t\t\t\t\t\thandleMessage.call(this, client, event.data);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tport.start();\n\t\t};\n\t}\n\n\thook() {\n\t\t// @ts-ignore\n\t\tthis.client.global.registration = {\n\t\t\t// TODO IMPLEMENT SCOPES\n\t\t\tscope: this.client.url.href,\n\t\t\tactive: {\n\t\t\t\tscriptURL: this.client.url.href,\n\t\t\t\tstate: \"activated\",\n\t\t\t\tonstatechange: null,\n\t\t\t\tonerror: null,\n\n\t\t\t\tpostMessage: () => {},\n\t\t\t\taddEventListener: () => {},\n\t\t\t\tremoveEventListener: () => {},\n\t\t\t\tdispatchEvent: (_e: Event): boolean => {\n\t\t\t\t\treturn false;\n\t\t\t\t},\n\t\t\t},\n\t\t\tshowNotification: async () => {},\n\t\t\tunregister: async () => true,\n\t\t\t//@ts-ignore\n\t\t\tupdate: async () => {},\n\t\t\tinstalling: null,\n\t\t\twaiting: null,\n\t\t};\n\n\t\t// @ts-ignore\n\t\tthis.client.global.ServiceWorkerGlobalScope = this.client.global;\n\t}\n}\n\nfunction handleMessage(\n\tthis: ScramjetServiceWorkerRuntime,\n\tclient: ScramjetClient,\n\tdata: MessageW2R\n) {\n\tconst port = this.recvport;\n\tconst type = data.scramjet$type;\n\tconst token = data.scramjet$token;\n\tconst handlers = client.eventcallbacks.get(self);\n\n\tif (type === \"fetch\") {\n\t\tdbg.log(\"ee\", data);\n\t\tconst fetchhandlers = handlers.filter((event) => event.event === \"fetch\");\n\t\tif (!fetchhandlers) return;\n\n\t\tfor (const handler of fetchhandlers) {\n\t\t\tconst request = data.scramjet$request;\n\n\t\t\tconst Request = client.natives[\"Request\"];\n\t\t\tconst fakeRequest = new Request(unrewriteUrl(request.url), {\n\t\t\t\tbody: request.body,\n\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\tmethod: request.method,\n\t\t\t\tmode: \"same-origin\",\n\t\t\t});\n\n\t\t\tObject.defineProperty(fakeRequest, \"destination\", {\n\t\t\t\tvalue: request.destinitation,\n\t\t\t});\n\n\t\t\t// TODO: clean up, maybe put into a class\n\t\t\tconst fakeFetchEvent: any = new Event(\"fetch\");\n\t\t\tfakeFetchEvent.request = fakeRequest;\n\t\t\tlet responded = false;\n\t\t\tfakeFetchEvent.respondWith = (response: Response | Promise<Response>) => {\n\t\t\t\tresponded = true;\n\t\t\t\t(async () => {\n\t\t\t\t\tresponse = await response;\n\t\t\t\t\tconst message: MessageR2W = {\n\t\t\t\t\t\tscramjet$type: \"fetch\",\n\t\t\t\t\t\tscramjet$token: token,\n\t\t\t\t\t\tscramjet$response: {\n\t\t\t\t\t\t\tbody: response.body,\n\t\t\t\t\t\t\theaders: Array.from(response.headers.entries()),\n\t\t\t\t\t\t\tstatus: response.status,\n\t\t\t\t\t\t\tstatusText: response.statusText,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\tdbg.log(\"sw\", \"responding\", message);\n\t\t\t\t\tport.postMessage(message, [response.body]);\n\t\t\t\t})();\n\t\t\t};\n\n\t\t\tdbg.log(\"to fn\", fakeFetchEvent);\n\t\t\thandler.proxiedCallback(trustEvent(fakeFetchEvent));\n\t\t\tif (!responded) {\n\t\t\t\tconsole.log(\"sw\", \"no response\");\n\t\t\t\tport.postMessage({\n\t\t\t\t\tscramjet$type: \"fetch\",\n\t\t\t\t\tscramjet$token: token,\n\t\t\t\t\tscramjet$response: false,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction trustEvent(event: Event): Event {\n\treturn new Proxy(event, {\n\t\tget(target, prop, _reciever) {\n\t\t\tif (prop === \"isTrusted\") return true;\n\n\t\t\treturn Reflect.get(target, prop);\n\t\t},\n\t});\n}\n\nexport type TransferrableResponse = {\n\tbody: ReadableStream;\n\theaders: [string, string][];\n\tstatus: number;\n\tstatusText: string;\n};\n\nexport type TransferrableRequest = {\n\tbody: ReadableStream;\n\theaders: [string, string][];\n\tdestinitation: RequestDestination;\n\tmethod: Request[\"method\"];\n\tmode: Request[\"mode\"];\n\turl: string;\n};\n\ntype FetchResponseMessage = {\n\tscramjet$type: \"fetch\";\n\tscramjet$response: TransferrableResponse;\n};\n\ntype FetchRequestMessage = {\n\tscramjet$type: \"fetch\";\n\tscramjet$request: TransferrableRequest;\n};\n\n// r2w = runtime to (service) worker\n\ntype MessageTypeR2W = FetchResponseMessage;\ntype MessageTypeW2R = FetchRequestMessage;\n\ntype MessageCommon = {\n\tscramjet$type: string;\n\tscramjet$token: number;\n};\n\nexport type MessageR2W = MessageCommon & MessageTypeR2W;\nexport type MessageW2R = MessageCommon &\n\tMessageTypeW2R & { scramjet$port?: MessagePort };\n","import { rewriteUrl } from \"../../shared/rewriters/url\";\nimport { ScramjetClient } from \"@client/index\";\n\nexport default function (client: ScramjetClient) {\n\tclient.Proxy(\"importScripts\", {\n\t\tapply(ctx) {\n\t\t\tfor (const i in ctx.args) {\n\t\t\t\tctx.args[i] = rewriteUrl(ctx.args[i], client.meta);\n\t\t\t}\n\t\t},\n\t});\n}\n","import {\n\tcodecDecode,\n\tcodecEncode,\n\tconfig,\n\tloadCodecs,\n\tsetConfig,\n} from \"@/shared/index\";\nimport { ScramjetConfig, ScramjetInitConfig, ScramjetDB } from \"@/types\";\nimport { ScramjetFrame } from \"@/controller/frame\";\nimport { MessageW2C } from \"@/worker\";\nimport { openDB, IDBPDatabase } from \"idb\";\nimport {\n\tScramjetEvents,\n\tScramjetGlobalDownloadEvent,\n\tScramjetGlobalEvent,\n\tScramjetGlobalEvents,\n} from \"@client/events\";\n\nexport class ScramjetController extends EventTarget {\n\tprivate db: IDBPDatabase<ScramjetDB>;\n\n\tconstructor(config: Partial<ScramjetInitConfig>) {\n\t\tsuper();\n\t\t// sane ish defaults\n\t\tconst defaultConfig: ScramjetInitConfig = {\n\t\t\t// wisp: \"/wisp/\",\n\t\t\tprefix: \"/scramjet/\",\n\t\t\tglobals: {\n\t\t\t\twrapfn: \"$scramjet$wrap\",\n\t\t\t\twrappropertybase: \"$scramjet__\",\n\t\t\t\twrappropertyfn: \"$scramjet$prop\",\n\t\t\t\tcleanrestfn: \"$scramjet$clean\",\n\t\t\t\timportfn: \"$scramjet$import\",\n\t\t\t\trewritefn: \"$scramjet$rewrite\",\n\t\t\t\tmetafn: \"$scramjet$meta\",\n\t\t\t\tsetrealmfn: \"$scramjet$setrealm\",\n\t\t\t\tpushsourcemapfn: \"$scramjet$pushsourcemap\",\n\t\t\t\ttrysetfn: \"$scramjet$tryset\",\n\t\t\t\ttemplocid: \"$scramjet$temploc\",\n\t\t\t\ttempunusedid: \"$scramjet$tempunused\",\n\t\t\t},\n\t\t\tfiles: {\n\t\t\t\twasm: \"/scramjet.wasm.wasm\",\n\t\t\t\tall: \"/scramjet.all.js\",\n\t\t\t\tsync: \"/scramjet.sync.js\",\n\t\t\t},\n\t\t\tflags: {\n\t\t\t\tserviceworkers: false,\n\t\t\t\tsyncxhr: false,\n\t\t\t\tstrictRewrites: true,\n\t\t\t\trewriterLogs: false,\n\t\t\t\tcaptureErrors: true,\n\t\t\t\tcleanErrors: false,\n\t\t\t\tscramitize: false,\n\t\t\t\tsourcemaps: true,\n\t\t\t\tdestructureRewrites: false,\n\t\t\t\tinterceptDownloads: false,\n\t\t\t\tallowInvalidJs: true,\n\t\t\t\tallowFailedIntercepts: true,\n\t\t\t},\n\t\t\tsiteFlags: {},\n\t\t\tcodec: {\n\t\t\t\tencode: (url: string) => {\n\t\t\t\t\tif (!url) return url;\n\n\t\t\t\t\treturn encodeURIComponent(url);\n\t\t\t\t},\n\t\t\t\tdecode: (url: string) => {\n\t\t\t\t\tif (!url) return url;\n\n\t\t\t\t\treturn decodeURIComponent(url);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\n\t\tconst deepMerge = (target: any, source: any): any => {\n\t\t\tfor (const key in source) {\n\t\t\t\tif (source[key] instanceof Object && key in target) {\n\t\t\t\t\tObject.assign(source[key], deepMerge(target[key], source[key]));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn Object.assign(target || {}, source);\n\t\t};\n\n\t\tconst newConfig = deepMerge(defaultConfig, config);\n\t\tnewConfig.codec.encode = newConfig.codec.encode.toString();\n\t\tnewConfig.codec.decode = newConfig.codec.decode.toString();\n\t\tsetConfig(newConfig as ScramjetConfig);\n\t}\n\n\tasync init(): Promise<void> {\n\t\tloadCodecs();\n\n\t\tawait this.openIDB();\n\t\tnavigator.serviceWorker.controller?.postMessage({\n\t\t\tscramjet$type: \"loadConfig\",\n\t\t\tconfig,\n\t\t});\n\t\tdbg.log(\"config loaded\");\n\n\t\tnavigator.serviceWorker.addEventListener(\"message\", (e) => {\n\t\t\tif (!(\"scramjet$type\" in e.data)) return;\n\t\t\tconst data: MessageW2C = e.data;\n\n\t\t\tif (data.scramjet$type === \"download\") {\n\t\t\t\tthis.dispatchEvent(new ScramjetGlobalDownloadEvent(data.download));\n\t\t\t}\n\t\t});\n\t}\n\n\tcreateFrame(frame?: HTMLIFrameElement): ScramjetFrame {\n\t\tif (!frame) {\n\t\t\tframe = document.createElement(\"iframe\");\n\t\t}\n\n\t\treturn new ScramjetFrame(this, frame);\n\t}\n\n\tencodeUrl(url: string | URL): string {\n\t\tif (typeof url === \"string\") url = new URL(url);\n\n\t\tif (url.protocol != \"http:\" && url.protocol != \"https:\") {\n\t\t\treturn url.href;\n\t\t}\n\n\t\tconst encodedHash = codecEncode(url.hash.slice(1));\n\t\tconst realHash = encodedHash ? \"#\" + encodedHash : \"\";\n\t\turl.hash = \"\";\n\n\t\treturn config.prefix + codecEncode(url.href) + realHash;\n\t}\n\n\tdecodeUrl(url: string | URL) {\n\t\tif (url instanceof URL) url = url.toString();\n\t\tconst prefixed = location.origin + config.prefix;\n\n\t\treturn codecDecode(url.slice(prefixed.length));\n\t}\n\n\tasync openIDB(): Promise<IDBPDatabase<ScramjetDB>> {\n\t\tconst db = await openDB<ScramjetDB>(\"$scramjet\", 1, {\n\t\t\tupgrade(db) {\n\t\t\t\tif (!db.objectStoreNames.contains(\"config\")) {\n\t\t\t\t\tdb.createObjectStore(\"config\");\n\t\t\t\t}\n\t\t\t\tif (!db.objectStoreNames.contains(\"cookies\")) {\n\t\t\t\t\tdb.createObjectStore(\"cookies\");\n\t\t\t\t}\n\t\t\t\tif (!db.objectStoreNames.contains(\"redirectTrackers\")) {\n\t\t\t\t\tdb.createObjectStore(\"redirectTrackers\");\n\t\t\t\t}\n\t\t\t\tif (!db.objectStoreNames.contains(\"referrerPolicies\")) {\n\t\t\t\t\tdb.createObjectStore(\"referrerPolicies\");\n\t\t\t\t}\n\t\t\t\tif (!db.objectStoreNames.contains(\"publicSuffixList\")) {\n\t\t\t\t\tdb.createObjectStore(\"publicSuffixList\");\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\n\t\tthis.db = db;\n\t\tawait this.#saveConfig();\n\t\treturn db;\n\t}\n\n\tasync #saveConfig() {\n\t\tif (!this.db) {\n\t\t\tconsole.error(\"Store not ready!\");\n\n\t\t\treturn;\n\t\t}\n\t\tawait this.db.put(\"config\", config, \"config\");\n\t}\n\n\tasync modifyConfig(newconfig: Partial<ScramjetInitConfig>) {\n\t\tsetConfig(Object.assign({}, config, newconfig));\n\t\tloadCodecs();\n\n\t\tawait this.#saveConfig();\n\t\tnavigator.serviceWorker.controller?.postMessage({\n\t\t\tscramjet$type: \"loadConfig\",\n\t\t\tconfig,\n\t\t});\n\t}\n\n\taddEventListener<K extends keyof ScramjetGlobalEvents>(\n\t\ttype: K,\n\t\tlistener: (event: ScramjetGlobalEvents[K]) => void,\n\t\toptions?: boolean | AddEventListenerOptions\n\t): void {\n\t\tsuper.addEventListener(type, listener as EventListener, options);\n\t}\n}\n","/**\n * @fileoverview Contains abstractions for using Scrmajet under an iframe.\n */\n\nimport { ScramjetController } from \"@/controller/index\";\nimport type { ScramjetClient } from \"@client/index\";\nimport type { ScramjetEvent, ScramjetEvents } from \"@client/events\";\nimport { SCRAMJETCLIENT, SCRAMJETFRAME } from \"@/symbols\";\nfunction createFrameId() {\n\treturn `${Array(8)\n\t\t.fill(0)\n\t\t.map(() => Math.floor(Math.random() * 36).toString(36))\n\t\t.join(\"\")}`;\n}\n\n/**\n * An abstraction over proxy iframe creation, which lets you manage instances of Scramjet and not have to worry about the proxy internals, since everything you need is already proxified.\n *\n * @example\n * ```typescript\n * const { ScramjetController } = $scramjetLoadController();\n * const scramjet = new ScramjetController({ prefix: \"/scramjet/\" });\n * await scramjet.init();\n *\n * const frame = scramjet.createFrame();\n * document.body.appendChild(frame.frame);\n *\n * // Navigate to a URL\n * frame.go(\"https://example.com\");\n *\n * // Listen for proxified navigation events\n * frame.addEventListener(\"urlchange\", (e) => {\n * console.log(\"URL changed to:\", e.url);\n * });\n *\n * // Go back\n * frame.back();\n * // Go forward\n * frame.forward();\n * // Reload page\n * frame.reload();\n * ```\n */\nexport class ScramjetFrame extends EventTarget {\n\t/**\n\t * Create a ScramjetFrame instance. You likely won't need to interact the {@link ScramjetFrame.constructor | constructor} directly.\n\t * You can instead use {@link ScramjetController.createFrame} on your existing `ScramjetController`.\n\t *\n\t * @param controller The `ScramjetController` instance that manages this frame with.\n\t * @param frame The frame to be controlled for you under Scramjet.\n\t */\n\tconstructor(\n\t\tprivate controller: ScramjetController,\n\t\tpublic frame: HTMLIFrameElement\n\t) {\n\t\tsuper();\n\t\tframe.name = createFrameId();\n\t\tframe[SCRAMJETFRAME] = this;\n\t}\n\n\t/**\n\t * Returns the {@link ScramjetClient} instance running inside the iframe's contentWindow.\n\t *\n\t * @returns The `ScramjetClient` instance.\n\t */\n\tget client(): ScramjetClient {\n\t\treturn this.frame.contentWindow.window[SCRAMJETCLIENT];\n\t}\n\n\t/**\n\t * Returns the proxified URL.\n\t *\n\t * @returns The proxified URL.\n\t */\n\tget url(): URL {\n\t\treturn this.client.url;\n\t}\n\n\t/**\n\t * Navigates the iframe to a new URL under Scramjet.\n\t *\n\t * @example\n\t * ```typescript\n\t * frame.go(\"https://example.net\");\n\t * ```\n\t *\n\t * @param url A real URL to navigate to\n\t */\n\tgo(url: string | URL) {\n\t\tif (url instanceof URL) url = url.toString();\n\n\t\tdbg.log(\"navigated to\", url);\n\n\t\tthis.frame.src = this.controller.encodeUrl(url);\n\t}\n\n\t/**\n\t * Goes backwards in the browser history.\n\t */\n\tback() {\n\t\tthis.frame.contentWindow?.history.back();\n\t}\n\n\t/**\n\t * Goes forward in the browser history.\n\t */\n\tforward() {\n\t\tthis.frame.contentWindow?.history.forward();\n\t}\n\n\t/**\n\t * Reloads the iframe.\n\t */\n\treload() {\n\t\tthis.frame.contentWindow?.location.reload();\n\t}\n\n\t/**\n\t * Binds event listeners to listen for proxified navigation events in Scramjet.\n\t *\n\t * @example\n\t * ```typescript\n\t * // Listen for URL changes\n\t * frame.addEventListener(\"urlchange\", (event) => {\n\t * console.log(\"URL changed:\", event.url);\n\t * document.title = event.url; // Update page title\n\t * });\n\t *\n\t * // Listen for navigation events\n\t * frame.addEventListener(\"navigate\", (event) => {\n\t * console.log(\"Navigating to:\", event.url);\n\t * });\n\t * ```\n\t *\n\t * @param type Type of event to listen for.\n\t * @param listener Event listener to dispatch.\n\t * @param options Options for the event listener.\n\t */\n\taddEventListener<K extends keyof ScramjetEvents>(\n\t\ttype: K,\n\t\tlistener: (event: ScramjetEvents[K]) => void,\n\t\toptions?: boolean | AddEventListenerOptions\n\t): void {\n\t\tsuper.addEventListener(type, listener as EventListener, options);\n\t}\n}\n","export * from \"./frame\";\nexport * from \"./controller\";\nconsole.warn(\n\t\"you are using the last version of scramjet v1, if possible, please upgrade to v2 for better performance and more features\"\n);\n","/// <reference types=\"@rspack/core/module\" />\n\nimport type { ScramjetVersionInfo } from \"./types\";\n\n/**\n * Hash of the current commit in `MercuryWorkshop/scramjet` Scramjet was built from.\n */\ndeclare const COMMITHASH: string;\n/**\n * Semantic version of the current Scramjet build.\n */\ndeclare const VERSION: string;\n\n/**\n * @category Window Context\n */\nexport type { ScramjetFlags } from \"./types\";\n\n/**\n * @category Window Context\n */\nexport type { ScramjetInitConfig } from \"./types\";\n\n/**\n * @category Window Context\n */\nexport type { ScramjetGlobalEvent } from \"./client/events\";\n\n/**\n * @category Window Context\n */\nexport type { ScramjetGlobalDownloadEvent } from \"./client/events\";\n\n/**\n * @category Window Context\n */\nexport type { ScramjetGlobalEvents } from \"./client/events\";\n\n/**\n * @category Window Context\n */\nexport type { ScramjetDownload } from \"./client/events\";\n\n/**\n * @category Window Context\n */\nexport type { ScramjetEvent } from \"./client/events\";\n\n/**\n * @category Window Context\n */\nexport type { ScramjetEvents } from \"./client/events\";\n\n/**\n * @category Window Context\n */\nexport type { NavigateEvent } from \"./client/events\";\n\n/**\n * @category Window Context\n */\nexport type { UrlChangeEvent } from \"./client/events\";\n\n/**\n * @category Window Context\n */\nexport type { ScramjetContextEvent } from \"./client/events\";\n\n/**\n * @category Window Context\n */\nexport type { ScramjetController } from \"./controller\";\n\n/**\n * @category Window Context\n */\nexport type { ScramjetFrame } from \"./controller/frame\";\n\n/**\n * @category Window Context\n */\nexport type { ScramjetClient } from \"./client\";\n\n/**\n * @category Service Worker Context\n */\nexport type { ScramjetServiceWorker } from \"./worker\";\n\n/**\n * @fileoverview Scramjet Entry Point. This module contain global constants and factory functions to load the APIs in the bundle.\n *\n * @categoryDescription Window Context\n * APIs for the main window context, which includes creating Scramjet Frames and the Controller for managing the Scramjet proxy behavior in the SW.\n * @categoryDescription Service Worker Context\n * APIs designed for the service worker context, where the core logic resides. These are the essentials and include the the `ScramjetServiceWorker`.\n */\n\n/**\n * Factory function that creates the `ScramjetController` class.\n *\n * @returns The `ScramjetController` class.\n *\n * @example\n * ```typescript\n * const { ScramjetController } = $scramjetLoadController();\n *\n * const scramjet = new ScramjetController({\n * prefix: \"/scramjet/\"\n * });\n *\n * await scramjet.init();\n *\n * const frame = scramjet.createFrame();\n * document.body.appendChild(frame.frame);\n * frame.navigate(\"https://example.com\");\n * ```\n *\n * @category Window Context\n */\nexport function $scramjetLoadController() {\n\treturn require(\"./controller/index\");\n}\n/**\n * Factory function that creates the `ScramjetClient` for controlling sandboxing.\n *\n * @returns The `ScramjetClient` class.\n *\n * @example\n * ```typescript\n * const ScramjetClient = $scramjetLoadClient();\n *\n * const scramjetClient = new ScramjetClient.ScramjetClient();\n * ```\n * @category Window Context\n */\nexport function $scramjetLoadClient() {\n\treturn require(\"./client/entry\");\n}\n/**\n * Factory function that creates the `ScramjetServiceWorker` class.\n *\n * @returns The `ScramjetServiceWorker` class.\n *\n * Plain SW example\n * @example\n * ```typescript\n * // In your Service Worker\n * const { ScramjetServiceWorker } = $scramjetLoadWorker();\n *\n * const scramjet = new ScramjetServiceWorker();\n *\n * self.addEventListener(\"fetch\", async (ev) => {\n * await scramjet.loadConfig();\n *\n * if (scramjet.route(ev)) {\n * ev.respondWith(scramjet.fetch(ev));\n * }\n * });\n * ```\n *\n * Workbox-powered SW routing example\n * @example\n * ```typescript\n * // In your Service Worker (ensure you are using a bundler for Workbox)\n * // This is more useful for a webOS or if you have Offline PWA support on your proxy site\n * import { registerRoute } from 'workbox-routing';\n *\n * const { ScramjetServiceWorker } = $scramjetLoadWorker();\n *\n * const scramjet = new ScramjetServiceWorker();\n *\n * registerRoute(\n * ({ request }) => {\n * return scramjet.route({ request });\n * },\n * async ({ event }) => {\n * await scramjet.loadConfig();\n *\n * return scramjet.fetch(event);\n * }\n * );\n * ```\n *\n * @category Service Worker Context\n */\nexport function $scramjetLoadWorker() {\n\treturn require(\"./worker/index\");\n}\n\nglobalThis.$scramjetRequire = function (path: string) {\n\treturn require(path);\n};\n\n/**\n * Version information for the current Scramjet build.\n *\n * @category Window Context\n */\nexport const $scramjetVersion: ScramjetVersionInfo = {\n\tbuild: COMMITHASH,\n\tversion: VERSION,\n};\n\nglobalThis.$scramjetLoadController = $scramjetLoadController;\nglobalThis.$scramjetLoadClient = $scramjetLoadClient;\nglobalThis.$scramjetLoadWorker = $scramjetLoadWorker;\nglobalThis.$scramjetVersion = $scramjetVersion;\n\nif (\"document\" in globalThis && document?.currentScript) {\n\tdocument.currentScript.remove();\n}\n","// import { flagEnabled } from \"@/shared\";\nimport type { URLMeta } from \"@rewriters/url\";\n\nconst logfuncs = {\n\tlog: console.log,\n\twarn: console.warn,\n\terror: console.error,\n\tdebug: console.debug,\n\tinfo: console.info,\n};\n\nexport default {\n\tfmt: function (severity: string, message: string, ...args: any[]) {\n\t\tconst old = Error.prepareStackTrace;\n\n\t\tError.prepareStackTrace = (_, stack) => {\n\t\t\tstack.shift(); // stack();\n\t\t\tstack.shift(); // fmt();\n\t\t\tstack.shift();\n\n\t\t\tlet fmt = \"\";\n\t\t\tfor (let i = 1; i < Math.min(2, stack.length); i++) {\n\t\t\t\tif (stack[i].getFunctionName()) {\n\t\t\t\t\t// const f = stack[i].getThis()?.constructor?.name;\n\t\t\t\t\t// if (f) fmt += `${f}.`\n\t\t\t\t\tfmt += `${stack[i].getFunctionName()} -> ` + fmt;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfmt += stack[0].getFunctionName() || \"Anonymous\";\n\n\t\t\treturn fmt;\n\t\t};\n\n\t\tconst fmt = (function stack() {\n\t\t\ttry {\n\t\t\t\tthrow new Error();\n\t\t\t} catch (e) {\n\t\t\t\treturn e.stack;\n\t\t\t}\n\t\t})();\n\n\t\tError.prepareStackTrace = old;\n\n\t\tthis.print(severity, fmt, message, ...args);\n\t},\n\tprint(severity: string, tag: string, message: string, ...args: any[]) {\n\t\tconst fn = logfuncs[severity] || logfuncs.log;\n\t\tconst bg = {\n\t\t\tlog: \"#000\",\n\t\t\twarn: \"#f80\",\n\t\t\terror: \"#f00\",\n\t\t\tdebug: \"transparent\",\n\t\t}[severity];\n\t\tconst fg = {\n\t\t\tlog: \"#fff\",\n\t\t\twarn: \"#fff\",\n\t\t\terror: \"#fff\",\n\t\t\tdebug: \"gray\",\n\t\t}[severity];\n\t\tconst padding = {\n\t\t\tlog: 2,\n\t\t\twarn: 4,\n\t\t\terror: 4,\n\t\t\tdebug: 0,\n\t\t}[severity];\n\n\t\tfn(\n\t\t\t`%c${tag}%c ${message}`,\n\t\t\t`\n \tbackground-color: ${bg};\n \tcolor: ${fg};\n \tpadding: ${padding}px;\n \tfont-weight: bold;\n \tfont-family: monospace;\n \tfont-size: 0.9em;\n `,\n\t\t\t`${severity === \"debug\" ? \"color: gray\" : \"\"}`,\n\t\t\t...args\n\t\t);\n\t},\n\tlog: function (message: string, ...args: any[]) {\n\t\tthis.fmt(\"log\", message, ...args);\n\t},\n\twarn: function (message: string, ...args: any[]) {\n\t\tthis.fmt(\"warn\", message, ...args);\n\t},\n\terror: function (message: string, ...args: any[]) {\n\t\tthis.fmt(\"error\", message, ...args);\n\t},\n\tdebug: function (message: string, ...args: any[]) {\n\t\tthis.fmt(\"debug\", message, ...args);\n\t},\n\ttime(meta: URLMeta, before: number, type: string) {\n\t\tif (1) return;\n\t\tconst after = performance.now();\n\t\tconst duration = after - before;\n\n\t\tlet timespan: string;\n\t\tif (duration < 1) {\n\t\t\ttimespan = \"BLAZINGLY FAST\";\n\t\t} else if (duration < 500) {\n\t\t\ttimespan = \"decent speed\";\n\t\t} else {\n\t\t\ttimespan = \"really slow\";\n\t\t}\n\t\tthis.print(\n\t\t\t\"debug\",\n\t\t\t\"[time]\",\n\t\t\t`${type} was ${timespan} (${duration.toFixed(2)}ms)`\n\t\t);\n\t},\n};\n","// thnank you node unblocker guy\nimport parse from \"set-cookie-parser\";\n\nexport type Cookie = {\n\tname: string;\n\tvalue: string;\n\tpath?: string;\n\texpires?: string;\n\tmaxAge?: number;\n\tdomain?: string;\n\tsecure?: boolean;\n\thttpOnly?: boolean;\n\tsameSite?: \"strict\" | \"lax\" | \"none\";\n};\n\nexport class CookieStore {\n\tprivate cookies: Record<string, Cookie> = {};\n\n\tsetCookies(cookies: string[], url: URL) {\n\t\tfor (const str of cookies) {\n\t\t\tconst parsed = parse(str);\n\t\t\tconst domain = parsed.domain;\n\t\t\tconst sameSite = parsed.sameSite;\n\t\t\tconst cookie: Cookie = {\n\t\t\t\tdomain,\n\t\t\t\tsameSite,\n\t\t\t\t...parsed[0],\n\t\t\t};\n\n\t\t\tif (!cookie.domain) cookie.domain = \".\" + url.hostname;\n\t\t\tif (!cookie.domain.startsWith(\".\")) cookie.domain = \".\" + cookie.domain;\n\t\t\tif (!cookie.path) cookie.path = \"/\";\n\t\t\tif (!cookie.sameSite) cookie.sameSite = \"lax\";\n\t\t\tif (cookie.expires) cookie.expires = cookie.expires.toString();\n\n\t\t\tconst id = `${cookie.domain}@${cookie.path}@${cookie.name}`;\n\t\t\tthis.cookies[id] = cookie;\n\t\t}\n\t}\n\n\tgetCookies(url: URL, fromJs: boolean): string {\n\t\tconst now = new Date();\n\t\tconst cookies = Object.values(this.cookies);\n\n\t\tconst validCookies: Cookie[] = [];\n\n\t\tfor (const cookie of cookies) {\n\t\t\tif (cookie.expires && new Date(cookie.expires) < now) {\n\t\t\t\tdelete this.cookies[`${cookie.domain}@${cookie.path}@${cookie.name}`];\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (cookie.secure && url.protocol !== \"https:\") continue;\n\t\t\tif (cookie.httpOnly && fromJs) continue;\n\t\t\tif (!url.pathname.startsWith(cookie.path)) continue;\n\n\t\t\tif (cookie.domain.startsWith(\".\")) {\n\t\t\t\tif (!url.hostname.endsWith(cookie.domain.slice(1))) continue;\n\t\t\t}\n\n\t\t\tvalidCookies.push(cookie);\n\t\t}\n\n\t\treturn validCookies\n\t\t\t.map((cookie) => `${cookie.name}=${cookie.value}`)\n\t\t\t.join(\"; \");\n\t}\n\n\tload(cookies: string) {\n\t\tif (typeof cookies === \"object\") return cookies;\n\t\tthis.cookies = JSON.parse(cookies);\n\t}\n\n\tdump(): string {\n\t\treturn JSON.stringify(this.cookies);\n\t}\n}\n","export class ScramjetHeaders {\n\theaders = {};\n\n\tset(key: string, v: string) {\n\t\tthis.headers[key.toLowerCase()] = v;\n\t}\n}\n","import { CookieStore } from \"@/shared/cookie\";\nimport { rewriteCss } from \"@rewriters/css\";\nimport { rewriteHtml, rewriteSrcset } from \"@rewriters/html\";\nimport { rewriteUrl, unrewriteBlob, URLMeta } from \"@rewriters/url\";\n\nexport const htmlRules: {\n\t[key: string]: \"*\" | string[] | ((...any: any[]) => string | null);\n\tfn: (value: string, meta: URLMeta, cookieStore: CookieStore) => string | null;\n}[] = [\n\t{\n\t\tfn: (value: string, meta: URLMeta) => {\n\t\t\treturn rewriteUrl(value, meta);\n\t\t},\n\n\t\t// url rewrites\n\t\tsrc: [\"embed\", \"script\", \"img\", \"frame\", \"source\", \"input\", \"track\"],\n\t\thref: [\"a\", \"link\", \"area\", \"use\", \"image\"],\n\t\tdata: [\"object\"],\n\t\taction: [\"form\"],\n\t\tformaction: [\"button\", \"input\", \"textarea\", \"submit\"],\n\t\tposter: [\"video\"],\n\t\t\"xlink:href\": [\"image\"],\n\t},\n\t{\n\t\tfn: (value: string, meta: URLMeta) => {\n\t\t\tlet url = rewriteUrl(value, meta);\n\t\t\t// if (meta.topFrameName)\n\t\t\t// \turl += `?topFrame=${meta.topFrameName}&parentFrame=${meta.parentFrameName}`;\n\n\t\t\treturn url;\n\t\t},\n\t\tsrc: [\"iframe\"],\n\t},\n\t{\n\t\t// is this a good idea?\n\t\tfn: (value: string, meta: URLMeta) => {\n\t\t\treturn null;\n\t\t},\n\t\tsandbox: [\"iframe\"],\n\t},\n\t{\n\t\tfn: (value: string, meta: URLMeta) => {\n\t\t\tif (value.startsWith(\"blob:\")) {\n\t\t\t\t// for media elements specifically they must take the original blob\n\t\t\t\t// because they can't be fetch'd\n\t\t\t\treturn unrewriteBlob(value);\n\t\t\t}\n\n\t\t\treturn rewriteUrl(value, meta);\n\t\t},\n\t\tsrc: [\"video\", \"audio\"],\n\t},\n\t{\n\t\tfn: () => \"\",\n\n\t\tintegrity: [\"script\", \"link\"],\n\t},\n\t{\n\t\tfn: () => null,\n\n\t\t// csp stuff that must be deleted\n\t\tnonce: \"*\",\n\t\tcsp: [\"iframe\"],\n\t\tcredentialless: [\"iframe\"],\n\t},\n\t{\n\t\tfn: (value: string, meta: URLMeta) => rewriteSrcset(value, meta),\n\n\t\t// srcset\n\t\tsrcset: [\"img\", \"source\"],\n\t\timagesrcset: [\"link\"],\n\t},\n\t{\n\t\tfn: (value: string, meta: URLMeta, cookieStore: CookieStore) =>\n\t\t\trewriteHtml(\n\t\t\t\tvalue,\n\t\t\t\tcookieStore,\n\t\t\t\t{\n\t\t\t\t\t// for srcdoc origin is the origin of the page that the iframe is on. base and path get dropped\n\t\t\t\t\torigin: new URL(meta.origin.origin),\n\t\t\t\t\tbase: new URL(meta.origin.origin),\n\t\t\t\t},\n\t\t\t\ttrue\n\t\t\t),\n\n\t\t// srcdoc\n\t\tsrcdoc: [\"iframe\"],\n\t},\n\t{\n\t\tfn: (value: string, meta: URLMeta) => rewriteCss(value, meta),\n\t\tstyle: \"*\",\n\t},\n\t{\n\t\tfn: (value: string, meta: URLMeta) => {\n\t\t\tif (value === \"_top\" || value === \"_unfencedTop\")\n\t\t\t\treturn meta.topFrameName;\n\t\t\telse if (value === \"_parent\") return meta.parentFrameName;\n\t\t\telse return value;\n\t\t},\n\t\ttarget: [\"a\", \"base\"],\n\t},\n];\n","import { ScramjetConfig, ScramjetFlags } from \"@/types\";\n\nexport * from \"./cookie\";\nexport * from \"./headers\";\nexport * from \"./htmlRules\";\nexport * from \"./rewriters\";\nexport * from \"./security\";\n\nexport let codecEncode: (input: string) => string;\nexport let codecDecode: (input: string) => string;\n\nconst nativeFunction = Function;\nexport function loadCodecs() {\n\tcodecEncode = nativeFunction(`return ${config.codec.encode}`)() as any;\n\tcodecDecode = nativeFunction(`return ${config.codec.decode}`)() as any;\n}\n\nexport function flagEnabled(flag: keyof ScramjetFlags, url: URL): boolean {\n\tconst value = config.flags[flag];\n\tfor (const regex in config.siteFlags) {\n\t\tconst partialflags = config.siteFlags[regex];\n\t\tif (new RegExp(regex).test(url.href) && flag in partialflags) {\n\t\t\treturn partialflags[flag];\n\t\t}\n\t}\n\n\treturn value;\n}\n\nexport let config: ScramjetConfig;\nexport function setConfig(newConfig: ScramjetConfig) {\n\tconfig = newConfig;\n\tloadCodecs();\n}\n","import { URLMeta, rewriteUrl, unrewriteUrl } from \"@rewriters/url\";\n\nexport function rewriteCss(css: string, meta: URLMeta) {\n\treturn handleCss(\"rewrite\", css, meta);\n}\n\nexport function unrewriteCss(css: string) {\n\treturn handleCss(\"unrewrite\", css);\n}\n\nfunction handleCss(type: \"rewrite\" | \"unrewrite\", css: string, meta?: URLMeta) {\n\t// regex from vk6 (https://github.com/ading2210)\n\tconst urlRegex = /url\\(['\"]?(.+?)['\"]?\\)/gm;\n\tconst Atruleregex =\n\t\t/@import\\s+(url\\s*?\\(.{0,9999}?\\)|['\"].{0,9999}?['\"]|.{0,9999}?)($|\\s|;)/gm;\n\tcss = new String(css).toString();\n\tcss = css.replace(urlRegex, (match, url) => {\n\t\tconst encodedUrl =\n\t\t\ttype === \"rewrite\"\n\t\t\t\t? rewriteUrl(url.trim(), meta)\n\t\t\t\t: unrewriteUrl(url.trim());\n\n\t\treturn match.replace(url, encodedUrl);\n\t});\n\tcss = css.replace(Atruleregex, (match, importStatement) => {\n\t\treturn match.replace(\n\t\t\timportStatement,\n\t\t\timportStatement.replace(\n\t\t\t\t/^(url\\(['\"]?|['\"]|)(.+?)(['\"]|['\"]?\\)|)$/gm,\n\t\t\t\t(match, firstQuote, url, endQuote) => {\n\t\t\t\t\tif (firstQuote.startsWith(\"url\")) {\n\t\t\t\t\t\treturn match;\n\t\t\t\t\t}\n\t\t\t\t\tconst encodedUrl =\n\t\t\t\t\t\ttype === \"rewrite\"\n\t\t\t\t\t\t\t? rewriteUrl(url.trim(), meta)\n\t\t\t\t\t\t\t: unrewriteUrl(url.trim());\n\n\t\t\t\t\treturn `${firstQuote}${encodedUrl}${endQuote}`;\n\t\t\t\t}\n\t\t\t)\n\t\t);\n\t});\n\n\treturn css;\n}\n","import type {\n\tdefault as BareClient,\n\tBareHeaders,\n} from \"@mercuryworkshop/bare-mux\";\nimport { rewriteUrl, type URLMeta } from \"@rewriters/url\";\nimport { getSiteDirective } from \"@/shared/security/siteTests\";\n\ninterface StoredReferrerPolicies {\n\tget(url: string): Promise<{ policy: string; referrer: string } | null>;\n\tset(url: string, policy: string, referrer: string): Promise<void>;\n}\n\n/**\n * Headers for security policy features that haven't been emulated yet\n */\nconst SEC_HEADERS = new Set([\n\t\"cross-origin-embedder-policy\",\n\t\"cross-origin-opener-policy\",\n\t\"cross-origin-resource-policy\",\n\t\"content-security-policy\",\n\t\"content-security-policy-report-only\",\n\t\"expect-ct\",\n\t\"feature-policy\",\n\t\"origin-isolation\",\n\t\"strict-transport-security\",\n\t\"upgrade-insecure-requests\",\n\t\"x-content-type-options\",\n\t\"x-download-options\",\n\t\"x-frame-options\",\n\t\"x-permitted-cross-domain-policies\",\n\t\"x-powered-by\",\n\t\"x-xss-protection\",\n\t// This needs to be emulated, but for right now it isn't that important of a feature to be worried about\n\t// https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Clear-Site-Data\n\t\"clear-site-data\",\n]);\n\n/**\n * Headers that are actually URLs that need to be rewritten\n */\nconst URL_HEADERS = new Set([\"location\", \"content-location\", \"referer\"]);\n\nfunction rewriteLinkHeader(link: string, meta: URLMeta) {\n\treturn link.replace(/<(.*)>/gi, (match) => rewriteUrl(match, meta));\n}\n\n/**\n * Rewrites response headers\n * @param rawHeaders Headers before they were rewritten\n * @param meta Parsed Proxy URL\n * @param client `BareClient` instance used for fetching\n * @param isNavigationRequest Whether the request is a navigation request\n */\nexport async function rewriteHeaders(\n\trawHeaders: BareHeaders,\n\tmeta: URLMeta,\n\tclient: BareClient,\n\tstoredReferrerPolicies: StoredReferrerPolicies\n) {\n\tconst headers = {};\n\n\tfor (const key in rawHeaders) {\n\t\theaders[key.toLowerCase()] = rawHeaders[key];\n\t}\n\n\tfor (const cspHeader of SEC_HEADERS) {\n\t\tdelete headers[cspHeader];\n\t}\n\n\tfor (const urlHeader of URL_HEADERS) {\n\t\tif (headers[urlHeader])\n\t\t\theaders[urlHeader] = rewriteUrl(\n\t\t\t\theaders[urlHeader]?.toString() as string,\n\t\t\t\tmeta\n\t\t\t);\n\t}\n\n\tif (typeof headers[\"link\"] === \"string\") {\n\t\theaders[\"link\"] = rewriteLinkHeader(headers[\"link\"], meta);\n\t} else if (Array.isArray(headers[\"link\"])) {\n\t\theaders[\"link\"] = headers[\"link\"].map((link) =>\n\t\t\trewriteLinkHeader(link, meta)\n\t\t);\n\t}\n\n\t// Emulate the referrer policy to set it back to what it should've been without Force Referrer in place\n\tif (typeof headers[\"referer\"] === \"string\") {\n\t\tconst referrerUrl = new URL(headers[\"referer\"]);\n\t\tconst storedPolicyData = await storedReferrerPolicies.get(referrerUrl.href);\n\t\tif (storedPolicyData) {\n\t\t\tconst storedReferrerPolicy = storedPolicyData.policy\n\t\t\t\t.toLowerCase()\n\t\t\t\t.split(\",\")\n\t\t\t\t.map((rawDir) => rawDir.trim());\n\t\t\tif (\n\t\t\t\tstoredReferrerPolicy.includes(\"no-referrer\") ||\n\t\t\t\t(storedReferrerPolicy.includes(\"no-referrer-when-downgrade\") &&\n\t\t\t\t\tmeta.origin.protocol === \"http:\" &&\n\t\t\t\t\treferrerUrl.protocol === \"https:\")\n\t\t\t) {\n\t\t\t\tdelete headers[\"referer\"];\n\t\t\t} else if (storedReferrerPolicy.includes(\"origin\")) {\n\t\t\t\theaders[\"referer\"] = referrerUrl.origin;\n\t\t\t} else if (storedReferrerPolicy.includes(\"origin-when-cross-origin\")) {\n\t\t\t\tif (referrerUrl.origin !== meta.origin.origin) {\n\t\t\t\t\theaders[\"referer\"] = referrerUrl.origin;\n\t\t\t\t} else {\n\t\t\t\t\theaders[\"referer\"] = referrerUrl.href;\n\t\t\t\t}\n\t\t\t} else if (storedReferrerPolicy.includes(\"same-origin\")) {\n\t\t\t\tif (referrerUrl.origin === meta.origin.origin) {\n\t\t\t\t\theaders[\"referer\"] = referrerUrl.href;\n\t\t\t\t} else {\n\t\t\t\t\tdelete headers[\"referer\"];\n\t\t\t\t}\n\t\t\t} else if (storedReferrerPolicy.includes(\"strict-origin\")) {\n\t\t\t\tif (\n\t\t\t\t\tmeta.origin.protocol === \"http:\" &&\n\t\t\t\t\treferrerUrl.protocol === \"https:\"\n\t\t\t\t) {\n\t\t\t\t\tdelete headers[\"referer\"];\n\t\t\t\t} else {\n\t\t\t\t\theaders[\"referer\"] = referrerUrl.origin;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// `strict-origin-when-cross-origin` is the default behavior anyway\n\t\t\telse {\n\t\t\t\tif (referrerUrl.origin === meta.origin.origin) {\n\t\t\t\t\theaders[\"referer\"] = referrerUrl.href;\n\t\t\t\t} else if (\n\t\t\t\t\tmeta.origin.protocol === \"http:\" &&\n\t\t\t\t\treferrerUrl.protocol === \"https:\"\n\t\t\t\t) {\n\t\t\t\t\tdelete headers[\"referer\"];\n\t\t\t\t} else {\n\t\t\t\t\theaders[\"referer\"] = referrerUrl.origin;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif (\n\t\ttypeof headers[\"sec-fetch-dest\"] === \"string\" &&\n\t\theaders[\"sec-fetch-dest\"] === \"\"\n\t) {\n\t\theaders[\"sec-fetch-dest\"] = \"empty\";\n\t}\n\n\tif (\n\t\ttypeof headers[\"sec-fetch-site\"] === \"string\" &&\n\t\theaders[\"sec-fetch-site\"] !== \"none\"\n\t) {\n\t\tif (typeof headers[\"referer\"] === \"string\") {\n\t\t\theaders[\"sec-fetch-site\"] = await getSiteDirective(\n\t\t\t\tmeta,\n\t\t\t\tnew URL(headers[\"referer\"]),\n\t\t\t\tclient\n\t\t\t);\n\t\t} else {\n\t\t\tconsole.warn(\n\t\t\t\t\"Missing referrer header; can't rewrite sec-fetch-site properly. Falling back to unsafe deletion.\"\n\t\t\t);\n\t\t\tdelete headers[\"sec-fetch-site\"];\n\t\t}\n\t}\n\n\treturn headers;\n}\n","import { ElementType, Parser } from \"htmlparser2\";\nimport { ChildNode, DomHandler, Element, Comment } from \"domhandler\";\nimport render from \"dom-serializer\";\nimport { URLMeta, rewriteUrl } from \"@rewriters/url\";\nimport { rewriteCss } from \"@rewriters/css\";\nimport { rewriteJs } from \"@rewriters/js\";\nimport { CookieStore } from \"@/shared/cookie\";\nimport { config } from \"@/shared\";\nimport { htmlRules } from \"@/shared/htmlRules\";\n\nexport function getInjectScripts<T>(\n\tcookieStore: CookieStore,\n\tscript: (src: string) => T\n): T[] {\n\tconst dump = JSON.stringify(cookieStore.dump());\n\tconst injected = `\n\t\tself.COOKIE = ${dump};\n\t\t$scramjetLoadClient().loadAndHook(${JSON.stringify(config)});\n\t\tif (\"document\" in self && document?.currentScript) {\n\t\t\tdocument.currentScript.remove();\n\t\t}\n\t`;\n\n\t// for compatibility purpose\n\tconst base64Injected = bytesToBase64(encoder.encode(injected));\n\n\treturn [\n\t\tscript(config.files.wasm),\n\t\tscript(config.files.all),\n\t\tscript(\"data:application/javascript;base64,\" + base64Injected),\n\t];\n}\n\nconst encoder = new TextEncoder();\nfunction rewriteHtmlInner(\n\thtml: string,\n\tcookieStore: CookieStore,\n\tmeta: URLMeta,\n\tfromTop: boolean = false\n) {\n\tconst handler = new DomHandler((err, dom) => dom);\n\tconst parser = new Parser(handler);\n\n\tparser.write(html);\n\tparser.end();\n\ttraverseParsedHtml(handler.root, cookieStore, meta);\n\n\tfunction findhead(node) {\n\t\tif (node.type === ElementType.Tag && node.name === \"head\") {\n\t\t\treturn node as Element;\n\t\t} else if (node.childNodes) {\n\t\t\tfor (const child of node.childNodes) {\n\t\t\t\tconst head = findhead(child);\n\t\t\t\tif (head) return head;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tif (fromTop) {\n\t\tlet head = findhead(handler.root);\n\t\tif (!head) {\n\t\t\thead = new Element(\"head\", {}, []);\n\t\t\thandler.root.children.unshift(head);\n\t\t}\n\n\t\tconst script = (src: string) => new Element(\"script\", { src });\n\t\thead.children.unshift(...getInjectScripts(cookieStore, script));\n\t}\n\n\treturn render(handler.root, {\n\t\tencodeEntities: \"utf8\",\n\t\tdecodeEntities: false,\n\t});\n}\n\nexport function rewriteHtml(\n\thtml: string,\n\tcookieStore: CookieStore,\n\tmeta: URLMeta,\n\tfromTop: boolean = false\n) {\n\tconst before = performance.now();\n\tconst ret = rewriteHtmlInner(html, cookieStore, meta, fromTop);\n\tdbg.time(meta, before, \"html rewrite\");\n\n\treturn ret;\n}\n\n// type ParseState = {\n// \tbase: string;\n// \torigin?: URL;\n// };\n\nexport function unrewriteHtml(html: string) {\n\tconst handler = new DomHandler((err, dom) => dom);\n\tconst parser = new Parser(handler);\n\n\tparser.write(html);\n\tparser.end();\n\n\tfunction traverse(node: ChildNode) {\n\t\tif (\"attribs\" in node) {\n\t\t\tfor (const key in node.attribs) {\n\t\t\t\tif (key == \"scramjet-attr-script-source-src\") {\n\t\t\t\t\tif (node.children[0] && \"data\" in node.children[0])\n\t\t\t\t\t\tnode.children[0].data = atob(node.attribs[key]);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (key.startsWith(\"scramjet-attr-\")) {\n\t\t\t\t\tnode.attribs[key.slice(\"scramjet-attr-\".length)] = node.attribs[key];\n\t\t\t\t\tdelete node.attribs[key];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (\"childNodes\" in node) {\n\t\t\tfor (const child of node.childNodes) {\n\t\t\t\ttraverse(child);\n\t\t\t}\n\t\t}\n\t}\n\n\ttraverse(handler.root);\n\n\treturn render(handler.root, {\n\t\tdecodeEntities: false,\n\t});\n}\n\n// i need to add the attributes in during rewriting\n\nfunction traverseParsedHtml(\n\tnode: any,\n\tcookieStore: CookieStore,\n\tmeta: URLMeta\n) {\n\tif (node.name === \"base\" && node.attribs.href !== undefined) {\n\t\tmeta.base = new URL(node.attribs.href, meta.origin);\n\t}\n\n\tif (node.attribs) {\n\t\tfor (const rule of htmlRules) {\n\t\t\tfor (const attr in rule) {\n\t\t\t\tconst sel = rule[attr.toLowerCase()];\n\t\t\t\tif (typeof sel === \"function\") continue;\n\n\t\t\t\tif (sel === \"*\" || sel.includes(node.name)) {\n\t\t\t\t\tif (node.attribs[attr] !== undefined) {\n\t\t\t\t\t\tconst value = node.attribs[attr];\n\t\t\t\t\t\tconst v = rule.fn(value, meta, cookieStore);\n\n\t\t\t\t\t\tif (v === null) delete node.attribs[attr];\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tnode.attribs[attr] = v;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnode.attribs[`scramjet-attr-${attr}`] = value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (const [attr, value] of Object.entries(node.attribs)) {\n\t\t\tif (eventAttributes.includes(attr)) {\n\t\t\t\tnode.attribs[`scramjet-attr-${attr}`] = value;\n\t\t\t\tnode.attribs[attr] = rewriteJs(\n\t\t\t\t\tvalue as string,\n\t\t\t\t\t`(inline ${attr} on element)`,\n\t\t\t\t\tmeta\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (node.name === \"style\" && node.children[0] !== undefined)\n\t\tnode.children[0].data = rewriteCss(node.children[0].data, meta);\n\n\tif (\n\t\tnode.name === \"script\" &&\n\t\tnode.attribs.type === \"module\" &&\n\t\tnode.attribs.src\n\t)\n\t\tnode.attribs.src = node.attribs.src + \"?type=module\";\n\n\tif (\n\t\tnode.name === \"script\" &&\n\t\tnode.attribs.type === \"importmap\" &&\n\t\tnode.children[0] !== undefined\n\t) {\n\t\tlet json = node.children[0].data;\n\t\ttry {\n\t\t\tconst map = JSON.parse(json);\n\t\t\tif (map.imports) {\n\t\t\t\tfor (const key in map.imports) {\n\t\t\t\t\tlet url = map.imports[key];\n\t\t\t\t\tif (typeof url === \"string\") {\n\t\t\t\t\t\turl = rewriteUrl(url, meta);\n\t\t\t\t\t\tmap.imports[key] = url;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tnode.children[0].data = JSON.stringify(map);\n\t\t} catch (e) {\n\t\t\tconsole.error(\"Failed to parse importmap JSON:\", e);\n\t\t}\n\t}\n\tif (\n\t\tnode.name === \"script\" &&\n\t\t/(application|text)\\/javascript|module|undefined/.test(node.attribs.type) &&\n\t\tnode.children[0] !== undefined\n\t) {\n\t\tlet js = node.children[0].data;\n\t\tconst module = node.attribs.type === \"module\" ? true : false;\n\t\tnode.attribs[\"scramjet-attr-script-source-src\"] = bytesToBase64(\n\t\t\tencoder.encode(js)\n\t\t);\n\t\tconst htmlcomment = /<!--[\\s\\S]*?-->/g;\n\t\tjs = js.replace(htmlcomment, \"\");\n\t\tnode.children[0].data = rewriteJs(\n\t\t\tjs,\n\t\t\t\"(inline script element)\",\n\t\t\tmeta,\n\t\t\tmodule\n\t\t);\n\t}\n\n\tif (node.name === \"meta\" && node.attribs[\"http-equiv\"] !== undefined) {\n\t\tif (\n\t\t\tnode.attribs[\"http-equiv\"].toLowerCase() === \"content-security-policy\"\n\t\t) {\n\t\t\t// just delete it. this needs to be emulated eventually but like\n\t\t\tnode = new Comment(node.attribs.content);\n\t\t} else if (\n\t\t\tnode.attribs[\"http-equiv\"] === \"refresh\" &&\n\t\t\tnode.attribs.content.includes(\"url\")\n\t\t) {\n\t\t\tconst contentArray = node.attribs.content.split(\"url=\");\n\t\t\tif (contentArray[1])\n\t\t\t\tcontentArray[1] = rewriteUrl(contentArray[1].trim(), meta);\n\t\t\tnode.attribs.content = contentArray.join(\"url=\");\n\t\t}\n\t}\n\n\tif (node.childNodes) {\n\t\tfor (const childNode in node.childNodes) {\n\t\t\tnode.childNodes[childNode] = traverseParsedHtml(\n\t\t\t\tnode.childNodes[childNode],\n\t\t\t\tcookieStore,\n\t\t\t\tmeta\n\t\t\t);\n\t\t}\n\t}\n\n\treturn node;\n}\n\nexport function rewriteSrcset(srcset: string, meta: URLMeta) {\n\tconst sources = srcset.split(/ .*,/).map((src) => src.trim());\n\tconst rewrittenSources = sources.map((source) => {\n\t\t// Split into URLs and descriptors (if any)\n\t\t// e.g. url0, url1 1.5x, url2 2x\n\t\tconst [url, ...descriptors] = source.split(/\\s+/);\n\n\t\t// Rewrite the URLs and keep the descriptors (if any)\n\t\tconst rewrittenUrl = rewriteUrl(url.trim(), meta);\n\n\t\treturn descriptors.length > 0\n\t\t\t? `${rewrittenUrl} ${descriptors.join(\" \")}`\n\t\t\t: rewrittenUrl;\n\t});\n\n\treturn rewrittenSources.join(\", \");\n}\n\n// function base64ToBytes(base64) {\n// \tconst binString = atob(base64);\n\n// \treturn Uint8Array.from(binString, (m) => m.codePointAt(0));\n// }\n\nfunction bytesToBase64(bytes: Uint8Array) {\n\tconst binString = Array.from(bytes, (byte) =>\n\t\tString.fromCodePoint(byte)\n\t).join(\"\");\n\n\treturn btoa(binString);\n}\nconst eventAttributes = [\n\t\"onbeforexrselect\",\n\t\"onabort\",\n\t\"onbeforeinput\",\n\t\"onbeforematch\",\n\t\"onbeforetoggle\",\n\t\"onblur\",\n\t\"oncancel\",\n\t\"oncanplay\",\n\t\"oncanplaythrough\",\n\t\"onchange\",\n\t\"onclick\",\n\t\"onclose\",\n\t\"oncontentvisibilityautostatechange\",\n\t\"oncontextlost\",\n\t\"oncontextmenu\",\n\t\"oncontextrestored\",\n\t\"oncuechange\",\n\t\"ondblclick\",\n\t\"ondrag\",\n\t\"ondragend\",\n\t\"ondragenter\",\n\t\"ondragleave\",\n\t\"ondragover\",\n\t\"ondragstart\",\n\t\"ondrop\",\n\t\"ondurationchange\",\n\t\"onemptied\",\n\t\"onended\",\n\t\"onerror\",\n\t\"onfocus\",\n\t\"onformdata\",\n\t\"oninput\",\n\t\"oninvalid\",\n\t\"onkeydown\",\n\t\"onkeypress\",\n\t\"onkeyup\",\n\t\"onload\",\n\t\"onloadeddata\",\n\t\"onloadedmetadata\",\n\t\"onloadstart\",\n\t\"onmousedown\",\n\t\"onmouseenter\",\n\t\"onmouseleave\",\n\t\"onmousemove\",\n\t\"onmouseout\",\n\t\"onmouseover\",\n\t\"onmouseup\",\n\t\"onmousewheel\",\n\t\"onpause\",\n\t\"onplay\",\n\t\"onplaying\",\n\t\"onprogress\",\n\t\"onratechange\",\n\t\"onreset\",\n\t\"onresize\",\n\t\"onscroll\",\n\t\"onsecuritypolicyviolation\",\n\t\"onseeked\",\n\t\"onseeking\",\n\t\"onselect\",\n\t\"onslotchange\",\n\t\"onstalled\",\n\t\"onsubmit\",\n\t\"onsuspend\",\n\t\"ontimeupdate\",\n\t\"ontoggle\",\n\t\"onvolumechange\",\n\t\"onwaiting\",\n\t\"onwebkitanimationend\",\n\t\"onwebkitanimationiteration\",\n\t\"onwebkitanimationstart\",\n\t\"onwebkittransitionend\",\n\t\"onwheel\",\n\t\"onauxclick\",\n\t\"ongotpointercapture\",\n\t\"onlostpointercapture\",\n\t\"onpointerdown\",\n\t\"onpointermove\",\n\t\"onpointerrawupdate\",\n\t\"onpointerup\",\n\t\"onpointercancel\",\n\t\"onpointerover\",\n\t\"onpointerout\",\n\t\"onpointerenter\",\n\t\"onpointerleave\",\n\t\"onselectstart\",\n\t\"onselectionchange\",\n\t\"onanimationend\",\n\t\"onanimationiteration\",\n\t\"onanimationstart\",\n\t\"ontransitionrun\",\n\t\"ontransitionstart\",\n\t\"ontransitionend\",\n\t\"ontransitioncancel\",\n\t\"oncopy\",\n\t\"oncut\",\n\t\"onpaste\",\n\t\"onscrollend\",\n\t\"onscrollsnapchange\",\n\t\"onscrollsnapchanging\",\n];\n","import { config, flagEnabled } from \"@/shared\";\nimport { URLMeta } from \"@rewriters/url\";\n\nimport { getRewriter, JsRewriterOutput, textDecoder } from \"@rewriters/wasm\";\n\nError.stackTraceLimit = 50;\n\ntype RewriterResult = {\n\tjs: string | Uint8Array;\n\tmap: Uint8Array | null;\n\ttag: string;\n\terrors: string[];\n};\nfunction rewriteJsWasm(\n\tinput: string | Uint8Array,\n\tsource: string | null,\n\tmeta: URLMeta,\n\tmodule: boolean\n): RewriterResult {\n\tlet [rewriter, ret] = getRewriter(meta);\n\n\ttry {\n\t\tlet out: JsRewriterOutput;\n\t\tconst before = performance.now();\n\t\t// try {\n\t\tif (typeof input === \"string\") {\n\t\t\tout = rewriter.rewrite_js(\n\t\t\t\tinput,\n\t\t\t\tmeta.base.href,\n\t\t\t\tsource || \"(unknown)\",\n\t\t\t\tmodule\n\t\t\t);\n\t\t} else {\n\t\t\tout = rewriter.rewrite_js_bytes(\n\t\t\t\tinput,\n\t\t\t\tmeta.base.href,\n\t\t\t\tsource || \"(unknown)\",\n\t\t\t\tmodule\n\t\t\t);\n\t\t}\n\t\t// } catch (err) {\n\t\t// \tconst err1 = err as Error;\n\t\t// \tconsole.warn(\n\t\t// \t\t\"failed rewriting js for\",\n\t\t// \t\tsource,\n\t\t// \t\terr1.message,\n\t\t// \t\tinput instanceof Uint8Array ? textDecoder.decode(input) : input\n\t\t// \t);\n\n\t\t// \treturn { js: input, tag: \"\", map: null };\n\t\t// }\n\t\tdbg.time(meta, before, `oxc rewrite for \"${source || \"(unknown)\"}\"`);\n\n\t\tconst { js, map, scramtag, errors } = out;\n\n\t\treturn {\n\t\t\tjs: typeof input === \"string\" ? textDecoder.decode(js) : js,\n\t\t\ttag: scramtag,\n\t\t\tmap,\n\t\t\terrors,\n\t\t};\n\t} finally {\n\t\tret();\n\t}\n}\n\nexport function rewriteJsInner(\n\tjs: string | Uint8Array,\n\turl: string | null,\n\tmeta: URLMeta,\n\tmodule = false\n) {\n\treturn rewriteJsWasm(js, url, meta, module);\n}\n\nexport function rewriteJs(\n\tjs: string | Uint8Array,\n\turl: string | null,\n\tmeta: URLMeta,\n\tmodule = false\n): string | Uint8Array {\n\ttry {\n\t\tconst res = rewriteJsInner(js, url, meta, module);\n\t\tlet newjs = res.js;\n\n\t\tif (flagEnabled(\"sourcemaps\", meta.base)) {\n\t\t\tconst pushmap = globalThis[config.globals.pushsourcemapfn];\n\t\t\tif (pushmap) {\n\t\t\t\tpushmap(Array.from(res.map), res.tag);\n\t\t\t} else {\n\t\t\t\tif (newjs instanceof Uint8Array) {\n\t\t\t\t\tnewjs = new TextDecoder().decode(newjs);\n\t\t\t\t}\n\t\t\t\tconst sourcemapfn = `${config.globals.pushsourcemapfn}([${res.map.join(\",\")}], \"${res.tag}\");`;\n\n\t\t\t\t// don't put the sourcemap call before \"use strict\"\n\t\t\t\tconst strictMode = /^\\s*(['\"])use strict\\1;?/;\n\t\t\t\tif (strictMode.test(newjs)) {\n\t\t\t\t\tnewjs = newjs.replace(strictMode, `$&\\n${sourcemapfn}`);\n\t\t\t\t} else {\n\t\t\t\t\tnewjs = `${sourcemapfn}\\n${newjs}`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (flagEnabled(\"rewriterLogs\", meta.base)) {\n\t\t\tfor (const error of res.errors) {\n\t\t\t\tconsole.error(\"oxc parse error\", error);\n\t\t\t}\n\t\t}\n\n\t\treturn newjs;\n\t} catch (err) {\n\t\tconsole.warn(\n\t\t\t\"failed rewriting js for\",\n\t\t\turl || \"(unknown)\",\n\t\t\terr.message,\n\t\t\tjs instanceof Uint8Array ? textDecoder.decode(js) : js\n\t\t);\n\t\tif (flagEnabled(\"allowInvalidJs\", meta.base)) {\n\t\t\treturn js;\n\t\t} else {\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n","import { codecDecode, codecEncode } from \"@/shared\";\nimport { config } from \"@/shared\";\nimport { rewriteJs } from \"@rewriters/js\";\n\nexport type URLMeta = {\n\torigin: URL;\n\tbase: URL;\n\ttopFrameName?: string;\n\tparentFrameName?: string;\n};\n\nfunction tryCanParseURL(url: string, origin?: string | URL): URL | null {\n\ttry {\n\t\treturn new URL(url, origin);\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nexport function rewriteBlob(url: string, meta: URLMeta) {\n\tconst blob = new URL(url.substring(\"blob:\".length));\n\n\treturn \"blob:\" + meta.origin.origin + blob.pathname;\n}\n\nexport function unrewriteBlob(url: string) {\n\tconst blob = new URL(url.substring(\"blob:\".length));\n\n\treturn \"blob:\" + location.origin + blob.pathname;\n}\n\nexport function rewriteUrl(url: string | URL, meta: URLMeta) {\n\tif (url instanceof URL) url = url.toString();\n\n\tif (url.startsWith(\"javascript:\")) {\n\t\treturn (\n\t\t\t\"javascript:\" +\n\t\t\trewriteJs(url.slice(\"javascript:\".length), \"(javascript: url)\", meta)\n\t\t);\n\t} else if (url.startsWith(\"blob:\")) {\n\t\treturn location.origin + config.prefix + url;\n\t} else if (url.startsWith(\"data:\")) {\n\t\treturn location.origin + config.prefix + url;\n\t} else if (url.startsWith(\"mailto:\") || url.startsWith(\"about:\")) {\n\t\treturn url;\n\t} else {\n\t\tlet base = meta.base.href;\n\n\t\tif (base.startsWith(\"about:\")) base = unrewriteUrl(self.location.href); // jank!!!!! weird jank!!!\n\t\tconst realUrl = tryCanParseURL(url, base);\n\t\tif (!realUrl) return url;\n\t\tconst encodedHash = codecEncode(realUrl.hash.slice(1));\n\t\tconst realHash = encodedHash ? \"#\" + encodedHash : \"\";\n\t\trealUrl.hash = \"\";\n\n\t\treturn (\n\t\t\tlocation.origin + config.prefix + codecEncode(realUrl.href) + realHash\n\t\t);\n\t}\n}\n\nexport function unrewriteUrl(url: string | URL) {\n\tif (url instanceof URL) url = url.toString();\n\t// remove query string\n\t// if (url.includes(\"?\")) {\n\t// \turl = url.split(\"?\")[0];\n\t// }\n\n\tconst prefixed = location.origin + config.prefix;\n\n\tif (url.startsWith(\"javascript:\")) {\n\t\t//TODO\n\t\treturn url;\n\t} else if (url.startsWith(\"blob:\")) {\n\t\t// realistically this shouldn't happen\n\t\treturn url;\n\t} else if (url.startsWith(prefixed + \"blob:\")) {\n\t\treturn url.substring(prefixed.length);\n\t} else if (url.startsWith(prefixed + \"data:\")) {\n\t\treturn url.substring(prefixed.length);\n\t} else if (url.startsWith(\"mailto:\") || url.startsWith(\"about:\")) {\n\t\treturn url;\n\t} else {\n\t\tconst realUrl = tryCanParseURL(url);\n\t\tif (!realUrl) return url;\n\t\tconst decodedHash = codecDecode(realUrl.hash.slice(1));\n\t\tconst realHash = decodedHash ? \"#\" + decodedHash : \"\";\n\t\trealUrl.hash = \"\";\n\n\t\treturn codecDecode(realUrl.href.slice(prefixed.length) + realHash);\n\t}\n}\n","// i am a cat. i like to be petted. i like to be fed. i like to be\nimport { initSync, Rewriter } from \"../../../rewriter/wasm/out/wasm.js\";\nimport type { JsRewriterOutput } from \"../../../rewriter/wasm/out/wasm.js\";\nimport { codecDecode, codecEncode, config, flagEnabled } from \"@/shared\";\n\nexport type { JsRewriterOutput, Rewriter };\n\nimport { rewriteUrl, URLMeta } from \"@rewriters/url\";\nimport { htmlRules } from \"@/shared/htmlRules\";\nimport { rewriteCss } from \"@rewriters/css\";\nimport { rewriteJs } from \"@rewriters/js\";\nimport { getInjectScripts } from \"@rewriters/html\";\nimport { CookieStore } from \"@/shared/cookie\";\n\nlet wasm_u8: Uint8Array<ArrayBuffer>;\n\ndeclare const REWRITERWASM: string | undefined;\nif (REWRITERWASM)\n\twasm_u8 = Uint8Array.from(atob(REWRITERWASM), (c) => c.charCodeAt(0));\nelse if (self.WASM)\n\twasm_u8 = Uint8Array.from(atob(self.WASM), (c) => c.charCodeAt(0));\n\n// only use in sw\nexport async function asyncSetWasm() {\n\tconst buf = await fetch(config.files.wasm).then((r) => r.arrayBuffer());\n\twasm_u8 = new Uint8Array(buf);\n}\n\nexport const textDecoder = new TextDecoder();\nlet MAGIC = \"\\0asm\".split(\"\").map((x) => x.charCodeAt(0));\n\nfunction initWasm() {\n\tif (!(wasm_u8 instanceof Uint8Array))\n\t\tthrow new Error(\"rewriter wasm not found (was it fetched correctly?)\");\n\n\tif (![...wasm_u8.slice(0, 4)].every((x, i) => x === MAGIC[i]))\n\t\tthrow new Error(\n\t\t\t\"rewriter wasm does not have wasm magic (was it fetched correctly?)\\nrewriter wasm contents: \" +\n\t\t\t\ttextDecoder.decode(wasm_u8)\n\t\t);\n\n\tinitSync({\n\t\tmodule: new WebAssembly.Module(wasm_u8),\n\t});\n}\n\nlet rewriters = [];\nexport function getRewriter(meta: URLMeta): [Rewriter, () => void] {\n\tinitWasm();\n\n\tlet obj: { rewriter: Rewriter; inUse: boolean };\n\tlet index = rewriters.findIndex((x) => !x.inUse);\n\tlet len = rewriters.length;\n\n\tif (index === -1) {\n\t\tif (flagEnabled(\"rewriterLogs\", meta.base))\n\t\t\tconsole.log(`creating new rewriter, ${len} rewriters made already`);\n\n\t\tlet rewriter = new Rewriter({\n\t\t\tconfig,\n\t\t\tshared: {\n\t\t\t\trewrite: {\n\t\t\t\t\thtmlRules,\n\t\t\t\t\trewriteUrl,\n\t\t\t\t\trewriteCss,\n\t\t\t\t\trewriteJs,\n\t\t\t\t\tgetHtmlInjectCode(cookieStore: CookieStore, foundHead: boolean) {\n\t\t\t\t\t\tlet inject = getInjectScripts(\n\t\t\t\t\t\t\tcookieStore,\n\t\t\t\t\t\t\t(src) => `<script src=\"${src}\"></script>`\n\t\t\t\t\t\t).join(\"\");\n\t\t\t\t\t\treturn foundHead ? `<head>${inject}</head>` : inject;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tflagEnabled,\n\t\t\tcodec: {\n\t\t\t\tencode: codecEncode,\n\t\t\t\tdecode: codecDecode,\n\t\t\t},\n\t\t});\n\t\tobj = { rewriter, inUse: false };\n\t\trewriters.push(obj);\n\t} else {\n\t\tif (flagEnabled(\"rewriterLogs\", meta.base))\n\t\t\tconsole.log(\n\t\t\t\t`using cached rewriter ${index} from list of ${len} rewriters`\n\t\t\t);\n\n\t\tobj = rewriters[index];\n\t}\n\tobj.inUse = true;\n\n\treturn [obj.rewriter, () => (obj.inUse = false)];\n}\n","import { config } from \"@/shared\";\nimport { rewriteJs } from \"@rewriters/js\";\nimport { URLMeta } from \"@rewriters/url\";\n\nexport function rewriteWorkers(\n\tjs: string | Uint8Array,\n\ttype: string,\n\turl: string,\n\tmeta: URLMeta\n) {\n\tlet str = \"\";\n\tconst module = type === \"module\";\n\tconst script = (script) => {\n\t\tif (module) {\n\t\t\tstr += `import \"${config.files[script]}\"\\n`;\n\t\t} else {\n\t\t\tstr += `importScripts(\"${config.files[script]}\");\\n`;\n\t\t}\n\t};\n\n\tscript(\"wasm\");\n\tscript(\"all\");\n\tstr += `$scramjetLoadClient().loadAndHook(${JSON.stringify(config)});`;\n\n\tlet rewritten = rewriteJs(js, url, meta, module);\n\tif (rewritten instanceof Uint8Array) {\n\t\trewritten = new TextDecoder().decode(rewritten);\n\t}\n\n\tstr += rewritten;\n\n\treturn str;\n}\n","import {\n\ttype RedirectTracker,\n\ttype ReferrerPolicyData,\n\ttype SiteDirective,\n\tScramjetDB,\n} from \"@/types\";\nimport { openDB, IDBPDatabase } from \"idb\";\n\n// Persist the redirect trackers for an hour\nconst TRACKER_EXPIRY = 60 * 60 * 1000;\nconst SITE_HIERARCHY: Record<SiteDirective, number> = {\n\tnone: 0,\n\t\"same-origin\": 1,\n\t\"same-site\": 2,\n\t\"cross-site\": 3,\n};\n\n/**\n * Gets a connection to the IndexedDB database\n *\n * @returns Promise that resolves to the database connection\n */\nasync function getDB(): Promise<IDBPDatabase<ScramjetDB>> {\n\treturn openDB<ScramjetDB>(\"$scramjet\", 1);\n}\n\n/**\n * Retrieves a redirect tracker for a given URL\n *\n * @param url The URL to look up\n * @returns Redirect tracker if found, or `null`\n */\nasync function getTracker(url: string): Promise<RedirectTracker | null> {\n\tconst db = await getDB();\n\treturn (await db.get(\"redirectTrackers\", url)) || null;\n}\n\n/**\n * Store or update a redirect tracker for a given URL\n *\n * @param url URL to store the tracker for\n * @param tracker Redirect tracker data to store\n */\nasync function setTracker(\n\turl: string,\n\ttracker: RedirectTracker\n): Promise<void> {\n\tconst db = await getDB();\n\tawait db.put(\"redirectTrackers\", tracker, url);\n}\n\n/**\n * Delete a redirect tracker for a given URL\n *\n * @param url URL whose tracker should be deleted\n */\nasync function deleteTracker(url: string): Promise<void> {\n\tconst db = await getDB();\n\tawait db.delete(\"redirectTrackers\", url);\n}\n\n/**\n * Initialize tracking for a new request that might redirect\n *\n * @param requestUrl URL of the request being made\n * @param referrer Referrer URL of the request, or `null`\n * @param initialSite Initial Sec-Fetch-Site directive\n */\nexport async function initializeTracker(\n\trequestUrl: string,\n\treferrer: string | null,\n\tinitialSite: string\n): Promise<void> {\n\tconst existing = await getTracker(requestUrl);\n\tif (existing) {\n\t\treturn;\n\t}\n\n\tawait setTracker(requestUrl, {\n\t\toriginalReferrer: referrer || \"\",\n\t\tmostRestrictiveSite: initialSite as SiteDirective,\n\t\treferrerPolicy: \"\",\n\t\tchainStarted: Date.now(),\n\t});\n}\n\n/**\n * Update tracker when a redirect is encountered\n *\n * @param originalUrl URL that is redirecting\n * @param redirectUrl URL being redirected to\n * @param newReferrerPolicy Referrer Policy from the redirect response\n */\nexport async function updateTracker(\n\toriginalUrl: string,\n\tredirectUrl: string,\n\tnewReferrerPolicy?: string\n): Promise<void> {\n\tconst tracker = await getTracker(originalUrl);\n\tif (!tracker) return;\n\n\tawait deleteTracker(originalUrl);\n\tif (newReferrerPolicy) {\n\t\ttracker.referrerPolicy = newReferrerPolicy;\n\t}\n\tawait setTracker(redirectUrl, tracker);\n}\n\n/**\n * Get most restrictive site value for a request\n *\n * @param requestUrl The URL of the current request\n * @param currentSite The current `Sec-Fetch-Site` directive for this request\n * @returns Most restrictive `Sec-Fetch-Site` directive from the redirect chain\n */\nexport async function getMostRestrictiveSite(\n\trequestUrl: string,\n\tcurrentSite: string\n): Promise<string> {\n\tconst tracker = await getTracker(requestUrl);\n\tif (!tracker) return currentSite;\n\n\tconst trackedValue = SITE_HIERARCHY[tracker.mostRestrictiveSite];\n\tconst currentValue = SITE_HIERARCHY[currentSite as SiteDirective] ?? 0;\n\n\tif (currentValue > trackedValue) {\n\t\ttracker.mostRestrictiveSite = currentSite as SiteDirective;\n\t\tawait setTracker(requestUrl, tracker);\n\n\t\treturn currentSite;\n\t}\n\n\treturn tracker.mostRestrictiveSite;\n}\n\n/**\n * Clean up tracker after request completes\n * @param requestUrl URL of the completed request\n */\nexport async function cleanTracker(requestUrl: string): Promise<void> {\n\tawait deleteTracker(requestUrl);\n}\n\n/**\n * Clean up expired trackers\n */\nexport async function cleanExpiredTrackers(): Promise<void> {\n\tconst now = Date.now();\n\tconst db = await getDB();\n\tconst tx = db.transaction(\"redirectTrackers\", \"readwrite\");\n\n\tfor await (const cursor of tx.store) {\n\t\tconst tracker = cursor.value as RedirectTracker;\n\t\tif (now - tracker.chainStarted > TRACKER_EXPIRY) {\n\t\t\tcursor.delete();\n\t\t}\n\t}\n\n\tawait tx.done;\n}\n\n/**\n * Store referrer policy for a URL\n *\n * @param url URL to store the policy for\n * @param policy Referrer policy to store\n * @param referrer The referrer URL that set this policy\n */\nexport async function storeReferrerPolicy(\n\turl: string,\n\tpolicy: string,\n\treferrer: string\n): Promise<void> {\n\tconst db = await getDB();\n\tconst data: ReferrerPolicyData = { policy, referrer };\n\tawait db.put(\"referrerPolicies\", data, url);\n}\n\n/**\n * Get referrer policy data for a URL\n *\n * @param url URL to get the policy for\n * @returns Referrer policy data if found, or `null`\n */\nexport async function getReferrerPolicy(\n\turl: string\n): Promise<ReferrerPolicyData | null> {\n\tconst db = await getDB();\n\treturn (await db.get(\"referrerPolicies\", url)) || null;\n}\n","import { type URLMeta } from \"@rewriters/url\";\n\nimport type {\n\tdefault as BareClient,\n\tBareResponseFetch,\n} from \"@mercuryworkshop/bare-mux\";\nimport { ScramjetDB } from \"@/types\";\nimport { openDB, IDBPDatabase } from \"idb\";\n\n// Cache every hour\nconst CACHE_DURATION_MINUTES = 60;\nconst CACHE_KEY = \"publicSuffixList\";\n\n/**\n * Gets a connection to the IndexedDB database\n *\n * @returns Resolves to the database connection\n */\nasync function getDB(): Promise<IDBPDatabase<ScramjetDB>> {\n\treturn openDB<ScramjetDB>(\"$scramjet\", 1);\n}\n\n/**\n * Gets cached Public Suffix List\n *\n * @returns Cached Public Suffix List data if not expired, or `null`\n */\nasync function getCachedSuffixList(): Promise<{\n\tdata: string[];\n\texpiry: number;\n} | null> {\n\tconst db = await getDB();\n\treturn (await db.get(\"publicSuffixList\", CACHE_KEY)) || null;\n}\n\n/**\n * Stores public suffix list\n *\n * @param data Public Suffix list data to cache\n */\nasync function setCachedSuffixList(data: string[]): Promise<void> {\n\tconst db = await getDB();\n\tawait db.put(\n\t\t\"publicSuffixList\",\n\t\t{\n\t\t\tdata,\n\t\t\texpiry: Date.now() + CACHE_DURATION_MINUTES * 60 * 1000,\n\t\t},\n\t\tCACHE_KEY\n\t);\n}\n\n/**\n * Emulate `Sec-Fetch-Site` header using the referrer (another reason why Force Referrer is now a needed SJ feature)\n */\nexport async function getSiteDirective(\n\tmeta: URLMeta,\n\treferrerURL: URL,\n\tclient: BareClient\n): Promise<string> {\n\tif (!referrerURL) {\n\t\treturn \"none\";\n\t}\n\n\tif (meta.origin.origin === referrerURL.origin) {\n\t\treturn \"same-origin\";\n\t}\n\n\tconst sameSite = await isSameSite(meta.origin, referrerURL, client);\n\tif (sameSite) {\n\t\treturn \"same-site\";\n\t}\n\n\treturn \"cross-site\";\n}\n\n/**\n * Tests if the two URLs are from the same site.\n * This will be used in the response header rewriter.\n *\n * @see https://developer.mozilla.org/en-US/docs/Glossary/Site\n * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Sec-Fetch-Site#directives\n *\n * @param url1 First URL to compare\n * @param url2 Second URL to compare\n * @param client `BareClient` instance used for fetching\n * @returns Whether the two URLs are from the same site\n *\n * @throws {Error} If an error occurs while getting the Public Suffix List\n */\nexport async function isSameSite(\n\turl1: URL,\n\turl2: URL,\n\tclient: BareClient\n): Promise<boolean> {\n\tconst registrableDomain1 = await getRegistrableDomain(url1, client);\n\tconst registrableDomain2 = await getRegistrableDomain(url2, client);\n\n\treturn registrableDomain1 === registrableDomain2;\n}\n\n/**\n * Gets the registrable domain (eTLD+1) for a URL\n * @param url URL to get registrable domain for\n * @param client `BareClient` instance for fetching public suffix list\n * @returns Registrable domain\n */\nasync function getRegistrableDomain(\n\turl: URL,\n\tclient: BareClient\n): Promise<string> {\n\tconst publicSuffixes = await getPublicSuffixList(client);\n\n\tconst hostname = url.hostname.toLowerCase();\n\tconst labels = hostname.split(\".\");\n\tlet matchedSuffix = \"\";\n\n\tlet isException = false;\n\tfor (const suffix of publicSuffixes) {\n\t\tconst actualSuffix = suffix.startsWith(\"!\") ? suffix.substring(1) : suffix;\n\t\tconst suffixLabels = actualSuffix.split(\".\");\n\n\t\tif (matchesSuffix(labels, suffixLabels)) {\n\t\t\tif (suffix.startsWith(\"!\")) {\n\t\t\t\tmatchedSuffix = actualSuffix;\n\t\t\t\tisException = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (!isException && actualSuffix.length > matchedSuffix.length) {\n\t\t\t\tmatchedSuffix = actualSuffix;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!matchedSuffix) {\n\t\treturn labels.slice(-2).join(\".\");\n\t}\n\n\tconst suffixLabelCount = matchedSuffix.split(\".\").length;\n\tconst domainLabelCount = isException\n\t\t? suffixLabelCount\n\t\t: suffixLabelCount + 1;\n\n\treturn labels.slice(-domainLabelCount).join(\".\");\n}\n\n/**\n * Checks if hostname labels match a suffix pattern\n * @param hostnameLabels Labels of the hostname (split by `.`)\n * @param suffixLabels Labels of the suffix pattern (split by `.`)\n * @returns Whether the hostname matches the suffix\n */\nfunction matchesSuffix(\n\thostnameLabels: string[],\n\tsuffixLabels: string[]\n): boolean {\n\tif (hostnameLabels.length < suffixLabels.length) {\n\t\treturn false;\n\t}\n\n\tconst offset = hostnameLabels.length - suffixLabels.length;\n\tfor (let i = 0; i < suffixLabels.length; i++) {\n\t\tconst hostLabel = hostnameLabels[offset + i];\n\t\tconst suffixLabel = suffixLabels[i];\n\n\t\tif (suffixLabel === \"*\") {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (hostLabel !== suffixLabel) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/**\n * Gets parsed Public Suffix list from the API.\n *\n * Complies with the standard format.\n * @see https://github.com/publicsuffix/list/wiki/Format#format\n *\n * @param {BareClient} client `BareClient` instance used for fetching\n * @returns {Promise<string[]>} Parsed Public Suffix list\n *\n * @throws {Error} If an error occurs while fetching from the Public Suffix List\n */\nexport async function getPublicSuffixList(\n\tclient: BareClient\n): Promise<string[]> {\n\tconst cached = await getCachedSuffixList();\n\tif (cached && Date.now() < cached.expiry) {\n\t\treturn cached.data;\n\t}\n\n\tlet publicSuffixesResponse: BareResponseFetch;\n\ttry {\n\t\tpublicSuffixesResponse = await client.fetch(\n\t\t\t\"https://publicsuffix.org/list/public_suffix_list.dat\"\n\t\t);\n\t} catch (err) {\n\t\tthrow new Error(`Failed to fetch public suffix list: ${err}`);\n\t}\n\tconst publicSuffixesRaw = await publicSuffixesResponse.text();\n\n\tconst publicSuffixes = publicSuffixesRaw\n\t\t.split(\"\\n\")\n\t\t.map((line) => {\n\t\t\tconst trimmed = line.trim();\n\t\t\tconst spaceIndex = trimmed.indexOf(\" \");\n\n\t\t\treturn spaceIndex > -1 ? trimmed.substring(0, spaceIndex) : trimmed;\n\t\t})\n\t\t.filter((line) => line && !line.startsWith(\"//\"));\n\n\tawait setCachedSuffixList(publicSuffixes);\n\n\treturn publicSuffixes;\n}\n","/**\n * @fileoverview\n * See `types.ts` for context on these symbols.\n */\n\nexport const SCRAMJETCLIENTNAME = \"scramjet client global\";\nexport const SCRAMJETCLIENT = Symbol.for(SCRAMJETCLIENTNAME);\nexport const SCRAMJETFRAME = Symbol.for(\"scramjet frame handle\");\n","export function errorTemplate(trace: string, fetchedURL: string) {\n\t// turn script into a data URI so we don\"t have to escape any HTML values\n\tconst script = `\n errorTrace.value = ${JSON.stringify(trace)};\n fetchedURL.textContent = ${JSON.stringify(fetchedURL)};\n for (const node of document.querySelectorAll(\"#hostname\")) node.textContent = ${JSON.stringify(location.hostname)};\n reload.addEventListener(\"click\", () => location.reload());\n version.textContent = ${JSON.stringify((globalThis as any).$scramjetVersion?.version || \"unknown\")};\n build.textContent = ${JSON.stringify((globalThis as any).$scramjetVersion?.build || \"unknown\")};\n\n document.getElementById('copy-button').addEventListener('click', async () => {\n const text = document.getElementById('errorTrace').value;\n await navigator.clipboard.writeText(text);\n const btn = document.getElementById('copy-button');\n btn.textContent = 'Copied!';\n setTimeout(() => btn.textContent = 'Copy', 2000);\n });\n `;\n\n\treturn `<!DOCTYPE html>\n <html>\n <head>\n <meta charset=\"utf-8\" />\n <title>Scramjet</title>\n <style>\n :root {\n --deep: #080602;\n --shallow: #181412;\n --beach: #f1e8e1;\n --shore: #b1a8a1;\n --accent: #ffa938;\n --font-sans: -apple-system, system-ui, BlinkMacSystemFont, sans-serif;\n --font-monospace: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n }\n\n *:not(div,p,span,ul,li,i,span) {\n background-color: var(--deep);\n color: var(--beach);\n font-family: var(--font-sans);\n }\n\n textarea,\n button {\n background-color: var(--shallow);\n border-radius: 0.6em;\n padding: 0.6em;\n border: none;\n appearance: none;\n font-family: var(--font-sans);\n color: var(--beach);\n }\n\n button.primary {\n background-color: var(--accent);\n color: var(--deep);\n font-weight: bold;\n }\n\n textarea {\n resize: none;\n height: 20em;\n text-align: left;\n font-family: var(--font-monospace);\n }\n\n body {\n width: 100vw;\n height: 100vh;\n justify-content: center;\n align-items: center;\n }\n\n body,\n html,\n #inner {\n display: flex;\n align-items: center;\n flex-direction: column;\n gap: 0.5em;\n overflow: hidden;\n }\n\n #inner {\n z-index: 100;\n }\n\n #cover {\n position: absolute;\n width: 100%;\n height: 100%;\n background-color: color-mix(in srgb, var(--deep) 70%, transparent);\n z-index: 99;\n }\n\n #info {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n gap: 1em;\n }\n\n #version-wrapper {\n width: auto;\n text-align: right;\n position: absolute;\n top: 0.5rem;\n right: 0.5rem;\n font-size: 0.8rem;\n color: var(--shore)!important;\n i {\n background-color: color-mix(in srgb, var(--deep), transparent 50%);\n border-radius: 9999px;\n padding: 0.2em 0.5em;\n }\n z-index: 101;\n }\n\n #errorTrace-wrapper {\n position: relative;\n width: fit-content;\n }\n\n #copy-button {\n position: absolute;\n top: 0.5em;\n right: 0.5em;\n padding: 0.23em;\n cursor: pointer;\n opacity: 0;\n transition: opacity 0.4s;\n font-size: 0.9em;\n }\n\n #errorTrace-wrapper:hover #copy-button {\n opacity: 1;\n }\n </style>\n </head>\n <body>\n <div id=\"cover\"></div>\n <div id=\"inner\">\n <h1 id=\"errorTitle\">Uh oh!</h1>\n <p>There was an error loading <b id=\"fetchedURL\"></b></p>\n <!-- <p id=\"errorMessage\">Internal Server Error</p> -->\n\n <div id=\"info\">\n <div id=\"errorTrace-wrapper\">\n <textarea id=\"errorTrace\" cols=\"40\" rows=\"10\" readonly></textarea>\n <button id=\"copy-button\" class=\"primary\">Copy</button>\n </div>\n <div id=\"troubleshooting\">\n <p>Try:</p>\n <ul>\n <li>Checking your internet connection</li>\n <li>Verifying you entered the correct address</li>\n <li>Clearing the site data</li>\n <li>Contacting <b id=\"hostname\"></b>'s administrator</li>\n <li>Verify the server isn't censored</li>\n </ul>\n <p>If you're the administrator of <b id=\"hostname\"></b>, try:</p>\n <ul>\n <li>Restarting your server</li>\n <li>Updating Scramjet</li>\n <li>Troubleshooting the error on the <a href=\"https://github.com/MercuryWorkshop/scramjet\" target=\"_blank\">GitHub repository</a></li>\n </ul>\n </div>\n </div>\n <br>\n <button id=\"reload\" class=\"primary\">Reload</button>\n </div>\n <p id=\"version-wrapper\"><i>Scramjet v<span id=\"version\"></span> (build <span id=\"build\"></span>)</i></p>\n <script src=\"${\"data:application/javascript,\" + encodeURIComponent(script)}\"></script>\n </body>\n </html>\n `;\n}\n\nexport function renderError(err: unknown, fetchedURL: string) {\n\tconst headers = {\n\t\t\"content-type\": \"text/html\",\n\t};\n\tif (crossOriginIsolated) {\n\t\theaders[\"Cross-Origin-Embedder-Policy\"] = \"require-corp\";\n\t}\n\n\treturn new Response(errorTemplate(String(err), fetchedURL), {\n\t\tstatus: 500,\n\t\theaders: headers,\n\t});\n}\n","import { type MessageW2R, type MessageR2W } from \"@client/swruntime\";\n\nexport class FakeServiceWorker {\n\tsyncToken = 0;\n\tpromises: Record<number, (val?: MessageR2W) => void> = {};\n\tmessageChannel = new MessageChannel();\n\tconnected = false;\n\n\tconstructor(\n\t\tpublic handle: MessagePort,\n\t\tpublic origin: string\n\t) {\n\t\tthis.messageChannel.port1.addEventListener(\"message\", (event) => {\n\t\t\tif (\"scramjet$type\" in event.data) {\n\t\t\t\tif (event.data.scramjet$type === \"init\") {\n\t\t\t\t\tthis.connected = true;\n\t\t\t\t} else {\n\t\t\t\t\tthis.handleMessage(event.data);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tthis.messageChannel.port1.start();\n\n\t\tthis.handle.postMessage(\n\t\t\t{\n\t\t\t\tscramjet$type: \"init\",\n\t\t\t\tscramjet$port: this.messageChannel.port2,\n\t\t\t},\n\t\t\t[this.messageChannel.port2]\n\t\t);\n\t}\n\n\thandleMessage(data: MessageR2W) {\n\t\tconst cb = this.promises[data.scramjet$token];\n\t\tif (cb) {\n\t\t\tcb(data);\n\t\t\tdelete this.promises[data.scramjet$token];\n\t\t}\n\t}\n\n\tasync fetch(request: Request): Promise<Response | false> {\n\t\tconst token = this.syncToken++;\n\n\t\tconst message: MessageW2R = {\n\t\t\tscramjet$type: \"fetch\",\n\t\t\tscramjet$token: token,\n\t\t\tscramjet$request: {\n\t\t\t\turl: request.url,\n\t\t\t\tbody: request.body,\n\t\t\t\theaders: Array.from(request.headers.entries()),\n\t\t\t\tmethod: request.method,\n\t\t\t\tmode: request.mode,\n\t\t\t\tdestinitation: request.destination,\n\t\t\t},\n\t\t};\n\n\t\tconst transfer = request.body ? [request.body] : [];\n\n\t\tthis.handle.postMessage(message, transfer);\n\n\t\tconst { scramjet$response: r } = (await new Promise((resolve) => {\n\t\t\tthis.promises[token] = resolve;\n\t\t})) as MessageR2W;\n\n\t\tif (!r) return false;\n\n\t\treturn new Response(r.body, {\n\t\t\theaders: r.headers,\n\t\t\tstatus: r.status,\n\t\t\tstatusText: r.statusText,\n\t\t});\n\t}\n}\n","import BareClient, { BareResponseFetch } from \"@mercuryworkshop/bare-mux\";\nimport { MessageW2C, ScramjetServiceWorker } from \"@/worker\";\nimport { renderError } from \"@/worker/error\";\nimport { FakeServiceWorker } from \"@/worker/fakesw\";\nimport { CookieStore } from \"@/shared/cookie\";\n\nimport { getSiteDirective } from \"@/shared/security/siteTests\";\nimport {\n\tinitializeTracker,\n\tupdateTracker,\n\tcleanTracker,\n\tgetMostRestrictiveSite,\n\tstoreReferrerPolicy,\n\tgetReferrerPolicy,\n} from \"@/shared/security/forceReferrer\";\n\nimport { unrewriteBlob, unrewriteUrl, type URLMeta } from \"@rewriters/url\";\nimport { rewriteJs } from \"@rewriters/js\";\nimport { ScramjetHeaders } from \"@/shared/headers\";\nimport { config, flagEnabled } from \"@/shared\";\nimport { rewriteHeaders } from \"@rewriters/headers\";\nimport { rewriteHtml } from \"@rewriters/html\";\nimport { rewriteCss } from \"@rewriters/css\";\nimport { rewriteWorkers } from \"@rewriters/worker\";\nimport { ScramjetDownload } from \"@client/events\";\n\nfunction isRedirect(response: BareResponseFetch) {\n\treturn response.status >= 300 && response.status < 400;\n}\n\nfunction isDownload(responseHeaders: object, destination: string): boolean {\n\tif ([\"document\", \"iframe\"].includes(destination)) {\n\t\tconst header = responseHeaders[\"content-disposition\"];\n\t\tif (header) {\n\t\t\tif (header === \"inline\") {\n\t\t\t\treturn false; // force it to show in browser\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t} else {\n\t\t\t// check mime type as fallback\n\t\t\tconst displayableMimes = [\n\t\t\t\t// Text types\n\t\t\t\t\"text/html\",\n\t\t\t\t\"text/plain\",\n\t\t\t\t\"text/css\",\n\t\t\t\t\"text/javascript\",\n\t\t\t\t\"text/xml\",\n\t\t\t\t\"application/javascript\",\n\t\t\t\t\"application/json\",\n\t\t\t\t\"application/xml\",\n\t\t\t\t\"application/pdf\",\n\t\t\t];\n\t\t\tconst contentType = responseHeaders[\"content-type\"]\n\t\t\t\t?.split(\";\")[0]\n\t\t\t\t.trim()\n\t\t\t\t.toLowerCase();\n\t\t\tif (\n\t\t\t\tcontentType &&\n\t\t\t\t!displayableMimes.includes(contentType) &&\n\t\t\t\t!contentType.startsWith(\"text\") &&\n\t\t\t\t!contentType.startsWith(\"image\") &&\n\t\t\t\t!contentType.startsWith(\"font\") &&\n\t\t\t\t!contentType.startsWith(\"video\")\n\t\t\t) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn false;\n}\n\nexport async function handleFetch(\n\tthis: ScramjetServiceWorker,\n\trequest: Request,\n\tclient: Client | null\n) {\n\ttry {\n\t\tconst requestUrl = new URL(request.url);\n\n\t\tif (requestUrl.pathname === this.config.files.wasm) {\n\t\t\treturn fetch(this.config.files.wasm).then(async (x) => {\n\t\t\t\tconst buf = await x.arrayBuffer();\n\t\t\t\tconst b64 = btoa(\n\t\t\t\t\tnew Uint8Array(buf)\n\t\t\t\t\t\t.reduce(\n\t\t\t\t\t\t\t(data, byte) => (data.push(String.fromCharCode(byte)), data),\n\t\t\t\t\t\t\t[]\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join(\"\")\n\t\t\t\t);\n\n\t\t\t\tlet payload = \"\";\n\t\t\t\tpayload +=\n\t\t\t\t\t\"if ('document' in self && document.currentScript) { document.currentScript.remove(); }\\n\";\n\t\t\t\tpayload += `self.WASM = '${b64}';`;\n\n\t\t\t\treturn new Response(payload, {\n\t\t\t\t\theaders: { \"content-type\": \"text/javascript\" },\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tlet scriptType = \"\";\n\t\tlet topFrameName;\n\t\tlet parentFrameName;\n\n\t\tconst extraParams: Record<string, string> = {};\n\t\tfor (const [param, value] of [...requestUrl.searchParams.entries()]) {\n\t\t\tswitch (param) {\n\t\t\t\tcase \"type\":\n\t\t\t\t\tscriptType = value;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"dest\":\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"topFrame\":\n\t\t\t\t\ttopFrameName = value;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"parentFrame\":\n\t\t\t\t\tparentFrameName = value;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tdbg.warn(\n\t\t\t\t\t\t`${requestUrl.href} extraneous query parameter ${param}. Assuming <form> element`\n\t\t\t\t\t);\n\t\t\t\t\textraParams[param] = value;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\trequestUrl.searchParams.delete(param);\n\t\t}\n\n\t\tconst url = new URL(unrewriteUrl(requestUrl));\n\t\t// now that we're past unrewriting it's safe to add back the params\n\t\tfor (const [param, value] of Object.entries(extraParams)) {\n\t\t\turl.searchParams.set(param, value);\n\t\t}\n\n\t\tconst meta: URLMeta = {\n\t\t\torigin: url,\n\t\t\tbase: url,\n\t\t\ttopFrameName,\n\t\t\tparentFrameName,\n\t\t};\n\n\t\tif (\n\t\t\trequestUrl.pathname.startsWith(`${this.config.prefix}blob:`) ||\n\t\t\trequestUrl.pathname.startsWith(`${this.config.prefix}data:`)\n\t\t) {\n\t\t\tlet dataUrl = requestUrl.pathname.substring(this.config.prefix.length);\n\t\t\tif (dataUrl.startsWith(\"blob:\")) {\n\t\t\t\tdataUrl = unrewriteBlob(dataUrl);\n\t\t\t}\n\n\t\t\tconst response: Partial<BareResponseFetch> = await fetch(dataUrl, {});\n\t\t\tconst url = dataUrl.startsWith(\"blob:\") ? dataUrl : \"(data url)\";\n\t\t\tresponse.finalURL = url;\n\t\t\tlet body: BodyType;\n\n\t\t\tif (response.body) {\n\t\t\t\tbody = await rewriteBody(\n\t\t\t\t\tresponse as BareResponseFetch,\n\t\t\t\t\tmeta,\n\t\t\t\t\trequest.destination,\n\t\t\t\t\tscriptType,\n\t\t\t\t\tthis.cookieStore\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst headers = Object.fromEntries(response.headers.entries());\n\n\t\t\tif (crossOriginIsolated) {\n\t\t\t\theaders[\"Cross-Origin-Opener-Policy\"] = \"same-origin\";\n\t\t\t\theaders[\"Cross-Origin-Embedder-Policy\"] = \"require-corp\";\n\t\t\t}\n\n\t\t\treturn new Response(body, {\n\t\t\t\tstatus: response.status,\n\t\t\t\tstatusText: response.statusText,\n\t\t\t\theaders: headers,\n\t\t\t});\n\t\t}\n\n\t\tconst activeWorker: FakeServiceWorker | null = this.serviceWorkers.find(\n\t\t\t(w) => w.origin === url.origin\n\t\t);\n\n\t\tif (\n\t\t\tactiveWorker?.connected &&\n\t\t\trequestUrl.searchParams.get(\"from\") !== \"swruntime\"\n\t\t) {\n\t\t\t// TODO: check scope\n\t\t\tconst r = await activeWorker.fetch(request);\n\t\t\tif (r) return r;\n\t\t}\n\t\tif (url.origin === new URL(request.url).origin) {\n\t\t\tthrow new Error(\n\t\t\t\t\"attempted to fetch from same origin - this means the site has obtained a reference to the real origin, aborting\"\n\t\t\t);\n\t\t}\n\n\t\tconst headers = new ScramjetHeaders();\n\t\tfor (const [key, value] of request.headers.entries()) {\n\t\t\theaders.set(key, value);\n\t\t}\n\n\t\tif (client && new URL(client.url).pathname.startsWith(config.prefix)) {\n\t\t\t// TODO: i was against cors emulation but we might actually break stuff if we send full origin/referrer always\n\t\t\tconst clientURL = new URL(unrewriteUrl(client.url));\n\t\t\tif (clientURL.toString().includes(\"youtube.com\")) {\n\t\t\t\t// console.log(headers);\n\t\t\t} else {\n\t\t\t\t// Force referrer to unsafe-url for all requests\n\t\t\t\theaders.set(\"Referer\", clientURL.href);\n\t\t\t\theaders.set(\"Origin\", clientURL.origin);\n\t\t\t}\n\t\t}\n\n\t\tconst cookies = this.cookieStore.getCookies(url, false);\n\n\t\tif (cookies.length) {\n\t\t\theaders.set(\"Cookie\", cookies);\n\t\t}\n\n\t\t// Check if we should emulate a top-level navigation\n\t\tlet isTopLevelProxyNavigation = false;\n\t\tif (\n\t\t\trequest.destination === \"iframe\" &&\n\t\t\trequest.mode === \"navigate\" &&\n\t\t\trequest.referrer &&\n\t\t\trequest.referrer !== \"no-referrer\" &&\n\t\t\trequest.referrer !== location.origin + config.prefix + \"no-referrer\"\n\t\t) {\n\t\t\t// Trace back through the referrer chain, checking if each was an iframe navigation using the clients, until we find a non-iframe parent on a non-proxy page\n\t\t\tlet currentReferrer = request.referrer;\n\t\t\tconst allClients = await self.clients.matchAll({ type: \"window\" });\n\n\t\t\t// Trace backwards\n\t\t\twhile (currentReferrer) {\n\t\t\t\tif (!currentReferrer.includes(config.prefix)) {\n\t\t\t\t\tisTopLevelProxyNavigation = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\t// Find the parent for this iteration\n\t\t\t\tconst parentChainClient = allClients.find(\n\t\t\t\t\t(c) => c.url === currentReferrer\n\t\t\t\t);\n\n\t\t\t\t// Get the next referrer policy that applies to this parent\n\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\tconst parentPolicyData = await getReferrerPolicy(currentReferrer);\n\n\t\t\t\tif (!parentPolicyData || !parentPolicyData.referrer) {\n\t\t\t\t\t// Check if this ends at the proxy origin\n\t\t\t\t\tif (\n\t\t\t\t\t\tparentChainClient &&\n\t\t\t\t\t\tcurrentReferrer.startsWith(location.origin)\n\t\t\t\t\t) {\n\t\t\t\t\t\tisTopLevelProxyNavigation = true;\n\t\t\t\t\t}\n\t\t\t\t\t// Results are inclusive\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\t// Check if this was an iframe navigation by looking at the client\n\t\t\t\tif (parentChainClient && parentChainClient.frameType === \"nested\") {\n\t\t\t\t\t// Continue checking the chain\n\t\t\t\t\tcurrentReferrer = parentPolicyData.referrer;\n\t\t\t\t} else {\n\t\t\t\t\t// Results are inclusive\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (isTopLevelProxyNavigation) {\n\t\t\theaders.set(\"Sec-Fetch-Dest\", \"document\");\n\t\t\theaders.set(\"Sec-Fetch-Mode\", \"navigate\");\n\t\t} else {\n\t\t\t// Convert empty destination to \"empty\" string per spec\n\t\t\theaders.set(\"Sec-Fetch-Dest\", request.destination || \"empty\");\n\t\t\theaders.set(\"Sec-Fetch-Mode\", request.mode);\n\t\t}\n\n\t\tlet siteDirective = \"none\";\n\t\tif (\n\t\t\trequest.referrer &&\n\t\t\trequest.referrer !== \"\" &&\n\t\t\trequest.referrer !== \"no-referrer\" &&\n\t\t\trequest.referrer !== location.origin + config.prefix + \"no-referrer\"\n\t\t) {\n\t\t\tif (request.referrer.includes(config.prefix)) {\n\t\t\t\tconst unrewrittenReferrer = unrewriteUrl(request.referrer);\n\t\t\t\tif (unrewrittenReferrer) {\n\t\t\t\t\tconst referrerUrl = new URL(unrewrittenReferrer);\n\t\t\t\t\tsiteDirective = await getSiteDirective(\n\t\t\t\t\t\tmeta,\n\t\t\t\t\t\treferrerUrl,\n\t\t\t\t\t\tthis.client\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tawait initializeTracker(\n\t\t\turl.toString(),\n\t\t\trequest.referrer ? unrewriteUrl(request.referrer) : null,\n\t\t\tsiteDirective\n\t\t);\n\n\t\theaders.set(\n\t\t\t\"Sec-Fetch-Site\",\n\t\t\tawait getMostRestrictiveSite(url.toString(), siteDirective)\n\t\t);\n\n\t\tconst ev = new ScramjetRequestEvent(\n\t\t\turl,\n\t\t\theaders.headers,\n\t\t\trequest.body,\n\t\t\trequest.method,\n\t\t\trequest.destination,\n\t\t\tclient\n\t\t);\n\t\tthis.dispatchEvent(ev);\n\n\t\tconst response =\n\t\t\t(await ev.response) ||\n\t\t\t((await this.client.fetch(ev.url, {\n\t\t\t\tmethod: ev.method,\n\t\t\t\tbody: ev.body,\n\t\t\t\theaders: ev.requestHeaders,\n\t\t\t\tcredentials: \"omit\",\n\t\t\t\tmode: request.mode === \"cors\" ? request.mode : \"same-origin\",\n\t\t\t\tcache: request.cache,\n\t\t\t\tredirect: \"manual\",\n\t\t\t\t// @ts-ignore why the fuck is this not typed microsoft\n\t\t\t\tduplex: \"half\",\n\t\t\t})) as BareResponseFetch);\n\t\tresponse.finalURL = ev.url.href;\n\n\t\treturn await handleResponse(\n\t\t\turl,\n\t\t\tmeta,\n\t\t\tscriptType,\n\t\t\trequest.destination,\n\t\t\trequest.mode,\n\t\t\tresponse,\n\t\t\tthis.cookieStore,\n\t\t\tclient,\n\t\t\tthis.client,\n\t\t\tthis,\n\t\t\trequest.referrer\n\t\t);\n\t} catch (err) {\n\t\tconst errorDetails = {\n\t\t\tmessage: err.message,\n\t\t\turl: request.url,\n\t\t\tdestination: request.destination,\n\t\t};\n\t\tif (err.cause) {\n\t\t\terrorDetails[\"cause\"] = err.cause;\n\t\t\tif (err.cause instanceof AggregateError) {\n\t\t\t\terrorDetails[\"causeErrors\"] = err.cause.errors;\n\t\t\t}\n\t\t}\n\t\tif (err.stack) {\n\t\t\terrorDetails[\"stack\"] = err.stack;\n\t\t}\n\n\t\tconsole.error(\"ERROR FROM SERVICE WORKER FETCH: \", errorDetails);\n\t\tconsole.error(err);\n\n\t\tif (![\"document\", \"iframe\"].includes(request.destination))\n\t\t\treturn new Response(undefined, { status: 500 });\n\n\t\tconst formattedError = Object.entries(errorDetails)\n\t\t\t.map(\n\t\t\t\t([key, value]) =>\n\t\t\t\t\t`${key.charAt(0).toUpperCase() + key.slice(1)}: ${value}`\n\t\t\t)\n\t\t\t.join(\"\\n\\n\");\n\n\t\treturn renderError(formattedError, unrewriteUrl(request.url));\n\t}\n}\n\nasync function handleResponse(\n\turl: URL,\n\tmeta: URLMeta,\n\tscriptType: string,\n\tdestination: RequestDestination,\n\tmode: RequestMode,\n\tresponse: BareResponseFetch,\n\tcookieStore: CookieStore,\n\tclient: Client,\n\tbareClient: BareClient,\n\tswtarget: ScramjetServiceWorker,\n\treferrer: string\n): Promise<Response> {\n\tlet responseBody: BodyType;\n\t// response.rawHeaders = {};\n\t// for (let h of response.raw_headers) {\n\t// \tconst key = h[0];\n\t// \tconst value = h[1];\n\t// \tif (response.rawHeaders[key] === undefined) {\n\t// \t\tresponse.rawHeaders[key] = value;\n\t// \t} else if (Array.isArray(response.rawHeaders[key])) {\n\t// \t\t(response.rawHeaders[key] as string[]).push(value);\n\t// \t} else {\n\t// \t\tresponse.rawHeaders[key] = [response.rawHeaders[key] as string, value];\n\t// \t}\n\t// }\n\tconst isNavigationRequest =\n\t\tmode === \"navigate\" && [\"document\", \"iframe\"].includes(destination);\n\tconst responseHeaders = await rewriteHeaders(\n\t\tresponse.rawHeaders,\n\t\tmeta,\n\t\tbareClient,\n\t\t{ get: getReferrerPolicy, set: storeReferrerPolicy }\n\t);\n\n\t// Store referrer policy from navigation responses for Force Referrer\n\tif (isNavigationRequest && responseHeaders[\"referrer-policy\"] && referrer) {\n\t\tawait storeReferrerPolicy(\n\t\t\turl.href,\n\t\t\tresponseHeaders[\"referrer-policy\"],\n\t\t\treferrer\n\t\t);\n\t}\n\n\tif (isRedirect(response)) {\n\t\tconst redirectUrl = new URL(unrewriteUrl(responseHeaders[\"location\"]));\n\n\t\tawait updateTracker(\n\t\t\turl.toString(),\n\t\t\tredirectUrl.toString(),\n\t\t\tresponseHeaders[\"referrer-policy\"]\n\t\t);\n\n\t\tconst redirectMeta = {\n\t\t\torigin: redirectUrl,\n\t\t\tbase: redirectUrl,\n\t\t};\n\t\tconst newSiteDirective = await getSiteDirective(\n\t\t\tredirectMeta,\n\t\t\turl,\n\t\t\tbareClient\n\t\t);\n\t\tawait getMostRestrictiveSite(redirectUrl.toString(), newSiteDirective);\n\n\t\t// ensure that ?type=module is not lost in a redirect\n\t\tif (scriptType) {\n\t\t\tconst url = new URL(responseHeaders[\"location\"]);\n\t\t\turl.searchParams.set(\"type\", scriptType);\n\t\t\tresponseHeaders[\"location\"] = url.href;\n\t\t}\n\t}\n\n\tconst maybeHeaders = responseHeaders[\"set-cookie\"] || [];\n\tfor (const cookie in maybeHeaders) {\n\t\tif (client) {\n\t\t\tconst promise = swtarget.dispatch(client, {\n\t\t\t\tscramjet$type: \"cookie\",\n\t\t\t\tcookie,\n\t\t\t\turl: url.href,\n\t\t\t});\n\t\t\tif (destination !== \"document\" && destination !== \"iframe\") {\n\t\t\t\tawait promise;\n\t\t\t}\n\t\t}\n\t}\n\n\tawait cookieStore.setCookies(\n\t\tmaybeHeaders instanceof Array ? maybeHeaders : [maybeHeaders],\n\t\turl\n\t);\n\n\tfor (const header in responseHeaders) {\n\t\t// flatten everything past here\n\t\tif (Array.isArray(responseHeaders[header]))\n\t\t\tresponseHeaders[header] = responseHeaders[header][0];\n\t}\n\n\tif (isDownload(responseHeaders, destination) && !isRedirect(response)) {\n\t\tif (flagEnabled(\"interceptDownloads\", url)) {\n\t\t\tif (!client) {\n\t\t\t\tthrow new Error(\"cant find client\");\n\t\t\t}\n\t\t\tlet filename: string | null = null;\n\t\t\tconst disp = responseHeaders[\"content-disposition\"];\n\t\t\tif (typeof disp === \"string\") {\n\t\t\t\tconst filenameMatch = disp.match(/filename=[\"']?([^\"';\\n]*)[\"']?/i);\n\t\t\t\tif (filenameMatch && filenameMatch[1]) {\n\t\t\t\t\tfilename = filenameMatch[1];\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst length = responseHeaders[\"content-length\"];\n\n\t\t\t// there's no reliable way of finding the top level client that made the request\n\t\t\t// just take the first one and hope\n\t\t\tlet clis = await clients.matchAll({});\n\t\t\t// only want controller windows\n\t\t\tclis = clis.filter((e) => !e.url.includes(config.prefix));\n\t\t\tif (clis.length < 1) {\n\t\t\t\tthrow Error(\n\t\t\t\t\t\"couldn't find a controller client to dispatch download to\"\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst download: ScramjetDownload = {\n\t\t\t\tfilename,\n\t\t\t\turl: url.href,\n\t\t\t\ttype: responseHeaders[\"content-type\"],\n\t\t\t\tbody: response.body,\n\t\t\t\tlength: Number(length),\n\t\t\t};\n\t\t\tclis[0].postMessage(\n\t\t\t\t{\n\t\t\t\t\tscramjet$type: \"download\",\n\t\t\t\t\tdownload,\n\t\t\t\t} as MessageW2C,\n\t\t\t\t[response.body]\n\t\t\t);\n\n\t\t\t// endless vortex reference\n\t\t\tawait new Promise(() => {});\n\t\t} else {\n\t\t\t// manually rewrite for regular browser download\n\t\t\tconst header = responseHeaders[\"content-disposition\"];\n\n\t\t\t// validate header and test for filename\n\t\t\tif (!/\\s*?((inline|attachment);\\s*?)filename=/i.test(header)) {\n\t\t\t\t// if filename= wasn\"t specified then maybe the remote specified to download this as an attachment?\n\t\t\t\t// if it\"s invalid then we can still possibly test for the attachment/inline type\n\t\t\t\tconst type = /^\\s*?attachment/i.test(header) ? \"attachment\" : \"inline\";\n\n\t\t\t\t// set the filename\n\t\t\t\tconst [filename] = new URL(response.finalURL).pathname\n\t\t\t\t\t.split(\"/\")\n\t\t\t\t\t.slice(-1);\n\n\t\t\t\tresponseHeaders[\"content-disposition\"] =\n\t\t\t\t\t`${type}; filename=${JSON.stringify(filename)}`;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (response.body && !isRedirect(response)) {\n\t\tresponseBody = await rewriteBody(\n\t\t\tresponse,\n\t\t\tmeta,\n\t\t\tdestination,\n\t\t\tscriptType,\n\t\t\tcookieStore\n\t\t);\n\t}\n\n\tif (responseHeaders[\"accept\"] === \"text/event-stream\") {\n\t\tresponseHeaders[\"content-type\"] = \"text/event-stream\";\n\t}\n\n\t// scramjet runtime can use features that permissions-policy blocks\n\tdelete responseHeaders[\"permissions-policy\"];\n\n\tif (\n\t\tcrossOriginIsolated &&\n\t\t[\n\t\t\t\"document\",\n\t\t\t\"iframe\",\n\t\t\t\"worker\",\n\t\t\t\"sharedworker\",\n\t\t\t\"style\",\n\t\t\t\"script\",\n\t\t].includes(destination)\n\t) {\n\t\tresponseHeaders[\"Cross-Origin-Embedder-Policy\"] = \"require-corp\";\n\t\tresponseHeaders[\"Cross-Origin-Opener-Policy\"] = \"same-origin\";\n\t}\n\n\tconst ev = new ScramjetHandleResponseEvent(\n\t\tresponseBody,\n\t\tresponseHeaders,\n\t\tresponse.status,\n\t\tresponse.statusText,\n\t\tdestination,\n\t\turl,\n\t\tresponse,\n\t\tclient\n\t);\n\tswtarget.dispatchEvent(ev);\n\n\t// Clean up tracker if not a redirect\n\tif (!isRedirect(response)) {\n\t\tawait cleanTracker(url.toString());\n\t}\n\n\treturn new Response(ev.responseBody, {\n\t\theaders: ev.responseHeaders as HeadersInit,\n\t\tstatus: ev.status,\n\t\tstatusText: ev.statusText,\n\t});\n}\n\nasync function rewriteBody(\n\tresponse: BareResponseFetch,\n\tmeta: URLMeta,\n\tdestination: RequestDestination,\n\tworkertype: string,\n\tcookieStore: CookieStore\n): Promise<BodyType> {\n\tswitch (destination) {\n\t\tcase \"iframe\":\n\t\tcase \"document\":\n\t\t\tif (response.headers.get(\"content-type\")?.startsWith(\"text/html\")) {\n\t\t\t\t// note from percs: i think this has the potential to be slow asf, but for right now its fine (we should probably look for a better solution)\n\t\t\t\t// another note from percs: regex seems to be broken, gonna comment this out\n\t\t\t\t/*\n const buf = await response.arrayBuffer();\n const decode = new TextDecoder(\"utf-8\").decode(buf);\n const charsetHeader = response.headers.get(\"content-type\");\n const charset =\n charsetHeader?.split(\"charset=\")[1] ||\n decode.match(/charset=([^\"]+)/)?.[1] ||\n \"utf-8\";\n const htmlContent = charset\n ? new TextDecoder(charset).decode(buf)\n : decode;\n */\n\t\t\t\treturn rewriteHtml(await response.text(), cookieStore, meta, true);\n\t\t\t} else {\n\t\t\t\treturn response.body;\n\t\t\t}\n\t\tcase \"script\": {\n\t\t\treturn rewriteJs(\n\t\t\t\tnew Uint8Array(await response.arrayBuffer()),\n\t\t\t\tresponse.finalURL,\n\t\t\t\tmeta,\n\t\t\t\tworkertype === \"module\"\n\t\t\t) as unknown as ArrayBuffer;\n\t\t}\n\t\tcase \"style\":\n\t\t\treturn rewriteCss(await response.text(), meta);\n\t\tcase \"sharedworker\":\n\t\tcase \"worker\":\n\t\t\treturn rewriteWorkers(\n\t\t\t\tnew Uint8Array(await response.arrayBuffer()),\n\t\t\t\tworkertype,\n\t\t\t\tresponse.finalURL,\n\t\t\t\tmeta\n\t\t\t);\n\t\tdefault:\n\t\t\treturn response.body;\n\t}\n}\n\ntype BodyType = string | ArrayBuffer | Blob | ReadableStream<any>;\n\nexport class ScramjetHandleResponseEvent extends Event {\n\tconstructor(\n\t\tpublic responseBody: BodyType,\n\t\tpublic responseHeaders: Record<string, string>,\n\t\tpublic status: number,\n\t\tpublic statusText: string,\n\t\tpublic destination: string,\n\t\tpublic url: URL,\n\t\tpublic rawResponse: BareResponseFetch,\n\t\tpublic client: Client\n\t) {\n\t\tsuper(\"handleResponse\");\n\t}\n}\n\nexport class ScramjetRequestEvent extends Event {\n\tconstructor(\n\t\tpublic url: URL,\n\t\tpublic requestHeaders: Record<string, string>,\n\t\tpublic body: BodyType,\n\t\tpublic method: string,\n\t\tpublic destination: string,\n\t\tpublic client: Client\n\t) {\n\t\tsuper(\"request\");\n\t}\n\tpublic response?: BareResponseFetch | Promise<BareResponseFetch>;\n}\n","/**\n * @fileoverview Contains the core Service Worker logic for Scramjet, which handles the initial request interception and handles client management for the Scramjet service.\n */\n\nimport { FakeServiceWorker } from \"@/worker/fakesw\";\nimport { handleFetch } from \"@/worker/fetch\";\nimport BareClient from \"@mercuryworkshop/bare-mux\";\nimport { ScramjetConfig, ScramjetDB } from \"@/types\";\nimport { asyncSetWasm } from \"@rewriters/wasm\";\nimport { CookieStore } from \"@/shared/cookie\";\nimport { openDB } from \"idb\";\nimport { config, loadCodecs, setConfig } from \"@/shared\";\nimport { ScramjetDownload } from \"@client/events\";\nexport * from \"./error\";\nexport * from \"./fetch\";\nexport * from \"./fakesw\";\n\n/**\n * Main `ScramjetServiceWorker` class created by the `$scramjetLoadWorker` factory, which handles routing the proxy and contains the core logic for request interception.\n */\nexport class ScramjetServiceWorker extends EventTarget {\n\t/**\n\t * `BareClient` instance to fetch requests under a chosen proxy transport.\n\t */\n\tclient: BareClient;\n\t/**\n\t * Current ScramjetConfig saved in memory.\n\t */\n\tconfig: ScramjetConfig;\n\n\t/**\n\t * Recorded sync messages in the message queue.\n\t */\n\tsyncPool: Record<number, (val?: any) => void> = {};\n\t/**\n\t * Current sync token for collected messages in the queue.\n\t */\n\tsynctoken = 0;\n\n\t/**\n\t * Scramjet's cookie jar for cookie emulation through other storage means, connected to a client.\n\t */\n\tcookieStore = new CookieStore();\n\n\t/**\n\t * Fake service worker registrations, so that some sites don't complain.\n\t * This will eventually be replaced with a NestedSW feature under a flag in the future, but this will remain for stability even then.\n\t */\n\tserviceWorkers: FakeServiceWorker[] = [];\n\n\t/**\n\t * Initializes the `BareClient` Scramjet uses to fetch requests under a chosen proxy transport, the cookie jar store for proxifying cookies, and inits the listeners for emulation features and dynamic configs set through the Scramjet Controller.\n\t */\n\tconstructor() {\n\t\tsuper();\n\t\tthis.client = new BareClient();\n\n\t\t(async () => {\n\t\t\tconst db = await openDB<ScramjetDB>(\"$scramjet\", 1);\n\t\t\tconst cookies = await db.get(\"cookies\", \"cookies\");\n\t\t\tif (cookies) {\n\t\t\t\tthis.cookieStore.load(cookies);\n\t\t\t}\n\t\t})();\n\n\t\taddEventListener(\"message\", async ({ data }: { data: MessageC2W }) => {\n\t\t\tif (!(\"scramjet$type\" in data)) return;\n\n\t\t\tif (\"scramjet$token\" in data) {\n\t\t\t\t// (ack message)\n\t\t\t\tconst cb = this.syncPool[data.scramjet$token];\n\t\t\t\tdelete this.syncPool[data.scramjet$token];\n\t\t\t\tcb(data);\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (data.scramjet$type === \"registerServiceWorker\") {\n\t\t\t\tthis.serviceWorkers.push(new FakeServiceWorker(data.port, data.origin));\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (data.scramjet$type === \"cookie\") {\n\t\t\t\tthis.cookieStore.setCookies([data.cookie], new URL(data.url));\n\t\t\t\tconst db = await openDB<ScramjetDB>(\"$scramjet\", 1);\n\t\t\t\tawait db.put(\"cookies\", JSON.parse(this.cookieStore.dump()), \"cookies\");\n\t\t\t}\n\n\t\t\tif (data.scramjet$type === \"loadConfig\") {\n\t\t\t\tthis.config = data.config;\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Dispatches a message in the message queues.\n\t */\n\tasync dispatch(client: Client, data: MessageW2C): Promise<MessageC2W> {\n\t\tconst token = this.synctoken++;\n\t\tlet cb: (val: MessageC2W) => void;\n\t\tconst promise: Promise<MessageC2W> = new Promise((r) => (cb = r));\n\t\tthis.syncPool[token] = cb;\n\t\tdata.scramjet$token = token;\n\n\t\tclient.postMessage(data);\n\n\t\treturn await promise;\n\t}\n\n\t/**\n\t * Persists the current Scramjet config into an IndexedDB store.\n\t * Remember, this is because the Scramjet config can be dynamically updated via the Scramjet Controller APIs.\n\t *\n\t * @example\n\t * self.addEventListener(\"fetch\", async (ev) => {\n\t * await scramjet.loadConfig();\n\t *\n\t * ...\n\t * });\n\t */\n\tasync loadConfig() {\n\t\tif (this.config) return;\n\n\t\tconst db = await openDB<ScramjetDB>(\"$scramjet\", 1);\n\t\tthis.config = await db.get(\"config\", \"config\");\n\n\t\tif (this.config) {\n\t\t\tsetConfig(this.config);\n\t\t\tawait asyncSetWasm();\n\t\t}\n\t}\n\n\t/**\n\t * Whether to route a request from a `FetchEvent` in Scramjet.\n\t *\n\t * @example\n\t * self.addEventListener(\"fetch\", async (ev) => {\n\t * ...\n\t *\n\t * if (scramjet.route(ev)) {\n\t * ...\n\t * }\n\t * });\n\t * ```\n\t */\n\troute({ request }: FetchEvent) {\n\t\tif (request.url.startsWith(location.origin + this.config.prefix))\n\t\t\treturn true;\n\t\telse if (request.url.startsWith(location.origin + this.config.files.wasm))\n\t\t\treturn true;\n\t\telse return false;\n\t}\n\n\t/**\n\t * Handles a `FetchEvent` to be routed in Scramjet.\n\t * This is the heart of adding Scramjet support to your web proxy.\n\t *\n\t * @example\n\t * self.addEventListener(\"fetch\", async (ev) => {\n\t * ...\n\t *\n\t * if (scramjet.route(ev)) {\n\t * ev.respondWith(scramjet.fetch(ev));\n\t * }\n\t * });\n\t */\n\tasync fetch({ request, clientId }: FetchEvent) {\n\t\tif (!this.config) await this.loadConfig();\n\n\t\tconst client = await self.clients.get(clientId);\n\n\t\treturn handleFetch.call(this, request, client);\n\t}\n}\n\n/**\n * Scramjet fake Service Worker event message.\n * Contains a `scramjet$type` for identifying the message.\n */\ntype RegisterServiceWorkerMessage = {\n\tscramjet$type: \"registerServiceWorker\";\n\tport: MessagePort;\n\torigin: string;\n};\n\n/**\n * Scramjet cookie jar event message.\n * Contains a `scramjet$type` for identifying the message.\n */\ntype CookieMessage = {\n\tscramjet$type: \"cookie\";\n\tcookie: string;\n\turl: string;\n};\n\n/**\n * Scramjet config event message.\n * Contains a `scramjet$type` for identifying the message.\n */\ntype ConfigMessage = {\n\tscramjet$type: \"loadConfig\";\n\tconfig: ScramjetConfig;\n};\n\n/**\n * Scramjet proxified download event message.\n * Contains a `scramjet$type` for identifying the message.\n */\ntype DownloadMessage = {\n\tscramjet$type: \"download\";\n\tdownload: ScramjetDownload;\n};\n/**\n * Default Scramjet message.\n * Contains a `scramjet$type` for identifying the message.\n */\ntype MessageCommon = {\n\tscramjet$token?: number;\n};\n\n/**\n * Message types sent from the client to the Service Worker.\n * These are routed by their `scramjet$type` to identify the messages apart from each other.\n */\ntype MessageTypeC2W =\n\t| RegisterServiceWorkerMessage\n\t| CookieMessage\n\t| ConfigMessage;\n/**\n * w2c (types): Message types sent from the Service Worker to the client.\n */\ntype MessageTypeW2C = CookieMessage | DownloadMessage;\n\n/** c2w: client to Service Worker */\nexport type MessageC2W = MessageCommon & MessageTypeC2W;\n/** w2c: Service Worker to client */\nexport type MessageW2C = MessageCommon & MessageTypeW2C;\n","const e=20,t=globalThis.fetch,r=globalThis.SharedWorker,a=globalThis.localStorage,s=globalThis.navigator.serviceWorker,o=MessagePort.prototype.postMessage,n={prototype:{send:WebSocket.prototype.send},CLOSED:WebSocket.CLOSED,CLOSING:WebSocket.CLOSING,CONNECTING:WebSocket.CONNECTING,OPEN:WebSocket.OPEN};async function c(){const e=(await self.clients.matchAll({type:\"window\",includeUncontrolled:!0})).map((async e=>{const t=await function(e){let t=new MessageChannel;return new Promise((r=>{e.postMessage({type:\"getPort\",port:t.port2},[t.port2]),t.port1.onmessage=e=>{r(e.data)}}))}(e);return await i(t),t})),t=Promise.race([Promise.any(e),new Promise(((e,t)=>setTimeout(t,1e3,new TypeError(\"timeout\"))))]);try{return await t}catch(e){if(e instanceof AggregateError)throw console.error(\"bare-mux: failed to get a bare-mux SharedWorker MessagePort as all clients returned an invalid MessagePort.\"),new Error(\"All clients returned an invalid MessagePort.\",{cause:e});return console.warn(\"bare-mux: failed to get a bare-mux SharedWorker MessagePort within 1s, retrying\"),await c()}}function i(e){const t=new MessageChannel,r=new Promise(((e,r)=>{t.port1.onmessage=t=>{\"pong\"===t.data.type&&e()},setTimeout(r,1500)}));return o.call(e,{message:{type:\"ping\"},port:t.port2},[t.port2]),r}function l(e,t){const a=new r(e,\"bare-mux-worker\");return t&&s.addEventListener(\"message\",(t=>{if(\"getPort\"===t.data.type&&t.data.port){console.debug(\"bare-mux: recieved request for port from sw\");const a=new r(e,\"bare-mux-worker\");o.call(t.data.port,a.port,[a.port])}})),a.port}let h=null;function d(){if(null===h){const e=new MessageChannel,t=new ReadableStream;let r;try{o.call(e.port1,t,[t]),r=!0}catch(e){r=!1}return h=r,r}return h}class p{channel;port;workerPath;constructor(e){this.channel=new BroadcastChannel(\"bare-mux\"),e instanceof MessagePort||e instanceof Promise?this.port=e:this.createChannel(e,!0)}createChannel(e,t){if(self.clients)this.port=c(),this.channel.onmessage=e=>{\"refreshPort\"===e.data.type&&(this.port=c())};else if(e&&SharedWorker){if(!e.startsWith(\"/\")&&!e.includes(\":\"))throw new Error(\"Invalid URL. Must be absolute or start at the root.\");this.port=l(e,t),console.debug(\"bare-mux: setting localStorage bare-mux-path to\",e),a[\"bare-mux-path\"]=e}else{if(!SharedWorker)throw new Error(\"Unable to get a channel to the SharedWorker.\");{const e=a[\"bare-mux-path\"];if(console.debug(\"bare-mux: got localStorage bare-mux-path:\",e),!e)throw new Error(\"Unable to get bare-mux workerPath from localStorage.\");this.port=l(e,t)}}}async sendMessage(e,t){this.port instanceof Promise&&(this.port=await this.port);try{await i(this.port)}catch{return console.warn(\"bare-mux: Failed to get a ping response from the worker within 1.5s. Assuming port is dead.\"),this.createChannel(),await this.sendMessage(e,t)}const r=new MessageChannel,a=[r.port2,...t||[]],s=new Promise(((e,t)=>{r.port1.onmessage=r=>{const a=r.data;\"error\"===a.type?t(a.error):e(a)}}));return o.call(this.port,{message:e,port:r.port2},a),await s}}class w extends EventTarget{protocols;url;readyState=n.CONNECTING;channel;constructor(e,t=[],r,a){super(),this.protocols=t,this.url=e.toString(),this.protocols=t;const s=e=>{this.protocols=e,this.readyState=n.OPEN;const t=new Event(\"open\");this.dispatchEvent(t)},o=async e=>{const t=new MessageEvent(\"message\",{data:e});this.dispatchEvent(t)},c=(e,t)=>{this.readyState=n.CLOSED;const r=new CloseEvent(\"close\",{code:e,reason:t});this.dispatchEvent(r)},i=()=>{this.readyState=n.CLOSED;const e=new Event(\"error\");this.dispatchEvent(e)};this.channel=new MessageChannel,this.channel.port1.onmessage=e=>{\"open\"===e.data.type?s(e.data.args[0]):\"message\"===e.data.type?o(e.data.args[0]):\"close\"===e.data.type?c(e.data.args[0],e.data.args[1]):\"error\"===e.data.type&&i()},r.sendMessage({type:\"websocket\",websocket:{url:e.toString(),protocols:t,requestHeaders:a,channel:this.channel.port2}},[this.channel.port2])}send(...e){if(this.readyState===n.CONNECTING)throw new DOMException(\"Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.\");let t=e[0];t.buffer&&(t=t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)),o.call(this.channel.port1,{type:\"data\",data:t},t instanceof ArrayBuffer?[t]:[])}close(e,t){o.call(this.channel.port1,{type:\"close\",closeCode:e,closeReason:t})}}function u(e,t,r){console.error(`error while processing '${r}': `,t),e.postMessage({type:\"error\",error:t})}function f(e){for(let t=0;t<e.length;t++){const r=e[t];if(!\"!#$%&'*+-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz|~\".includes(r))return!1}return!0}const g=[\"ws:\",\"wss:\"],y=[101,204,205,304],b=[301,302,303,307,308];class m{worker;constructor(e){this.worker=new p(e)}async getTransport(){return(await this.worker.sendMessage({type:\"get\"})).name}async setTransport(e,t,r){await this.setManualTransport(`\\n\\t\\t\\tconst { default: BareTransport } = await import(\"${e}\");\\n\\t\\t\\treturn [BareTransport, \"${e}\"];\\n\\t\\t`,t,r)}async setManualTransport(e,t,r){if(\"bare-mux-remote\"===e)throw new Error(\"Use setRemoteTransport.\");await this.worker.sendMessage({type:\"set\",client:{function:e,args:t}},r)}async setRemoteTransport(e,t){const r=new MessageChannel;r.port1.onmessage=async t=>{const r=t.data.port,a=t.data.message;if(\"fetch\"===a.type)try{e.ready||await e.init(),await async function(e,t,r){const a=await r.request(new URL(e.fetch.remote),e.fetch.method,e.fetch.body,e.fetch.headers,null);if(!d()&&a.body instanceof ReadableStream){const e=new Response(a.body);a.body=await e.arrayBuffer()}a.body instanceof ReadableStream||a.body instanceof ArrayBuffer?o.call(t,{type:\"fetch\",fetch:a},[a.body]):o.call(t,{type:\"fetch\",fetch:a})}(a,r,e)}catch(e){u(r,e,\"fetch\")}else if(\"websocket\"===a.type)try{e.ready||await e.init(),await async function(e,t,r){const[a,s]=r.connect(new URL(e.websocket.url),e.websocket.protocols,e.websocket.requestHeaders,(t=>{o.call(e.websocket.channel,{type:\"open\",args:[t]})}),(t=>{t instanceof ArrayBuffer?o.call(e.websocket.channel,{type:\"message\",args:[t]},[t]):o.call(e.websocket.channel,{type:\"message\",args:[t]})}),((t,r)=>{o.call(e.websocket.channel,{type:\"close\",args:[t,r]})}),(t=>{o.call(e.websocket.channel,{type:\"error\",args:[t]})}));e.websocket.channel.onmessage=e=>{\"data\"===e.data.type?a(e.data.data):\"close\"===e.data.type&&s(e.data.closeCode,e.data.closeReason)},o.call(t,{type:\"websocket\"})}(a,r,e)}catch(e){u(r,e,\"websocket\")}},await this.worker.sendMessage({type:\"set\",client:{function:\"bare-mux-remote\",args:[r.port2,t]}},[r.port2])}getInnerPort(){return this.worker.port}}class k{worker;constructor(e){this.worker=new p(e)}createWebSocket(e,t=[],r,a){try{e=new URL(e)}catch(t){throw new DOMException(`Faiiled to construct 'WebSocket': The URL '${e}' is invalid.`)}if(!g.includes(e.protocol))throw new DOMException(`Failed to construct 'WebSocket': The URL's scheme must be either 'ws' or 'wss'. '${e.protocol}' is not allowed.`);Array.isArray(t)||(t=[t]),t=t.map(String);for(const e of t)if(!f(e))throw new DOMException(`Failed to construct 'WebSocket': The subprotocol '${e}' is invalid.`);a=a||{};return new w(e,t,this.worker,a)}async fetch(e,r){const a=new Request(e,r),s=r?.headers||a.headers,o=s instanceof Headers?Object.fromEntries(s):s,n=a.body;let c=new URL(a.url);if(c.protocol.startsWith(\"blob:\")){const e=await t(c),r=new Response(e.body,e);return r.rawHeaders=Object.fromEntries(e.headers),r.rawResponse={body:e.body,headers:Object.fromEntries(e.headers),status:e.status,statusText:e.statusText},r.finalURL=c.toString(),r}for(let e=0;;e++){let t=(await this.worker.sendMessage({type:\"fetch\",fetch:{remote:c.toString(),method:a.method,headers:o,body:n||void 0}},n?[n]:[])).fetch,s=new Response(y.includes(t.status)?void 0:t.body,{headers:new Headers(t.headers),status:t.status,statusText:t.statusText});s.rawHeaders=t.headers,s.rawResponse=t,s.finalURL=c.toString();const i=r?.redirect||a.redirect;if(!b.includes(s.status))return s;switch(i){case\"follow\":{const t=s.headers.get(\"location\");if(20>e&&null!==t){c=new URL(t,c);continue}throw new TypeError(\"Failed to fetch\")}case\"error\":throw new TypeError(\"Failed to fetch\");case\"manual\":return s}}}}console.debug(\"bare-mux: running v2.1.9 (build dc9dc6e)\");export{k as BareClient,m as BareMuxConnection,w as BareWebSocket,n as WebSocketFields,p as WorkerConnection,d as browserSupportsTransferringStreams,k as default,e as maxRedirects,f as validProtocol};\n//# sourceMappingURL=index.mjs.map\n","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, \""\");\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","/** 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 } 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","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 { hasChildren } from \"domhandler\";\n/**\n * Given an array of nodes, remove any member that is contained by another\n * member.\n *\n * @category Helpers\n * @param nodes Nodes to filter.\n * @returns Remaining nodes that aren't contained by other nodes.\n */\nexport function removeSubsets(nodes) {\n let idx = nodes.length;\n /*\n * Check if each node (or one of its ancestors) is already contained in the\n * array.\n */\n while (--idx >= 0) {\n const node = nodes[idx];\n /*\n * Remove the node if it is not unique.\n * We are going through the array from the end, so we only\n * have to check nodes that preceed the node under consideration in the array.\n */\n if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {\n nodes.splice(idx, 1);\n continue;\n }\n for (let ancestor = node.parent; ancestor; ancestor = ancestor.parent) {\n if (nodes.includes(ancestor)) {\n nodes.splice(idx, 1);\n break;\n }\n }\n }\n return nodes;\n}\n/**\n * @category Helpers\n * @see {@link http://dom.spec.whatwg.org/#dom-node-comparedocumentposition}\n */\nexport var DocumentPosition;\n(function (DocumentPosition) {\n DocumentPosition[DocumentPosition[\"DISCONNECTED\"] = 1] = \"DISCONNECTED\";\n DocumentPosition[DocumentPosition[\"PRECEDING\"] = 2] = \"PRECEDING\";\n DocumentPosition[DocumentPosition[\"FOLLOWING\"] = 4] = \"FOLLOWING\";\n DocumentPosition[DocumentPosition[\"CONTAINS\"] = 8] = \"CONTAINS\";\n DocumentPosition[DocumentPosition[\"CONTAINED_BY\"] = 16] = \"CONTAINED_BY\";\n})(DocumentPosition || (DocumentPosition = {}));\n/**\n * Compare the position of one node against another node in any other document,\n * returning a bitmask with the values from {@link DocumentPosition}.\n *\n * Document order:\n * > There is an ordering, document order, defined on all the nodes in the\n * > document corresponding to the order in which the first character of the\n * > XML representation of each node occurs in the XML representation of the\n * > document after expansion of general entities. Thus, the document element\n * > node will be the first node. Element nodes occur before their children.\n * > Thus, document order orders element nodes in order of the occurrence of\n * > their start-tag in the XML (after expansion of entities). The attribute\n * > nodes of an element occur after the element and before its children. The\n * > relative order of attribute nodes is implementation-dependent.\n *\n * Source:\n * http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order\n *\n * @category Helpers\n * @param nodeA The first node to use in the comparison\n * @param nodeB The second node to use in the comparison\n * @returns A bitmask describing the input nodes' relative position.\n *\n * See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for\n * a description of these values.\n */\nexport function compareDocumentPosition(nodeA, nodeB) {\n const aParents = [];\n const bParents = [];\n if (nodeA === nodeB) {\n return 0;\n }\n let current = hasChildren(nodeA) ? nodeA : nodeA.parent;\n while (current) {\n aParents.unshift(current);\n current = current.parent;\n }\n current = hasChildren(nodeB) ? nodeB : nodeB.parent;\n while (current) {\n bParents.unshift(current);\n current = current.parent;\n }\n const maxIdx = Math.min(aParents.length, bParents.length);\n let idx = 0;\n while (idx < maxIdx && aParents[idx] === bParents[idx]) {\n idx++;\n }\n if (idx === 0) {\n return DocumentPosition.DISCONNECTED;\n }\n const sharedParent = aParents[idx - 1];\n const siblings = sharedParent.children;\n const aSibling = aParents[idx];\n const bSibling = bParents[idx];\n if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {\n if (sharedParent === nodeB) {\n return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY;\n }\n return DocumentPosition.FOLLOWING;\n }\n if (sharedParent === nodeA) {\n return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS;\n }\n return DocumentPosition.PRECEDING;\n}\n/**\n * Sort an array of nodes based on their relative position in the document,\n * removing any duplicate nodes. If the array contains nodes that do not belong\n * to the same document, sort order is unspecified.\n *\n * @category Helpers\n * @param nodes Array of DOM nodes.\n * @returns Collection of unique nodes, sorted in document order.\n */\nexport function uniqueSort(nodes) {\n nodes = nodes.filter((node, i, arr) => !arr.includes(node, i + 1));\n nodes.sort((a, b) => {\n const relative = compareDocumentPosition(a, b);\n if (relative & DocumentPosition.PRECEDING) {\n return -1;\n }\n else if (relative & DocumentPosition.FOLLOWING) {\n return 1;\n }\n return 0;\n });\n return nodes;\n}\n//# sourceMappingURL=helpers.js.map","// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nconst decodeMap = new Map([\n [0, 65533],\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 * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexport const fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n let output = \"\";\n if (codePoint > 65535) {\n codePoint -= 65536;\n output += String.fromCharCode(((codePoint >>> 10) & 1023) | 55296);\n codePoint = 56320 | (codePoint & 1023);\n }\n output += String.fromCharCode(codePoint);\n return output;\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) {\n var _a;\n if ((codePoint >= 55296 && codePoint <= 57343) ||\n codePoint > 1114111) {\n return 65533;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\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) {\n return fromCodePoint(replaceCodePoint(codePoint));\n}\n//# sourceMappingURL=decode-codepoint.js.map","import { htmlDecodeTree } from \"./generated/decode-data-html.js\";\nimport { xmlDecodeTree } from \"./generated/decode-data-xml.js\";\nimport { replaceCodePoint, fromCodePoint } from \"./decode-codepoint.js\";\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nconst TO_LOWER_BIT = 32;\nexport var BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags || (BinTrieFlags = {}));\nfunction isNumber(code) {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code));\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) {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nexport var DecodingMode;\n(function (DecodingMode) {\n /** Entities in text nodes that can end with any character. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Only allow entities terminated with a semicolon. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n /** Entities in attributes have limitations on ending characters. */\n DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode || (DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nexport class EntityDecoder {\n constructor(\n /** The tree used to decode entities. */\n decodeTree, \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 emitCodePoint, \n /** An object that is used to produce errors. */\n errors) {\n this.decodeTree = decodeTree;\n this.emitCodePoint = emitCodePoint;\n this.errors = errors;\n /** The current state of the decoder. */\n this.state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n this.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 this.result = 0;\n /** The current index in the decode tree. */\n this.treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n this.excess = 1;\n /** The mode in which the decoder is operating. */\n this.decodeMode = DecodingMode.Strict;\n }\n /** Resets the instance to make it reusable. */\n startEntity(decodeMode) {\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 * 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, offset) {\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 case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(input, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(input, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(input, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(input, offset);\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 stateNumericStart(input, offset) {\n if (offset >= input.length) {\n return -1;\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 this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(input, offset);\n }\n addToNumericResult(input, start, end, base) {\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 * 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 stateNumericHex(input, offset) {\n const startIndex = offset;\n while (offset < input.length) {\n const char = input.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(input, startIndex, offset, 16);\n return this.emitNumericEntity(char, 3);\n }\n }\n this.addToNumericResult(input, startIndex, offset, 16);\n return -1;\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 stateNumericDecimal(input, offset) {\n const startIndex = offset;\n while (offset < input.length) {\n const char = input.charCodeAt(offset);\n if (isNumber(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(input, startIndex, offset, 10);\n return this.emitNumericEntity(char, 2);\n }\n }\n this.addToNumericResult(input, startIndex, offset, 10);\n return -1;\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 emitNumericEntity(lastCp, expectedLength) {\n var _a;\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n }\n else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n this.emitCodePoint(replaceCodePoint(this.result), this.consumed);\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n this.errors.validateNumericCharacterReference(this.result);\n }\n return this.consumed;\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 stateNamedEntity(input, offset) {\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 for (; offset < input.length; offset++, this.excess++) {\n const char = input.charCodeAt(offset);\n this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\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 current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\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(this.treeIndex, valueLength, this.consumed + this.excess);\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 return -1;\n }\n /**\n * Emit a named entity that was not terminated with a semicolon.\n *\n * @returns The number of characters consumed.\n */\n emitNotTerminatedNamedEntity() {\n var _a;\n const { result, decodeTree } = this;\n const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n this.emitNamedEntityData(result, valueLength, this.consumed);\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n return this.consumed;\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 emitNamedEntityData(result, valueLength, consumed) {\n const { decodeTree } = this;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n : decodeTree[result + 1], consumed);\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 return consumed;\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() {\n var _a;\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 (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\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 * 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) {\n let returnValue = \"\";\n const decoder = new EntityDecoder(decodeTree, (data) => (returnValue += fromCodePoint(data)));\n return function decodeWithTrie(input, decodeMode) {\n let lastIndex = 0;\n let offset = 0;\n while ((offset = input.indexOf(\"&\", offset)) >= 0) {\n returnValue += input.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n const length = decoder.write(input, \n // Skip the \"&\"\n offset + 1);\n if (length < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + length;\n // If `length` is 0, skip the current `&` and continue.\n offset = length === 0 ? lastIndex + 1 : lastIndex;\n }\n const result = returnValue + input.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n returnValue = \"\";\n return result;\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(decodeTree, current, nodeIndex, char) {\n const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n const jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIndex : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n const value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIndex + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n let lo = nodeIndex;\n let hi = lo + branchCount - 1;\n while (lo <= hi) {\n const mid = (lo + hi) >>> 1;\n const midValue = decodeTree[mid];\n if (midValue < char) {\n lo = mid + 1;\n }\n else if (midValue > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nconst htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree);\nconst xmlDecoder = /* #__PURE__ */ getDecoder(xmlDecodeTree);\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(htmlString, mode = DecodingMode.Legacy) {\n return htmlDecoder(htmlString, mode);\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) {\n return htmlDecoder(htmlAttribute, DecodingMode.Attribute);\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) {\n return htmlDecoder(htmlString, DecodingMode.Strict);\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) {\n return xmlDecoder(xmlString, DecodingMode.Strict);\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\";\nexport { decodeCodePoint, replaceCodePoint, fromCodePoint, } from \"./decode-codepoint.js\";\n//# sourceMappingURL=decode.js.map","export const xmlReplacer = /[\"$&'<>\\u0080-\\uFFFF]/g;\nconst xmlCodeMap = new Map([\n [34, \""\"],\n [38, \"&\"],\n [39, \"'\"],\n [60, \"<\"],\n [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexport const getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt == null\n ? (c, index) => (c.charCodeAt(index) & 64512) === 55296\n ? (c.charCodeAt(index) - 55296) * 1024 +\n c.charCodeAt(index + 1) -\n 56320 +\n 65536\n : c.charCodeAt(index)\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n (input, index) => input.codePointAt(index);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nexport function encodeXML(input) {\n let returnValue = \"\";\n let lastIndex = 0;\n let match;\n while ((match = xmlReplacer.exec(input)) !== null) {\n const { index } = match;\n const char = input.charCodeAt(index);\n const next = xmlCodeMap.get(char);\n if (next === undefined) {\n returnValue += `${input.substring(lastIndex, index)}&#x${getCodePoint(input, index).toString(16)};`;\n // Increase by 1 if we have a surrogate pair\n lastIndex = xmlReplacer.lastIndex += Number((char & 64512) === 55296);\n }\n else {\n returnValue += input.substring(lastIndex, index) + next;\n lastIndex = index + 1;\n }\n }\n return returnValue + input.substr(lastIndex);\n}\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexport const escape = encodeXML;\n/**\n * Creates a function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n *\n * @param regex Regular expression to match characters to escape.\n * @param map Map of characters to escape to their entities.\n *\n * @returns Function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n */\nfunction getEscaper(regex, map) {\n return function escape(data) {\n let match;\n let lastIndex = 0;\n let result = \"\";\n while ((match = regex.exec(data))) {\n if (lastIndex !== match.index) {\n result += data.substring(lastIndex, match.index);\n }\n // We know that this character will be in the map.\n result += map.get(match[0].charCodeAt(0));\n // Every match will be of length 1\n lastIndex = match.index + 1;\n }\n return result + data.substring(lastIndex);\n };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexport const escapeUTF8 = /* #__PURE__ */ getEscaper(/[\"&'<>]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeAttribute = \n/* #__PURE__ */ getEscaper(/[\"&\\u00A0]/g, new Map([\n [34, \""\"],\n [38, \"&\"],\n [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeText = /* #__PURE__ */ getEscaper(/[&<>\\u00A0]/g, new Map([\n [38, \"&\"],\n [60, \"<\"],\n [62, \">\"],\n [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map","// Generated using scripts/write-decode-map.ts\nexport const htmlDecodeTree = /* #__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//# sourceMappingURL=decode-data-html.js.map","// Generated using scripts/write-decode-map.ts\nexport const xmlDecodeTree = /* #__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//# sourceMappingURL=decode-data-xml.js.map","import { decodeXML, decodeHTML, DecodingMode } from \"./decode.js\";\nimport { encodeHTML, encodeNonAsciiHTML } from \"./encode.js\";\nimport { encodeXML, escapeUTF8, escapeAttribute, escapeText, } from \"./escape.js\";\n/** The level of entities to support. */\nexport var EntityLevel;\n(function (EntityLevel) {\n /** Support only XML entities. */\n EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n /** Support HTML entities, which are a superset of XML entities. */\n EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel || (EntityLevel = {}));\nexport var EncodingMode;\n(function (EncodingMode) {\n /**\n * The output is UTF-8 encoded. Only characters that need escaping within\n * XML will be escaped.\n */\n EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n /**\n * The output consists only of ASCII characters. Characters that need\n * escaping within HTML, and characters that aren't ASCII characters will\n * be escaped.\n */\n EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n /**\n * Encode all characters that have an equivalent entity, as well as all\n * characters that are not ASCII characters.\n */\n EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n /**\n * Encode all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n /**\n * Encode all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode || (EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param input String to decode.\n * @param options Decoding options.\n */\nexport function decode(input, options = EntityLevel.XML) {\n const level = typeof options === \"number\" ? options : options.level;\n if (level === EntityLevel.HTML) {\n const mode = typeof options === \"object\" ? options.mode : undefined;\n return decodeHTML(input, mode);\n }\n return decodeXML(input);\n}\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param input String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nexport function decodeStrict(input, options = EntityLevel.XML) {\n var _a;\n const normalizedOptions = typeof options === \"number\" ? { level: options } : options;\n (_a = normalizedOptions.mode) !== null && _a !== void 0 ? _a : (normalizedOptions.mode = DecodingMode.Strict);\n return decode(input, normalizedOptions);\n}\n/**\n * Encodes a string with entities.\n *\n * @param input String to encode.\n * @param options Encoding options.\n */\nexport function encode(input, options = EntityLevel.XML) {\n const { mode = EncodingMode.Extensive, level = EntityLevel.XML } = typeof options === \"number\" ? { level: options } : options;\n switch (mode) {\n case EncodingMode.UTF8: {\n return escapeUTF8(input);\n }\n case EncodingMode.Attribute: {\n return escapeAttribute(input);\n }\n case EncodingMode.Text: {\n return escapeText(input);\n }\n case EncodingMode.ASCII: {\n return level === EntityLevel.HTML\n ? encodeNonAsciiHTML(input)\n : encodeXML(input);\n }\n // eslint-disable-next-line unicorn/no-useless-switch-case\n case EncodingMode.Extensive:\n default: {\n return level === EntityLevel.HTML\n ? encodeHTML(input)\n : encodeXML(input);\n }\n }\n}\nexport { encodeXML, escape, escapeUTF8, escapeAttribute, escapeText, } from \"./escape.js\";\nexport { encodeHTML, encodeNonAsciiHTML, \n// Legacy aliases (deprecated)\nencodeHTML as encodeHTML4, encodeHTML as encodeHTML5, } from \"./encode.js\";\nexport { EntityDecoder, DecodingMode, decodeXML, decodeHTML, decodeHTMLStrict, decodeHTMLAttribute, \n// Legacy aliases (deprecated)\ndecodeHTML as decodeHTML4, decodeHTML as decodeHTML5, decodeHTMLStrict as decodeHTML4Strict, decodeHTMLStrict as decodeHTML5Strict, decodeXML as decodeXMLStrict, } from \"./decode.js\";\n//# sourceMappingURL=index.js.map","import Tokenizer, { QuoteType } from \"./Tokenizer.js\";\nimport { fromCodePoint } from \"entities/decode\";\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\"]);\nconst openImpliesClose = new Map([\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]);\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]);\nconst foreignContextElements = new Set([\"math\", \"svg\"]);\nconst htmlIntegrationElements = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignobject\",\n \"desc\",\n \"title\",\n]);\nconst reNameEnd = /\\s|\\//;\nexport class Parser {\n constructor(cbs, options = {}) {\n var _a, _b, _c, _d, _e, _f;\n this.options = options;\n /** The start index of the last event. */\n this.startIndex = 0;\n /** The end index of the last event. */\n this.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 this.openTagStart = 0;\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribvalue = \"\";\n this.attribs = null;\n this.stack = [];\n this.buffers = [];\n this.bufferOffset = 0;\n /** The index of the last written buffer. Used when resuming after a `pause()`. */\n this.writeIndex = 0;\n /** Indicates whether the parser has finished running / `.end` has been called. */\n this.ended = false;\n this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};\n this.htmlMode = !this.options.xmlMode;\n this.lowerCaseTagNames = (_a = options.lowerCaseTags) !== null && _a !== void 0 ? _a : this.htmlMode;\n this.lowerCaseAttributeNames =\n (_b = options.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : this.htmlMode;\n this.recognizeSelfClosing =\n (_c = options.recognizeSelfClosing) !== null && _c !== void 0 ? _c : !this.htmlMode;\n this.tokenizer = new ((_d = options.Tokenizer) !== null && _d !== void 0 ? _d : Tokenizer)(this.options, this);\n this.foreignContext = [!this.htmlMode];\n (_f = (_e = this.cbs).onparserinit) === null || _f === void 0 ? void 0 : _f.call(_e, this);\n }\n // Tokenizer event handlers\n /** @internal */\n ontext(start, endIndex) {\n var _a, _b;\n const data = this.getSlice(start, endIndex);\n this.endIndex = endIndex - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, data);\n this.startIndex = endIndex;\n }\n /** @internal */\n ontextentity(cp, endIndex) {\n var _a, _b;\n this.endIndex = endIndex - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, fromCodePoint(cp));\n this.startIndex = endIndex;\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 isVoidElement(name) {\n return this.htmlMode && voidElements.has(name);\n }\n /** @internal */\n onopentagname(start, endIndex) {\n this.endIndex = endIndex;\n let name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n this.emitOpenTag(name);\n }\n emitOpenTag(name) {\n var _a, _b, _c, _d;\n this.openTagStart = this.startIndex;\n this.tagname = name;\n const impliesClose = this.htmlMode && openImpliesClose.get(name);\n if (impliesClose) {\n while (this.stack.length > 0 && impliesClose.has(this.stack[0])) {\n const element = this.stack.shift();\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, true);\n }\n }\n if (!this.isVoidElement(name)) {\n this.stack.unshift(name);\n if (this.htmlMode) {\n if (foreignContextElements.has(name)) {\n this.foreignContext.unshift(true);\n }\n else if (htmlIntegrationElements.has(name)) {\n this.foreignContext.unshift(false);\n }\n }\n }\n (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name);\n if (this.cbs.onopentag)\n this.attribs = {};\n }\n endOpenTag(isImplied) {\n var _a, _b;\n this.startIndex = this.openTagStart;\n if (this.attribs) {\n (_b = (_a = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a, 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 this.tagname = \"\";\n }\n /** @internal */\n onopentagend(endIndex) {\n this.endIndex = endIndex;\n this.endOpenTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onclosetag(start, endIndex) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n this.endIndex = endIndex;\n let name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n if (this.htmlMode &&\n (foreignContextElements.has(name) ||\n htmlIntegrationElements.has(name))) {\n this.foreignContext.shift();\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 (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, index !== pos);\n }\n }\n else if (this.htmlMode && name === \"p\") {\n // Implicit open before close\n this.emitOpenTag(\"p\");\n this.closeCurrentTag(true);\n }\n }\n else if (this.htmlMode && name === \"br\") {\n // We can't use `emitOpenTag` for implicit open, as `br` would be implicitly closed.\n (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, \"br\");\n (_f = (_e = this.cbs).onopentag) === null || _f === void 0 ? void 0 : _f.call(_e, \"br\", {}, true);\n (_h = (_g = this.cbs).onclosetag) === null || _h === void 0 ? void 0 : _h.call(_g, \"br\", false);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onselfclosingtag(endIndex) {\n this.endIndex = endIndex;\n if (this.recognizeSelfClosing || this.foreignContext[0]) {\n this.closeCurrentTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n else {\n // Ignore the fact that the tag is self-closing.\n this.onopentagend(endIndex);\n }\n }\n closeCurrentTag(isOpenImplied) {\n var _a, _b;\n const name = this.tagname;\n this.endOpenTag(isOpenImplied);\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 (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, name, !isOpenImplied);\n this.stack.shift();\n }\n }\n /** @internal */\n onattribname(start, endIndex) {\n this.startIndex = start;\n const name = this.getSlice(start, endIndex);\n this.attribname = this.lowerCaseAttributeNames\n ? name.toLowerCase()\n : name;\n }\n /** @internal */\n onattribdata(start, endIndex) {\n this.attribvalue += this.getSlice(start, endIndex);\n }\n /** @internal */\n onattribentity(cp) {\n this.attribvalue += fromCodePoint(cp);\n }\n /** @internal */\n onattribend(quote, endIndex) {\n var _a, _b;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a, this.attribname, this.attribvalue, quote === QuoteType.Double\n ? '\"'\n : quote === QuoteType.Single\n ? \"'\"\n : quote === QuoteType.NoValue\n ? undefined\n : null);\n if (this.attribs &&\n !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {\n this.attribs[this.attribname] = this.attribvalue;\n }\n this.attribvalue = \"\";\n }\n getInstructionName(value) {\n const index = value.search(reNameEnd);\n let name = index < 0 ? value : value.substr(0, index);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n return name;\n }\n /** @internal */\n ondeclaration(start, endIndex) {\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n const name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(`!${name}`, `!${value}`);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onprocessinginstruction(start, endIndex) {\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n const name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(`?${name}`, `?${value}`);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n oncomment(start, endIndex, offset) {\n var _a, _b, _c, _d;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a, this.getSlice(start, endIndex - offset));\n (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n oncdata(start, endIndex, offset) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex - offset);\n if (!this.htmlMode || this.options.recognizeCDATA) {\n (_b = (_a = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a);\n (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);\n (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);\n }\n else {\n (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, `[CDATA[${value}]]`);\n (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onend() {\n var _a, _b;\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 (_b = (_a = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n /**\n * Resets the parser to a blank state, ready to parse a new HTML document\n */\n reset() {\n var _a, _b, _c, _d;\n (_b = (_a = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a);\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 (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, 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 * Resets the parser, then parses a complete document and\n * pushes it to the handler.\n *\n * @param data Document to parse.\n */\n parseComplete(data) {\n this.reset();\n this.end(data);\n }\n getSlice(start, end) {\n while (start - this.bufferOffset >= this.buffers[0].length) {\n this.shiftBuffer();\n }\n let slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset);\n while (end - this.bufferOffset > this.buffers[0].length) {\n this.shiftBuffer();\n slice += this.buffers[0].slice(0, end - this.bufferOffset);\n }\n return slice;\n }\n shiftBuffer() {\n this.bufferOffset += this.buffers[0].length;\n this.writeIndex--;\n this.buffers.shift();\n }\n /**\n * Parses a chunk of data and calls the corresponding callbacks.\n *\n * @param chunk Chunk to parse.\n */\n write(chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".write() after done!\"));\n return;\n }\n this.buffers.push(chunk);\n if (this.tokenizer.running) {\n this.tokenizer.write(chunk);\n this.writeIndex++;\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 end(chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".end() after done!\"));\n return;\n }\n if (chunk)\n this.write(chunk);\n this.ended = true;\n this.tokenizer.end();\n }\n /**\n * Pauses parsing. The parser won't emit events until `resume` is called.\n */\n pause() {\n this.tokenizer.pause();\n }\n /**\n * Resumes parsing after `pause` was called.\n */\n resume() {\n this.tokenizer.resume();\n while (this.tokenizer.running &&\n this.writeIndex < this.buffers.length) {\n this.tokenizer.write(this.buffers[this.writeIndex++]);\n }\n if (this.ended)\n this.tokenizer.end();\n }\n /**\n * Alias of `write`, for backwards compatibility.\n *\n * @param chunk Chunk to parse.\n * @deprecated\n */\n parseChunk(chunk) {\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 done(chunk) {\n this.end(chunk);\n }\n}\n//# sourceMappingURL=Parser.js.map","import { EntityDecoder, DecodingMode, htmlDecodeTree, xmlDecodeTree, } from \"entities/decode\";\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"Tab\"] = 9] = \"Tab\";\n CharCodes[CharCodes[\"NewLine\"] = 10] = \"NewLine\";\n CharCodes[CharCodes[\"FormFeed\"] = 12] = \"FormFeed\";\n CharCodes[CharCodes[\"CarriageReturn\"] = 13] = \"CarriageReturn\";\n CharCodes[CharCodes[\"Space\"] = 32] = \"Space\";\n CharCodes[CharCodes[\"ExclamationMark\"] = 33] = \"ExclamationMark\";\n CharCodes[CharCodes[\"Number\"] = 35] = \"Number\";\n CharCodes[CharCodes[\"Amp\"] = 38] = \"Amp\";\n CharCodes[CharCodes[\"SingleQuote\"] = 39] = \"SingleQuote\";\n CharCodes[CharCodes[\"DoubleQuote\"] = 34] = \"DoubleQuote\";\n CharCodes[CharCodes[\"Dash\"] = 45] = \"Dash\";\n CharCodes[CharCodes[\"Slash\"] = 47] = \"Slash\";\n CharCodes[CharCodes[\"Zero\"] = 48] = \"Zero\";\n CharCodes[CharCodes[\"Nine\"] = 57] = \"Nine\";\n CharCodes[CharCodes[\"Semi\"] = 59] = \"Semi\";\n CharCodes[CharCodes[\"Lt\"] = 60] = \"Lt\";\n CharCodes[CharCodes[\"Eq\"] = 61] = \"Eq\";\n CharCodes[CharCodes[\"Gt\"] = 62] = \"Gt\";\n CharCodes[CharCodes[\"Questionmark\"] = 63] = \"Questionmark\";\n CharCodes[CharCodes[\"UpperA\"] = 65] = \"UpperA\";\n CharCodes[CharCodes[\"LowerA\"] = 97] = \"LowerA\";\n CharCodes[CharCodes[\"UpperF\"] = 70] = \"UpperF\";\n CharCodes[CharCodes[\"LowerF\"] = 102] = \"LowerF\";\n CharCodes[CharCodes[\"UpperZ\"] = 90] = \"UpperZ\";\n CharCodes[CharCodes[\"LowerZ\"] = 122] = \"LowerZ\";\n CharCodes[CharCodes[\"LowerX\"] = 120] = \"LowerX\";\n CharCodes[CharCodes[\"OpeningSquareBracket\"] = 91] = \"OpeningSquareBracket\";\n})(CharCodes || (CharCodes = {}));\n/** All the states the tokenizer can be in. */\nvar State;\n(function (State) {\n State[State[\"Text\"] = 1] = \"Text\";\n State[State[\"BeforeTagName\"] = 2] = \"BeforeTagName\";\n State[State[\"InTagName\"] = 3] = \"InTagName\";\n State[State[\"InSelfClosingTag\"] = 4] = \"InSelfClosingTag\";\n State[State[\"BeforeClosingTagName\"] = 5] = \"BeforeClosingTagName\";\n State[State[\"InClosingTagName\"] = 6] = \"InClosingTagName\";\n State[State[\"AfterClosingTagName\"] = 7] = \"AfterClosingTagName\";\n // Attributes\n State[State[\"BeforeAttributeName\"] = 8] = \"BeforeAttributeName\";\n State[State[\"InAttributeName\"] = 9] = \"InAttributeName\";\n State[State[\"AfterAttributeName\"] = 10] = \"AfterAttributeName\";\n State[State[\"BeforeAttributeValue\"] = 11] = \"BeforeAttributeValue\";\n State[State[\"InAttributeValueDq\"] = 12] = \"InAttributeValueDq\";\n State[State[\"InAttributeValueSq\"] = 13] = \"InAttributeValueSq\";\n State[State[\"InAttributeValueNq\"] = 14] = \"InAttributeValueNq\";\n // Declarations\n State[State[\"BeforeDeclaration\"] = 15] = \"BeforeDeclaration\";\n State[State[\"InDeclaration\"] = 16] = \"InDeclaration\";\n // Processing instructions\n State[State[\"InProcessingInstruction\"] = 17] = \"InProcessingInstruction\";\n // Comments & CDATA\n State[State[\"BeforeComment\"] = 18] = \"BeforeComment\";\n State[State[\"CDATASequence\"] = 19] = \"CDATASequence\";\n State[State[\"InSpecialComment\"] = 20] = \"InSpecialComment\";\n State[State[\"InCommentLike\"] = 21] = \"InCommentLike\";\n // Special tags\n State[State[\"BeforeSpecialS\"] = 22] = \"BeforeSpecialS\";\n State[State[\"BeforeSpecialT\"] = 23] = \"BeforeSpecialT\";\n State[State[\"SpecialStartSequence\"] = 24] = \"SpecialStartSequence\";\n State[State[\"InSpecialTag\"] = 25] = \"InSpecialTag\";\n State[State[\"InEntity\"] = 26] = \"InEntity\";\n})(State || (State = {}));\nfunction isWhitespace(c) {\n return (c === CharCodes.Space ||\n c === CharCodes.NewLine ||\n c === CharCodes.Tab ||\n c === CharCodes.FormFeed ||\n c === CharCodes.CarriageReturn);\n}\nfunction isEndOfTagSection(c) {\n return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace(c);\n}\nfunction isASCIIAlpha(c) {\n return ((c >= CharCodes.LowerA && c <= CharCodes.LowerZ) ||\n (c >= CharCodes.UpperA && c <= CharCodes.UpperZ));\n}\nexport var QuoteType;\n(function (QuoteType) {\n QuoteType[QuoteType[\"NoValue\"] = 0] = \"NoValue\";\n QuoteType[QuoteType[\"Unquoted\"] = 1] = \"Unquoted\";\n QuoteType[QuoteType[\"Single\"] = 2] = \"Single\";\n QuoteType[QuoteType[\"Double\"] = 3] = \"Double\";\n})(QuoteType || (QuoteType = {}));\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};\nexport default class Tokenizer {\n constructor({ xmlMode = false, decodeEntities = true, }, cbs) {\n this.cbs = cbs;\n /** The current state the tokenizer is in. */\n this.state = State.Text;\n /** The read buffer. */\n this.buffer = \"\";\n /** The beginning of the section that is currently being read. */\n this.sectionStart = 0;\n /** The index within the buffer that we are currently looking at. */\n this.index = 0;\n /** The start of the last entity. */\n this.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 this.baseState = State.Text;\n /** For special parsing behavior inside of script and style tags. */\n this.isSpecial = false;\n /** Indicates whether the tokenizer has been paused. */\n this.running = true;\n /** The offset of the current buffer. */\n this.offset = 0;\n this.currentSequence = undefined;\n this.sequenceIndex = 0;\n this.xmlMode = xmlMode;\n this.decodeEntities = decodeEntities;\n this.entityDecoder = new EntityDecoder(xmlMode ? xmlDecodeTree : htmlDecodeTree, (cp, consumed) => this.emitCodePoint(cp, consumed));\n }\n reset() {\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 write(chunk) {\n this.offset += this.buffer.length;\n this.buffer = chunk;\n this.parse();\n }\n end() {\n if (this.running)\n this.finish();\n }\n pause() {\n this.running = false;\n }\n resume() {\n this.running = true;\n if (this.index < this.buffer.length + this.offset) {\n this.parse();\n }\n }\n stateText(c) {\n if (c === CharCodes.Lt ||\n (!this.decodeEntities && this.fastForwardTo(CharCodes.Lt))) {\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 }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n stateSpecialStartSequence(c) {\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 if (!isMatch) {\n this.isSpecial = false;\n }\n else if (!isEnd) {\n this.sequenceIndex++;\n return;\n }\n this.sequenceIndex = 0;\n this.state = State.InTagName;\n this.stateInTagName(c);\n }\n /** Look for an end tag. For <title> tags, also decode entities. */\n stateInSpecialTag(c) {\n if (this.sequenceIndex === this.currentSequence.length) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n const endOfText = this.index - this.currentSequence.length;\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 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 this.sequenceIndex = 0;\n }\n if ((c | 0x20) === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex += 1;\n }\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 }\n else if (this.fastForwardTo(CharCodes.Lt)) {\n // Outside of <title> tags, we can fast-forward.\n this.sequenceIndex = 1;\n }\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 stateCDATASequence(c) {\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 }\n else {\n this.sequenceIndex = 0;\n this.state = State.InDeclaration;\n this.stateInDeclaration(c); // Reconsume the character\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 fastForwardTo(c) {\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 * 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 return false;\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 stateInCommentLike(c) {\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 }\n else {\n this.cbs.oncomment(this.sectionStart, this.index, 2);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = State.Text;\n }\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 }\n else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n // Allow long sequences, eg. --->, ]]]>\n this.sequenceIndex = 0;\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 isTagStartChar(c) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n }\n startSpecial(sequence, offset) {\n this.isSpecial = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n this.state = State.SpecialStartSequence;\n }\n stateBeforeTagName(c) {\n if (c === CharCodes.ExclamationMark) {\n this.state = State.BeforeDeclaration;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Questionmark) {\n this.state = State.InProcessingInstruction;\n this.sectionStart = this.index + 1;\n }\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 }\n else if (lower === Sequences.ScriptEnd[2]) {\n this.state = State.BeforeSpecialS;\n }\n else if (lower === Sequences.TitleEnd[2] ||\n lower === Sequences.XmpEnd[2]) {\n this.state = State.BeforeSpecialT;\n }\n else {\n this.state = State.InTagName;\n }\n }\n else if (c === CharCodes.Slash) {\n this.state = State.BeforeClosingTagName;\n }\n else {\n this.state = State.Text;\n this.stateText(c);\n }\n }\n stateInTagName(c) {\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 stateBeforeClosingTagName(c) {\n if (isWhitespace(c)) {\n // Ignore\n }\n else if (c === CharCodes.Gt) {\n this.state = State.Text;\n }\n else {\n this.state = this.isTagStartChar(c)\n ? State.InClosingTagName\n : State.InSpecialComment;\n this.sectionStart = this.index;\n }\n }\n stateInClosingTagName(c) {\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 stateAfterClosingTagName(c) {\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 stateBeforeAttributeName(c) {\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 }\n else {\n this.state = State.Text;\n }\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Slash) {\n this.state = State.InSelfClosingTag;\n }\n else if (!isWhitespace(c)) {\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n }\n stateInSelfClosingTag(c) {\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 }\n else if (!isWhitespace(c)) {\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n }\n stateInAttributeName(c) {\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 stateAfterAttributeName(c) {\n if (c === CharCodes.Eq) {\n this.state = State.BeforeAttributeValue;\n }\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 }\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 stateBeforeAttributeValue(c) {\n if (c === CharCodes.DoubleQuote) {\n this.state = State.InAttributeValueDq;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.SingleQuote) {\n this.state = State.InAttributeValueSq;\n this.sectionStart = this.index + 1;\n }\n else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = State.InAttributeValueNq;\n this.stateInAttributeValueNoQuotes(c); // Reconsume token\n }\n }\n handleInAttributeValue(c, quote) {\n if (c === quote ||\n (!this.decodeEntities && this.fastForwardTo(quote))) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(quote === CharCodes.DoubleQuote\n ? QuoteType.Double\n : QuoteType.Single, this.index + 1);\n this.state = State.BeforeAttributeName;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n stateInAttributeValueDoubleQuotes(c) {\n this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n }\n stateInAttributeValueSingleQuotes(c) {\n this.handleInAttributeValue(c, CharCodes.SingleQuote);\n }\n stateInAttributeValueNoQuotes(c) {\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 }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n stateBeforeDeclaration(c) {\n if (c === CharCodes.OpeningSquareBracket) {\n this.state = State.CDATASequence;\n this.sequenceIndex = 0;\n }\n else {\n this.state =\n c === CharCodes.Dash\n ? State.BeforeComment\n : State.InDeclaration;\n }\n }\n stateInDeclaration(c) {\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 stateInProcessingInstruction(c) {\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 stateBeforeComment(c) {\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 }\n else {\n this.state = State.InDeclaration;\n }\n }\n stateInSpecialComment(c) {\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 stateBeforeSpecialS(c) {\n const lower = c | 0x20;\n if (lower === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n }\n else if (lower === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n }\n else {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n }\n stateBeforeSpecialT(c) {\n const lower = c | 0x20;\n switch (lower) {\n case Sequences.TitleEnd[3]: {\n this.startSpecial(Sequences.TitleEnd, 4);\n break;\n }\n case Sequences.TextareaEnd[3]: {\n this.startSpecial(Sequences.TextareaEnd, 4);\n break;\n }\n case Sequences.XmpEnd[3]: {\n this.startSpecial(Sequences.XmpEnd, 4);\n break;\n }\n default: {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n }\n }\n startEntity() {\n this.baseState = this.state;\n this.state = State.InEntity;\n this.entityStart = this.index;\n this.entityDecoder.startEntity(this.xmlMode\n ? DecodingMode.Strict\n : this.baseState === State.Text ||\n this.baseState === State.InSpecialTag\n ? DecodingMode.Legacy\n : DecodingMode.Attribute);\n }\n stateInEntity() {\n const length = this.entityDecoder.write(this.buffer, this.index - this.offset);\n // If `length` is positive, we are done with the entity.\n if (length >= 0) {\n this.state = this.baseState;\n if (length === 0) {\n this.index = this.entityStart;\n }\n }\n else {\n // Mark buffer as consumed.\n this.index = this.offset + this.buffer.length - 1;\n }\n }\n /**\n * Remove data that has already been consumed from the buffer.\n */\n 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 (this.state === State.Text ||\n (this.state === State.InSpecialTag && this.sequenceIndex === 0)) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n else if (this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueNq) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n }\n shouldContinue() {\n return this.index < this.buffer.length + this.offset && this.running;\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 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 finish() {\n if (this.state === State.InEntity) {\n this.entityDecoder.end();\n this.state = this.baseState;\n }\n this.handleTrailingData();\n this.cbs.onend();\n }\n /** Handle any trailing data. */\n handleTrailingData() {\n const endIndex = this.buffer.length + this.offset;\n // If there is no remaining data, we are done.\n if (this.sectionStart >= endIndex) {\n return;\n }\n if (this.state === State.InCommentLike) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex, 0);\n }\n else {\n this.cbs.oncomment(this.sectionStart, endIndex, 0);\n }\n }\n else if (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 * 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 }\n else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n }\n emitCodePoint(cp, consumed) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\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 this.cbs.onattribentity(cp);\n }\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 this.cbs.ontextentity(cp, this.sectionStart);\n }\n }\n}\n//# sourceMappingURL=Tokenizer.js.map","const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst transactionDoneMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n // This mapping exists in reverseTransformCache but doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(this.request);\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event);\n });\n }\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event.newVersion, event));\n }\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking) {\n db.addEventListener('versionchange', (event) => blocking(event.oldVersion, event.newVersion, event));\n }\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event));\n }\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nconst advanceMethodProps = ['continue', 'continuePrimaryKey', 'advance'];\nconst methodMap = {};\nconst advanceResults = new WeakMap();\nconst ittrProxiedCursorToOriginalProxy = new WeakMap();\nconst cursorIteratorTraps = {\n get(target, prop) {\n if (!advanceMethodProps.includes(prop))\n return target[prop];\n let cachedFunc = methodMap[prop];\n if (!cachedFunc) {\n cachedFunc = methodMap[prop] = function (...args) {\n advanceResults.set(this, ittrProxiedCursorToOriginalProxy.get(this)[prop](...args));\n };\n }\n return cachedFunc;\n },\n};\nasync function* iterate(...args) {\n // tslint:disable-next-line:no-this-assignment\n let cursor = this;\n if (!(cursor instanceof IDBCursor)) {\n cursor = await cursor.openCursor(...args);\n }\n if (!cursor)\n return;\n cursor = cursor;\n const proxiedCursor = new Proxy(cursor, cursorIteratorTraps);\n ittrProxiedCursorToOriginalProxy.set(proxiedCursor, cursor);\n // Map this double-proxy back to the original, so other cursor methods work.\n reverseTransformCache.set(proxiedCursor, unwrap(cursor));\n while (cursor) {\n yield proxiedCursor;\n // If one of the advancing methods was not called, call continue().\n cursor = await (advanceResults.get(proxiedCursor) || cursor.continue());\n advanceResults.delete(proxiedCursor);\n }\n}\nfunction isIteratorProp(target, prop) {\n return ((prop === Symbol.asyncIterator &&\n instanceOfAny(target, [IDBIndex, IDBObjectStore, IDBCursor])) ||\n (prop === 'iterate' && instanceOfAny(target, [IDBIndex, IDBObjectStore])));\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get(target, prop, receiver) {\n if (isIteratorProp(target, prop))\n return iterate;\n return oldTraps.get(target, prop, receiver);\n },\n has(target, prop) {\n return isIteratorProp(target, prop) || oldTraps.has(target, prop);\n },\n}));\n\nexport { deleteDB, openDB, unwrap, wrap };\n","\nexport function scramtag() {\n return (\"\"+1e10).replace(/[018]/g,\n c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)\n );\n}\n","import { scramtag } from './snippets/wasm-4b0f351a8e6eeb46/inline0.js';\n\nlet wasm;\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_export_2.set(idx, obj);\n return idx;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nconst cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } );\n\nif (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); };\n\nlet cachedUint8ArrayMemory0 = null;\n\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nconst cachedTextEncoder = (typeof TextEncoder !== 'undefined' ? new TextEncoder('utf-8') : { encode: () => { throw Error('TextEncoder not available') } } );\n\nconst encodeString = (typeof cachedTextEncoder.encodeInto === 'function'\n ? function (arg, view) {\n return cachedTextEncoder.encodeInto(arg, view);\n}\n : function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n});\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = encodeString(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nlet cachedDataViewMemory0 = null;\n\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_export_2.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n\nfunction passArray8ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 1, 1) >>> 0;\n getUint8ArrayMemory0().set(arg, ptr / 1);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nconst RewriterFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_rewriter_free(ptr >>> 0, 1));\n\nexport class Rewriter {\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n RewriterFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_rewriter_free(ptr, 0);\n }\n /**\n * @param {string} js\n * @param {string} base\n * @param {string} url\n * @param {boolean} module\n * @returns {JsRewriterOutput}\n */\n rewrite_js(js, base, url, module) {\n const ptr0 = passStringToWasm0(js, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(base, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(url, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len2 = WASM_VECTOR_LEN;\n const ret = wasm.rewriter_rewrite_js(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, module);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {Uint8Array} js\n * @param {string} base\n * @param {string} url\n * @param {boolean} module\n * @returns {JsRewriterOutput}\n */\n rewrite_js_bytes(js, base, url, module) {\n const ptr0 = passArray8ToWasm0(js, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(base, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(url, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len2 = WASM_VECTOR_LEN;\n const ret = wasm.rewriter_rewrite_js_bytes(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, module);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {object} scramjet\n */\n constructor(scramjet) {\n const ret = wasm.rewriter_new(scramjet);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n this.__wbg_ptr = ret[0] >>> 0;\n RewriterFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n\n } catch (e) {\n if (module.headers.get('Content-Type') != 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nfunction __wbg_get_imports() {\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbg_buffer_609cc3eee51ed158 = function(arg0) {\n const ret = arg0.buffer;\n return ret;\n };\n imports.wbg.__wbg_call_7cccdd69e0791ae2 = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = arg0.call(arg1, arg2);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_call_833bed5770ea2041 = function() { return handleError(function (arg0, arg1, arg2, arg3) {\n const ret = arg0.call(arg1, arg2, arg3);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_get_67b2ba62fc30de12 = function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_new_405e22f390576ce2 = function() {\n const ret = new Object();\n return ret;\n };\n imports.wbg.__wbg_new_78feb108b6472713 = function() {\n const ret = new Array();\n return ret;\n };\n imports.wbg.__wbg_new_9ffbe0a71eff35e3 = function() { return handleError(function (arg0, arg1) {\n const ret = new URL(getStringFromWasm0(arg0, arg1));\n return ret;\n }, arguments) };\n imports.wbg.__wbg_new_a12002a7f91c75be = function(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n };\n imports.wbg.__wbg_newwithbase_161c299e7a34e2eb = function() { return handleError(function (arg0, arg1, arg2, arg3) {\n const ret = new URL(getStringFromWasm0(arg0, arg1), getStringFromWasm0(arg2, arg3));\n return ret;\n }, arguments) };\n imports.wbg.__wbg_newwithbyteoffsetandlength_d97e637ebe145a9a = function(arg0, arg1, arg2) {\n const ret = new Uint8Array(arg0, arg1 >>> 0, arg2 >>> 0);\n return ret;\n };\n imports.wbg.__wbg_scramtag_3a255d78b157986d = function(arg0) {\n const ret = scramtag();\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg_set_bb8cecf6a62b9f46 = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = Reflect.set(arg0, arg1, arg2);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_toString_5285597960676b7b = function(arg0) {\n const ret = arg0.toString();\n return ret;\n };\n imports.wbg.__wbg_toString_c813bbd34d063839 = function(arg0) {\n const ret = arg0.toString();\n return ret;\n };\n imports.wbg.__wbindgen_boolean_get = function(arg0) {\n const v = arg0;\n const ret = typeof(v) === 'boolean' ? (v ? 1 : 0) : 2;\n return ret;\n };\n imports.wbg.__wbindgen_error_new = function(arg0, arg1) {\n const ret = new Error(getStringFromWasm0(arg0, arg1));\n return ret;\n };\n imports.wbg.__wbindgen_init_externref_table = function() {\n const table = wasm.__wbindgen_export_2;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n ;\n };\n imports.wbg.__wbindgen_is_function = function(arg0) {\n const ret = typeof(arg0) === 'function';\n return ret;\n };\n imports.wbg.__wbindgen_memory = function() {\n const ret = wasm.memory;\n return ret;\n };\n imports.wbg.__wbindgen_string_get = function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbindgen_string_new = function(arg0, arg1) {\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n };\n imports.wbg.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n\n return imports;\n}\n\nfunction __wbg_init_memory(imports, memory) {\n\n}\n\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n __wbg_init.__wbindgen_wasm_module = module;\n cachedDataViewMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n\n\n wasm.__wbindgen_start();\n return wasm;\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module !== 'undefined') {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n\n __wbg_init_memory(imports);\n\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n\n const instance = new WebAssembly.Instance(module, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module_or_path !== 'undefined') {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (typeof module_or_path === 'undefined') {\n module_or_path = new URL('wasm_bg.wasm', \"\");\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n __wbg_init_memory(imports);\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync };\nexport default __wbg_init;\n","// getDefaultExport function for compatibility with non-ESM modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};\n","__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["Object","decodeURIComponent","console","Date","parseInt","Array","Error","ScramjetClient","CookieStore","Map","global","SCRAMJETCLIENT","iswindow","dbg","SingletonBox","BareClient","Promise","resolve","addEventListener","data","createWrapFn","Proxy","target","prop","split","realProp","realTarget","a","b","original","Reflect","args","that","client","value","base","url","frag","undefined","URL","currentWin","frame","curclient","parentWin","parentClient","createLocationProxy","sframe","SCRAMJETFRAME","currentwin","currentFrame","currentclient","cookiestr","context","modules","key","module","aorder","unrewriteUrl","ev","NavigateEvent","rewriteUrl","name","handler","n","h","constructor","newTarget","returnValue","earlyreturn","ctx","r","fn","pst","err","s","location","config","flagEnabled","getOwnPropertyDescriptorHandler","descriptor","oldDescriptor","v","desc","_self","map","proxy","_receiver","namespace","NamedNodeMap","isNaN","Number","keys","self","msg","controller","rewriteCss","unrewriteCss","style","CSSStyleDeclaration","tostring","String","rewriteHtml","encoder","TextEncoder","bytesToBase64","bytes","btoa","byte","attrObject","urlinterfaces","originalhrefs","attr","element","i","href","node","Document","attrib","cleaned","attrNames","ruleList","htmlRules","rule","ret","_ctx","_namespace","val","newval","rewriteJs","scriptSource","atob","unrewriteHtml","realwin","newclient","Function","callerGlobalThisProxied","callerClient","UrlChangeEvent","f","win","entries","entry","file","order","enabled","disabled","_client","Navigator","registrationmap","WeakMap","registration","fakeRegistration","EventTarget","handle","worker","state","index","property","attributes","localStorageProxy","sessionStorageProxy","globalThis","window","Window","isworker","issw","isdedicated","isshared","isemulatedsw","loadAndHook","setConfig","loadCodecs","Math","runtime","ScramjetServiceWorkerRuntime","contextev","ScramjetContextEvent","urlchangeev","ScramjetGlobalDownloadEvent","Event","download","Location","fakeLocation","descriptorSource","native","log","_v","rewriteBlob","unrewriteBlob","del","argdbg","arg","recurse","Symbol","ar","warn","e","t","closure","error","stack","newstack","lines","line","l","_value","js","indirectEval","strict","indirection","realOnEvent","handlers","wraplistener","listener","realEvent","type","reciever","origlistener","proxylistener","arr","targets","rewriteFunction","stringifiedFunction","content","RawFunction","RawAsyncFunction","RawGeneratorFunction","RawAsyncGeneratorFunction","boundimport","resolved","metaobj","rootPromise","root","directory","POLLUTANT","wrappedPostMessage","toproxy","pollution","socketmap","socketstreammap","fakeWebSocket","barews","fakeEventSend","fakeev","CloseEvent","payload","Blob","ArrayBuffer","MessageEvent","ws","openResolver","closeResolver","openRejector","reject","ReadableStream","WritableStream","chunk","ARGS","HEADERS","headers","sab","SharedArrayBuffer","view","DataView","now","performance","status","headersLength","headersab","Uint8Array","TextDecoder","bodyLength","bodyab","body","parser","DOMParser","header","match","re","RegExp","SCRAMTAG","buf","tag","before","registerRewrites","sourcemap","decoder","rewrites","rewritelen","cursor","start","size","end","oldLen","oldStr","doUnrewrite","stringified","extracted","extractTag","tagOffset","tagStart","fnStart","fnEnd","getEnd","rewrite","fnrewrites","newString","lastpos","conn","BareMuxConnection","port","identifier","current","test","str","obj","lhs","op","rhs","ownerclient","cevent","event","handleMessage","_e","token","fetchhandlers","request","fakeRequest","Headers","fakeFetchEvent","responded","response","message","_reciever","ScramjetController","deepMerge","source","newConfig","encodeURIComponent","navigator","document","ScramjetFrame","encodedHash","codecEncode","prefixed","codecDecode","db","openDB","newconfig","options","$scramjetLoadController","require","$scramjetLoadClient","$scramjetLoadWorker","path","$scramjetVersion","COMMITHASH","VERSION","logfuncs","severity","old","_","fmt","meta","cookies","parsed","parse","cookie","domain","sameSite","id","fromJs","validCookies","JSON","ScramjetHeaders","rewriteSrcset","cookieStore","nativeFunction","flag","regex","partialflags","css","handleCss","encodedUrl","importStatement","firstQuote","endQuote","SEC_HEADERS","Set","URL_HEADERS","rewriteLinkHeader","link","rewriteHeaders","rawHeaders","storedReferrerPolicies","cspHeader","urlHeader","referrerUrl","storedPolicyData","storedReferrerPolicy","rawDir","getSiteDirective","getInjectScripts","script","dump","injected","base64Injected","html","fromTop","rewriteHtmlInner","DomHandler","dom","Parser","traverseParsedHtml","sel","eventAttributes","json","Comment","contentArray","childNode","head","findhead","ElementType","child","Element","src","render","traverse","srcset","rewrittenSources","sources","descriptors","rewrittenUrl","rewriteJsInner","rewriteJsWasm","input","rewriter","getRewriter","out","scramtag","errors","textDecoder","res","newjs","pushmap","sourcemapfn","strictMode","tryCanParseURL","origin","blob","realUrl","decodedHash","wasm_u8","asyncSetWasm","fetch","REWRITERWASM","c","MAGIC","x","rewriters","initSync","WebAssembly","len","Rewriter","foundHead","inject","rewriteWorkers","rewritten","SITE_HIERARCHY","getDB","getTracker","setTracker","tracker","deleteTracker","initializeTracker","requestUrl","referrer","initialSite","updateTracker","originalUrl","redirectUrl","newReferrerPolicy","getMostRestrictiveSite","currentSite","trackedValue","currentValue","cleanTracker","cleanExpiredTrackers","tx","storeReferrerPolicy","policy","getReferrerPolicy","CACHE_KEY","getCachedSuffixList","setCachedSuffixList","CACHE_DURATION_MINUTES","referrerURL","isSameSite","url1","url2","registrableDomain1","getRegistrableDomain","publicSuffixes","getPublicSuffixList","labels","hostname","matchedSuffix","isException","suffix","actualSuffix","matchesSuffix","hostnameLabels","suffixLabels","offset","hostLabel","suffixLabel","suffixLabelCount","domainLabelCount","publicSuffixesResponse","cached","publicSuffixesRaw","trimmed","spaceIndex","SCRAMJETCLIENTNAME","errorTemplate","trace","fetchedURL","renderError","crossOriginIsolated","Response","FakeServiceWorker","MessageChannel","cb","transfer","isRedirect","handleFetch","topFrameName","parentFrameName","b64","scriptType","extraParams","param","dataUrl","rewriteBody","activeWorker","w","clientURL","isTopLevelProxyNavigation","currentReferrer","allClients","parentChainClient","parentPolicyData","siteDirective","unrewrittenReferrer","ScramjetRequestEvent","handleResponse","errorDetails","AggregateError","formattedError","destination","mode","bareClient","swtarget","responseBody","isNavigationRequest","responseHeaders","newSiteDirective","maybeHeaders","promise","isDownload","contentType","displayableMimes","filename","disp","filenameMatch","length","clis","clients","ScramjetHandleResponseEvent","workertype","statusText","rawResponse","requestHeaders","method","ScramjetServiceWorker","clientId","MessagePort","WebSocket","setTimeout","TypeError","BroadcastChannel","SharedWorker","DOMException","Request","D","arguments","C","B","Uint16Array","E","Q","IDBTransaction","IDBRequest","IDBCursor","IDBDatabase","IDBObjectStore","IDBIndex","indexedDB","crypto","FinalizationRegistry"],"mappings":"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A,YACA,mBACA,WACA,UACA,UACA,qCACA,gBACA,gBACA,oBACA,cACA,aACA,SACA,YACA,cACA,cACA,aACA,cACA,SACA,mBACA,YACA,UACA,UACA,UACA,aACA,UACA,YACA,YACA,aACA,UACA,SACA,eACA,mBACA,cACA,cACA,eACA,eACA,cACA,aACA,cACA,YACA,eACA,UACA,SACA,YACA,aACA,eACA,UACA,WACA,WACA,4BACA,WACA,YACA,WACA,eACA,YACA,WACA,YACA,eACA,WACA,iBACA,YACA,uBACA,6BACA,yBACA,wBACA,UACA,aACA,sBACA,uBACA,gBACA,gBACA,qBACA,cACA,kBACA,gBACA,eACA,iBACA,iBACA,gBACA,oBACA,iBACA,uBACA,mBACA,kBACA,oBACA,kBACA,qBACA,SACA,QACA,UACA,cACA,qBACA,uBACA,A,gYCpUM,SAASkB,EACfnO,CAAuB,CACvB1K,CAAkB,CAClBuU,CAAa,CACbpT,EAAS,EAAK,EAEd,OAAO2X,AA3DR,SACCC,CAA0B,CAC1BnG,CAAqB,CACrB2B,CAAa,CACbpT,CAAe,EAEf,GAAI,CAAC6X,EAAUzT,EAAI,CAAG0T,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAY1E,GAElC,GAAI,CAEH,IADI2E,EACE3J,EAASlB,YAAY,GAAG,GAG7B6K,EADG,AAAiB,UAAjB,OAAOH,EACJC,EAAS,UAAU,CACxBD,EACAxE,EAAK,IAAI,CAAC,IAAI,CACd3B,GAAU,YACVzR,GAGK6X,EAAS,gBAAgB,CAC9BD,EACAxE,EAAK,IAAI,CAAC,IAAI,CACd3B,GAAU,YACVzR,GAcF1C,EAAI,IAAI,CAAC8V,EAAMhF,EAAQ,CAAC,iBAAiB,EAAEqD,GAAU,YAAY,CAAC,CAAC,EAEnE,GAAM,CAAElI,GAAAA,CAAE,CAAE1H,IAAAA,CAAG,CAAEmW,SAAAA,CAAQ,CAAEC,OAAAA,CAAM,CAAE,CAAGF,EAEtC,MAAO,CACN,GAAI,AAAiB,UAAjB,OAAOH,EAAqBM,EAAAA,EAAAA,CAAAA,MAAkB,CAAC3O,GAAMA,EACzD,IAAKyO,EA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,AAAIA,UAAU,kBAAmB,KAAI,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC3kB,QAAQ,KAAK,CAAC,2C,gDCA57P,IAAM,EAAe,IAAIO,IAAI,CAChC,WACA,cACA,eACA,eACA,gBACA,mBACA,WACA,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,eACA,gBACA,WACA,iBACA,iBACA,WACH,CAAC,GAAG,CAAC,AAAC,GAAQ,CAAC,EAAI,WAAW,GAAI,EAAI,GAC1B,EAAiB,IAAIA,IAAI,CAClC,gBACA,gBACA,gBACA,gBACA,cACA,WACA,gBACA,kBACA,WACA,cACA,WACA,oBACA,gBACA,eACA,mBACA,YACA,aACA,WACA,eACA,oBACA,eACA,cACA,cACA,mBACA,YACA,aACA,aACA,sBACA,mBACA,eACA,YACA,YACA,YACA,gBACA,sBACA,iBACA,OACA,OACA,cACA,YACA,qBACA,mBACA,mBACA,mBACA,eACA,cACA,eACA,cACA,eACA,iBACA,cACA,UACA,UACA,aACA,UACA,aACA,mBACA,mBACA,aACH,CAAC,GAAG,CAAC,AAAC,GAAQ,CAAC,EAAI,WAAW,GAAI,EAAI,E,0ECvFvC,IAAM,EAAoB,IAAI2X,IAAI,CAC9B,QACA,SACA,MACA,SACA,UACA,WACA,YACA,WACH,EACD,SAAS,EAAc,CAAK,EACxB,OAAO,EAAM,OAAO,CAAC,KAAM,SAC/B,CA+BA,IAAM,EAAY,IAAIA,IAAI,CACtB,OACA,OACA,WACA,KACA,MACA,UACA,QACA,QACA,KACA,MACA,QACA,UACA,SACA,OACA,OACA,QACA,SACA,QACA,MACH,EAiBD,EARO,SAAS,EAAO,CAAI,CAAE,EAAU,CAAC,CAAC,EACrC,IAAM,EAAQ,WAAY,EAAO,EAAO,CAAC,EAAK,CAC1C,EAAS,GACb,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,MAAM,CAAE,IAC9B,GAAU,AAKlB,SAAoB,CAAI,CAAE,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"}
|