From e54d837dec8c3149073401a26f9d5eef5c28b667 Mon Sep 17 00:00:00 2001 From: markw65 Date: Sat, 2 Apr 2022 10:36:06 -0700 Subject: [PATCH 1/5] Add type declarations for bytecode arrays --- lib/peg.d.ts | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/lib/peg.d.ts b/lib/peg.d.ts index 6af2a60c..48983222 100644 --- a/lib/peg.d.ts +++ b/lib/peg.d.ts @@ -43,6 +43,14 @@ declare namespace ast { match?: MatchResult; } + /** A function implementing an action */ + interface FunctionConst { + predicate: boolean; + params: string[]; + body: string; + location: LocationRange; + } + /** The main Peggy AST class returned by the parser. */ interface Grammar extends Node<"grammar"> { /** Initializer that run once when importing generated parser module. */ @@ -57,7 +65,16 @@ declare namespace ast { * map for it. */ code?: SourceNode; - } + + /** + * Added by the `generateBytecode` pass and contain data for + * bytecodes to refer back to via index. + */ + literals?: string[]; + classes?: CharacterClass[]; + expectations?: parser.Expectation[]; + functions?: FunctionConst[]; + } /** * Base interface for all initializer nodes with the code. From 4ddf5a272d66c157b97259a17638bb04bbc0432a Mon Sep 17 00:00:00 2001 From: markw65 Date: Thu, 24 Mar 2022 08:44:37 -0700 Subject: [PATCH 2/5] Generate SourceNodes for bytecode Add SourceNodes for all code generated via bytecode. This means that you can step through rules and expressions, in addition to actions and predicates. --- lib/compiler/opcodes.js | 5 + lib/compiler/passes/generate-bytecode.js | 76 ++++++++++++- lib/compiler/passes/generate-js.js | 104 ++++++++++++++--- lib/compiler/stack.js | 137 +++++++++++++++++++++-- lib/peg.d.ts | 1 + 5 files changed, 297 insertions(+), 26 deletions(-) diff --git a/lib/compiler/opcodes.js b/lib/compiler/opcodes.js index 6e5f8ef7..58d8e522 100644 --- a/lib/compiler/opcodes.js +++ b/lib/compiler/opcodes.js @@ -63,6 +63,11 @@ const opcodes = { // 30-34 reserved for @mingun // PUSH_EMPTY_STRING: 35 // PLUCK: 36 + + SOURCE_MAP_PUSH: 37, // SOURCE_MAP_PUSH loc-index + SOURCE_MAP_POP: 38, // SOURCE_MAP_POP + SOURCE_MAP_LABEL_PUSH: 39, // SOURCE_MAP_LABEL_PUSH sp, literal-index, loc-index + SOURCE_MAP_LABEL_POP: 40, // SOURCE_MAP_LABEL_POP sp }; module.exports = opcodes; diff --git a/lib/compiler/passes/generate-bytecode.js b/lib/compiler/passes/generate-bytecode.js index 1274efad..c8709ac4 100644 --- a/lib/compiler/passes/generate-bytecode.js +++ b/lib/compiler/passes/generate-bytecode.js @@ -197,6 +197,27 @@ const { ALWAYS_MATCH, SOMETIMES_MATCH, NEVER_MATCH } = require("./inference-matc // // silentFails--; // +// Source Mapping +// -------------- +// +// [37] SOURCE_MAP_PUSH n +// +// Everything generated from here until the corresponding SOURCE_MAP_POP +// will be wrapped in a SourceNode tagged with locations[n]. +// +// [38] SOURCE_MAP_POP +// +// See above. +// +// [39] SOURCE_MAP_LABEL_PUSH sp, label, loc +// +// Mark that the stack location sp will be used to hold the value +// of the label named literals[label], with location info locations[loc] +// +// [40] SOURCE_MAP_LABEL_POP sp +// +// End the region started by [39] +// // This pass can use the results of other previous passes, each of which can // change the AST (and, as consequence, the bytecode). // @@ -217,11 +238,12 @@ const { ALWAYS_MATCH, SOMETIMES_MATCH, NEVER_MATCH } = require("./inference-matc // that is equivalent of an unknown match result and signals the generator that // runtime check for the |FAILED| is required. Trick is explained on the // Wikipedia page (https://en.wikipedia.org/wiki/Asm.js#Code_generation) -function generateBytecode(ast) { +function generateBytecode(ast, options) { const literals = []; const classes = []; const expectations = []; const functions = []; + const locations = []; function addLiteralConst(value) { const index = literals.indexOf(value); @@ -261,6 +283,13 @@ function generateBytecode(ast) { return index === -1 ? functions.push(func) - 1 : index; } + function addLocation(location) { + // Don't bother de-duplicating. There can be a lot of locations, + // they will almost never collide, and unlike the "consts" above, + // it won't affect code generation even if they do. + return locations.push(location) - 1; + } + function cloneEnv(env) { const clone = {}; @@ -355,7 +384,33 @@ function generateBytecode(ast) { ); } - const generate = visitor.build({ + function wrapGenerators(generators) { + if (options && options.output === "source-and-map") { + Object.entries(generators).forEach(([name, generator]) => { + generators[name] = function(node, ...args) { + const generated = generator(node, ...args); + // Some generators ("grammar" and "rule") don't return anything, + // so don't bother wrapping their return values. + if (generated === undefined || !node.location) { + return generated; + } + return buildSequence( + [ + op.SOURCE_MAP_PUSH, + addLocation(node.location), + ], + generated, + [ + op.SOURCE_MAP_POP, + ] + ); + }; + }); + } + return visitor.build(generators); + } + + const generate = wrapGenerators({ grammar(node) { node.rules.forEach(generate); @@ -363,6 +418,7 @@ function generateBytecode(ast) { node.classes = classes; node.expectations = expectations; node.functions = functions; + node.locations = locations; }, rule(node) { @@ -547,11 +603,25 @@ function generateBytecode(ast) { context.pluck.push(sp); } - return generate(node.expression, { + const expression = generate(node.expression, { sp: context.sp, env, action: null, }); + + if (label && node.labelLocation && options && options.output === "source-and-map") { + return buildSequence( + [ + op.SOURCE_MAP_LABEL_PUSH, + sp, + addLiteralConst(label), + addLocation(node.labelLocation), + ], + expression, + [op.SOURCE_MAP_LABEL_POP, sp] + ); + } + return expression; }, text(node, context) { diff --git a/lib/compiler/passes/generate-js.js b/lib/compiler/passes/generate-js.js index 6ec7dc87..a43ea5e4 100644 --- a/lib/compiler/passes/generate-js.js +++ b/lib/compiler/passes/generate-js.js @@ -81,9 +81,60 @@ function wrapInSourceNode(prefix, chunk, location, suffix, name) { function generateJS(ast, options) { // These only indent non-empty lines to avoid trailing whitespace. function indent2(code) { - return code instanceof SourceNode - ? code - : code.replace(/^(.+)$/gm, " $1"); + /* + * - raw lines (outside of SourceNodes) have implict newlines + * that get inserted at the end of processing, so indent + * should always be applied to the next string. + * + * - chunks inside SourceNodes are assumed to have explict + * new lines, and often have several chunks on one line. + * we therefore shouldn't indent them, unless we've seen + * an explicit new line, or the previous line was raw. + * + * So eg: + * [ + * SourceNode(["a ", "b", "\nfoo "]), + * "x", + * "y", + * ] + * + * Should end up as + * [ + * SourceNode([" a ", "b", "\n foo "]), + * "x", + * " y", + * ] + * + * sawEol, and inSourceNode are used to keep track of when + * we should apply the indent. + */ + let sawEol = true; + let inSourceNode = 0; + function helper(code) { + if (Array.isArray(code)) { + return code.map(helper); + } + if (code instanceof SourceNode) { + inSourceNode++; + code.children = helper(code.children); + inSourceNode--; + return code; + } + if (sawEol) { + // There was an immediately prior newline, so + // indent at the start of every line + code = code.replace(/^(.+)$/gm, " $1"); + } else { + // This line will be appended directly to + // the end of the previous one, so only indent + // after each contained newline (and only if + // there's non-whitespace following the newline) + code = code.replace(/\n(\s*\S)/g, "\n $1"); + } + sawEol = !inSourceNode || code.endsWith("\n"); + return code; + } + return helper(code); } function l(i) { return "peg$c" + i; } // |literals[i]| of the abstract machine @@ -288,10 +339,10 @@ function generateJS(ast, options) { ); parts.push("if (" + cond + ") {"); - parts.push(...thenCode.map(indent2)); + parts.push(...indent2(thenCode)); if (elseLength > 0) { parts.push("} else {"); - parts.push(...elseCode.map(indent2)); + parts.push(...indent2(elseCode)); } parts.push("}"); } @@ -308,7 +359,7 @@ function generateJS(ast, options) { }); parts.push("while (" + cond + ") {"); - parts.push(...bodyCode.map(indent2)); + parts.push(...indent2(bodyCode)); parts.push("}"); } @@ -526,6 +577,33 @@ function generateJS(ast, options) { ip++; break; + case op.SOURCE_MAP_PUSH: + stack.sourceMapPush( + parts, + ast.locations[bc[ip + 1]] + ); + ip += 2; + break; + + case op.SOURCE_MAP_POP: { + stack.sourceMapPop(); + ip++; + break; + } + + case op.SOURCE_MAP_LABEL_PUSH: + stack.labels[bc[ip + 1]] = { + label: ast.literals[bc[ip + 2]], + location: ast.locations[bc[ip + 3]], + }; + ip += 4; + break; + + case op.SOURCE_MAP_LABEL_POP: + delete stack.labels[bc[ip + 1]]; + ip += 2; + break; + // istanbul ignore next Because we never generate invalid bytecode we cannot reach this branch default: throw new Error("Invalid opcode: " + bc[ip] + ".", { rule: rule.name, bytecode: bc }); @@ -538,7 +616,7 @@ function generateJS(ast, options) { const code = compile(rule.bytecode); parts.push(wrapInSourceNode( - " function ", + "function ", name(rule.name), rule.nameLocation, "() {\n", @@ -551,15 +629,15 @@ function generateJS(ast, options) { parts.push(indent2(stack.defines())); - parts.push(...generateRuleHeader( + parts.push(...indent2(generateRuleHeader( "\"" + stringEscape(rule.name) + "\"", asts.indexOfRule(ast, rule.name) - ).map(indent2)); - parts.push(...code.map(indent2)); - parts.push(...generateRuleFooter( + ))); + parts.push(...indent2(code)); + parts.push(...indent2(generateRuleFooter( "\"" + stringEscape(rule.name) + "\"", stack.result() - ).map(indent2)); + ))); parts.push("}"); @@ -1002,7 +1080,7 @@ function generateJS(ast, options) { ); ast.rules.forEach(rule => { - parts.push(...generateRuleFunction(rule).map(indent2)); + parts.push(...indent2(generateRuleFunction(rule))); parts.push(""); }); diff --git a/lib/compiler/stack.js b/lib/compiler/stack.js index 785606e5..8308186a 100644 --- a/lib/compiler/stack.js +++ b/lib/compiler/stack.js @@ -1,5 +1,7 @@ "use strict"; +const { SourceNode } = require("source-map-generator"); + /** Utility class that helps generating code for C-like languages. */ class Stack { /** @@ -12,13 +14,17 @@ class Stack { */ constructor(ruleName, varName, type, bytecode) { /** Last used variable in the stack. */ - this.sp = -1; + this.sp = -1; /** Maximum stack size. */ - this.maxSp = -1; - this.varName = varName; - this.ruleName = ruleName; - this.type = type; - this.bytecode = bytecode; + this.maxSp = -1; + this.varName = varName; + this.ruleName = ruleName; + this.type = type; + this.bytecode = bytecode; + /* Map from stack index, to label targetting that index */ + this.labels = {}; + /* Stack of in-flight source mappings */ + this.sourceMapStack = []; } /** @@ -39,19 +45,63 @@ class Stack { return this.varName + i; } + sourceNode(location, chunks, name) { + return new SourceNode( + location.start.line, + location.start.column ? location.start.column - 1 : null, + location.source, + chunks, + name + ); + } + /** * Assigns `exprCode` to the new variable in the stack, returns generated code. * As the result, the size of a stack increases on 1. * * @param {string} exprCode Any expression code that must be assigned to the new variable in the stack - * @return {string} Assignment code + * @return {string|SourceNode} Assignment code */ push(exprCode) { - const code = this.name(++this.sp) + " = " + exprCode + ";"; + if (++this.sp > this.maxSp) { this.maxSp = this.sp; } - if (this.sp > this.maxSp) { this.maxSp = this.sp; } + const label = this.labels[this.sp]; + const code = [this.name(this.sp), " = ", exprCode, ";"]; + if (label) { + if (this.sourceMapStack.length) { + const sourceNode = this.sourceNode( + label.location, + code.splice(0, 2), + label.label + ); + const { parts, location } = this.sourceMapPopInternal(); + const newLoc = (location.start.offset < label.location.end.offset) + ? { + start: label.location.end, + end: location.end, + source: location.source, + } + : location; - return code; + const outerNode = this.sourceNode( + newLoc, + code.concat("\n") + ); + this.sourceMapStack.push([parts, parts.length + 1, location]); + return new SourceNode( + null, + null, + label.location.source, + [sourceNode, outerNode] + ); + } else { + return this.sourceNode( + label.location, + code.concat("\n") + ); + } + } + return code.join(""); } /** @@ -186,6 +236,73 @@ class Stack { ); } } + + sourceMapPush(parts, location) { + if (this.sourceMapStack.length) { + const top = this.sourceMapStack[this.sourceMapStack.length - 1]; + // If the current top of stack starts at the same location as + // the about to be pushed item, we should update its start location to + // be past the new one. Otherwise any code it generates will + // get allocated to the inner node. + if (top[2].start.offset === location.start.offset + && top[2].end.offset > location.end.offset) { + top[2] = { + start: location.end, + end: top[2].end, + source: top[2].source, + }; + } + } + this.sourceMapStack.push([ + parts, + parts.length, + location, + ]); + } + + sourceMapPopInternal() { + const [ + parts, + index, + location, + ] = this.sourceMapStack.pop(); + const chunks = parts.splice(index).map( + chunk => chunk instanceof SourceNode + ? chunk + : chunk + "\n" + ); + if (chunks.length) { + parts.push(new SourceNode( + location.start.line, + location.start.column - 1, + location.source, + chunks + )); + } + return { parts, location }; + } + + sourceMapPop(offset) { + const { location } = this.sourceMapPopInternal(); + if (this.sourceMapStack.length + && location.end.offset + < this.sourceMapStack[this.sourceMapStack.length - 1][2].end.offset) { + const { parts, location: outer } = this.sourceMapPopInternal(); + const newLoc = (outer.start.offset < location.end.offset) + ? { + start: location.end, + end: outer.end, + source: outer.source, + } + : outer; + + this.sourceMapStack.push([ + parts, + parts.length + (offset || 0), + newLoc, + ]); + } + } } module.exports = Stack; diff --git a/lib/peg.d.ts b/lib/peg.d.ts index 48983222..e7cb61b3 100644 --- a/lib/peg.d.ts +++ b/lib/peg.d.ts @@ -74,6 +74,7 @@ declare namespace ast { classes?: CharacterClass[]; expectations?: parser.Expectation[]; functions?: FunctionConst[]; + locations?: LocationRange[]; } /** From 98b35d319065acbc7ecb8bd9677b922ffca16ad4 Mon Sep 17 00:00:00 2001 From: markw65 Date: Thu, 24 Mar 2022 16:23:04 -0700 Subject: [PATCH 3/5] Add tests for new SourceMap features --- test/api/pegjs-api.spec.js | 22 ++++- .../compiler/passes/generate-bytecode.spec.js | 84 +++++++++++++++++-- test/unit/compiler/passes/helpers.js | 2 +- 3 files changed, 99 insertions(+), 9 deletions(-) diff --git a/test/api/pegjs-api.spec.js b/test/api/pegjs-api.spec.js index a93fbd06..8c4bab82 100644 --- a/test/api/pegjs-api.spec.js +++ b/test/api/pegjs-api.spec.js @@ -226,7 +226,9 @@ describe("Peggy API", () => { describe("generates source map", () => { function findLocationOf(input, chunk) { - const offset = input.indexOf(chunk); + const offset = chunk instanceof RegExp + ? input.search(chunk) + : input.indexOf(chunk); let line = 1; let column = 0; @@ -251,7 +253,8 @@ describe("Peggy API", () => { {{${GLOBAL_INITIALIZER}}} {${PER_PARSE_INITIALIZER}} RULE_1 = !{${NOT_BLOCK}} 'a' rule:RULE_2 {${ACTION_BLOCK}}; - RULE_2 'named' = &{${AND_BLOCK}} @'b'; + RULE_2 'named' = &{${AND_BLOCK}} @'b' [abc] 'def'; + RULE_3 = RULE_1 / RULE_2; `; function check(chunk, source, name, generatedChunk = chunk) { @@ -286,6 +289,21 @@ describe("Peggy API", () => { it("rule name", () => check("RULE_1", source, "RULE_1", "peg$parseRULE_1() {")); it("labelled rule name", () => check("RULE_2 'named'", source, "RULE_2", "peg$parseRULE_2() {")); + it("literal expression", () => check("'a'", source, null, "input.charCodeAt(peg$currPos) === 97")); + it("multichar literal", () => check("'def'", source, null, "input.substr(peg$currPos, 3) === peg$c3")); + it("chars expression", () => check("[abc]", source, null, "peg$r0.test(input.charAt(peg$currPos))")); + it("rule expression", () => check("RULE_2", source, null, "peg$parseRULE_2();")); + it("choice expression", () => check( + "RULE_1 / RULE_2", + source, + null, + new RegExp([ + // Lint complained about a long regex, so split and join. + /peg\$parseRULE_1\(\);\s*/, + /if \(s. === peg\$FAILED\) \{\s*/, + /s. = peg\$parseRULE_2/, + ].map(r => r.source).join("")) + )); }); } }); diff --git a/test/unit/compiler/passes/generate-bytecode.spec.js b/test/unit/compiler/passes/generate-bytecode.spec.js index b2fa51ab..a639b1c4 100644 --- a/test/unit/compiler/passes/generate-bytecode.spec.js +++ b/test/unit/compiler/passes/generate-bytecode.spec.js @@ -15,6 +15,13 @@ describe("compiler pass |generateBytecode|", () => { }; } + function bytecodeLocationDetails(bytecode, locations) { + return { + rules: [{ bytecode }], + locations, + }; + } + function constsDetails(literals, classes, expectations, functions) { return { literals, classes, expectations, functions }; } @@ -51,6 +58,24 @@ describe("compiler pass |generateBytecode|", () => { )); }); + it("generates correct source mapping", () => { + expect(pass).to.changeAST([ + "a = 'a'", + ].join("\n"), bytecodeLocationDetails( + [37, 0, 18, 0, 2, 2, 22, 0, 23, 0, 38], + [ + { + source: "-", + start: { offset: 4, line: 1, column: 5 }, + end: { offset: 7, line: 1, column: 8 }, + }, + ] + ), { + grammarSource: "-", + output: "source-and-map", + }); + }); + it("generates correct plucking bytecode", () => { expect(pass).to.changeAST("start = 'a' @'b' 'c'", bytecodeDetails([ 5, // PUSH_CURR_POS @@ -129,16 +154,63 @@ describe("compiler pass |generateBytecode|", () => { }); describe("for choice", () => { - it("generates correct bytecode", () => { - expect(pass).to.changeAST("start = 'a' / 'b' / 'c'", bytecodeDetails([ + it("generates correct bytecode and source mapping", () => { + expect(pass).to.changeAST("start = 'a' / label:'b' / 'c'", bytecodeLocationDetails([ + 37, 5, // SOURCE_MAP_PUSH 5 + 37, 0, // SOURCE_MAP_PUSH 0 18, 0, 2, 2, 22, 0, 23, 0, // - 14, 21, 0, // IF_ERROR + 38, // SOURCE_MAP_POP + 14, 36, 0, // IF_ERROR 6, // * POP + 37, 3, // SOURCE_MAP_PUSH 3 + 39, 0, 2, // SOURCE_MAP_LABEL_PUSH 0 2 + 2, // PUSH_NULL + 37, 1, // SOURCE_MAP_PUSH 1 18, 1, 2, 2, 22, 1, 23, 1, // - 14, 9, 0, // IF_ERROR + 38, // SOURCE_MAP_POP + 40, 0, // SOURCE_MAP_LABEL_POP 0 + 38, // SOURCE_MAP_POP + 14, 12, 0, // IF_ERROR 6, // * POP - 18, 2, 2, 2, 22, 2, 23, 2, // - ])); + 37, 4, // SOURCE_MAP_PUSH 2 + 18, 3, 2, 2, 22, 3, 23, 2, // + 38, // SOURCE_MAP_POP + 38, // SOURCE_MAP_POP + ], [ + { + source: "-", + start: { offset: 8, line: 1, column: 9 }, + end: { offset: 11, line: 1, column: 12 }, + }, + { + source: "-", + start: { offset: 20, line: 1, column: 21 }, + end: { offset: 23, line: 1, column: 24 }, + }, + { + source: "-", + start: { offset: 14, line: 1, column: 15 }, + end: { offset: 19, line: 1, column: 20 }, + }, + { + source: "-", + start: { offset: 14, line: 1, column: 15 }, + end: { offset: 23, line: 1, column: 24 }, + }, + { + source: "-", + start: { offset: 26, line: 1, column: 27 }, + end: { offset: 29, line: 1, column: 30 }, + }, + { + source: "-", + start: { offset: 8, line: 1, column: 9 }, + end: { offset: 29, line: 1, column: 30 }, + }, + ]), { + grammarSource: "-", + output: "source-and-map", + }); }); }); diff --git a/test/unit/compiler/passes/helpers.js b/test/unit/compiler/passes/helpers.js index 779eb5cf..fccc7428 100644 --- a/test/unit/compiler/passes/helpers.js +++ b/test/unit/compiler/passes/helpers.js @@ -12,7 +12,7 @@ module.exports = function(chai, utils) { Assertion.addMethod("changeAST", function(grammar, props, options) { options = options !== undefined ? options : {}; - const ast = parser.parse(grammar); + const ast = parser.parse(grammar, options); utils.flag(this, "object")(ast, options, new Session({ error(stage, ...args) { throw new GrammarError(...args); }, From 8680b9d50df9725e0a6faa7e716737e99da038f0 Mon Sep 17 00:00:00 2001 From: markw65 Date: Fri, 17 Jun 2022 17:58:35 -0700 Subject: [PATCH 4/5] CHANGELOG.md and AUTHORS --- AUTHORS | 1 + CHANGELOG.md | 2 ++ 2 files changed, 3 insertions(+) diff --git a/AUTHORS b/AUTHORS index 06715be7..07f76726 100644 --- a/AUTHORS +++ b/AUTHORS @@ -27,3 +27,4 @@ Tony Lukasavage (https://github.com/tonylukasavag chunpu (https://github.com/chunpu/) fatfisz (https://github.com/fatfisz/) fpirsch (https://github.com/fpirsch/) +markw65 (https://github.com/markw65/) \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 116b732e..a0601859 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,8 @@ Released: TBD - [#280](https://github.com/peggyjs/peggy/issues/280) Add inline examples to the documentation, from @hildjj +- [#240](https://github.com/peggyjs/peggy/issues/240) Generate SourceNodes for bytecode + ### Minor Changes - [#274](https://github.com/peggyjs/peggy/issues/274) Use commander's new From 13e8c8faf20d491d797ea03fec050fdf2a0ad614 Mon Sep 17 00:00:00 2001 From: markw65 Date: Fri, 17 Jun 2022 17:14:01 -0700 Subject: [PATCH 5/5] Build artifacts --- docs/js/benchmark-bundle.min.js | 2 +- docs/js/test-bundle.min.js | 2 +- docs/vendor/peggy/peggy.min.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/js/benchmark-bundle.min.js b/docs/js/benchmark-bundle.min.js index d7a34b62..30c11a95 100644 --- a/docs/js/benchmark-bundle.min.js +++ b/docs/js/benchmark-bundle.min.js @@ -5,4 +5,4 @@ // Copyright (c) 2022- the Peggy authors // Licensed under the MIT License. -!function(u,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(u="undefined"!=typeof globalThis?globalThis:u||self).browser=e()}(this,(function(){var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},browser_stub={},__extends=commonjsGlobal&&commonjsGlobal.__extends||(extendStatics=function(u,e){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(u,e){u.__proto__=e}||function(u,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(u[t]=e[t])},extendStatics(u,e)},function(u,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function t(){this.constructor=u}extendStatics(u,e),u.prototype=null===e?Object.create(e):(t.prototype=e.prototype,new t)}),extendStatics,setProtoOf=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(u,e){u.__proto__=e}||function(u,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(u[t]=e[t])},GrammarError$3=function(u){function e(t,r,n){var o=u.call(this,t)||this;return setProtoOf(o,e.prototype),o.name="GrammarError",o.location=r,void 0===n&&(n=[]),o.diagnostics=n,o.stage=null,o.problems=[["error",t,r,n]],o}return __extends(e,u),e.prototype.toString=function(){var e=u.prototype.toString.call(this);this.location&&(e+="\n at ",void 0!==this.location.source&&null!==this.location.source&&(e+="".concat(this.location.source,":")),e+="".concat(this.location.start.line,":").concat(this.location.start.column));for(var t=0,r=this.diagnostics;t0?NEVER_MATCH$1:SOMETIMES_MATCH$1}var o=visitor$9.build({rule:function(u){var e,t=0;if(void 0===u.match){u.match=SOMETIMES_MATCH$1;do{if(e=u.match,u.match=o(u.expression),++t>6)throw new GrammarError$2("Infinity cycle detected when trying to evaluate node match result",u.location)}while(e!==u.match)}return u.match},named:r,choice:function(u){return u.match=n(u.alternatives,!0)},action:r,sequence:function(u){return u.match=n(u.elements,!1)},labeled:r,text:r,simple_and:r,simple_not:function(u){return u.match=-o(u.expression)},optional:t,zero_or_more:t,one_or_more:r,group:r,semantic_and:e,semantic_not:e,rule_ref:function(e){var t=asts$6.findRule(u,e.name);return e.match=o(t)},literal:function(u){var e=0===u.value.length?ALWAYS_MATCH$1:SOMETIMES_MATCH$1;return u.match=e},class:function(u){var e=0===u.parts.length?NEVER_MATCH$1:SOMETIMES_MATCH$1;return u.match=e},any:e});o(u)}inferenceMatchResult$1.ALWAYS_MATCH=ALWAYS_MATCH$1,inferenceMatchResult$1.SOMETIMES_MATCH=SOMETIMES_MATCH$1,inferenceMatchResult$1.NEVER_MATCH=NEVER_MATCH$1;var inferenceMatchResult_1=inferenceMatchResult$1,asts$5=asts_1,op$1=opcodes_1,visitor$8=visitor_1,_a$1=inferenceMatchResult_1,ALWAYS_MATCH=_a$1.ALWAYS_MATCH,SOMETIMES_MATCH=_a$1.SOMETIMES_MATCH,NEVER_MATCH=_a$1.NEVER_MATCH;function generateBytecode$1(u){var e=[],t=[],r=[],n=[];function o(u){var e=JSON.stringify(u),t=r.findIndex((function(u){return JSON.stringify(u)===e}));return-1===t?r.push(u)-1:t}function a(u,e,t){var r={predicate:u,params:e,body:t.code,location:t.codeLocation},o=JSON.stringify(r),a=n.findIndex((function(u){return JSON.stringify(u)===o}));return-1===a?n.push(r)-1:a}function i(u){var e={};return Object.keys(u).forEach((function(t){e[t]=u[t]})),e}function s(u){for(var e=[],t=1;t1?c(SOMETIMES_MATCH,[op$1.IF_ERROR],s([op$1.POP],u(e.slice(1),t)),[]):[])}(u.alternatives,e)},action:function(u,e){var t=i(e.env),r="sequence"!==u.expression.type||0===u.expression.elements.length,n=f(u.expression,{sp:e.sp+(r?1:0),env:t,action:u}),o=0|u.expression.match,p=r&&o!==NEVER_MATCH?a(!1,Object.keys(t),u):null;return r?s([op$1.PUSH_CURR_POS],n,c(o,[op$1.IF_NOT_ERROR],s([op$1.LOAD_SAVED_POS,1],l(p,1,t,e.sp+2)),[]),[op$1.NIP]):n},sequence:function(u,e){return s([op$1.PUSH_CURR_POS],function e(t,r){if(t.length>0){var n=u.elements.length-t.length+1;return s(f(t[0],{sp:r.sp,env:r.env,pluck:r.pluck,action:null}),c(0|t[0].match,[op$1.IF_NOT_ERROR],e(t.slice(1),{sp:r.sp+1,env:r.env,pluck:r.pluck,action:r.action}),s(n>1?[op$1.POP_N,n]:[op$1.POP],[op$1.POP_CURR_POS],[op$1.PUSH_FAILED])))}if(r.pluck.length>0)return s([op$1.PLUCK,u.elements.length+1,r.pluck.length],r.pluck.map((function(u){return r.sp-u})));if(r.action){var o=a(!1,Object.keys(r.env),r.action);return s([op$1.LOAD_SAVED_POS,u.elements.length],l(o,u.elements.length+1,r.env,r.sp))}return s([op$1.WRAP,u.elements.length],[op$1.NIP])}(u.elements,{sp:e.sp+1,env:e.env,pluck:[],action:e.action}))},labeled:function(u,e){var t=e.env,r=u.label,n=e.sp+1;return r&&(t=i(e.env),e.env[u.label]=n),u.pick&&e.pluck.push(n),f(u.expression,{sp:e.sp,env:t,action:null})},text:function(u,e){return s([op$1.PUSH_CURR_POS],f(u.expression,{sp:e.sp+1,env:i(e.env),action:null}),c(0|u.match,[op$1.IF_NOT_ERROR],s([op$1.POP],[op$1.TEXT]),[op$1.NIP]))},simple_and:function(u,e){return p(u.expression,!1,e)},simple_not:function(u,e){return p(u.expression,!0,e)},optional:function(u,e){return s(f(u.expression,{sp:e.sp,env:i(e.env),action:null}),c(-(0|u.expression.match),[op$1.IF_ERROR],s([op$1.POP],[op$1.PUSH_NULL]),[]))},zero_or_more:function(u,e){var t=f(u.expression,{sp:e.sp+1,env:i(e.env),action:null});return s([op$1.PUSH_EMPTY_ARRAY],t,E(t),[op$1.POP])},one_or_more:function(u,e){var t=f(u.expression,{sp:e.sp+1,env:i(e.env),action:null});return s([op$1.PUSH_EMPTY_ARRAY],t,c(0|u.expression.match,[op$1.IF_NOT_ERROR],s(E(t),[op$1.POP]),s([op$1.POP],[op$1.POP],[op$1.PUSH_FAILED])))},group:function(u,e){return f(u.expression,{sp:e.sp,env:i(e.env),action:null})},semantic_and:function(u,e){return A(u,!1,e)},semantic_not:function(u,e){return A(u,!0,e)},rule_ref:function(e){return[op$1.RULE,asts$5.indexOfRule(u,e.name)]},literal:function(u){if(u.value.length>0){var t=0|u.match,r=t===SOMETIMES_MATCH||t===ALWAYS_MATCH&&!u.ignoreCase?(a=u.ignoreCase?u.value.toLowerCase():u.value,-1===(i=e.indexOf(a))?e.push(a)-1:i):null,n=t!==ALWAYS_MATCH?o({type:"literal",value:u.value,ignoreCase:u.ignoreCase}):null;return c(t,u.ignoreCase?[op$1.MATCH_STRING_IC,r]:[op$1.MATCH_STRING,r],u.ignoreCase?[op$1.ACCEPT_N,u.value.length]:[op$1.ACCEPT_STRING,r],[op$1.FAIL,n])}var a,i;return[op$1.PUSH_EMPTY_STRING]},class:function(u){var e=0|u.match,r=e===SOMETIMES_MATCH?function(u){var e={value:u.parts,inverted:u.inverted,ignoreCase:u.ignoreCase},r=JSON.stringify(e),n=t.findIndex((function(u){return JSON.stringify(u)===r}));return-1===n?t.push(e)-1:n}(u):null,n=e!==ALWAYS_MATCH?o({type:"class",value:u.parts,inverted:u.inverted,ignoreCase:u.ignoreCase}):null;return c(e,[op$1.MATCH_CHAR_CLASS,r],[op$1.ACCEPT_N,1],[op$1.FAIL,n])},any:function(u){var e=0|u.match,t=e!==ALWAYS_MATCH?o({type:"any"}):null;return c(e,[op$1.MATCH_ANY],[op$1.ACCEPT_N,1],[op$1.FAIL,t])}});f(u)}var generateBytecode_1=generateBytecode$1,Stack$1=function(){function u(u,e,t){this.sp=-1,this.maxSp=-1,this.varName=e,this.ruleName=u,this.type=t}return u.prototype.name=function(u){if(u<0)throw new RangeError("Rule '".concat(this.ruleName,"': The variable stack underflow: attempt to use a variable '").concat(this.varName,"' at an index ").concat(u));return this.varName+u},u.prototype.push=function(u){var e=this.name(++this.sp)+" = "+u+";";return this.sp>this.maxSp&&(this.maxSp=this.sp),e},u.prototype.pop=function(u){var e=this;return void 0!==u?(this.sp-=u,Array.from({length:u},(function(u,t){return e.name(e.sp+1+t)}))):this.name(this.sp--)},u.prototype.top=function(){return this.name(this.sp)},u.prototype.index=function(u){if(u<0)throw new RangeError("Rule '".concat(this.ruleName,"': The variable stack overflow: attempt to get a variable at a negative index ").concat(u));return this.name(this.sp-u)},u.prototype.result=function(){if(this.maxSp<0)throw new RangeError("Rule '".concat(this.ruleName,"': The variable stack is empty, can't get the result'"));return this.name(0)},u.prototype.defines=function(){var u=this;return this.maxSp<0?"":this.type+" "+Array.from({length:this.maxSp+1},(function(e,t){return u.name(t)})).join(", ")+";"},u.prototype.checkedIf=function(u,e,t){var r=this.sp;if(e(),t){var n=this.sp;if(this.sp=r,t(),n!==this.sp)throw new Error("Rule '"+this.ruleName+"', position "+u+": Branches of a condition can't move the stack pointer differently (before: "+r+", after then: "+n+", after else: "+this.sp+").")}},u.prototype.checkedLoop=function(u,e){var t=this.sp;if(e(),t!==this.sp)throw new Error("Rule '"+this.ruleName+"', position "+u+": Body of a loop can't move the stack pointer (before: "+t+", after: "+this.sp+").")},u}(),stack=Stack$1,version="2.0.1",utils={};function hex(u){return u.charCodeAt(0).toString(16).toUpperCase()}function stringEscape$1(u){return u.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\v/g,"\\v").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(u){return"\\x0"+hex(u)})).replace(/[\x10-\x1F\x7F-\xFF]/g,(function(u){return"\\x"+hex(u)})).replace(/[\u0100-\u0FFF]/g,(function(u){return"\\u0"+hex(u)})).replace(/[\u1000-\uFFFF]/g,(function(u){return"\\u"+hex(u)}))}function regexpClassEscape$1(u){return u.replace(/\\/g,"\\\\").replace(/\//g,"\\/").replace(/]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\v/g,"\\v").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(u){return"\\x0"+hex(u)})).replace(/[\x10-\x1F\x7F-\xFF]/g,(function(u){return"\\x"+hex(u)})).replace(/[\u0100-\u0FFF]/g,(function(u){return"\\u0"+hex(u)})).replace(/[\u1000-\uFFFF]/g,(function(u){return"\\u"+hex(u)}))}function base64$3(u){for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=u.length%3,r=u.length-t,n="",o=0;o>2],n+=e[(3&u[o])<<4|u[o+1]>>4],n+=e[(15&u[o+1])<<2|u[o+2]>>6],n+=e[63&u[o+2]];return 1===t?(n+=e[u[r]>>2],n+=e[(3&u[r])<<4],n+="=="):2===t&&(n+=e[u[r]>>2],n+=e[(3&u[r])<<4|u[r+1]>>4],n+=e[(15&u[r+1])<<2],n+="="),n}utils.hex=hex,utils.stringEscape=stringEscape$1,utils.regexpClassEscape=regexpClassEscape$1,utils.base64=base64$3;var sourceMap={},sourceMapGenerator={},base64Vlq={},base64$2={};const intToCharMap="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");base64$2.encode=function(u){if(0<=u&&u>>=VLQ_BASE_SHIFT,r>0&&(e|=VLQ_CONTINUATION_BIT),t+=base64$1.encode(e)}while(r>0);return t};var util$3={};function getArg(u,e,t){if(e in u)return u[e];if(3===arguments.length)return t;throw new Error('"'+e+'" is a required argument.')}util$3.getArg=getArg;const supportsNullProto=!("__proto__"in Object.create(null));function identity(u){return u}function toSetString(u){return isProtoString(u)?"$"+u:u}function fromSetString(u){return isProtoString(u)?u.slice(1):u}function isProtoString(u){if(!u)return!1;const e=u.length;if(e<9)return!1;if(95!==u.charCodeAt(e-1)||95!==u.charCodeAt(e-2)||111!==u.charCodeAt(e-3)||116!==u.charCodeAt(e-4)||111!==u.charCodeAt(e-5)||114!==u.charCodeAt(e-6)||112!==u.charCodeAt(e-7)||95!==u.charCodeAt(e-8)||95!==u.charCodeAt(e-9))return!1;for(let t=e-10;t>=0;t--)if(36!==u.charCodeAt(t))return!1;return!0}function strcmp(u,e){return u===e?0:null===u?1:null===e?-1:u>e?1:-1}function compareByGeneratedPositionsInflated(u,e){let t=u.generatedLine-e.generatedLine;return 0!==t?t:(t=u.generatedColumn-e.generatedColumn,0!==t?t:(t=strcmp(u.source,e.source),0!==t?t:(t=u.originalLine-e.originalLine,0!==t?t:(t=u.originalColumn-e.originalColumn,0!==t?t:strcmp(u.name,e.name)))))}util$3.toSetString=supportsNullProto?identity:toSetString,util$3.fromSetString=supportsNullProto?identity:fromSetString,util$3.compareByGeneratedPositionsInflated=compareByGeneratedPositionsInflated;const PROTOCOL="http:",PROTOCOL_AND_HOST=`${PROTOCOL}//host`;function createSafeHandler(u){return e=>{const t=getURLType(e),r=buildSafeBase(e),n=new URL(e,r);u(n);const o=n.toString();return"absolute"===t?o:"scheme-relative"===t?o.slice(PROTOCOL.length):"path-absolute"===t?o.slice(PROTOCOL_AND_HOST.length):computeRelativeURL(r,o)}}function withBase(u,e){return new URL(u,e).toString()}function buildUniqueSegment(u,e){let t=0;for(;;){const r=u+t++;if(-1===e.indexOf(r))return r}}function buildSafeBase(u){const e=u.split("..").length-1,t=buildUniqueSegment("p",u);let r=`${PROTOCOL_AND_HOST}/`;for(let u=0;u0&&!r[r.length-1]&&r.pop();t.length>0&&r.length>0&&t[0]===r[0];)t.shift(),r.shift();return r.map((()=>"..")).concat(t).join("/")+e.search+e.hash}const ensureDirectory=createSafeHandler((u=>{u.pathname=u.pathname.replace(/\/?$/,"/")})),normalize=createSafeHandler((u=>{}));function join(u,e){const t=getURLType(e),r=getURLType(u);if(u=ensureDirectory(u),"absolute"===t)return withBase(e,void 0);if("absolute"===r)return withBase(e,u);if("scheme-relative"===t)return normalize(e);if("scheme-relative"===r)return withBase(e,withBase(u,PROTOCOL_AND_HOST)).slice(PROTOCOL.length);if("path-absolute"===t)return normalize(e);if("path-absolute"===r)return withBase(e,withBase(u,PROTOCOL_AND_HOST)).slice(PROTOCOL_AND_HOST.length);const n=buildSafeBase(e+u);return computeRelativeURL(n,withBase(e,withBase(u,n)))}function relative(u,e){const t=relativeIfPossible(u,e);return"string"==typeof t?t:normalize(e)}function relativeIfPossible(u,e){if(getURLType(u)!==getURLType(e))return null;const t=buildSafeBase(u+e),r=new URL(u,t),n=new URL(e,t);try{new URL("",n.toString())}catch(u){return null}return n.protocol!==r.protocol||n.user!==r.user||n.password!==r.password||n.hostname!==r.hostname||n.port!==r.port?null:computeRelativeURL(r,n)}util$3.normalize=normalize,util$3.join=join,util$3.relative=relative;var arraySet={};class ArraySet$1{constructor(){this._array=[],this._set=new Map}static fromArray(u,e){const t=new ArraySet$1;for(let r=0,n=u.length;r=0)return e;throw new Error('"'+u+'" is not in the set.')}at(u){if(u>=0&&ut||r==t&&o>=n||util$2.compareByGeneratedPositionsInflated(u,e)<=0}class MappingList$1{constructor(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}unsortedForEach(u,e){this._array.forEach(u,e)}add(u){generatedPositionAfter(this._last,u)?(this._last=u,this._array.push(u)):(this._sorted=!1,this._array.push(u))}toArray(){return this._sorted||(this._array.sort(util$2.compareByGeneratedPositionsInflated),this._sorted=!0),this._array}}mappingList.MappingList=MappingList$1;const base64VLQ=base64Vlq,util$1=util$3,ArraySet=arraySet.ArraySet,MappingList=mappingList.MappingList;class SourceMapGenerator$1{constructor(u){u||(u={}),this._file=util$1.getArg(u,"file",null),this._sourceRoot=util$1.getArg(u,"sourceRoot",null),this._skipValidation=util$1.getArg(u,"skipValidation",!1),this._sources=new ArraySet,this._names=new ArraySet,this._mappings=new MappingList,this._sourcesContents=null}static fromSourceMap(u){const e=u.sourceRoot,t=new SourceMapGenerator$1({file:u.file,sourceRoot:e});return u.eachMapping((function(u){const r={generated:{line:u.generatedLine,column:u.generatedColumn}};null!=u.source&&(r.source=u.source,null!=e&&(r.source=util$1.relative(e,r.source)),r.original={line:u.originalLine,column:u.originalColumn},null!=u.name&&(r.name=u.name)),t.addMapping(r)})),u.sources.forEach((function(r){let n=r;null!=e&&(n=util$1.relative(e,r)),t._sources.has(n)||t._sources.add(n);const o=u.sourceContentFor(r);null!=o&&t.setSourceContent(r,o)})),t}addMapping(u){const e=util$1.getArg(u,"generated"),t=util$1.getArg(u,"original",null);let r=util$1.getArg(u,"source",null),n=util$1.getArg(u,"name",null);this._skipValidation||this._validateMapping(e,t,r,n),null!=r&&(r=String(r),this._sources.has(r)||this._sources.add(r)),null!=n&&(n=String(n),this._names.has(n)||this._names.add(n)),this._mappings.add({generatedLine:e.line,generatedColumn:e.column,originalLine:t&&t.line,originalColumn:t&&t.column,source:r,name:n})}setSourceContent(u,e){let t=u;null!=this._sourceRoot&&(t=util$1.relative(this._sourceRoot,t)),null!=e?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[util$1.toSetString(t)]=e):this._sourcesContents&&(delete this._sourcesContents[util$1.toSetString(t)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))}applySourceMap(u,e,t){let r=e;if(null==e){if(null==u.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');r=u.file}const n=this._sourceRoot;null!=n&&(r=util$1.relative(n,r));const o=this._mappings.toArray().length>0?new ArraySet:this._sources,a=new ArraySet;this._mappings.unsortedForEach((function(e){if(e.source===r&&null!=e.originalLine){const r=u.originalPositionFor({line:e.originalLine,column:e.originalColumn});null!=r.source&&(e.source=r.source,null!=t&&(e.source=util$1.join(t,e.source)),null!=n&&(e.source=util$1.relative(n,e.source)),e.originalLine=r.line,e.originalColumn=r.column,null!=r.name&&(e.name=r.name))}const i=e.source;null==i||o.has(i)||o.add(i);const s=e.name;null==s||a.has(s)||a.add(s)}),this),this._sources=o,this._names=a,u.sources.forEach((function(e){const r=u.sourceContentFor(e);null!=r&&(null!=t&&(e=util$1.join(t,e)),null!=n&&(e=util$1.relative(n,e)),this.setSourceContent(e,r))}),this)}_validateMapping(u,e,t,r){if(e&&"number"!=typeof e.line&&"number"!=typeof e.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(u&&"line"in u&&"column"in u&&u.line>0&&u.column>=0&&!e&&!t&&!r);else if(!(u&&"line"in u&&"column"in u&&e&&"line"in e&&"column"in e&&u.line>0&&u.column>=0&&e.line>0&&e.column>=0&&t))throw new Error("Invalid mapping: "+JSON.stringify({generated:u,source:t,original:e,name:r}))}_serializeMappings(){let u,e,t,r,n=0,o=1,a=0,i=0,s=0,c=0,l="";const p=this._mappings.toArray();for(let A=0,E=p.length;A0){if(!util$1.compareByGeneratedPositionsInflated(e,p[A-1]))continue;u+=","}u+=base64VLQ.encode(e.generatedColumn-n),n=e.generatedColumn,null!=e.source&&(r=this._sources.indexOf(e.source),u+=base64VLQ.encode(r-c),c=r,u+=base64VLQ.encode(e.originalLine-1-i),i=e.originalLine-1,u+=base64VLQ.encode(e.originalColumn-a),a=e.originalColumn,null!=e.name&&(t=this._names.indexOf(e.name),u+=base64VLQ.encode(t-s),s=t)),l+=u}return l}_generateSourcesContent(u,e){return u.map((function(u){if(!this._sourcesContents)return null;null!=e&&(u=util$1.relative(e,u));const t=util$1.toSetString(u);return Object.prototype.hasOwnProperty.call(this._sourcesContents,t)?this._sourcesContents[t]:null}),this)}toJSON(){const u={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(u.file=this._file),null!=this._sourceRoot&&(u.sourceRoot=this._sourceRoot),this._sourcesContents&&(u.sourcesContent=this._generateSourcesContent(u.sources,u.sourceRoot)),u}toString(){return JSON.stringify(this.toJSON())}}SourceMapGenerator$1.prototype._version=3,sourceMapGenerator.SourceMapGenerator=SourceMapGenerator$1;var sourceNode={};const SourceMapGenerator=sourceMapGenerator.SourceMapGenerator,util=util$3,REGEX_NEWLINE=/(\r?\n)/,NEWLINE_CODE=10,isSourceNode="$$$isSourceNode$$$";class SourceNode$1{constructor(u,e,t,r,n){this.children=[],this.sourceContents={},this.line=null==u?null:u,this.column=null==e?null:e,this.source=null==t?null:t,this.name=null==n?null:n,this[isSourceNode]=!0,null!=r&&this.add(r)}static fromStringWithSourceMap(u,e,t){const r=new SourceNode$1,n=u.split(REGEX_NEWLINE);let o=0;const a=function(){return u()+(u()||"");function u(){return o=0;e--)this.prepend(u[e]);else{if(!u[isSourceNode]&&"string"!=typeof u)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+u);this.children.unshift(u)}return this}walk(u){let e;for(let t=0,r=this.children.length;t0){for(e=[],t=0;t0&&(t.forEach((function(u){o.push("var "+u+' = require("'+stringEscape(e.dependencies[u])+'");')})),o.push("")),o.push(u,"","module.exports = "+n()+";"),o},es:function(){var t=Object.keys(e.dependencies),n=r();return n.push(""),t.length>0&&(t.forEach((function(u){n.push("import "+u+' from "'+stringEscape(e.dependencies[u])+'";')})),n.push("")),n.push(u,"","export {"," peg$SyntaxError as SyntaxError,",e.trace?" peg$DefaultTracer as DefaultTracer,":""," peg$parse as parse","};"),n},amd:function(){var o=Object.keys(e.dependencies),a="["+o.map((function(u){return e.dependencies[u]})).map((function(u){return'"'+stringEscape(u)+'"'})).join(", ")+"]",i=o.join(", ");return __spreadArray$1(__spreadArray$1([],r(),!0),["define("+a+", function("+i+") {",' "use strict";',"",u,"",t("return "+n()+";"),"});"],!1)},globals:function(){return __spreadArray$1(__spreadArray$1([],r(),!0),["(function(root) {",' "use strict";',"",u,"",t("root."+e.exportVar+" = "+n()+";"),"})(this);"],!1)},umd:function(){var o=Object.keys(e.dependencies),a=o.map((function(u){return e.dependencies[u]})),i="["+a.map((function(u){return'"'+stringEscape(u)+'"'})).join(", ")+"]",s=a.map((function(u){return'require("'+stringEscape(u)+'")'})).join(", "),c=o.join(", "),l=r();return l.push("(function(root, factory) {",' if (typeof define === "function" && define.amd) {'," define("+i+", factory);",' } else if (typeof module === "object" && module.exports) {'," module.exports = factory("+s+");"),null!==e.exportVar&&l.push(" } else {"," root."+e.exportVar+" = factory();"),l.push(" }","})(this, function("+c+") {",' "use strict";',"",u,"",t("return "+n()+";"),"});"),l}},a=o[e.format]();return new SourceNode(null,null,e.grammarSource,a.map((function(u){return u instanceof SourceNode?u:u+"\n"})))}(function(){var c=[];u.topLevelInitializer&&(c.push(s(u.topLevelInitializer)),c.push("")),c.push("function peg$subclass(child, parent) {"," function C() { this.constructor = child; }"," C.prototype = parent.prototype;"," child.prototype = new C();","}","","function peg$SyntaxError(message, expected, found, location) {"," var self = Error.call(this, message);"," // istanbul ignore next Check is a necessary evil to support older environments"," if (Object.setPrototypeOf) {"," Object.setPrototypeOf(self, peg$SyntaxError.prototype);"," }"," self.expected = expected;"," self.found = found;"," self.location = location;",' self.name = "SyntaxError";'," return self;","}","","peg$subclass(peg$SyntaxError, Error);","","function peg$padEnd(str, targetLength, padString) {",' padString = padString || " ";'," if (str.length > targetLength) { return str; }"," targetLength -= str.length;"," padString += padString.repeat(targetLength);"," return str + padString.slice(0, targetLength);","}","","peg$SyntaxError.prototype.format = function(sources) {",' var str = "Error: " + this.message;'," if (this.location) {"," var src = null;"," var k;"," for (k = 0; k < sources.length; k++) {"," if (sources[k].source === this.location.source) {"," src = sources[k].text.split(/\\r\\n|\\n|\\r/g);"," break;"," }"," }"," var s = this.location.start;",' var loc = this.location.source + ":" + s.line + ":" + s.column;'," if (src) {"," var e = this.location.end;"," var filler = peg$padEnd(\"\", s.line.toString().length, ' ');"," var line = src[s.line - 1];"," var last = s.line === e.line ? e.column : line.length + 1;"," var hatLen = (last - s.column) || 1;",' str += "\\n --\x3e " + loc + "\\n"',' + filler + " |\\n"',' + s.line + " | " + line + "\\n"',' + filler + " | " + peg$padEnd("", s.column - 1, \' \')',' + peg$padEnd("", hatLen, "^");'," } else {",' str += "\\n at " + loc;'," }"," }"," return str;","};","","peg$SyntaxError.buildMessage = function(expected, found) {"," var DESCRIBE_EXPECTATION_FNS = {"," literal: function(expectation) {",' return "\\"" + literalEscape(expectation.text) + "\\"";'," },",""," class: function(expectation) {"," var escapedParts = expectation.parts.map(function(part) {"," return Array.isArray(part)",' ? classEscape(part[0]) + "-" + classEscape(part[1])'," : classEscape(part);"," });","",' return "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]";'," },",""," any: function() {",' return "any character";'," },",""," end: function() {",' return "end of input";'," },",""," other: function(expectation) {"," return expectation.description;"," }"," };",""," function hex(ch) {"," return ch.charCodeAt(0).toString(16).toUpperCase();"," }",""," function literalEscape(s) {"," return s",' .replace(/\\\\/g, "\\\\\\\\")',' .replace(/"/g, "\\\\\\"")',' .replace(/\\0/g, "\\\\0")',' .replace(/\\t/g, "\\\\t")',' .replace(/\\n/g, "\\\\n")',' .replace(/\\r/g, "\\\\r")',' .replace(/[\\x00-\\x0F]/g, function(ch) { return "\\\\x0" + hex(ch); })',' .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return "\\\\x" + hex(ch); });'," }",""," function classEscape(s) {"," return s",' .replace(/\\\\/g, "\\\\\\\\")',' .replace(/\\]/g, "\\\\]")',' .replace(/\\^/g, "\\\\^")',' .replace(/-/g, "\\\\-")',' .replace(/\\0/g, "\\\\0")',' .replace(/\\t/g, "\\\\t")',' .replace(/\\n/g, "\\\\n")',' .replace(/\\r/g, "\\\\r")',' .replace(/[\\x00-\\x0F]/g, function(ch) { return "\\\\x0" + hex(ch); })',' .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return "\\\\x" + hex(ch); });'," }",""," function describeExpectation(expectation) {"," return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);"," }",""," function describeExpected(expected) {"," var descriptions = expected.map(describeExpectation);"," var i, j;",""," descriptions.sort();",""," if (descriptions.length > 0) {"," for (i = 1, j = 1; i < descriptions.length; i++) {"," if (descriptions[i - 1] !== descriptions[i]) {"," descriptions[j] = descriptions[i];"," j++;"," }"," }"," descriptions.length = j;"," }",""," switch (descriptions.length) {"," case 1:"," return descriptions[0];",""," case 2:",' return descriptions[0] + " or " + descriptions[1];',""," default:",' return descriptions.slice(0, -1).join(", ")',' + ", or "'," + descriptions[descriptions.length - 1];"," }"," }",""," function describeFound(found) {",' return found ? "\\"" + literalEscape(found) + "\\"" : "end of input";'," }","",' return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";',"};",""),e.trace&&c.push("function peg$DefaultTracer() {"," this.indentLevel = 0;","}","","peg$DefaultTracer.prototype.trace = function(event) {"," var that = this;",""," function log(event) {"," function repeat(string, n) {",' var result = "", i;',""," for (i = 0; i < n; i++) {"," result += string;"," }",""," return result;"," }",""," function pad(string, length) {",' return string + repeat(" ", length - string.length);'," }","",' if (typeof console === "object") {'," console.log(",' event.location.start.line + ":" + event.location.start.column + "-"',' + event.location.end.line + ":" + event.location.end.column + " "',' + pad(event.type, 10) + " "',' + repeat(" ", that.indentLevel) + event.rule'," );"," }"," }",""," switch (event.type) {",' case "rule.enter":'," log(event);"," this.indentLevel++;"," break;","",' case "rule.match":'," this.indentLevel--;"," log(event);"," break;","",' case "rule.fail":'," this.indentLevel--;"," log(event);"," break;",""," default:",' throw new Error("Invalid event type: " + event.type + ".");'," }","};","");var l="{ "+e.allowedStartRules.map((function(u){return u+": "+i(u)})).join(", ")+" }",p=i(e.allowedStartRules[0]);return c.push("function peg$parse(input, options) {"," options = options !== undefined ? options : {};",""," var peg$FAILED = {};"," var peg$source = options.grammarSource;",""," var peg$startRuleFunctions = "+l+";"," var peg$startRuleFunction = "+p+";","",new SourceNode(null,null,e.grammarSource,[u.literals.map((function(u,e){return" var "+r(e)+' = "'+stringEscape(u)+'";'})).concat("",u.classes.map((function(u,e){return" var "+n(e)+" = /^["+((t=u).inverted?"^":"")+t.value.map((function(u){return Array.isArray(u)?regexpClassEscape(u[0])+"-"+regexpClassEscape(u[1]):regexpClassEscape(u)})).join("")+"]/"+(t.ignoreCase?"i":"")+";";var t}))).concat("",u.expectations.map((function(u,e){return" var "+o(e)+" = "+function(u){switch(u.type){case"rule":return'peg$otherExpectation("'+stringEscape(u.value)+'")';case"literal":return'peg$literalExpectation("'+stringEscape(u.value)+'", '+u.ignoreCase+")";case"class":return"peg$classExpectation(["+u.value.map((function(u){return Array.isArray(u)?'["'+stringEscape(u[0])+'", "'+stringEscape(u[1])+'"]':'"'+stringEscape(u)+'"'})).join(", ")+"], "+u.inverted+", "+u.ignoreCase+")";case"any":return"peg$anyExpectation()";default:throw new Error("Unknown expectation type ("+JSON.stringify(u)+")")}}(u)+";"}))).concat("").join("\n"),u.functions.map((function(u,e){return wrapInSourceNode("\n var ".concat(a(e)," = function(").concat(u.params.join(", "),") {"),u.body,u.location,"};")}))]),""," var peg$currPos = 0;"," var peg$savedPos = 0;"," var peg$posDetailsCache = [{ line: 1, column: 1 }];"," var peg$maxFailPos = 0;"," var peg$maxFailExpected = [];"," var peg$silentFails = 0;",""),e.cache&&c.push(" var peg$resultsCache = {};",""),e.trace&&c.push(' var peg$tracer = "tracer" in options ? options.tracer : new peg$DefaultTracer();',""),c.push(" var peg$result;","",' if ("startRule" in options) {'," if (!(options.startRule in peg$startRuleFunctions)) {",' throw new Error("Can\'t start parsing from rule \\"" + options.startRule + "\\".");'," }",""," peg$startRuleFunction = peg$startRuleFunctions[options.startRule];"," }",""," function text() {"," return input.substring(peg$savedPos, peg$currPos);"," }",""," function offset() {"," return peg$savedPos;"," }",""," function range() {"," return {"," source: peg$source,"," start: peg$savedPos,"," end: peg$currPos"," };"," }",""," function location() {"," return peg$computeLocation(peg$savedPos, peg$currPos);"," }",""," function expected(description, location) {"," location = location !== undefined"," ? location"," : peg$computeLocation(peg$savedPos, peg$currPos);",""," throw peg$buildStructuredError("," [peg$otherExpectation(description)],"," input.substring(peg$savedPos, peg$currPos),"," location"," );"," }",""," function error(message, location) {"," location = location !== undefined"," ? location"," : peg$computeLocation(peg$savedPos, peg$currPos);",""," throw peg$buildSimpleError(message, location);"," }",""," function peg$literalExpectation(text, ignoreCase) {",' return { type: "literal", text: text, ignoreCase: ignoreCase };'," }",""," function peg$classExpectation(parts, inverted, ignoreCase) {",' return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase };'," }",""," function peg$anyExpectation() {",' return { type: "any" };'," }",""," function peg$endExpectation() {",' return { type: "end" };'," }",""," function peg$otherExpectation(description) {",' return { type: "other", description: description };'," }",""," function peg$computePosDetails(pos) {"," var details = peg$posDetailsCache[pos];"," var p;",""," if (details) {"," return details;"," } else {"," p = pos - 1;"," while (!peg$posDetailsCache[p]) {"," p--;"," }",""," details = peg$posDetailsCache[p];"," details = {"," line: details.line,"," column: details.column"," };",""," while (p < pos) {"," if (input.charCodeAt(p) === 10) {"," details.line++;"," details.column = 1;"," } else {"," details.column++;"," }",""," p++;"," }",""," peg$posDetailsCache[pos] = details;",""," return details;"," }"," }",""," function peg$computeLocation(startPos, endPos) {"," var startPosDetails = peg$computePosDetails(startPos);"," var endPosDetails = peg$computePosDetails(endPos);",""," return {"," source: peg$source,"," start: {"," offset: startPos,"," line: startPosDetails.line,"," column: startPosDetails.column"," },"," end: {"," offset: endPos,"," line: endPosDetails.line,"," column: endPosDetails.column"," }"," };"," }",""," function peg$fail(expected) {"," if (peg$currPos < peg$maxFailPos) { return; }",""," if (peg$currPos > peg$maxFailPos) {"," peg$maxFailPos = peg$currPos;"," peg$maxFailExpected = [];"," }",""," peg$maxFailExpected.push(expected);"," }",""," function peg$buildSimpleError(message, location) {"," return new peg$SyntaxError(message, null, null, location);"," }",""," function peg$buildStructuredError(expected, found, location) {"," return new peg$SyntaxError("," peg$SyntaxError.buildMessage(expected, found),"," expected,"," found,"," location"," );"," }",""),u.rules.forEach((function(s){c.push.apply(c,function(s){var c=[],l=new Stack(s.name,"s","var"),p=function e(s){var c,p=0,A=s.length,E=[];function f(u,r){var n,o,a=r+3,i=s[p+a-2],c=s[p+a-1];l.checkedIf(p,(function(){p+=a,n=e(s.slice(p,p+i)),p+=i}),c>0?function(){o=e(s.slice(p,p+c)),p+=c}:null),E.push("if ("+u+") {"),E.push.apply(E,n.map(t)),c>0&&(E.push("} else {"),E.push.apply(E,o.map(t))),E.push("}")}function h(u){var r,n=s[p+2-1];l.checkedLoop(p,(function(){p+=2,r=e(s.slice(p,p+n)),p+=n})),E.push("while ("+u+") {"),E.push.apply(E,r.map(t)),E.push("}")}function C(){var u=s[p+4-1],e=a(s[p+1])+"("+s.slice(p+4,p+4+u).map((function(u){return l.index(u)})).join(", ")+")";l.pop(s[p+2]),E.push(l.push(e)),p+=4+u}for(;p peg$currPos",0);break;case op.MATCH_STRING:f(u.literals[s[p+1]].length>1?"input.substr(peg$currPos, "+u.literals[s[p+1]].length+") === "+r(s[p+1]):"input.charCodeAt(peg$currPos) === "+u.literals[s[p+1]].charCodeAt(0),1);break;case op.MATCH_STRING_IC:f("input.substr(peg$currPos, "+u.literals[s[p+1]].length+").toLowerCase() === "+r(s[p+1]),1);break;case op.MATCH_CHAR_CLASS:f(n(s[p+1])+".test(input.charAt(peg$currPos))",1);break;case op.ACCEPT_N:E.push(l.push(s[p+1]>1?"input.substr(peg$currPos, "+s[p+1]+")":"input.charAt(peg$currPos)")),E.push(s[p+1]>1?"peg$currPos += "+s[p+1]+";":"peg$currPos++;"),p+=2;break;case op.ACCEPT_STRING:E.push(l.push(r(s[p+1]))),E.push(u.literals[s[p+1]].length>1?"peg$currPos += "+u.literals[s[p+1]].length+";":"peg$currPos++;"),p+=2;break;case op.FAIL:E.push(l.push("peg$FAILED")),E.push("if (peg$silentFails === 0) { peg$fail("+o(s[p+1])+"); }"),p+=2;break;case op.LOAD_SAVED_POS:E.push("peg$savedPos = "+l.index(s[p+1])+";"),p+=2;break;case op.UPDATE_SAVED_POS:E.push("peg$savedPos = peg$currPos;"),p++;break;case op.CALL:C();break;case op.RULE:E.push(l.push(i(u.rules[s[p+1]].name)+"()")),p+=2;break;case op.SILENT_FAILS_ON:E.push("peg$silentFails++;"),p++;break;case op.SILENT_FAILS_OFF:E.push("peg$silentFails--;"),p++;break;default:throw new Error("Invalid opcode: "+s[p]+".")}return E}(s.bytecode);return c.push(wrapInSourceNode(" function ",i(s.name),s.nameLocation,"() {\n",s.name)),e.trace&&c.push(" var startPos = peg$currPos;"),c.push(t(l.defines())),c.push.apply(c,function(t,r){var n=[];return n.push(""),e.trace&&n.push("peg$tracer.trace({",' type: "rule.enter",'," rule: "+t+","," location: peg$computeLocation(startPos, startPos)","});",""),e.cache&&(n.push("var key = peg$currPos * "+u.rules.length+" + "+r+";","var cached = peg$resultsCache[key];","","if (cached) {"," peg$currPos = cached.nextPos;",""),e.trace&&n.push("if (cached.result !== peg$FAILED) {"," peg$tracer.trace({",' type: "rule.match",'," rule: "+t+","," result: cached.result,"," location: peg$computeLocation(startPos, peg$currPos)"," });","} else {"," peg$tracer.trace({",' type: "rule.fail",'," rule: "+t+","," location: peg$computeLocation(startPos, startPos)"," });","}",""),n.push(" return cached.result;","}","")),n}('"'+stringEscape(s.name)+'"',asts$4.indexOfRule(u,s.name)).map(t)),c.push.apply(c,p.map(t)),c.push.apply(c,function(u,t){var r=[];return e.cache&&r.push("","peg$resultsCache[key] = { nextPos: peg$currPos, result: "+t+" };"),e.trace&&r.push("","if ("+t+" !== peg$FAILED) {"," peg$tracer.trace({",' type: "rule.match",'," rule: "+u+","," result: "+t+","," location: peg$computeLocation(startPos, peg$currPos)"," });","} else {"," peg$tracer.trace({",' type: "rule.fail",'," rule: "+u+","," location: peg$computeLocation(startPos, startPos)"," });","}"),r.push("","return "+t+";"),r}('"'+stringEscape(s.name)+'"',l.result()).map(t)),c.push("}"),c}(s).map(t)),c.push("")})),u.initializer&&(c.push(s(u.initializer)),c.push("")),c.push(" peg$result = peg$startRuleFunction();",""," if (peg$result !== peg$FAILED && peg$currPos === input.length) {"," return peg$result;"," } else {"," if (peg$result !== peg$FAILED && peg$currPos < input.length) {"," peg$fail(peg$endExpectation());"," }",""," throw peg$buildStructuredError("," peg$maxFailExpected,"," peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,"," peg$maxFailPos < input.length"," ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)"," : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)"," );"," }","}"),new SourceNode(null,null,e.grammarSource,c.map((function(u){return u instanceof SourceNode?u:u+"\n"})))}())}var generateJs=generateJS$1,asts$3=asts_1,visitor$7=visitor_1;function removeProxyRules$1(u,e,t){var r=[];u.rules.forEach((function(n,o){var a;"rule"===(a=n).type&&"rule_ref"===a.expression.type&&(function(u,e,r){visitor$7.build({rule_ref:function(n){n.name===e&&(n.name=r,t.info('Proxy rule "'.concat(e,'" replaced by the rule "').concat(r,'"'),n.location,[{message:"This rule will be used",location:asts$3.findRule(u,r).nameLocation}]))}})(u)}(u,n.name,n.expression.name),-1===e.allowedStartRules.indexOf(n.name)&&r.push(o))})),r.reverse(),r.forEach((function(e){u.rules.splice(e,1)}))}var removeProxyRules_1=removeProxyRules$1,visitor$6=visitor_1;function reportDuplicateLabels$1(u,e,t){function r(u){var e={};return Object.keys(u).forEach((function(t){e[t]=u[t]})),e}function n(u,e){o(u.expression,r(e))}var o=visitor$6.build({rule:function(u){o(u.expression,{})},choice:function(u,e){u.alternatives.forEach((function(u){o(u,r(e))}))},action:n,labeled:function(u,e){var r=u.label;r&&Object.prototype.hasOwnProperty.call(e,r)&&t.error('Label "'.concat(u.label,'" is already defined'),u.labelLocation,[{message:"Original label location",location:e[r]}]),o(u.expression,e),e[u.label]=u.labelLocation},text:n,simple_and:n,simple_not:n,optional:n,zero_or_more:n,one_or_more:n,group:n});o(u)}var reportDuplicateLabels_1=reportDuplicateLabels$1,visitor$5=visitor_1;function reportDuplicateRules$1(u,e,t){var r={};visitor$5.build({rule:function(u){Object.prototype.hasOwnProperty.call(r,u.name)?t.error('Rule "'.concat(u.name,'" is already defined'),u.nameLocation,[{message:"Original rule location",location:r[u.name]}]):r[u.name]=u.nameLocation}})(u)}var reportDuplicateRules_1=reportDuplicateRules$1,asts$2=asts_1,visitor$4=visitor_1;function reportInfiniteRecursion$1(u,e,t){var r=[],n=[],o=visitor$4.build({rule:function(u){r.push(u.name),o(u.expression),r.pop()},sequence:function(e){e.elements.every((function(e){return o(e),!asts$2.alwaysConsumesOnSuccess(u,e)}))},rule_ref:function(e){n.push(e);var a=asts$2.findRule(u,e.name);if(-1!==r.indexOf(e.name))return r.push(e.name),void t.error("Possible infinite loop when parsing (left recursion: "+r.join(" -> ")+")",a.nameLocation,n.map((function(u,e,t){return{message:e+1!==t.length?"Step ".concat(e+1,': call of the rule "').concat(u.name,'" without input consumption'):"Step ".concat(e+1,": call itself without input consumption - left recursion"),location:u.location}})));a&&o(a),n.pop()}});o(u)}var reportInfiniteRecursion_1=reportInfiniteRecursion$1,asts$1=asts_1,visitor$3=visitor_1;function reportInfiniteRepetition$1(u,e,t){visitor$3.build({zero_or_more:function(e){asts$1.alwaysConsumesOnSuccess(u,e.expression)||t.error("Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",e.location)},one_or_more:function(e){asts$1.alwaysConsumesOnSuccess(u,e.expression)||t.error("Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",e.location)}})(u)}var reportInfiniteRepetition_1=reportInfiniteRepetition$1,asts=asts_1,visitor$2=visitor_1;function reportUndefinedRules$1(u,e,t){visitor$2.build({rule_ref:function(e){asts.findRule(u,e.name)||t.error('Rule "'.concat(e.name,'" is not defined'),e.location)}})(u)}var reportUndefinedRules_1=reportUndefinedRules$1,visitor$1=visitor_1;function reportIncorrectPlucking$1(u,e,t){var r=visitor$1.build({action:function(u){r(u.expression,u)},labeled:function(u,e){u.pick&&e&&t.error('"@" cannot be used with an action block',u.labelLocation,[{message:"Action block location",location:e.codeLocation}]),r(u.expression)}});r(u)}var reportIncorrectPlucking_1=reportIncorrectPlucking$1,__spreadArray=commonjsGlobal&&commonjsGlobal.__spreadArray||function(u,e,t){if(t||2===arguments.length)for(var r,n=0,o=e.length;ne?u:(e-=u.length,u+(t+=t.repeat(e)).slice(0,e))}function peg$parse(u,e){var t,r={},n=(e=void 0!==e?e:{}).grammarSource,o={Grammar:ce},a=ce,i="{",s="}",c="/*",l="*/",p="\\",A='"',E="'",f=/^[\n\r\u2028\u2029]/,h=/^[0-9]/,C=/^[0-9a-f]/i,d=/^[{}]/,g=/^[a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137-\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148-\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C-\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA-\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9-\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC-\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF-\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F-\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0-\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB-\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE-\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0561-\u0587\u13F8-\u13FD\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6-\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FC7\u1FD0-\u1FD3\u1FD6-\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6-\u1FF7\u210A\u210E-\u210F\u2113\u212F\u2134\u2139\u213C-\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65-\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73-\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3-\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7B5\uA7B7\uA7FA\uAB30-\uAB5A\uAB60-\uAB65\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A]/,F=/^[\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5-\u06E6\u07F4-\u07F5\u07FA\u081A\u0824\u0828\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C-\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D-\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA69C-\uA69D\uA717-\uA71F\uA770\uA788\uA7F8-\uA7F9\uA9CF\uA9E6\uAA70\uAADD\uAAF3-\uAAF4\uAB5C-\uAB5F\uFF70\uFF9E-\uFF9F]/,m=/^[\xAA\xBA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05F0-\u05F2\u0620-\u063F\u0641-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0-\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60-\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0CF1-\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u10D0-\u10FA\u10FD-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5-\u1CF6\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A-\uA62B\uA66E\uA6A0-\uA6E5\uA78F\uA7F7\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9E0-\uA9E4\uA9E7-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,_=/^[\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC]/,B=/^[A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178-\u0179\u017B\u017D\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018B\u018E-\u0191\u0193-\u0194\u0196-\u0198\u019C-\u019D\u019F-\u01A0\u01A2\u01A4\u01A6-\u01A7\u01A9\u01AC\u01AE-\u01AF\u01B1-\u01B3\u01B5\u01B7-\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A-\u023B\u023D-\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E-\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9-\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0-\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E-\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D-\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AD\uA7B0-\uA7B4\uA7B6\uFF21-\uFF3A]/,D=/^[\u0903\u093B\u093E-\u0940\u0949-\u094C\u094E-\u094F\u0982-\u0983\u09BE-\u09C0\u09C7-\u09C8\u09CB-\u09CC\u09D7\u0A03\u0A3E-\u0A40\u0A83\u0ABE-\u0AC0\u0AC9\u0ACB-\u0ACC\u0B02-\u0B03\u0B3E\u0B40\u0B47-\u0B48\u0B4B-\u0B4C\u0B57\u0BBE-\u0BBF\u0BC1-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD7\u0C01-\u0C03\u0C41-\u0C44\u0C82-\u0C83\u0CBE\u0CC0-\u0CC4\u0CC7-\u0CC8\u0CCA-\u0CCB\u0CD5-\u0CD6\u0D02-\u0D03\u0D3E-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D57\u0D82-\u0D83\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DF2-\u0DF3\u0F3E-\u0F3F\u0F7F\u102B-\u102C\u1031\u1038\u103B-\u103C\u1056-\u1057\u1062-\u1064\u1067-\u106D\u1083-\u1084\u1087-\u108C\u108F\u109A-\u109C\u17B6\u17BE-\u17C5\u17C7-\u17C8\u1923-\u1926\u1929-\u192B\u1930-\u1931\u1933-\u1938\u1A19-\u1A1A\u1A55\u1A57\u1A61\u1A63-\u1A64\u1A6D-\u1A72\u1B04\u1B35\u1B3B\u1B3D-\u1B41\u1B43-\u1B44\u1B82\u1BA1\u1BA6-\u1BA7\u1BAA\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2-\u1BF3\u1C24-\u1C2B\u1C34-\u1C35\u1CE1\u1CF2-\u1CF3\u302E-\u302F\uA823-\uA824\uA827\uA880-\uA881\uA8B4-\uA8C3\uA952-\uA953\uA983\uA9B4-\uA9B5\uA9BA-\uA9BB\uA9BD-\uA9C0\uAA2F-\uAA30\uAA33-\uAA34\uAA4D\uAA7B\uAA7D\uAAEB\uAAEE-\uAAEF\uAAF5\uABE3-\uABE4\uABE6-\uABE7\uABE9-\uABEA\uABEC]/,v=/^[\u0300-\u036F\u0483-\u0487\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962-\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2-\u09E3\u0A01-\u0A02\u0A3C\u0A41-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A51\u0A70-\u0A71\u0A75\u0A81-\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7-\u0AC8\u0ACD\u0AE2-\u0AE3\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62-\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C62-\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC-\u0CCD\u0CE2-\u0CE3\u0D01\u0D41-\u0D44\u0D4D\u0D62-\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB-\u0EBC\u0EC8-\u0ECD\u0F18-\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86-\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039-\u103A\u103D-\u103E\u1058-\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17B4-\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193B\u1A17-\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABD\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80-\u1B81\u1BA2-\u1BA5\u1BA8-\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8-\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8-\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099-\u309A\uA66F\uA674-\uA67D\uA69E-\uA69F\uA6F0-\uA6F1\uA802\uA806\uA80B\uA825-\uA826\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9E5\uAA29-\uAA2E\uAA31-\uAA32\uAA35-\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7-\uAAB8\uAABE-\uAABF\uAAC1\uAAEC-\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/,$=/^[0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]/,S=/^[\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF]/,y=/^[_\u203F-\u2040\u2054\uFE33-\uFE34\uFE4D-\uFE4F\uFF3F]/,x=/^[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000]/,b=re("{",!1),P=re("}",!1),R=re("=",!1),O=re("/",!1),L=re("@",!1),T=re(":",!1),w=re("$",!1),N=re("&",!1),I=re("!",!1),M=re("?",!1),k=re("*",!1),H=re("+",!1),j=re("(",!1),U=re(")",!1),G={type:"any"},V=oe("whitespace"),z=re("\t",!1),W=re("\v",!1),Y=re("\f",!1),J=re(" ",!1),Q=re(" ",!1),q=re("\ufeff",!1),X=ne(["\n","\r","\u2028","\u2029"],!1,!1),K=oe("end of line"),Z=re("\n",!1),uu=re("\r\n",!1),eu=re("\r",!1),tu=re("\u2028",!1),ru=re("\u2029",!1),nu=oe("comment"),ou=re("/*",!1),au=re("*/",!1),iu=re("//",!1),su=oe("identifier"),cu=re("_",!1),lu=re("\\",!1),pu=re("‌",!1),Au=re("‍",!1),Eu=oe("literal"),fu=re("i",!1),hu=oe("string"),Cu=re('"',!1),du=re("'",!1),gu=oe("character class"),Fu=re("[",!1),mu=re("^",!1),_u=re("]",!1),Bu=re("-",!1),Du=re("0",!1),vu=re("b",!1),$u=re("f",!1),Su=re("n",!1),yu=re("r",!1),xu=re("t",!1),bu=re("v",!1),Pu=re("x",!1),Ru=re("u",!1),Ou=ne([["0","9"]],!1,!1),Lu=ne([["0","9"],["a","f"]],!1,!0),Tu=re(".",!1),wu=oe("code block"),Nu=ne(["{","}"],!1,!1),Iu=ne([["a","z"],"µ",["ß","ö"],["ø","ÿ"],"ā","ă","ą","ć","ĉ","ċ","č","ď","đ","ē","ĕ","ė","ę","ě","ĝ","ğ","ġ","ģ","ĥ","ħ","ĩ","ī","ĭ","į","ı","ij","ĵ",["ķ","ĸ"],"ĺ","ļ","ľ","ŀ","ł","ń","ņ",["ň","ʼn"],"ŋ","ō","ŏ","ő","œ","ŕ","ŗ","ř","ś","ŝ","ş","š","ţ","ť","ŧ","ũ","ū","ŭ","ů","ű","ų","ŵ","ŷ","ź","ż",["ž","ƀ"],"ƃ","ƅ","ƈ",["ƌ","ƍ"],"ƒ","ƕ",["ƙ","ƛ"],"ƞ","ơ","ƣ","ƥ","ƨ",["ƪ","ƫ"],"ƭ","ư","ƴ","ƶ",["ƹ","ƺ"],["ƽ","ƿ"],"dž","lj","nj","ǎ","ǐ","ǒ","ǔ","ǖ","ǘ","ǚ",["ǜ","ǝ"],"ǟ","ǡ","ǣ","ǥ","ǧ","ǩ","ǫ","ǭ",["ǯ","ǰ"],"dz","ǵ","ǹ","ǻ","ǽ","ǿ","ȁ","ȃ","ȅ","ȇ","ȉ","ȋ","ȍ","ȏ","ȑ","ȓ","ȕ","ȗ","ș","ț","ȝ","ȟ","ȡ","ȣ","ȥ","ȧ","ȩ","ȫ","ȭ","ȯ","ȱ",["ȳ","ȹ"],"ȼ",["ȿ","ɀ"],"ɂ","ɇ","ɉ","ɋ","ɍ",["ɏ","ʓ"],["ʕ","ʯ"],"ͱ","ͳ","ͷ",["ͻ","ͽ"],"ΐ",["ά","ώ"],["ϐ","ϑ"],["ϕ","ϗ"],"ϙ","ϛ","ϝ","ϟ","ϡ","ϣ","ϥ","ϧ","ϩ","ϫ","ϭ",["ϯ","ϳ"],"ϵ","ϸ",["ϻ","ϼ"],["а","џ"],"ѡ","ѣ","ѥ","ѧ","ѩ","ѫ","ѭ","ѯ","ѱ","ѳ","ѵ","ѷ","ѹ","ѻ","ѽ","ѿ","ҁ","ҋ","ҍ","ҏ","ґ","ғ","ҕ","җ","ҙ","қ","ҝ","ҟ","ҡ","ң","ҥ","ҧ","ҩ","ҫ","ҭ","ү","ұ","ҳ","ҵ","ҷ","ҹ","һ","ҽ","ҿ","ӂ","ӄ","ӆ","ӈ","ӊ","ӌ",["ӎ","ӏ"],"ӑ","ӓ","ӕ","ӗ","ә","ӛ","ӝ","ӟ","ӡ","ӣ","ӥ","ӧ","ө","ӫ","ӭ","ӯ","ӱ","ӳ","ӵ","ӷ","ӹ","ӻ","ӽ","ӿ","ԁ","ԃ","ԅ","ԇ","ԉ","ԋ","ԍ","ԏ","ԑ","ԓ","ԕ","ԗ","ԙ","ԛ","ԝ","ԟ","ԡ","ԣ","ԥ","ԧ","ԩ","ԫ","ԭ","ԯ",["ա","և"],["ᏸ","ᏽ"],["ᴀ","ᴫ"],["ᵫ","ᵷ"],["ᵹ","ᶚ"],"ḁ","ḃ","ḅ","ḇ","ḉ","ḋ","ḍ","ḏ","ḑ","ḓ","ḕ","ḗ","ḙ","ḛ","ḝ","ḟ","ḡ","ḣ","ḥ","ḧ","ḩ","ḫ","ḭ","ḯ","ḱ","ḳ","ḵ","ḷ","ḹ","ḻ","ḽ","ḿ","ṁ","ṃ","ṅ","ṇ","ṉ","ṋ","ṍ","ṏ","ṑ","ṓ","ṕ","ṗ","ṙ","ṛ","ṝ","ṟ","ṡ","ṣ","ṥ","ṧ","ṩ","ṫ","ṭ","ṯ","ṱ","ṳ","ṵ","ṷ","ṹ","ṻ","ṽ","ṿ","ẁ","ẃ","ẅ","ẇ","ẉ","ẋ","ẍ","ẏ","ẑ","ẓ",["ẕ","ẝ"],"ẟ","ạ","ả","ấ","ầ","ẩ","ẫ","ậ","ắ","ằ","ẳ","ẵ","ặ","ẹ","ẻ","ẽ","ế","ề","ể","ễ","ệ","ỉ","ị","ọ","ỏ","ố","ồ","ổ","ỗ","ộ","ớ","ờ","ở","ỡ","ợ","ụ","ủ","ứ","ừ","ử","ữ","ự","ỳ","ỵ","ỷ","ỹ","ỻ","ỽ",["ỿ","ἇ"],["ἐ","ἕ"],["ἠ","ἧ"],["ἰ","ἷ"],["ὀ","ὅ"],["ὐ","ὗ"],["ὠ","ὧ"],["ὰ","ώ"],["ᾀ","ᾇ"],["ᾐ","ᾗ"],["ᾠ","ᾧ"],["ᾰ","ᾴ"],["ᾶ","ᾷ"],"ι",["ῂ","ῄ"],["ῆ","ῇ"],["ῐ","ΐ"],["ῖ","ῗ"],["ῠ","ῧ"],["ῲ","ῴ"],["ῶ","ῷ"],"ℊ",["ℎ","ℏ"],"ℓ","ℯ","ℴ","ℹ",["ℼ","ℽ"],["ⅆ","ⅉ"],"ⅎ","ↄ",["ⰰ","ⱞ"],"ⱡ",["ⱥ","ⱦ"],"ⱨ","ⱪ","ⱬ","ⱱ",["ⱳ","ⱴ"],["ⱶ","ⱻ"],"ⲁ","ⲃ","ⲅ","ⲇ","ⲉ","ⲋ","ⲍ","ⲏ","ⲑ","ⲓ","ⲕ","ⲗ","ⲙ","ⲛ","ⲝ","ⲟ","ⲡ","ⲣ","ⲥ","ⲧ","ⲩ","ⲫ","ⲭ","ⲯ","ⲱ","ⲳ","ⲵ","ⲷ","ⲹ","ⲻ","ⲽ","ⲿ","ⳁ","ⳃ","ⳅ","ⳇ","ⳉ","ⳋ","ⳍ","ⳏ","ⳑ","ⳓ","ⳕ","ⳗ","ⳙ","ⳛ","ⳝ","ⳟ","ⳡ",["ⳣ","ⳤ"],"ⳬ","ⳮ","ⳳ",["ⴀ","ⴥ"],"ⴧ","ⴭ","ꙁ","ꙃ","ꙅ","ꙇ","ꙉ","ꙋ","ꙍ","ꙏ","ꙑ","ꙓ","ꙕ","ꙗ","ꙙ","ꙛ","ꙝ","ꙟ","ꙡ","ꙣ","ꙥ","ꙧ","ꙩ","ꙫ","ꙭ","ꚁ","ꚃ","ꚅ","ꚇ","ꚉ","ꚋ","ꚍ","ꚏ","ꚑ","ꚓ","ꚕ","ꚗ","ꚙ","ꚛ","ꜣ","ꜥ","ꜧ","ꜩ","ꜫ","ꜭ",["ꜯ","ꜱ"],"ꜳ","ꜵ","ꜷ","ꜹ","ꜻ","ꜽ","ꜿ","ꝁ","ꝃ","ꝅ","ꝇ","ꝉ","ꝋ","ꝍ","ꝏ","ꝑ","ꝓ","ꝕ","ꝗ","ꝙ","ꝛ","ꝝ","ꝟ","ꝡ","ꝣ","ꝥ","ꝧ","ꝩ","ꝫ","ꝭ","ꝯ",["ꝱ","ꝸ"],"ꝺ","ꝼ","ꝿ","ꞁ","ꞃ","ꞅ","ꞇ","ꞌ","ꞎ","ꞑ",["ꞓ","ꞕ"],"ꞗ","ꞙ","ꞛ","ꞝ","ꞟ","ꞡ","ꞣ","ꞥ","ꞧ","ꞩ","ꞵ","ꞷ","ꟺ",["ꬰ","ꭚ"],["ꭠ","ꭥ"],["ꭰ","ꮿ"],["ff","st"],["ﬓ","ﬗ"],["a","z"]],!1,!1),Mu=ne([["ʰ","ˁ"],["ˆ","ˑ"],["ˠ","ˤ"],"ˬ","ˮ","ʹ","ͺ","ՙ","ـ",["ۥ","ۦ"],["ߴ","ߵ"],"ߺ","ࠚ","ࠤ","ࠨ","ॱ","ๆ","ໆ","ჼ","ៗ","ᡃ","ᪧ",["ᱸ","ᱽ"],["ᴬ","ᵪ"],"ᵸ",["ᶛ","ᶿ"],"ⁱ","ⁿ",["ₐ","ₜ"],["ⱼ","ⱽ"],"ⵯ","ⸯ","々",["〱","〵"],"〻",["ゝ","ゞ"],["ー","ヾ"],"ꀕ",["ꓸ","ꓽ"],"ꘌ","ꙿ",["ꚜ","ꚝ"],["ꜗ","ꜟ"],"ꝰ","ꞈ",["ꟸ","ꟹ"],"ꧏ","ꧦ","ꩰ","ꫝ",["ꫳ","ꫴ"],["ꭜ","ꭟ"],"ー",["゙","゚"]],!1,!1),ku=ne(["ª","º","ƻ",["ǀ","ǃ"],"ʔ",["א","ת"],["װ","ײ"],["ؠ","ؿ"],["ف","ي"],["ٮ","ٯ"],["ٱ","ۓ"],"ە",["ۮ","ۯ"],["ۺ","ۼ"],"ۿ","ܐ",["ܒ","ܯ"],["ݍ","ޥ"],"ޱ",["ߊ","ߪ"],["ࠀ","ࠕ"],["ࡀ","ࡘ"],["ࢠ","ࢴ"],["ऄ","ह"],"ऽ","ॐ",["क़","ॡ"],["ॲ","ঀ"],["অ","ঌ"],["এ","ঐ"],["ও","ন"],["প","র"],"ল",["শ","হ"],"ঽ","ৎ",["ড়","ঢ়"],["য়","ৡ"],["ৰ","ৱ"],["ਅ","ਊ"],["ਏ","ਐ"],["ਓ","ਨ"],["ਪ","ਰ"],["ਲ","ਲ਼"],["ਵ","ਸ਼"],["ਸ","ਹ"],["ਖ਼","ੜ"],"ਫ਼",["ੲ","ੴ"],["અ","ઍ"],["એ","ઑ"],["ઓ","ન"],["પ","ર"],["લ","ળ"],["વ","હ"],"ઽ","ૐ",["ૠ","ૡ"],"ૹ",["ଅ","ଌ"],["ଏ","ଐ"],["ଓ","ନ"],["ପ","ର"],["ଲ","ଳ"],["ଵ","ହ"],"ଽ",["ଡ଼","ଢ଼"],["ୟ","ୡ"],"ୱ","ஃ",["அ","ஊ"],["எ","ஐ"],["ஒ","க"],["ங","ச"],"ஜ",["ஞ","ட"],["ண","த"],["ந","ப"],["ம","ஹ"],"ௐ",["అ","ఌ"],["ఎ","ఐ"],["ఒ","న"],["ప","హ"],"ఽ",["ౘ","ౚ"],["ౠ","ౡ"],["ಅ","ಌ"],["ಎ","ಐ"],["ಒ","ನ"],["ಪ","ಳ"],["ವ","ಹ"],"ಽ","ೞ",["ೠ","ೡ"],["ೱ","ೲ"],["അ","ഌ"],["എ","ഐ"],["ഒ","ഺ"],"ഽ","ൎ",["ൟ","ൡ"],["ൺ","ൿ"],["අ","ඖ"],["ක","න"],["ඳ","ර"],"ල",["ව","ෆ"],["ก","ะ"],["า","ำ"],["เ","ๅ"],["ກ","ຂ"],"ຄ",["ງ","ຈ"],"ຊ","ຍ",["ດ","ທ"],["ນ","ຟ"],["ມ","ຣ"],"ລ","ວ",["ສ","ຫ"],["ອ","ະ"],["າ","ຳ"],"ຽ",["ເ","ໄ"],["ໜ","ໟ"],"ༀ",["ཀ","ཇ"],["ཉ","ཬ"],["ྈ","ྌ"],["က","ဪ"],"ဿ",["ၐ","ၕ"],["ၚ","ၝ"],"ၡ",["ၥ","ၦ"],["ၮ","ၰ"],["ၵ","ႁ"],"ႎ",["ა","ჺ"],["ჽ","ቈ"],["ቊ","ቍ"],["ቐ","ቖ"],"ቘ",["ቚ","ቝ"],["በ","ኈ"],["ኊ","ኍ"],["ነ","ኰ"],["ኲ","ኵ"],["ኸ","ኾ"],"ዀ",["ዂ","ዅ"],["ወ","ዖ"],["ዘ","ጐ"],["ጒ","ጕ"],["ጘ","ፚ"],["ᎀ","ᎏ"],["ᐁ","ᙬ"],["ᙯ","ᙿ"],["ᚁ","ᚚ"],["ᚠ","ᛪ"],["ᛱ","ᛸ"],["ᜀ","ᜌ"],["ᜎ","ᜑ"],["ᜠ","ᜱ"],["ᝀ","ᝑ"],["ᝠ","ᝬ"],["ᝮ","ᝰ"],["ក","ឳ"],"ៜ",["ᠠ","ᡂ"],["ᡄ","ᡷ"],["ᢀ","ᢨ"],"ᢪ",["ᢰ","ᣵ"],["ᤀ","ᤞ"],["ᥐ","ᥭ"],["ᥰ","ᥴ"],["ᦀ","ᦫ"],["ᦰ","ᧉ"],["ᨀ","ᨖ"],["ᨠ","ᩔ"],["ᬅ","ᬳ"],["ᭅ","ᭋ"],["ᮃ","ᮠ"],["ᮮ","ᮯ"],["ᮺ","ᯥ"],["ᰀ","ᰣ"],["ᱍ","ᱏ"],["ᱚ","ᱷ"],["ᳩ","ᳬ"],["ᳮ","ᳱ"],["ᳵ","ᳶ"],["ℵ","ℸ"],["ⴰ","ⵧ"],["ⶀ","ⶖ"],["ⶠ","ⶦ"],["ⶨ","ⶮ"],["ⶰ","ⶶ"],["ⶸ","ⶾ"],["ⷀ","ⷆ"],["ⷈ","ⷎ"],["ⷐ","ⷖ"],["ⷘ","ⷞ"],"〆","〼",["ぁ","ゖ"],"ゟ",["ァ","ヺ"],"ヿ",["ㄅ","ㄭ"],["ㄱ","ㆎ"],["ㆠ","ㆺ"],["ㇰ","ㇿ"],["㐀","䶵"],["一","鿕"],["ꀀ","ꀔ"],["ꀖ","ꒌ"],["ꓐ","ꓷ"],["ꔀ","ꘋ"],["ꘐ","ꘟ"],["ꘪ","ꘫ"],"ꙮ",["ꚠ","ꛥ"],"ꞏ","ꟷ",["ꟻ","ꠁ"],["ꠃ","ꠅ"],["ꠇ","ꠊ"],["ꠌ","ꠢ"],["ꡀ","ꡳ"],["ꢂ","ꢳ"],["ꣲ","ꣷ"],"ꣻ","ꣽ",["ꤊ","ꤥ"],["ꤰ","ꥆ"],["ꥠ","ꥼ"],["ꦄ","ꦲ"],["ꧠ","ꧤ"],["ꧧ","ꧯ"],["ꧺ","ꧾ"],["ꨀ","ꨨ"],["ꩀ","ꩂ"],["ꩄ","ꩋ"],["ꩠ","ꩯ"],["ꩱ","ꩶ"],"ꩺ",["ꩾ","ꪯ"],"ꪱ",["ꪵ","ꪶ"],["ꪹ","ꪽ"],"ꫀ","ꫂ",["ꫛ","ꫜ"],["ꫠ","ꫪ"],"ꫲ",["ꬁ","ꬆ"],["ꬉ","ꬎ"],["ꬑ","ꬖ"],["ꬠ","ꬦ"],["ꬨ","ꬮ"],["ꯀ","ꯢ"],["가","힣"],["ힰ","ퟆ"],["ퟋ","ퟻ"],["豈","舘"],["並","龎"],"יִ",["ײַ","ﬨ"],["שׁ","זּ"],["טּ","לּ"],"מּ",["נּ","סּ"],["ףּ","פּ"],["צּ","ﮱ"],["ﯓ","ﴽ"],["ﵐ","ﶏ"],["ﶒ","ﷇ"],["ﷰ","ﷻ"],["ﹰ","ﹴ"],["ﹶ","ﻼ"],["ヲ","ッ"],["ア","ン"],["ᅠ","ᄒ"],["ᅡ","ᅦ"],["ᅧ","ᅬ"],["ᅭ","ᅲ"],["ᅳ","ᅵ"]],!1,!1),Hu=ne(["Dž","Lj","Nj","Dz",["ᾈ","ᾏ"],["ᾘ","ᾟ"],["ᾨ","ᾯ"],"ᾼ","ῌ","ῼ"],!1,!1),ju=ne([["A","Z"],["À","Ö"],["Ø","Þ"],"Ā","Ă","Ą","Ć","Ĉ","Ċ","Č","Ď","Đ","Ē","Ĕ","Ė","Ę","Ě","Ĝ","Ğ","Ġ","Ģ","Ĥ","Ħ","Ĩ","Ī","Ĭ","Į","İ","IJ","Ĵ","Ķ","Ĺ","Ļ","Ľ","Ŀ","Ł","Ń","Ņ","Ň","Ŋ","Ō","Ŏ","Ő","Œ","Ŕ","Ŗ","Ř","Ś","Ŝ","Ş","Š","Ţ","Ť","Ŧ","Ũ","Ū","Ŭ","Ů","Ű","Ų","Ŵ","Ŷ",["Ÿ","Ź"],"Ż","Ž",["Ɓ","Ƃ"],"Ƅ",["Ɔ","Ƈ"],["Ɖ","Ƌ"],["Ǝ","Ƒ"],["Ɠ","Ɣ"],["Ɩ","Ƙ"],["Ɯ","Ɲ"],["Ɵ","Ơ"],"Ƣ","Ƥ",["Ʀ","Ƨ"],"Ʃ","Ƭ",["Ʈ","Ư"],["Ʊ","Ƴ"],"Ƶ",["Ʒ","Ƹ"],"Ƽ","DŽ","LJ","NJ","Ǎ","Ǐ","Ǒ","Ǔ","Ǖ","Ǘ","Ǚ","Ǜ","Ǟ","Ǡ","Ǣ","Ǥ","Ǧ","Ǩ","Ǫ","Ǭ","Ǯ","DZ","Ǵ",["Ƕ","Ǹ"],"Ǻ","Ǽ","Ǿ","Ȁ","Ȃ","Ȅ","Ȇ","Ȉ","Ȋ","Ȍ","Ȏ","Ȑ","Ȓ","Ȕ","Ȗ","Ș","Ț","Ȝ","Ȟ","Ƞ","Ȣ","Ȥ","Ȧ","Ȩ","Ȫ","Ȭ","Ȯ","Ȱ","Ȳ",["Ⱥ","Ȼ"],["Ƚ","Ⱦ"],"Ɂ",["Ƀ","Ɇ"],"Ɉ","Ɋ","Ɍ","Ɏ","Ͱ","Ͳ","Ͷ","Ϳ","Ά",["Έ","Ί"],"Ό",["Ύ","Ώ"],["Α","Ρ"],["Σ","Ϋ"],"Ϗ",["ϒ","ϔ"],"Ϙ","Ϛ","Ϝ","Ϟ","Ϡ","Ϣ","Ϥ","Ϧ","Ϩ","Ϫ","Ϭ","Ϯ","ϴ","Ϸ",["Ϲ","Ϻ"],["Ͻ","Я"],"Ѡ","Ѣ","Ѥ","Ѧ","Ѩ","Ѫ","Ѭ","Ѯ","Ѱ","Ѳ","Ѵ","Ѷ","Ѹ","Ѻ","Ѽ","Ѿ","Ҁ","Ҋ","Ҍ","Ҏ","Ґ","Ғ","Ҕ","Җ","Ҙ","Қ","Ҝ","Ҟ","Ҡ","Ң","Ҥ","Ҧ","Ҩ","Ҫ","Ҭ","Ү","Ұ","Ҳ","Ҵ","Ҷ","Ҹ","Һ","Ҽ","Ҿ",["Ӏ","Ӂ"],"Ӄ","Ӆ","Ӈ","Ӊ","Ӌ","Ӎ","Ӑ","Ӓ","Ӕ","Ӗ","Ә","Ӛ","Ӝ","Ӟ","Ӡ","Ӣ","Ӥ","Ӧ","Ө","Ӫ","Ӭ","Ӯ","Ӱ","Ӳ","Ӵ","Ӷ","Ӹ","Ӻ","Ӽ","Ӿ","Ԁ","Ԃ","Ԅ","Ԇ","Ԉ","Ԋ","Ԍ","Ԏ","Ԑ","Ԓ","Ԕ","Ԗ","Ԙ","Ԛ","Ԝ","Ԟ","Ԡ","Ԣ","Ԥ","Ԧ","Ԩ","Ԫ","Ԭ","Ԯ",["Ա","Ֆ"],["Ⴀ","Ⴥ"],"Ⴧ","Ⴭ",["Ꭰ","Ᏽ"],"Ḁ","Ḃ","Ḅ","Ḇ","Ḉ","Ḋ","Ḍ","Ḏ","Ḑ","Ḓ","Ḕ","Ḗ","Ḙ","Ḛ","Ḝ","Ḟ","Ḡ","Ḣ","Ḥ","Ḧ","Ḩ","Ḫ","Ḭ","Ḯ","Ḱ","Ḳ","Ḵ","Ḷ","Ḹ","Ḻ","Ḽ","Ḿ","Ṁ","Ṃ","Ṅ","Ṇ","Ṉ","Ṋ","Ṍ","Ṏ","Ṑ","Ṓ","Ṕ","Ṗ","Ṙ","Ṛ","Ṝ","Ṟ","Ṡ","Ṣ","Ṥ","Ṧ","Ṩ","Ṫ","Ṭ","Ṯ","Ṱ","Ṳ","Ṵ","Ṷ","Ṹ","Ṻ","Ṽ","Ṿ","Ẁ","Ẃ","Ẅ","Ẇ","Ẉ","Ẋ","Ẍ","Ẏ","Ẑ","Ẓ","Ẕ","ẞ","Ạ","Ả","Ấ","Ầ","Ẩ","Ẫ","Ậ","Ắ","Ằ","Ẳ","Ẵ","Ặ","Ẹ","Ẻ","Ẽ","Ế","Ề","Ể","Ễ","Ệ","Ỉ","Ị","Ọ","Ỏ","Ố","Ồ","Ổ","Ỗ","Ộ","Ớ","Ờ","Ở","Ỡ","Ợ","Ụ","Ủ","Ứ","Ừ","Ử","Ữ","Ự","Ỳ","Ỵ","Ỷ","Ỹ","Ỻ","Ỽ","Ỿ",["Ἀ","Ἇ"],["Ἐ","Ἕ"],["Ἠ","Ἧ"],["Ἰ","Ἷ"],["Ὀ","Ὅ"],"Ὑ","Ὓ","Ὕ","Ὗ",["Ὠ","Ὧ"],["Ᾰ","Ά"],["Ὲ","Ή"],["Ῐ","Ί"],["Ῠ","Ῥ"],["Ὸ","Ώ"],"ℂ","ℇ",["ℋ","ℍ"],["ℐ","ℒ"],"ℕ",["ℙ","ℝ"],"ℤ","Ω","ℨ",["K","ℭ"],["ℰ","ℳ"],["ℾ","ℿ"],"ⅅ","Ↄ",["Ⰰ","Ⱞ"],"Ⱡ",["Ɫ","Ɽ"],"Ⱨ","Ⱪ","Ⱬ",["Ɑ","Ɒ"],"Ⱳ","Ⱶ",["Ȿ","Ⲁ"],"Ⲃ","Ⲅ","Ⲇ","Ⲉ","Ⲋ","Ⲍ","Ⲏ","Ⲑ","Ⲓ","Ⲕ","Ⲗ","Ⲙ","Ⲛ","Ⲝ","Ⲟ","Ⲡ","Ⲣ","Ⲥ","Ⲧ","Ⲩ","Ⲫ","Ⲭ","Ⲯ","Ⲱ","Ⲳ","Ⲵ","Ⲷ","Ⲹ","Ⲻ","Ⲽ","Ⲿ","Ⳁ","Ⳃ","Ⳅ","Ⳇ","Ⳉ","Ⳋ","Ⳍ","Ⳏ","Ⳑ","Ⳓ","Ⳕ","Ⳗ","Ⳙ","Ⳛ","Ⳝ","Ⳟ","Ⳡ","Ⳣ","Ⳬ","Ⳮ","Ⳳ","Ꙁ","Ꙃ","Ꙅ","Ꙇ","Ꙉ","Ꙋ","Ꙍ","Ꙏ","Ꙑ","Ꙓ","Ꙕ","Ꙗ","Ꙙ","Ꙛ","Ꙝ","Ꙟ","Ꙡ","Ꙣ","Ꙥ","Ꙧ","Ꙩ","Ꙫ","Ꙭ","Ꚁ","Ꚃ","Ꚅ","Ꚇ","Ꚉ","Ꚋ","Ꚍ","Ꚏ","Ꚑ","Ꚓ","Ꚕ","Ꚗ","Ꚙ","Ꚛ","Ꜣ","Ꜥ","Ꜧ","Ꜩ","Ꜫ","Ꜭ","Ꜯ","Ꜳ","Ꜵ","Ꜷ","Ꜹ","Ꜻ","Ꜽ","Ꜿ","Ꝁ","Ꝃ","Ꝅ","Ꝇ","Ꝉ","Ꝋ","Ꝍ","Ꝏ","Ꝑ","Ꝓ","Ꝕ","Ꝗ","Ꝙ","Ꝛ","Ꝝ","Ꝟ","Ꝡ","Ꝣ","Ꝥ","Ꝧ","Ꝩ","Ꝫ","Ꝭ","Ꝯ","Ꝺ","Ꝼ",["Ᵹ","Ꝿ"],"Ꞁ","Ꞃ","Ꞅ","Ꞇ","Ꞌ","Ɥ","Ꞑ","Ꞓ","Ꞗ","Ꞙ","Ꞛ","Ꞝ","Ꞟ","Ꞡ","Ꞣ","Ꞥ","Ꞧ","Ꞩ",["Ɦ","Ɬ"],["Ʞ","Ꞵ"],"Ꞷ",["A","Z"]],!1,!1),Uu=ne(["ः","ऻ",["ा","ी"],["ॉ","ौ"],["ॎ","ॏ"],["ং","ঃ"],["া","ী"],["ে","ৈ"],["ো","ৌ"],"ৗ","ਃ",["ਾ","ੀ"],"ઃ",["ા","ી"],"ૉ",["ો","ૌ"],["ଂ","ଃ"],"ା","ୀ",["େ","ୈ"],["ୋ","ୌ"],"ୗ",["ா","ி"],["ு","ூ"],["ெ","ை"],["ொ","ௌ"],"ௗ",["ఁ","ః"],["ు","ౄ"],["ಂ","ಃ"],"ಾ",["ೀ","ೄ"],["ೇ","ೈ"],["ೊ","ೋ"],["ೕ","ೖ"],["ം","ഃ"],["ാ","ീ"],["െ","ൈ"],["ൊ","ൌ"],"ൗ",["ං","ඃ"],["ා","ෑ"],["ෘ","ෟ"],["ෲ","ෳ"],["༾","༿"],"ཿ",["ါ","ာ"],"ေ","း",["ျ","ြ"],["ၖ","ၗ"],["ၢ","ၤ"],["ၧ","ၭ"],["ႃ","ႄ"],["ႇ","ႌ"],"ႏ",["ႚ","ႜ"],"ា",["ើ","ៅ"],["ះ","ៈ"],["ᤣ","ᤦ"],["ᤩ","ᤫ"],["ᤰ","ᤱ"],["ᤳ","ᤸ"],["ᨙ","ᨚ"],"ᩕ","ᩗ","ᩡ",["ᩣ","ᩤ"],["ᩭ","ᩲ"],"ᬄ","ᬵ","ᬻ",["ᬽ","ᭁ"],["ᭃ","᭄"],"ᮂ","ᮡ",["ᮦ","ᮧ"],"᮪","ᯧ",["ᯪ","ᯬ"],"ᯮ",["᯲","᯳"],["ᰤ","ᰫ"],["ᰴ","ᰵ"],"᳡",["ᳲ","ᳳ"],["〮","〯"],["ꠣ","ꠤ"],"ꠧ",["ꢀ","ꢁ"],["ꢴ","ꣃ"],["ꥒ","꥓"],"ꦃ",["ꦴ","ꦵ"],["ꦺ","ꦻ"],["ꦽ","꧀"],["ꨯ","ꨰ"],["ꨳ","ꨴ"],"ꩍ","ꩻ","ꩽ","ꫫ",["ꫮ","ꫯ"],"ꫵ",["ꯣ","ꯤ"],["ꯦ","ꯧ"],["ꯩ","ꯪ"],"꯬"],!1,!1),Gu=ne([["̀","ͯ"],["҃","҇"],["֑","ֽ"],"ֿ",["ׁ","ׂ"],["ׄ","ׅ"],"ׇ",["ؐ","ؚ"],["ً","ٟ"],"ٰ",["ۖ","ۜ"],["۟","ۤ"],["ۧ","ۨ"],["۪","ۭ"],"ܑ",["ܰ","݊"],["ަ","ް"],["߫","߳"],["ࠖ","࠙"],["ࠛ","ࠣ"],["ࠥ","ࠧ"],["ࠩ","࠭"],["࡙","࡛"],["ࣣ","ं"],"ऺ","़",["ु","ै"],"्",["॑","ॗ"],["ॢ","ॣ"],"ঁ","়",["ু","ৄ"],"্",["ৢ","ৣ"],["ਁ","ਂ"],"਼",["ੁ","ੂ"],["ੇ","ੈ"],["ੋ","੍"],"ੑ",["ੰ","ੱ"],"ੵ",["ઁ","ં"],"઼",["ુ","ૅ"],["ે","ૈ"],"્",["ૢ","ૣ"],"ଁ","଼","ି",["ୁ","ୄ"],"୍","ୖ",["ୢ","ୣ"],"ஂ","ீ","்","ఀ",["ా","ీ"],["ె","ై"],["ొ","్"],["ౕ","ౖ"],["ౢ","ౣ"],"ಁ","಼","ಿ","ೆ",["ೌ","್"],["ೢ","ೣ"],"ഁ",["ു","ൄ"],"്",["ൢ","ൣ"],"්",["ි","ු"],"ූ","ั",["ิ","ฺ"],["็","๎"],"ັ",["ິ","ູ"],["ົ","ຼ"],["່","ໍ"],["༘","༙"],"༵","༷","༹",["ཱ","ཾ"],["ྀ","྄"],["྆","྇"],["ྍ","ྗ"],["ྙ","ྼ"],"࿆",["ိ","ူ"],["ဲ","့"],["္","်"],["ွ","ှ"],["ၘ","ၙ"],["ၞ","ၠ"],["ၱ","ၴ"],"ႂ",["ႅ","ႆ"],"ႍ","ႝ",["፝","፟"],["ᜒ","᜔"],["ᜲ","᜴"],["ᝒ","ᝓ"],["ᝲ","ᝳ"],["឴","឵"],["ិ","ួ"],"ំ",["៉","៓"],"៝",["᠋","᠍"],"ᢩ",["ᤠ","ᤢ"],["ᤧ","ᤨ"],"ᤲ",["᤹","᤻"],["ᨗ","ᨘ"],"ᨛ","ᩖ",["ᩘ","ᩞ"],"᩠","ᩢ",["ᩥ","ᩬ"],["ᩳ","᩼"],"᩿",["᪰","᪽"],["ᬀ","ᬃ"],"᬴",["ᬶ","ᬺ"],"ᬼ","ᭂ",["᭫","᭳"],["ᮀ","ᮁ"],["ᮢ","ᮥ"],["ᮨ","ᮩ"],["᮫","ᮭ"],"᯦",["ᯨ","ᯩ"],"ᯭ",["ᯯ","ᯱ"],["ᰬ","ᰳ"],["ᰶ","᰷"],["᳐","᳒"],["᳔","᳠"],["᳢","᳨"],"᳭","᳴",["᳸","᳹"],["᷀","᷵"],["᷼","᷿"],["⃐","⃜"],"⃡",["⃥","⃰"],["⳯","⳱"],"⵿",["ⷠ","ⷿ"],["〪","〭"],["゙","゚"],"꙯",["ꙴ","꙽"],["ꚞ","ꚟ"],["꛰","꛱"],"ꠂ","꠆","ꠋ",["ꠥ","ꠦ"],"꣄",["꣠","꣱"],["ꤦ","꤭"],["ꥇ","ꥑ"],["ꦀ","ꦂ"],"꦳",["ꦶ","ꦹ"],"ꦼ","ꧥ",["ꨩ","ꨮ"],["ꨱ","ꨲ"],["ꨵ","ꨶ"],"ꩃ","ꩌ","ꩼ","ꪰ",["ꪲ","ꪴ"],["ꪷ","ꪸ"],["ꪾ","꪿"],"꫁",["ꫬ","ꫭ"],"꫶","ꯥ","ꯨ","꯭","ﬞ",["︀","️"],["︠","︯"]],!1,!1),Vu=ne([["0","9"],["٠","٩"],["۰","۹"],["߀","߉"],["०","९"],["০","৯"],["੦","੯"],["૦","૯"],["୦","୯"],["௦","௯"],["౦","౯"],["೦","೯"],["൦","൯"],["෦","෯"],["๐","๙"],["໐","໙"],["༠","༩"],["၀","၉"],["႐","႙"],["០","៩"],["᠐","᠙"],["᥆","᥏"],["᧐","᧙"],["᪀","᪉"],["᪐","᪙"],["᭐","᭙"],["᮰","᮹"],["᱀","᱉"],["᱐","᱙"],["꘠","꘩"],["꣐","꣙"],["꤀","꤉"],["꧐","꧙"],["꧰","꧹"],["꩐","꩙"],["꯰","꯹"],["0","9"]],!1,!1),zu=ne([["ᛮ","ᛰ"],["Ⅰ","ↂ"],["ↅ","ↈ"],"〇",["〡","〩"],["〸","〺"],["ꛦ","ꛯ"]],!1,!1),Wu=ne(["_",["‿","⁀"],"⁔",["︳","︴"],["﹍","﹏"],"_"],!1,!1),Yu=ne([" "," "," ",[" "," "]," "," "," "],!1,!1),Ju=re(";",!1),Qu=0,qu=0,Xu=[{line:1,column:1}],Ku=0,Zu=[],ue=0;if("startRule"in e){if(!(e.startRule in o))throw new Error("Can't start parsing from rule \""+e.startRule+'".');a=o[e.startRule]}function ee(){return ie(qu,Qu)}function te(u,e){throw function(u,e){return new peg$SyntaxError(u,null,null,e)}(u,e=void 0!==e?e:ie(qu,Qu))}function re(u,e){return{type:"literal",text:u,ignoreCase:e}}function ne(u,e,t){return{type:"class",parts:u,inverted:e,ignoreCase:t}}function oe(u){return{type:"other",description:u}}function ae(e){var t,r=Xu[e];if(r)return r;for(t=e-1;!Xu[t];)t--;for(r={line:(r=Xu[t]).line,column:r.column};tKu&&(Ku=Qu,Zu=[]),Zu.push(u))}function ce(){var e,t,n,o,a,c;if(e=Qu,je(),t=Qu,n=function(){var e,t,n,o,a;return e=Qu,123===u.charCodeAt(Qu)?(t=i,Qu++):(t=r,0===ue&&se(b)),t!==r&&(n=ke())!==r?(125===u.charCodeAt(Qu)?(o=s,Qu++):(o=r,0===ue&&se(P)),o!==r&&Ue()!==r?(qu=e,e={type:"top_level_initializer",code:(a=n)[0],codeLocation:a[1],location:ee()}):(Qu=e,e=r)):(Qu=e,e=r),e}(),n!==r?(o=je(),t=n):(Qu=t,t=r),t===r&&(t=null),n=Qu,o=function(){var u,e,t;return u=Qu,(e=ke())!==r&&Ue()!==r?(qu=u,u={type:"initializer",code:(t=e)[0],codeLocation:t[1],location:ee()}):(Qu=u,u=r),u}(),o!==r?(a=je(),n=o):(Qu=n,n=r),n===r&&(n=null),o=[],a=Qu,(c=le())!==r?(je(),a=c):(Qu=a,a=r),a!==r)for(;a!==r;)o.push(a),a=Qu,(c=le())!==r?(je(),a=c):(Qu=a,a=r);else o=r;return o!==r?(qu=e,e={type:"grammar",topLevelInitializer:t,initializer:n,rules:o,location:ee()}):(Qu=e,e=r),e}function le(){var e,t,n,o,a,i,s,c;return e=Qu,(t=$e())!==r?(je(),n=Qu,(o=xe())!==r?(je(),n=o):(Qu=n,n=r),n===r&&(n=null),61===u.charCodeAt(Qu)?(o="=",Qu++):(o=r,0===ue&&se(R)),o!==r?(je(),(a=pe())!==r&&Ue()!==r?(qu=e,s=n,c=a,e={type:"rule",name:(i=t)[0],nameLocation:i[1],expression:null!==s?{type:"named",name:s,expression:c,location:ee()}:c,location:ee()}):(Qu=e,e=r)):(Qu=e,e=r)):(Qu=e,e=r),e}function pe(){var e,t,n,o,a,i,s,c;if(e=Qu,(t=Ae())!==r){for(n=[],o=Qu,je(),47===u.charCodeAt(Qu)?(a="/",Qu++):(a=r,0===ue&&se(O)),a!==r?(je(),(i=Ae())!==r?o=i:(Qu=o,o=r)):(Qu=o,o=r);o!==r;)n.push(o),o=Qu,je(),47===u.charCodeAt(Qu)?(a="/",Qu++):(a=r,0===ue&&se(O)),a!==r?(je(),(i=Ae())!==r?o=i:(Qu=o,o=r)):(Qu=o,o=r);qu=e,s=t,e=(c=n).length>0?{type:"choice",alternatives:[s].concat(c),location:ee()}:s}else Qu=e,e=r;return e}function Ae(){var u,e,t,n,o,a;return u=Qu,e=function(){var u,e,t,n,o,a,i;if(u=Qu,(e=Ee())!==r){for(t=[],n=Qu,je(),(o=Ee())!==r?n=o:(Qu=n,n=r);n!==r;)t.push(n),n=Qu,je(),(o=Ee())!==r?n=o:(Qu=n,n=r);qu=u,a=e,u=(i=t).length>0||"labeled"===a.type&&a.pick?{type:"sequence",elements:[a].concat(i),location:ee()}:a}else Qu=u,u=r;return u}(),e!==r?(t=Qu,je(),(n=ke())!==r?t=n:(Qu=t,t=r),t===r&&(t=null),qu=u,o=e,u=null!==(a=t)?{type:"action",expression:o,code:a[0],codeLocation:a[1],location:ee()}:o):(Qu=u,u=r),u}function Ee(){var e,t,n,o,a,i,s;return e=Qu,t=function(){var e,t;return e=Qu,64===u.charCodeAt(Qu)?(t="@",Qu++):(t=r,0===ue&&se(L)),t!==r&&(qu=e,t=ee()),t}(),t!==r?((n=fe())===r&&(n=null),(o=he())!==r?(qu=e,a=t,i=n,(s=o).type.startsWith("semantic_")&&te('"@" cannot be used on a semantic predicate',a),e={type:"labeled",label:null!==i?i[0]:null,labelLocation:null!==i?i[1]:a,pick:!0,expression:s,location:ee()}):(Qu=e,e=r)):(Qu=e,e=r),e===r&&(e=Qu,(t=fe())!==r?(n=je(),(o=he())!==r?(qu=e,e=function(u,e){return{type:"labeled",label:u[0],labelLocation:u[1],expression:e,location:ee()}}(t,o)):(Qu=e,e=r)):(Qu=e,e=r),e===r&&(e=he())),e}function fe(){var e,t,n,o;return e=Qu,(t=$e())!==r?(je(),58===u.charCodeAt(Qu)?(n=":",Qu++):(n=r,0===ue&&se(T)),n!==r?(qu=e,o=t,Ge.indexOf(o[0])>=0&&te("Label can't be a reserved word \"".concat(o[0],'"'),o[1]),e=o):(Qu=e,e=r)):(Qu=e,e=r),e}function he(){var e,t,n,o;return e=Qu,t=function(){var e;return 36===u.charCodeAt(Qu)?(e="$",Qu++):(e=r,0===ue&&se(w)),e===r&&(38===u.charCodeAt(Qu)?(e="&",Qu++):(e=r,0===ue&&se(N)),e===r&&(33===u.charCodeAt(Qu)?(e="!",Qu++):(e=r,0===ue&&se(I)))),e}(),t!==r?(je(),(n=Ce())!==r?(qu=e,o=n,e={type:OPS_TO_PREFIXED_TYPES[t],expression:o,location:ee()}):(Qu=e,e=r)):(Qu=e,e=r),e===r&&(e=Ce()),e}function Ce(){var e,t,n,o;return e=Qu,(t=de())!==r?(je(),n=function(){var e;return 63===u.charCodeAt(Qu)?(e="?",Qu++):(e=r,0===ue&&se(M)),e===r&&(42===u.charCodeAt(Qu)?(e="*",Qu++):(e=r,0===ue&&se(k)),e===r&&(43===u.charCodeAt(Qu)?(e="+",Qu++):(e=r,0===ue&&se(H)))),e}(),n!==r?(qu=e,o=t,e={type:OPS_TO_SUFFIXED_TYPES[n],expression:o,location:ee()}):(Qu=e,e=r)):(Qu=e,e=r),e===r&&(e=de()),e}function de(){var e,t,n,o,a;return e=function(){var e,t,n;return ue++,e=Qu,(t=xe())!==r?(105===u.charCodeAt(Qu)?(n="i",Qu++):(n=r,0===ue&&se(fu)),n===r&&(n=null),qu=e,e={type:"literal",value:t,ignoreCase:null!==n,location:ee()}):(Qu=e,e=r),ue--,e===r&&(t=r,0===ue&&se(Eu)),e}(),e===r&&(e=function(){var e,t,n,o,a,i,s,c;if(ue++,e=Qu,91===u.charCodeAt(Qu)?(t="[",Qu++):(t=r,0===ue&&se(Fu)),t!==r){for(94===u.charCodeAt(Qu)?(n="^",Qu++):(n=r,0===ue&&se(mu)),n===r&&(n=null),o=[],(a=Re())===r&&(a=Oe());a!==r;)o.push(a),(a=Re())===r&&(a=Oe());93===u.charCodeAt(Qu)?(a="]",Qu++):(a=r,0===ue&&se(_u)),a!==r?(105===u.charCodeAt(Qu)?(i="i",Qu++):(i=r,0===ue&&se(fu)),i===r&&(i=null),qu=e,s=n,c=i,e={type:"class",parts:o.filter((function(u){return""!==u})),inverted:null!==s,ignoreCase:null!==c,location:ee()}):(Qu=e,e=r)}else Qu=e,e=r;return ue--,e===r&&(t=r,0===ue&&se(gu)),e}(),e===r&&(e=function(){var e,t;return e=Qu,46===u.charCodeAt(Qu)?(t=".",Qu++):(t=r,0===ue&&se(Tu)),t!==r&&(qu=e,t={type:"any",location:ee()}),t}(),e===r&&(e=function(){var e,t,n,o,a,i,s;return e=Qu,(t=$e())!==r?(n=Qu,ue++,o=Qu,a=je(),i=Qu,(s=xe())!==r?i=s=[s,je()]:(Qu=i,i=r),i===r&&(i=null),61===u.charCodeAt(Qu)?(s="=",Qu++):(s=r,0===ue&&se(R)),s!==r?o=a=[a,i,s]:(Qu=o,o=r),ue--,o===r?n=void 0:(Qu=n,n=r),n!==r?(qu=e,e={type:"rule_ref",name:t[0],location:ee()}):(Qu=e,e=r)):(Qu=e,e=r),e}(),e===r&&(e=function(){var e,t,n,o;return e=Qu,t=function(){var e;return 38===u.charCodeAt(Qu)?(e="&",Qu++):(e=r,0===ue&&se(N)),e===r&&(33===u.charCodeAt(Qu)?(e="!",Qu++):(e=r,0===ue&&se(I))),e}(),t!==r?(je(),(n=ke())!==r?(qu=e,o=n,e={type:OPS_TO_SEMANTIC_PREDICATE_TYPES[t],code:o[0],codeLocation:o[1],location:ee()}):(Qu=e,e=r)):(Qu=e,e=r),e}(),e===r&&(e=Qu,40===u.charCodeAt(Qu)?(t="(",Qu++):(t=r,0===ue&&se(j)),t!==r?(je(),(n=pe())!==r?(je(),41===u.charCodeAt(Qu)?(o=")",Qu++):(o=r,0===ue&&se(U)),o!==r?(qu=e,e="labeled"===(a=n).type||"sequence"===a.type?{type:"group",expression:a,location:ee()}:a):(Qu=e,e=r)):(Qu=e,e=r)):(Qu=e,e=r)))))),e}function ge(){var e;return u.length>Qu?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(G)),e}function Fe(){var e;return ue++,9===u.charCodeAt(Qu)?(e="\t",Qu++):(e=r,0===ue&&se(z)),e===r&&(11===u.charCodeAt(Qu)?(e="\v",Qu++):(e=r,0===ue&&se(W)),e===r&&(12===u.charCodeAt(Qu)?(e="\f",Qu++):(e=r,0===ue&&se(Y)),e===r&&(32===u.charCodeAt(Qu)?(e=" ",Qu++):(e=r,0===ue&&se(J)),e===r&&(160===u.charCodeAt(Qu)?(e=" ",Qu++):(e=r,0===ue&&se(Q)),e===r&&(65279===u.charCodeAt(Qu)?(e="\ufeff",Qu++):(e=r,0===ue&&se(q)),e===r&&(e=function(){var e;return x.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Yu)),e}())))))),ue--,e===r&&0===ue&&se(V),e}function me(){var e;return f.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(X)),e}function _e(){var e;return ue++,10===u.charCodeAt(Qu)?(e="\n",Qu++):(e=r,0===ue&&se(Z)),e===r&&("\r\n"===u.substr(Qu,2)?(e="\r\n",Qu+=2):(e=r,0===ue&&se(uu)),e===r&&(13===u.charCodeAt(Qu)?(e="\r",Qu++):(e=r,0===ue&&se(eu)),e===r&&(8232===u.charCodeAt(Qu)?(e="\u2028",Qu++):(e=r,0===ue&&se(tu)),e===r&&(8233===u.charCodeAt(Qu)?(e="\u2029",Qu++):(e=r,0===ue&&se(ru)))))),ue--,e===r&&0===ue&&se(K),e}function Be(){var e;return ue++,(e=function(){var e,t,n,o,a,i;if(e=Qu,u.substr(Qu,2)===c?(t=c,Qu+=2):(t=r,0===ue&&se(ou)),t!==r){for(n=[],o=Qu,a=Qu,ue++,u.substr(Qu,2)===l?(i=l,Qu+=2):(i=r,0===ue&&se(au)),ue--,i===r?a=void 0:(Qu=a,a=r),a!==r&&(i=ge())!==r?o=a=[a,i]:(Qu=o,o=r);o!==r;)n.push(o),o=Qu,a=Qu,ue++,u.substr(Qu,2)===l?(i=l,Qu+=2):(i=r,0===ue&&se(au)),ue--,i===r?a=void 0:(Qu=a,a=r),a!==r&&(i=ge())!==r?o=a=[a,i]:(Qu=o,o=r);u.substr(Qu,2)===l?(o=l,Qu+=2):(o=r,0===ue&&se(au)),o!==r?e=t=[t,n,o]:(Qu=e,e=r)}else Qu=e,e=r;return e}())===r&&(e=ve()),ue--,e===r&&0===ue&&se(nu),e}function De(){var e,t,n,o,a,i;if(e=Qu,u.substr(Qu,2)===c?(t=c,Qu+=2):(t=r,0===ue&&se(ou)),t!==r){for(n=[],o=Qu,a=Qu,ue++,u.substr(Qu,2)===l?(i=l,Qu+=2):(i=r,0===ue&&se(au)),i===r&&(i=me()),ue--,i===r?a=void 0:(Qu=a,a=r),a!==r&&(i=ge())!==r?o=a=[a,i]:(Qu=o,o=r);o!==r;)n.push(o),o=Qu,a=Qu,ue++,u.substr(Qu,2)===l?(i=l,Qu+=2):(i=r,0===ue&&se(au)),i===r&&(i=me()),ue--,i===r?a=void 0:(Qu=a,a=r),a!==r&&(i=ge())!==r?o=a=[a,i]:(Qu=o,o=r);u.substr(Qu,2)===l?(o=l,Qu+=2):(o=r,0===ue&&se(au)),o!==r?e=t=[t,n,o]:(Qu=e,e=r)}else Qu=e,e=r;return e}function ve(){var e,t,n,o,a,i;if(e=Qu,"//"===u.substr(Qu,2)?(t="//",Qu+=2):(t=r,0===ue&&se(iu)),t!==r){for(n=[],o=Qu,a=Qu,ue++,i=me(),ue--,i===r?a=void 0:(Qu=a,a=r),a!==r&&(i=ge())!==r?o=a=[a,i]:(Qu=o,o=r);o!==r;)n.push(o),o=Qu,a=Qu,ue++,i=me(),ue--,i===r?a=void 0:(Qu=a,a=r),a!==r&&(i=ge())!==r?o=a=[a,i]:(Qu=o,o=r);e=t=[t,n]}else Qu=e,e=r;return e}function $e(){var u,e,t,n;if(ue++,u=Qu,(e=Se())!==r){for(t=[],n=ye();n!==r;)t.push(n),n=ye();qu=u,u=[e+t.join(""),ee()]}else Qu=u,u=r;return ue--,u===r&&(e=r,0===ue&&se(su)),u}function Se(){var e,t,n;return(e=function(){var e;return(e=function(){var e;return B.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(ju)),e}())===r&&(e=function(){var e;return g.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Iu)),e}())===r&&(e=function(){var e;return _.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Hu)),e}())===r&&(e=function(){var e;return F.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Mu)),e}())===r&&(e=function(){var e;return m.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(ku)),e}())===r&&(e=function(){var e;return S.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(zu)),e}()),e}())===r&&(36===u.charCodeAt(Qu)?(e="$",Qu++):(e=r,0===ue&&se(w)),e===r&&(95===u.charCodeAt(Qu)?(e="_",Qu++):(e=r,0===ue&&se(cu)),e===r&&(e=Qu,92===u.charCodeAt(Qu)?(t=p,Qu++):(t=r,0===ue&&se(lu)),t!==r&&(n=Ne())!==r?e=n:(Qu=e,e=r)))),e}function ye(){var e;return(e=Se())===r&&(e=function(){var e;return(e=function(){var e;return v.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Gu)),e}())===r&&(e=function(){var e;return D.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Uu)),e}()),e}())===r&&(e=function(){var e;return $.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Vu)),e}())===r&&(e=function(){var e;return y.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Wu)),e}())===r&&(8204===u.charCodeAt(Qu)?(e="‌",Qu++):(e=r,0===ue&&se(pu)),e===r&&(8205===u.charCodeAt(Qu)?(e="‍",Qu++):(e=r,0===ue&&se(Au)))),e}function xe(){var e,t,n,o;if(ue++,e=Qu,34===u.charCodeAt(Qu)?(t=A,Qu++):(t=r,0===ue&&se(Cu)),t!==r){for(n=[],o=be();o!==r;)n.push(o),o=be();34===u.charCodeAt(Qu)?(o=A,Qu++):(o=r,0===ue&&se(Cu)),o!==r?(qu=e,e=n.join("")):(Qu=e,e=r)}else Qu=e,e=r;if(e===r)if(e=Qu,39===u.charCodeAt(Qu)?(t=E,Qu++):(t=r,0===ue&&se(du)),t!==r){for(n=[],o=Pe();o!==r;)n.push(o),o=Pe();39===u.charCodeAt(Qu)?(o=E,Qu++):(o=r,0===ue&&se(du)),o!==r?(qu=e,e=n.join("")):(Qu=e,e=r)}else Qu=e,e=r;return ue--,e===r&&(t=r,0===ue&&se(hu)),e}function be(){var e,t,n,o;return e=Qu,t=Qu,n=Qu,ue++,34===u.charCodeAt(Qu)?(o=A,Qu++):(o=r,0===ue&&se(Cu)),o===r&&(92===u.charCodeAt(Qu)?(o=p,Qu++):(o=r,0===ue&&se(lu)),o===r&&(o=me())),ue--,o===r?n=void 0:(Qu=n,n=r),n!==r&&(o=ge())!==r?t=n=[n,o]:(Qu=t,t=r),(e=t!==r?u.substring(e,Qu):t)===r&&(e=Qu,92===u.charCodeAt(Qu)?(t=p,Qu++):(t=r,0===ue&&se(lu)),t!==r&&(n=Te())!==r?e=n:(Qu=e,e=r),e===r&&(e=Le())),e}function Pe(){var e,t,n,o;return e=Qu,t=Qu,n=Qu,ue++,39===u.charCodeAt(Qu)?(o=E,Qu++):(o=r,0===ue&&se(du)),o===r&&(92===u.charCodeAt(Qu)?(o=p,Qu++):(o=r,0===ue&&se(lu)),o===r&&(o=me())),ue--,o===r?n=void 0:(Qu=n,n=r),n!==r&&(o=ge())!==r?t=n=[n,o]:(Qu=t,t=r),(e=t!==r?u.substring(e,Qu):t)===r&&(e=Qu,92===u.charCodeAt(Qu)?(t=p,Qu++):(t=r,0===ue&&se(lu)),t!==r&&(n=Te())!==r?e=n:(Qu=e,e=r),e===r&&(e=Le())),e}function Re(){var e,t,n,o,a,i;return e=Qu,(t=Oe())!==r?(45===u.charCodeAt(Qu)?(n="-",Qu++):(n=r,0===ue&&se(Bu)),n!==r&&(o=Oe())!==r?(qu=e,i=o,(a=t).charCodeAt(0)>i.charCodeAt(0)&&te("Invalid character range: "+u.substring(qu,Qu)+"."),e=[a,i]):(Qu=e,e=r)):(Qu=e,e=r),e}function Oe(){var e,t,n,o;return e=Qu,t=Qu,n=Qu,ue++,93===u.charCodeAt(Qu)?(o="]",Qu++):(o=r,0===ue&&se(_u)),o===r&&(92===u.charCodeAt(Qu)?(o=p,Qu++):(o=r,0===ue&&se(lu)),o===r&&(o=me())),ue--,o===r?n=void 0:(Qu=n,n=r),n!==r&&(o=ge())!==r?t=n=[n,o]:(Qu=t,t=r),(e=t!==r?u.substring(e,Qu):t)===r&&(e=Qu,92===u.charCodeAt(Qu)?(t=p,Qu++):(t=r,0===ue&&se(lu)),t!==r&&(n=Te())!==r?e=n:(Qu=e,e=r),e===r&&(e=Le())),e}function Le(){var e,t;return e=Qu,92===u.charCodeAt(Qu)?(t=p,Qu++):(t=r,0===ue&&se(lu)),t!==r&&_e()!==r?(qu=e,e=""):(Qu=e,e=r),e}function Te(){var e,t,n,o;return e=function(){var e;return(e=we())===r&&(e=function(){var e,t,n,o;return e=Qu,t=Qu,n=Qu,ue++,o=function(){var e;return(e=we())===r&&(e=Ie())===r&&(120===u.charCodeAt(Qu)?(e="x",Qu++):(e=r,0===ue&&se(Pu)),e===r&&(117===u.charCodeAt(Qu)?(e="u",Qu++):(e=r,0===ue&&se(Ru)))),e}(),o===r&&(o=me()),ue--,o===r?n=void 0:(Qu=n,n=r),n!==r&&(o=ge())!==r?t=n=[n,o]:(Qu=t,t=r),e=t!==r?u.substring(e,Qu):t}()),e}(),e===r&&(e=Qu,48===u.charCodeAt(Qu)?(t="0",Qu++):(t=r,0===ue&&se(Du)),t!==r?(n=Qu,ue++,o=Ie(),ue--,o===r?n=void 0:(Qu=n,n=r),n!==r?(qu=e,e="\0"):(Qu=e,e=r)):(Qu=e,e=r),e===r&&(e=function(){var e,t,n,o,a,i,s;return e=Qu,120===u.charCodeAt(Qu)?(t="x",Qu++):(t=r,0===ue&&se(Pu)),t!==r?(n=Qu,o=Qu,(a=Me())!==r&&(i=Me())!==r?o=a=[a,i]:(Qu=o,o=r),(n=o!==r?u.substring(n,Qu):o)!==r?(qu=e,s=n,e=String.fromCharCode(parseInt(s,16))):(Qu=e,e=r)):(Qu=e,e=r),e}(),e===r&&(e=Ne()))),e}function we(){var e,t;return 39===u.charCodeAt(Qu)?(e=E,Qu++):(e=r,0===ue&&se(du)),e===r&&(34===u.charCodeAt(Qu)?(e=A,Qu++):(e=r,0===ue&&se(Cu)),e===r&&(92===u.charCodeAt(Qu)?(e=p,Qu++):(e=r,0===ue&&se(lu)),e===r&&(e=Qu,98===u.charCodeAt(Qu)?(t="b",Qu++):(t=r,0===ue&&se(vu)),t!==r&&(qu=e,t="\b"),(e=t)===r&&(e=Qu,102===u.charCodeAt(Qu)?(t="f",Qu++):(t=r,0===ue&&se($u)),t!==r&&(qu=e,t="\f"),(e=t)===r&&(e=Qu,110===u.charCodeAt(Qu)?(t="n",Qu++):(t=r,0===ue&&se(Su)),t!==r&&(qu=e,t="\n"),(e=t)===r&&(e=Qu,114===u.charCodeAt(Qu)?(t="r",Qu++):(t=r,0===ue&&se(yu)),t!==r&&(qu=e,t="\r"),(e=t)===r&&(e=Qu,116===u.charCodeAt(Qu)?(t="t",Qu++):(t=r,0===ue&&se(xu)),t!==r&&(qu=e,t="\t"),(e=t)===r&&(e=Qu,118===u.charCodeAt(Qu)?(t="v",Qu++):(t=r,0===ue&&se(bu)),t!==r&&(qu=e,t="\v"),e=t)))))))),e}function Ne(){var e,t,n,o,a,i,s,c,l;return e=Qu,117===u.charCodeAt(Qu)?(t="u",Qu++):(t=r,0===ue&&se(Ru)),t!==r?(n=Qu,o=Qu,(a=Me())!==r&&(i=Me())!==r&&(s=Me())!==r&&(c=Me())!==r?o=a=[a,i,s,c]:(Qu=o,o=r),(n=o!==r?u.substring(n,Qu):o)!==r?(qu=e,l=n,e=String.fromCharCode(parseInt(l,16))):(Qu=e,e=r)):(Qu=e,e=r),e}function Ie(){var e;return h.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Ou)),e}function Me(){var e;return C.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Lu)),e}function ke(){var e,t,n,o;return ue++,e=Qu,123===u.charCodeAt(Qu)?(t=i,Qu++):(t=r,0===ue&&se(b)),t!==r?(n=function(){var u,e;return u=Qu,e=He(),qu=u,e=[e,ee()]}(),125===u.charCodeAt(Qu)?(o=s,Qu++):(o=r,0===ue&&se(P)),o!==r?e=n:(Qu=e,e=r)):(Qu=e,e=r),ue--,e===r&&(t=r,0===ue&&se(wu)),e}function He(){var e,t,n,o,a,c;if(e=Qu,t=[],n=[],o=Qu,a=Qu,ue++,d.test(u.charAt(Qu))?(c=u.charAt(Qu),Qu++):(c=r,0===ue&&se(Nu)),ue--,c===r?a=void 0:(Qu=a,a=r),a!==r&&(c=ge())!==r?o=a=[a,c]:(Qu=o,o=r),o!==r)for(;o!==r;)n.push(o),o=Qu,a=Qu,ue++,d.test(u.charAt(Qu))?(c=u.charAt(Qu),Qu++):(c=r,0===ue&&se(Nu)),ue--,c===r?a=void 0:(Qu=a,a=r),a!==r&&(c=ge())!==r?o=a=[a,c]:(Qu=o,o=r);else n=r;for(n===r&&(n=Qu,123===u.charCodeAt(Qu)?(o=i,Qu++):(o=r,0===ue&&se(b)),o!==r?(a=He(),125===u.charCodeAt(Qu)?(c=s,Qu++):(c=r,0===ue&&se(P)),c!==r?n=o=[o,a,c]:(Qu=n,n=r)):(Qu=n,n=r));n!==r;){if(t.push(n),n=[],o=Qu,a=Qu,ue++,d.test(u.charAt(Qu))?(c=u.charAt(Qu),Qu++):(c=r,0===ue&&se(Nu)),ue--,c===r?a=void 0:(Qu=a,a=r),a!==r&&(c=ge())!==r?o=a=[a,c]:(Qu=o,o=r),o!==r)for(;o!==r;)n.push(o),o=Qu,a=Qu,ue++,d.test(u.charAt(Qu))?(c=u.charAt(Qu),Qu++):(c=r,0===ue&&se(Nu)),ue--,c===r?a=void 0:(Qu=a,a=r),a!==r&&(c=ge())!==r?o=a=[a,c]:(Qu=o,o=r);else n=r;n===r&&(n=Qu,123===u.charCodeAt(Qu)?(o=i,Qu++):(o=r,0===ue&&se(b)),o!==r?(a=He(),125===u.charCodeAt(Qu)?(c=s,Qu++):(c=r,0===ue&&se(P)),c!==r?n=o=[o,a,c]:(Qu=n,n=r)):(Qu=n,n=r))}return u.substring(e,Qu)}function je(){var u,e;for(u=[],(e=Fe())===r&&(e=_e())===r&&(e=Be());e!==r;)u.push(e),(e=Fe())===r&&(e=_e())===r&&(e=Be());return u}function Ue(){var e,t,n,o;return e=Qu,t=je(),59===u.charCodeAt(Qu)?(n=";",Qu++):(n=r,0===ue&&se(Ju)),n!==r?e=t=[t,n]:(Qu=e,e=r),e===r&&(e=Qu,t=function(){var u,e;for(u=[],(e=Fe())===r&&(e=De());e!==r;)u.push(e),(e=Fe())===r&&(e=De());return u}(),(n=ve())===r&&(n=null),(o=_e())!==r?e=t=[t,n,o]:(Qu=e,e=r),e===r&&(e=Qu,t=je(),n=function(){var e,t;return e=Qu,ue++,u.length>Qu?(t=u.charAt(Qu),Qu++):(t=r,0===ue&&se(G)),ue--,t===r?e=void 0:(Qu=e,e=r),e}(),n!==r?e=t=[t,n]:(Qu=e,e=r))),e}var Ge=e.reservedWords||[];if((t=a())!==r&&Qu===u.length)return t;throw t!==r&&Qu0){for(e=1,t=1;e0&&(this.functions.shift()(),setTimeout((function(){n.run()}),0))}},o={};n.add((function(){r.start(),o.totalInputSize=0,o.totalParseTime=0})),u.forEach((function(u){n.add(function(u){return function(){r.benchmarkStart(u),o.parser=peg.generate(r.readFile("../examples/"+u.id+".pegjs"),t),o.benchmarkInputSize=0,o.benchmarkParseTime=0}}(u)),u.tests.forEach((function(t){n.add(function(u,t){return function(){r.testStart(u,t);for(var n=r.readFile(u.id+"/"+t.file),a=0,i=0;i\n \n ").concat(null!==r?"":"","\n ").concat(t,"\n ").concat(null!==r?"":"","\n \n \n \n ").concat((n/1024).toFixed(2),"\n \n  kB\n \n \n \n ").concat(o.toFixed(2),"\n \n  ms\n \n \n \n ").concat((n/1024/(o/1e3)).toFixed(2),"\n \n  kB/s\n \n \n "))}var t=parseInt($("#run-count").val(),10),r={cache:$("#cache").is(":checked")};isNaN(t)||t<=0?alert("Number of runs must be a positive integer."):Runner.run(benchmarks,t,r,{readFile:function(u){return $.ajax({type:"GET",url:"https://raw.githubusercontent.com/peggyjs/peggy/".concat(BRANCH,"/benchmark/").concat(u),dataType:"text",async:!1}).responseText},testStart:function(){},testFinish:function(u,t,r,n){e("individual",t.title,"https://github.com/peggyjs/peggy/blob/".concat(BRANCH,"/benchmark/").concat(u.id,"/").concat(t.file),r,n)},benchmarkStart:function(e){u.append("\n \n \n ").concat(e.title,' \n \n "\n '))},benchmarkFinish:function(u,t,r){e("benchmark-total",u.title+" total",null,t,r)},start:function(){$("#run-count, #cache, #run").attr("disabled","disabled"),u.show(),$("#results-table tr").slice(1).remove()},finish:function(u,t){e("total","Total",null,u,t),$.scrollTo("max",{axis:"y",duration:500}),$("#run-count, #cache, #run").removeAttr("disabled")}})})),$(document).ready((function(){return $("#run").focus()})),browser_stub})); \ No newline at end of file +!function(e,u){"object"==typeof exports&&"undefined"!=typeof module?module.exports=u():"function"==typeof define&&define.amd?define(u):(e="undefined"!=typeof globalThis?globalThis:e||self).browser=u()}(this,(function(){var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},browser_stub={},__extends=commonjsGlobal&&commonjsGlobal.__extends||(extendStatics=function(e,u){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,u){e.__proto__=u}||function(e,u){for(var t in u)Object.prototype.hasOwnProperty.call(u,t)&&(e[t]=u[t])},extendStatics(e,u)},function(e,u){if("function"!=typeof u&&null!==u)throw new TypeError("Class extends value "+String(u)+" is not a constructor or null");function t(){this.constructor=e}extendStatics(e,u),e.prototype=null===u?Object.create(u):(t.prototype=u.prototype,new t)}),extendStatics,setProtoOf=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,u){e.__proto__=u}||function(e,u){for(var t in u)Object.prototype.hasOwnProperty.call(u,t)&&(e[t]=u[t])},GrammarError$3=function(e){function u(t,r,n){var o=e.call(this,t)||this;return setProtoOf(o,u.prototype),o.name="GrammarError",o.location=r,void 0===n&&(n=[]),o.diagnostics=n,o.stage=null,o.problems=[["error",t,r,n]],o}return __extends(u,e),u.prototype.toString=function(){var u=e.prototype.toString.call(this);this.location&&(u+="\n at ",void 0!==this.location.source&&null!==this.location.source&&(u+="".concat(this.location.source,":")),u+="".concat(this.location.start.line,":").concat(this.location.start.column));for(var t=0,r=this.diagnostics;t0?NEVER_MATCH$1:SOMETIMES_MATCH$1}var o=visitor$9.build({rule:function(e){var u,t=0;if(void 0===e.match){e.match=SOMETIMES_MATCH$1;do{if(u=e.match,e.match=o(e.expression),++t>6)throw new GrammarError$2("Infinity cycle detected when trying to evaluate node match result",e.location)}while(u!==e.match)}return e.match},named:r,choice:function(e){return e.match=n(e.alternatives,!0)},action:r,sequence:function(e){return e.match=n(e.elements,!1)},labeled:r,text:r,simple_and:r,simple_not:function(e){return e.match=-o(e.expression)},optional:t,zero_or_more:t,one_or_more:r,group:r,semantic_and:u,semantic_not:u,rule_ref:function(u){var t=asts$6.findRule(e,u.name);return u.match=o(t)},literal:function(e){var u=0===e.value.length?ALWAYS_MATCH$1:SOMETIMES_MATCH$1;return e.match=u},class:function(e){var u=0===e.parts.length?NEVER_MATCH$1:SOMETIMES_MATCH$1;return e.match=u},any:u});o(e)}inferenceMatchResult$1.ALWAYS_MATCH=ALWAYS_MATCH$1,inferenceMatchResult$1.SOMETIMES_MATCH=SOMETIMES_MATCH$1,inferenceMatchResult$1.NEVER_MATCH=NEVER_MATCH$1;var inferenceMatchResult_1=inferenceMatchResult$1,__spreadArray$2=commonjsGlobal&&commonjsGlobal.__spreadArray||function(e,u,t){if(t||2===arguments.length)for(var r,n=0,o=u.length;n1?E(SOMETIMES_MATCH,[op$1.IF_ERROR],A([op$1.POP],e(u.slice(1),t)),[]):[])}(e.alternatives,u)},action:function(e,u){var t=p(u.env),r="sequence"!==e.expression.type||0===e.expression.elements.length,n=F(e.expression,{sp:u.sp+(r?1:0),env:t,action:e}),o=0|e.expression.match,a=r&&o!==NEVER_MATCH?c(!1,Object.keys(t),e):null;return r?A([op$1.PUSH_CURR_POS],n,E(o,[op$1.IF_NOT_ERROR],A([op$1.LOAD_SAVED_POS,1],f(a,1,t,u.sp+2)),[]),[op$1.NIP]):n},sequence:function(e,u){return A([op$1.PUSH_CURR_POS],function u(t,r){if(t.length>0){var n=e.elements.length-t.length+1;return A(F(t[0],{sp:r.sp,env:r.env,pluck:r.pluck,action:null}),E(0|t[0].match,[op$1.IF_NOT_ERROR],u(t.slice(1),{sp:r.sp+1,env:r.env,pluck:r.pluck,action:r.action}),A(n>1?[op$1.POP_N,n]:[op$1.POP],[op$1.POP_CURR_POS],[op$1.PUSH_FAILED])))}if(r.pluck.length>0)return A([op$1.PLUCK,e.elements.length+1,r.pluck.length],r.pluck.map((function(e){return r.sp-e})));if(r.action){var o=c(!1,Object.keys(r.env),r.action);return A([op$1.LOAD_SAVED_POS,e.elements.length],f(o,e.elements.length+1,r.env,r.sp))}return A([op$1.WRAP,e.elements.length],[op$1.NIP])}(e.elements,{sp:u.sp+1,env:u.env,pluck:[],action:u.action}))},labeled:function(e,t){var r=t.env,n=e.label,o=t.sp+1;n&&(r=p(t.env),t.env[e.label]=o),e.pick&&t.pluck.push(o);var a=F(e.expression,{sp:t.sp,env:r,action:null});return n&&e.labelLocation&&u&&"source-and-map"===u.output?A([op$1.SOURCE_MAP_LABEL_PUSH,o,i(n),l(e.labelLocation)],a,[op$1.SOURCE_MAP_LABEL_POP,o]):a},text:function(e,u){return A([op$1.PUSH_CURR_POS],F(e.expression,{sp:u.sp+1,env:p(u.env),action:null}),E(0|e.match,[op$1.IF_NOT_ERROR],A([op$1.POP],[op$1.TEXT]),[op$1.NIP]))},simple_and:function(e,u){return h(e.expression,!1,u)},simple_not:function(e,u){return h(e.expression,!0,u)},optional:function(e,u){return A(F(e.expression,{sp:u.sp,env:p(u.env),action:null}),E(-(0|e.expression.match),[op$1.IF_ERROR],A([op$1.POP],[op$1.PUSH_NULL]),[]))},zero_or_more:function(e,u){var t=F(e.expression,{sp:u.sp+1,env:p(u.env),action:null});return A([op$1.PUSH_EMPTY_ARRAY],t,C(t),[op$1.POP])},one_or_more:function(e,u){var t=F(e.expression,{sp:u.sp+1,env:p(u.env),action:null});return A([op$1.PUSH_EMPTY_ARRAY],t,E(0|e.expression.match,[op$1.IF_NOT_ERROR],A(C(t),[op$1.POP]),A([op$1.POP],[op$1.POP],[op$1.PUSH_FAILED])))},group:function(e,u){return F(e.expression,{sp:u.sp,env:p(u.env),action:null})},semantic_and:function(e,u){return d(e,!1,u)},semantic_not:function(e,u){return d(e,!0,u)},rule_ref:function(u){return[op$1.RULE,asts$5.indexOfRule(e,u.name)]},literal:function(e){if(e.value.length>0){var u=0|e.match,t=u===SOMETIMES_MATCH||u===ALWAYS_MATCH&&!e.ignoreCase?i(e.ignoreCase?e.value.toLowerCase():e.value):null,r=u!==ALWAYS_MATCH?s({type:"literal",value:e.value,ignoreCase:e.ignoreCase}):null;return E(u,e.ignoreCase?[op$1.MATCH_STRING_IC,t]:[op$1.MATCH_STRING,t],e.ignoreCase?[op$1.ACCEPT_N,e.value.length]:[op$1.ACCEPT_STRING,t],[op$1.FAIL,r])}return[op$1.PUSH_EMPTY_STRING]},class:function(e){var u=0|e.match,t=u===SOMETIMES_MATCH?function(e){var u={value:e.parts,inverted:e.inverted,ignoreCase:e.ignoreCase},t=JSON.stringify(u),n=r.findIndex((function(e){return JSON.stringify(e)===t}));return-1===n?r.push(u)-1:n}(e):null,n=u!==ALWAYS_MATCH?s({type:"class",value:e.parts,inverted:e.inverted,ignoreCase:e.ignoreCase}):null;return E(u,[op$1.MATCH_CHAR_CLASS,t],[op$1.ACCEPT_N,1],[op$1.FAIL,n])},any:function(e){var u=0|e.match,t=u!==ALWAYS_MATCH?s({type:"any"}):null;return E(u,[op$1.MATCH_ANY],[op$1.ACCEPT_N,1],[op$1.FAIL,t])}},u&&"source-and-map"===u.output&&Object.entries(g).forEach((function(e){var u=e[0],t=e[1];g[u]=function(e){for(var u=[],r=1;r>>=VLQ_BASE_SHIFT,r>0&&(u|=VLQ_CONTINUATION_BIT),t+=base64$2.encode(u)}while(r>0);return t};var util$3={};function getArg(e,u,t){if(u in e)return e[u];if(3===arguments.length)return t;throw new Error('"'+u+'" is a required argument.')}util$3.getArg=getArg;const supportsNullProto=!("__proto__"in Object.create(null));function identity(e){return e}function toSetString(e){return isProtoString(e)?"$"+e:e}function fromSetString(e){return isProtoString(e)?e.slice(1):e}function isProtoString(e){if(!e)return!1;const u=e.length;if(u<9)return!1;if(95!==e.charCodeAt(u-1)||95!==e.charCodeAt(u-2)||111!==e.charCodeAt(u-3)||116!==e.charCodeAt(u-4)||111!==e.charCodeAt(u-5)||114!==e.charCodeAt(u-6)||112!==e.charCodeAt(u-7)||95!==e.charCodeAt(u-8)||95!==e.charCodeAt(u-9))return!1;for(let t=u-10;t>=0;t--)if(36!==e.charCodeAt(t))return!1;return!0}function strcmp(e,u){return e===u?0:null===e?1:null===u?-1:e>u?1:-1}function compareByGeneratedPositionsInflated(e,u){let t=e.generatedLine-u.generatedLine;return 0!==t?t:(t=e.generatedColumn-u.generatedColumn,0!==t?t:(t=strcmp(e.source,u.source),0!==t?t:(t=e.originalLine-u.originalLine,0!==t?t:(t=e.originalColumn-u.originalColumn,0!==t?t:strcmp(e.name,u.name)))))}util$3.toSetString=supportsNullProto?identity:toSetString,util$3.fromSetString=supportsNullProto?identity:fromSetString,util$3.compareByGeneratedPositionsInflated=compareByGeneratedPositionsInflated;const PROTOCOL="http:",PROTOCOL_AND_HOST=`${PROTOCOL}//host`;function createSafeHandler(e){return u=>{const t=getURLType(u),r=buildSafeBase(u),n=new URL(u,r);e(n);const o=n.toString();return"absolute"===t?o:"scheme-relative"===t?o.slice(PROTOCOL.length):"path-absolute"===t?o.slice(PROTOCOL_AND_HOST.length):computeRelativeURL(r,o)}}function withBase(e,u){return new URL(e,u).toString()}function buildUniqueSegment(e,u){let t=0;for(;;){const r=e+t++;if(-1===u.indexOf(r))return r}}function buildSafeBase(e){const u=e.split("..").length-1,t=buildUniqueSegment("p",e);let r=`${PROTOCOL_AND_HOST}/`;for(let e=0;e0&&!r[r.length-1]&&r.pop();t.length>0&&r.length>0&&t[0]===r[0];)t.shift(),r.shift();return r.map((()=>"..")).concat(t).join("/")+u.search+u.hash}const ensureDirectory=createSafeHandler((e=>{e.pathname=e.pathname.replace(/\/?$/,"/")})),normalize=createSafeHandler((e=>{}));function join(e,u){const t=getURLType(u),r=getURLType(e);if(e=ensureDirectory(e),"absolute"===t)return withBase(u,void 0);if("absolute"===r)return withBase(u,e);if("scheme-relative"===t)return normalize(u);if("scheme-relative"===r)return withBase(u,withBase(e,PROTOCOL_AND_HOST)).slice(PROTOCOL.length);if("path-absolute"===t)return normalize(u);if("path-absolute"===r)return withBase(u,withBase(e,PROTOCOL_AND_HOST)).slice(PROTOCOL_AND_HOST.length);const n=buildSafeBase(u+e);return computeRelativeURL(n,withBase(u,withBase(e,n)))}function relative(e,u){const t=relativeIfPossible(e,u);return"string"==typeof t?t:normalize(u)}function relativeIfPossible(e,u){if(getURLType(e)!==getURLType(u))return null;const t=buildSafeBase(e+u),r=new URL(e,t),n=new URL(u,t);try{new URL("",n.toString())}catch(e){return null}return n.protocol!==r.protocol||n.user!==r.user||n.password!==r.password||n.hostname!==r.hostname||n.port!==r.port?null:computeRelativeURL(r,n)}util$3.normalize=normalize,util$3.join=join,util$3.relative=relative;var arraySet={};class ArraySet$1{constructor(){this._array=[],this._set=new Map}static fromArray(e,u){const t=new ArraySet$1;for(let r=0,n=e.length;r=0)return u;throw new Error('"'+e+'" is not in the set.')}at(e){if(e>=0&&et||r==t&&o>=n||util$2.compareByGeneratedPositionsInflated(e,u)<=0}class MappingList$1{constructor(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}unsortedForEach(e,u){this._array.forEach(e,u)}add(e){generatedPositionAfter(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))}toArray(){return this._sorted||(this._array.sort(util$2.compareByGeneratedPositionsInflated),this._sorted=!0),this._array}}mappingList.MappingList=MappingList$1;const base64VLQ=base64Vlq,util$1=util$3,ArraySet=arraySet.ArraySet,MappingList=mappingList.MappingList;class SourceMapGenerator$1{constructor(e){e||(e={}),this._file=util$1.getArg(e,"file",null),this._sourceRoot=util$1.getArg(e,"sourceRoot",null),this._skipValidation=util$1.getArg(e,"skipValidation",!1),this._sources=new ArraySet,this._names=new ArraySet,this._mappings=new MappingList,this._sourcesContents=null}static fromSourceMap(e){const u=e.sourceRoot,t=new SourceMapGenerator$1({file:e.file,sourceRoot:u});return e.eachMapping((function(e){const r={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(r.source=e.source,null!=u&&(r.source=util$1.relative(u,r.source)),r.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(r.name=e.name)),t.addMapping(r)})),e.sources.forEach((function(r){let n=r;null!=u&&(n=util$1.relative(u,r)),t._sources.has(n)||t._sources.add(n);const o=e.sourceContentFor(r);null!=o&&t.setSourceContent(r,o)})),t}addMapping(e){const u=util$1.getArg(e,"generated"),t=util$1.getArg(e,"original",null);let r=util$1.getArg(e,"source",null),n=util$1.getArg(e,"name",null);this._skipValidation||this._validateMapping(u,t,r,n),null!=r&&(r=String(r),this._sources.has(r)||this._sources.add(r)),null!=n&&(n=String(n),this._names.has(n)||this._names.add(n)),this._mappings.add({generatedLine:u.line,generatedColumn:u.column,originalLine:t&&t.line,originalColumn:t&&t.column,source:r,name:n})}setSourceContent(e,u){let t=e;null!=this._sourceRoot&&(t=util$1.relative(this._sourceRoot,t)),null!=u?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[util$1.toSetString(t)]=u):this._sourcesContents&&(delete this._sourcesContents[util$1.toSetString(t)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))}applySourceMap(e,u,t){let r=u;if(null==u){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');r=e.file}const n=this._sourceRoot;null!=n&&(r=util$1.relative(n,r));const o=this._mappings.toArray().length>0?new ArraySet:this._sources,a=new ArraySet;this._mappings.unsortedForEach((function(u){if(u.source===r&&null!=u.originalLine){const r=e.originalPositionFor({line:u.originalLine,column:u.originalColumn});null!=r.source&&(u.source=r.source,null!=t&&(u.source=util$1.join(t,u.source)),null!=n&&(u.source=util$1.relative(n,u.source)),u.originalLine=r.line,u.originalColumn=r.column,null!=r.name&&(u.name=r.name))}const i=u.source;null==i||o.has(i)||o.add(i);const s=u.name;null==s||a.has(s)||a.add(s)}),this),this._sources=o,this._names=a,e.sources.forEach((function(u){const r=e.sourceContentFor(u);null!=r&&(null!=t&&(u=util$1.join(t,u)),null!=n&&(u=util$1.relative(n,u)),this.setSourceContent(u,r))}),this)}_validateMapping(e,u,t,r){if(u&&"number"!=typeof u.line&&"number"!=typeof u.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0&&!u&&!t&&!r);else if(!(e&&"line"in e&&"column"in e&&u&&"line"in u&&"column"in u&&e.line>0&&e.column>=0&&u.line>0&&u.column>=0&&t))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:t,original:u,name:r}))}_serializeMappings(){let e,u,t,r,n=0,o=1,a=0,i=0,s=0,c=0,l="";const p=this._mappings.toArray();for(let A=0,E=p.length;A0){if(!util$1.compareByGeneratedPositionsInflated(u,p[A-1]))continue;e+=","}e+=base64VLQ.encode(u.generatedColumn-n),n=u.generatedColumn,null!=u.source&&(r=this._sources.indexOf(u.source),e+=base64VLQ.encode(r-c),c=r,e+=base64VLQ.encode(u.originalLine-1-i),i=u.originalLine-1,e+=base64VLQ.encode(u.originalColumn-a),a=u.originalColumn,null!=u.name&&(t=this._names.indexOf(u.name),e+=base64VLQ.encode(t-s),s=t)),l+=e}return l}_generateSourcesContent(e,u){return e.map((function(e){if(!this._sourcesContents)return null;null!=u&&(e=util$1.relative(u,e));const t=util$1.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,t)?this._sourcesContents[t]:null}),this)}toJSON(){const e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e}toString(){return JSON.stringify(this.toJSON())}}SourceMapGenerator$1.prototype._version=3,sourceMapGenerator.SourceMapGenerator=SourceMapGenerator$1;var sourceNode={};const SourceMapGenerator=sourceMapGenerator.SourceMapGenerator,util=util$3,REGEX_NEWLINE=/(\r?\n)/,NEWLINE_CODE=10,isSourceNode="$$$isSourceNode$$$";class SourceNode$2{constructor(e,u,t,r,n){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==u?null:u,this.source=null==t?null:t,this.name=null==n?null:n,this[isSourceNode]=!0,null!=r&&this.add(r)}static fromStringWithSourceMap(e,u,t){const r=new SourceNode$2,n=e.split(REGEX_NEWLINE);let o=0;const a=function(){return e()+(e()||"");function e(){return o=0;u--)this.prepend(e[u]);else{if(!e[isSourceNode]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this}walk(e){let u;for(let t=0,r=this.children.length;t0){for(u=[],t=0;t' at an index ").concat(e,".\nBytecode: ").concat(this.bytecode));return this.varName+e},e.prototype.sourceNode=function(e,u,t){return new SourceNode$1(e.start.line,e.start.column?e.start.column-1:null,e.source,u,t)},e.prototype.push=function(e){++this.sp>this.maxSp&&(this.maxSp=this.sp);var u=this.labels[this.sp],t=[this.name(this.sp)," = ",e,";"];if(u){if(this.sourceMapStack.length){var r=this.sourceNode(u.location,t.splice(0,2),u.label),n=this.sourceMapPopInternal(),o=n.parts,a=n.location,i=a.start.offsetu.end.offset&&(t[2]={start:u.end,end:t[2].end,source:t[2].source})}this.sourceMapStack.push([e,e.length,u])},e.prototype.sourceMapPopInternal=function(){var e=this.sourceMapStack.pop(),u=e[0],t=e[1],r=e[2],n=u.splice(t).map((function(e){return e instanceof SourceNode$1?e:e+"\n"}));return n.length&&u.push(new SourceNode$1(r.start.line,r.start.column-1,r.source,n)),{parts:u,location:r}},e.prototype.sourceMapPop=function(e){var u=this.sourceMapPopInternal().location;if(this.sourceMapStack.length&&u.end.offset>2],n+=u[(3&e[o])<<4|e[o+1]>>4],n+=u[(15&e[o+1])<<2|e[o+2]>>6],n+=u[63&e[o+2]];return 1===t?(n+=u[e[r]>>2],n+=u[(3&e[r])<<4],n+="=="):2===t&&(n+=u[e[r]>>2],n+=u[(3&e[r])<<4|e[r+1]>>4],n+=u[(15&e[r+1])<<2],n+="="),n}utils.hex=hex,utils.stringEscape=stringEscape$1,utils.regexpClassEscape=regexpClassEscape$1,utils.base64=base64$1;var __spreadArray$1=commonjsGlobal&&commonjsGlobal.__spreadArray||function(e,u,t){if(t||2===arguments.length)for(var r,n=0,o=u.length;n0&&(t.forEach((function(e){o.push("var "+e+' = require("'+stringEscape(u.dependencies[e])+'");')})),o.push("")),o.push(e,"","module.exports = "+n()+";"),o},es:function(){var t=Object.keys(u.dependencies),n=r();return n.push(""),t.length>0&&(t.forEach((function(e){n.push("import "+e+' from "'+stringEscape(u.dependencies[e])+'";')})),n.push("")),n.push(e,"","export {"," peg$SyntaxError as SyntaxError,",u.trace?" peg$DefaultTracer as DefaultTracer,":""," peg$parse as parse","};"),n},amd:function(){var o=Object.keys(u.dependencies),a="["+o.map((function(e){return u.dependencies[e]})).map((function(e){return'"'+stringEscape(e)+'"'})).join(", ")+"]",i=o.join(", ");return __spreadArray$1(__spreadArray$1([],r(),!0),["define("+a+", function("+i+") {",' "use strict";',"",e,"",t("return "+n()+";"),"});"],!1)},globals:function(){return __spreadArray$1(__spreadArray$1([],r(),!0),["(function(root) {",' "use strict";',"",e,"",t("root."+u.exportVar+" = "+n()+";"),"})(this);"],!1)},umd:function(){var o=Object.keys(u.dependencies),a=o.map((function(e){return u.dependencies[e]})),i="["+a.map((function(e){return'"'+stringEscape(e)+'"'})).join(", ")+"]",s=a.map((function(e){return'require("'+stringEscape(e)+'")'})).join(", "),c=o.join(", "),l=r();return l.push("(function(root, factory) {",' if (typeof define === "function" && define.amd) {'," define("+i+", factory);",' } else if (typeof module === "object" && module.exports) {'," module.exports = factory("+s+");"),null!==u.exportVar&&l.push(" } else {"," root."+u.exportVar+" = factory();"),l.push(" }","})(this, function("+c+") {",' "use strict";',"",e,"",t("return "+n()+";"),"});"),l}},a=o[u.format]();return new SourceNode(null,null,u.grammarSource,a.map((function(e){return e instanceof SourceNode?e:e+"\n"})))}(function(){var c=[];e.topLevelInitializer&&(c.push(s(e.topLevelInitializer)),c.push("")),c.push("function peg$subclass(child, parent) {"," function C() { this.constructor = child; }"," C.prototype = parent.prototype;"," child.prototype = new C();","}","","function peg$SyntaxError(message, expected, found, location) {"," var self = Error.call(this, message);"," // istanbul ignore next Check is a necessary evil to support older environments"," if (Object.setPrototypeOf) {"," Object.setPrototypeOf(self, peg$SyntaxError.prototype);"," }"," self.expected = expected;"," self.found = found;"," self.location = location;",' self.name = "SyntaxError";'," return self;","}","","peg$subclass(peg$SyntaxError, Error);","","function peg$padEnd(str, targetLength, padString) {",' padString = padString || " ";'," if (str.length > targetLength) { return str; }"," targetLength -= str.length;"," padString += padString.repeat(targetLength);"," return str + padString.slice(0, targetLength);","}","","peg$SyntaxError.prototype.format = function(sources) {",' var str = "Error: " + this.message;'," if (this.location) {"," var src = null;"," var k;"," for (k = 0; k < sources.length; k++) {"," if (sources[k].source === this.location.source) {"," src = sources[k].text.split(/\\r\\n|\\n|\\r/g);"," break;"," }"," }"," var s = this.location.start;",' var loc = this.location.source + ":" + s.line + ":" + s.column;'," if (src) {"," var e = this.location.end;"," var filler = peg$padEnd(\"\", s.line.toString().length, ' ');"," var line = src[s.line - 1];"," var last = s.line === e.line ? e.column : line.length + 1;"," var hatLen = (last - s.column) || 1;",' str += "\\n --\x3e " + loc + "\\n"',' + filler + " |\\n"',' + s.line + " | " + line + "\\n"',' + filler + " | " + peg$padEnd("", s.column - 1, \' \')',' + peg$padEnd("", hatLen, "^");'," } else {",' str += "\\n at " + loc;'," }"," }"," return str;","};","","peg$SyntaxError.buildMessage = function(expected, found) {"," var DESCRIBE_EXPECTATION_FNS = {"," literal: function(expectation) {",' return "\\"" + literalEscape(expectation.text) + "\\"";'," },",""," class: function(expectation) {"," var escapedParts = expectation.parts.map(function(part) {"," return Array.isArray(part)",' ? classEscape(part[0]) + "-" + classEscape(part[1])'," : classEscape(part);"," });","",' return "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]";'," },",""," any: function() {",' return "any character";'," },",""," end: function() {",' return "end of input";'," },",""," other: function(expectation) {"," return expectation.description;"," }"," };",""," function hex(ch) {"," return ch.charCodeAt(0).toString(16).toUpperCase();"," }",""," function literalEscape(s) {"," return s",' .replace(/\\\\/g, "\\\\\\\\")',' .replace(/"/g, "\\\\\\"")',' .replace(/\\0/g, "\\\\0")',' .replace(/\\t/g, "\\\\t")',' .replace(/\\n/g, "\\\\n")',' .replace(/\\r/g, "\\\\r")',' .replace(/[\\x00-\\x0F]/g, function(ch) { return "\\\\x0" + hex(ch); })',' .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return "\\\\x" + hex(ch); });'," }",""," function classEscape(s) {"," return s",' .replace(/\\\\/g, "\\\\\\\\")',' .replace(/\\]/g, "\\\\]")',' .replace(/\\^/g, "\\\\^")',' .replace(/-/g, "\\\\-")',' .replace(/\\0/g, "\\\\0")',' .replace(/\\t/g, "\\\\t")',' .replace(/\\n/g, "\\\\n")',' .replace(/\\r/g, "\\\\r")',' .replace(/[\\x00-\\x0F]/g, function(ch) { return "\\\\x0" + hex(ch); })',' .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return "\\\\x" + hex(ch); });'," }",""," function describeExpectation(expectation) {"," return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);"," }",""," function describeExpected(expected) {"," var descriptions = expected.map(describeExpectation);"," var i, j;",""," descriptions.sort();",""," if (descriptions.length > 0) {"," for (i = 1, j = 1; i < descriptions.length; i++) {"," if (descriptions[i - 1] !== descriptions[i]) {"," descriptions[j] = descriptions[i];"," j++;"," }"," }"," descriptions.length = j;"," }",""," switch (descriptions.length) {"," case 1:"," return descriptions[0];",""," case 2:",' return descriptions[0] + " or " + descriptions[1];',""," default:",' return descriptions.slice(0, -1).join(", ")',' + ", or "'," + descriptions[descriptions.length - 1];"," }"," }",""," function describeFound(found) {",' return found ? "\\"" + literalEscape(found) + "\\"" : "end of input";'," }","",' return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";',"};",""),u.trace&&c.push("function peg$DefaultTracer() {"," this.indentLevel = 0;","}","","peg$DefaultTracer.prototype.trace = function(event) {"," var that = this;",""," function log(event) {"," function repeat(string, n) {",' var result = "", i;',""," for (i = 0; i < n; i++) {"," result += string;"," }",""," return result;"," }",""," function pad(string, length) {",' return string + repeat(" ", length - string.length);'," }","",' if (typeof console === "object") {'," console.log(",' event.location.start.line + ":" + event.location.start.column + "-"',' + event.location.end.line + ":" + event.location.end.column + " "',' + pad(event.type, 10) + " "',' + repeat(" ", that.indentLevel) + event.rule'," );"," }"," }",""," switch (event.type) {",' case "rule.enter":'," log(event);"," this.indentLevel++;"," break;","",' case "rule.match":'," this.indentLevel--;"," log(event);"," break;","",' case "rule.fail":'," this.indentLevel--;"," log(event);"," break;",""," default:",' throw new Error("Invalid event type: " + event.type + ".");'," }","};","");var l="{ "+u.allowedStartRules.map((function(e){return e+": "+i(e)})).join(", ")+" }",p=i(u.allowedStartRules[0]);return c.push("function peg$parse(input, options) {"," options = options !== undefined ? options : {};",""," var peg$FAILED = {};"," var peg$source = options.grammarSource;",""," var peg$startRuleFunctions = "+l+";"," var peg$startRuleFunction = "+p+";","",new SourceNode(null,null,u.grammarSource,[e.literals.map((function(e,u){return" var "+r(u)+' = "'+stringEscape(e)+'";'})).concat("",e.classes.map((function(e,u){return" var "+n(u)+" = /^["+((t=e).inverted?"^":"")+t.value.map((function(e){return Array.isArray(e)?regexpClassEscape(e[0])+"-"+regexpClassEscape(e[1]):regexpClassEscape(e)})).join("")+"]/"+(t.ignoreCase?"i":"")+";";var t}))).concat("",e.expectations.map((function(e,u){return" var "+o(u)+" = "+function(e){switch(e.type){case"rule":return'peg$otherExpectation("'+stringEscape(e.value)+'")';case"literal":return'peg$literalExpectation("'+stringEscape(e.value)+'", '+e.ignoreCase+")";case"class":return"peg$classExpectation(["+e.value.map((function(e){return Array.isArray(e)?'["'+stringEscape(e[0])+'", "'+stringEscape(e[1])+'"]':'"'+stringEscape(e)+'"'})).join(", ")+"], "+e.inverted+", "+e.ignoreCase+")";case"any":return"peg$anyExpectation()";default:throw new Error("Unknown expectation type ("+JSON.stringify(e)+")")}}(e)+";"}))).concat("").join("\n"),e.functions.map((function(e,u){return wrapInSourceNode("\n var ".concat(a(u)," = function(").concat(e.params.join(", "),") {"),e.body,e.location,"};")}))]),""," var peg$currPos = 0;"," var peg$savedPos = 0;"," var peg$posDetailsCache = [{ line: 1, column: 1 }];"," var peg$maxFailPos = 0;"," var peg$maxFailExpected = [];"," var peg$silentFails = 0;",""),u.cache&&c.push(" var peg$resultsCache = {};",""),u.trace&&c.push(' var peg$tracer = "tracer" in options ? options.tracer : new peg$DefaultTracer();',""),c.push(" var peg$result;","",' if ("startRule" in options) {'," if (!(options.startRule in peg$startRuleFunctions)) {",' throw new Error("Can\'t start parsing from rule \\"" + options.startRule + "\\".");'," }",""," peg$startRuleFunction = peg$startRuleFunctions[options.startRule];"," }",""," function text() {"," return input.substring(peg$savedPos, peg$currPos);"," }",""," function offset() {"," return peg$savedPos;"," }",""," function range() {"," return {"," source: peg$source,"," start: peg$savedPos,"," end: peg$currPos"," };"," }",""," function location() {"," return peg$computeLocation(peg$savedPos, peg$currPos);"," }",""," function expected(description, location) {"," location = location !== undefined"," ? location"," : peg$computeLocation(peg$savedPos, peg$currPos);",""," throw peg$buildStructuredError("," [peg$otherExpectation(description)],"," input.substring(peg$savedPos, peg$currPos),"," location"," );"," }",""," function error(message, location) {"," location = location !== undefined"," ? location"," : peg$computeLocation(peg$savedPos, peg$currPos);",""," throw peg$buildSimpleError(message, location);"," }",""," function peg$literalExpectation(text, ignoreCase) {",' return { type: "literal", text: text, ignoreCase: ignoreCase };'," }",""," function peg$classExpectation(parts, inverted, ignoreCase) {",' return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase };'," }",""," function peg$anyExpectation() {",' return { type: "any" };'," }",""," function peg$endExpectation() {",' return { type: "end" };'," }",""," function peg$otherExpectation(description) {",' return { type: "other", description: description };'," }",""," function peg$computePosDetails(pos) {"," var details = peg$posDetailsCache[pos];"," var p;",""," if (details) {"," return details;"," } else {"," p = pos - 1;"," while (!peg$posDetailsCache[p]) {"," p--;"," }",""," details = peg$posDetailsCache[p];"," details = {"," line: details.line,"," column: details.column"," };",""," while (p < pos) {"," if (input.charCodeAt(p) === 10) {"," details.line++;"," details.column = 1;"," } else {"," details.column++;"," }",""," p++;"," }",""," peg$posDetailsCache[pos] = details;",""," return details;"," }"," }",""," function peg$computeLocation(startPos, endPos) {"," var startPosDetails = peg$computePosDetails(startPos);"," var endPosDetails = peg$computePosDetails(endPos);",""," return {"," source: peg$source,"," start: {"," offset: startPos,"," line: startPosDetails.line,"," column: startPosDetails.column"," },"," end: {"," offset: endPos,"," line: endPosDetails.line,"," column: endPosDetails.column"," }"," };"," }",""," function peg$fail(expected) {"," if (peg$currPos < peg$maxFailPos) { return; }",""," if (peg$currPos > peg$maxFailPos) {"," peg$maxFailPos = peg$currPos;"," peg$maxFailExpected = [];"," }",""," peg$maxFailExpected.push(expected);"," }",""," function peg$buildSimpleError(message, location) {"," return new peg$SyntaxError(message, null, null, location);"," }",""," function peg$buildStructuredError(expected, found, location) {"," return new peg$SyntaxError("," peg$SyntaxError.buildMessage(expected, found),"," expected,"," found,"," location"," );"," }",""),e.rules.forEach((function(s){c.push.apply(c,t(function(s){var c=[],l=new Stack(s.name,"s","var",s.bytecode),p=function u(c){var p,A=0,E=c.length,f=[];function h(e,r){var n,o,a=r+3,i=c[A+a-2],s=c[A+a-1];l.checkedIf(A,(function(){A+=a,n=u(c.slice(A,A+i)),A+=i}),s>0?function(){o=u(c.slice(A,A+s)),A+=s}:null),f.push("if ("+e+") {"),f.push.apply(f,t(n)),s>0&&(f.push("} else {"),f.push.apply(f,t(o))),f.push("}")}function d(e){var r,n=c[A+2-1];l.checkedLoop(A,(function(){A+=2,r=u(c.slice(A,A+n)),A+=n})),f.push("while ("+e+") {"),f.push.apply(f,t(r)),f.push("}")}function C(){var e=c[A+4-1],u=a(c[A+1])+"("+c.slice(A+4,A+4+e).map((function(e){return l.index(e)})).join(", ")+")";l.pop(c[A+2]),f.push(l.push(u)),A+=4+e}for(;A peg$currPos",0);break;case op.MATCH_STRING:h(e.literals[c[A+1]].length>1?"input.substr(peg$currPos, "+e.literals[c[A+1]].length+") === "+r(c[A+1]):"input.charCodeAt(peg$currPos) === "+e.literals[c[A+1]].charCodeAt(0),1);break;case op.MATCH_STRING_IC:h("input.substr(peg$currPos, "+e.literals[c[A+1]].length+").toLowerCase() === "+r(c[A+1]),1);break;case op.MATCH_CHAR_CLASS:h(n(c[A+1])+".test(input.charAt(peg$currPos))",1);break;case op.ACCEPT_N:f.push(l.push(c[A+1]>1?"input.substr(peg$currPos, "+c[A+1]+")":"input.charAt(peg$currPos)")),f.push(c[A+1]>1?"peg$currPos += "+c[A+1]+";":"peg$currPos++;"),A+=2;break;case op.ACCEPT_STRING:f.push(l.push(r(c[A+1]))),f.push(e.literals[c[A+1]].length>1?"peg$currPos += "+e.literals[c[A+1]].length+";":"peg$currPos++;"),A+=2;break;case op.FAIL:f.push(l.push("peg$FAILED")),f.push("if (peg$silentFails === 0) { peg$fail("+o(c[A+1])+"); }"),A+=2;break;case op.LOAD_SAVED_POS:f.push("peg$savedPos = "+l.index(c[A+1])+";"),A+=2;break;case op.UPDATE_SAVED_POS:f.push("peg$savedPos = peg$currPos;"),A++;break;case op.CALL:C();break;case op.RULE:f.push(l.push(i(e.rules[c[A+1]].name)+"()")),A+=2;break;case op.SILENT_FAILS_ON:f.push("peg$silentFails++;"),A++;break;case op.SILENT_FAILS_OFF:f.push("peg$silentFails--;"),A++;break;case op.SOURCE_MAP_PUSH:l.sourceMapPush(f,e.locations[c[A+1]]),A+=2;break;case op.SOURCE_MAP_POP:l.sourceMapPop(),A++;break;case op.SOURCE_MAP_LABEL_PUSH:l.labels[c[A+1]]={label:e.literals[c[A+2]],location:e.locations[c[A+3]]},A+=4;break;case op.SOURCE_MAP_LABEL_POP:delete l.labels[c[A+1]],A+=2;break;default:throw new Error("Invalid opcode: "+c[A]+".",{rule:s.name,bytecode:c})}return f}(s.bytecode);return c.push(wrapInSourceNode("function ",i(s.name),s.nameLocation,"() {\n",s.name)),u.trace&&c.push(" var startPos = peg$currPos;"),c.push(t(l.defines())),c.push.apply(c,t(function(t,r){var n=[];return n.push(""),u.trace&&n.push("peg$tracer.trace({",' type: "rule.enter",'," rule: "+t+","," location: peg$computeLocation(startPos, startPos)","});",""),u.cache&&(n.push("var key = peg$currPos * "+e.rules.length+" + "+r+";","var cached = peg$resultsCache[key];","","if (cached) {"," peg$currPos = cached.nextPos;",""),u.trace&&n.push("if (cached.result !== peg$FAILED) {"," peg$tracer.trace({",' type: "rule.match",'," rule: "+t+","," result: cached.result,"," location: peg$computeLocation(startPos, peg$currPos)"," });","} else {"," peg$tracer.trace({",' type: "rule.fail",'," rule: "+t+","," location: peg$computeLocation(startPos, startPos)"," });","}",""),n.push(" return cached.result;","}","")),n}('"'+stringEscape(s.name)+'"',asts$4.indexOfRule(e,s.name)))),c.push.apply(c,t(p)),c.push.apply(c,t(function(e,t){var r=[];return u.cache&&r.push("","peg$resultsCache[key] = { nextPos: peg$currPos, result: "+t+" };"),u.trace&&r.push("","if ("+t+" !== peg$FAILED) {"," peg$tracer.trace({",' type: "rule.match",'," rule: "+e+","," result: "+t+","," location: peg$computeLocation(startPos, peg$currPos)"," });","} else {"," peg$tracer.trace({",' type: "rule.fail",'," rule: "+e+","," location: peg$computeLocation(startPos, startPos)"," });","}"),r.push("","return "+t+";"),r}('"'+stringEscape(s.name)+'"',l.result()))),c.push("}"),c}(s))),c.push("")})),e.initializer&&(c.push(s(e.initializer)),c.push("")),c.push(" peg$result = peg$startRuleFunction();",""," if (peg$result !== peg$FAILED && peg$currPos === input.length) {"," return peg$result;"," } else {"," if (peg$result !== peg$FAILED && peg$currPos < input.length) {"," peg$fail(peg$endExpectation());"," }",""," throw peg$buildStructuredError("," peg$maxFailExpected,"," peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,"," peg$maxFailPos < input.length"," ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)"," : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)"," );"," }","}"),new SourceNode(null,null,u.grammarSource,c.map((function(e){return e instanceof SourceNode?e:e+"\n"})))}())}var generateJs=generateJS$1,asts$3=asts_1,visitor$7=visitor_1;function removeProxyRules$1(e,u,t){var r=[];e.rules.forEach((function(n,o){var a;"rule"===(a=n).type&&"rule_ref"===a.expression.type&&(function(e,u,r){visitor$7.build({rule_ref:function(n){n.name===u&&(n.name=r,t.info('Proxy rule "'.concat(u,'" replaced by the rule "').concat(r,'"'),n.location,[{message:"This rule will be used",location:asts$3.findRule(e,r).nameLocation}]))}})(e)}(e,n.name,n.expression.name),-1===u.allowedStartRules.indexOf(n.name)&&r.push(o))})),r.reverse(),r.forEach((function(u){e.rules.splice(u,1)}))}var removeProxyRules_1=removeProxyRules$1,visitor$6=visitor_1;function reportDuplicateLabels$1(e,u,t){function r(e){var u={};return Object.keys(e).forEach((function(t){u[t]=e[t]})),u}function n(e,u){o(e.expression,r(u))}var o=visitor$6.build({rule:function(e){o(e.expression,{})},choice:function(e,u){e.alternatives.forEach((function(e){o(e,r(u))}))},action:n,labeled:function(e,u){var r=e.label;r&&Object.prototype.hasOwnProperty.call(u,r)&&t.error('Label "'.concat(e.label,'" is already defined'),e.labelLocation,[{message:"Original label location",location:u[r]}]),o(e.expression,u),u[e.label]=e.labelLocation},text:n,simple_and:n,simple_not:n,optional:n,zero_or_more:n,one_or_more:n,group:n});o(e)}var reportDuplicateLabels_1=reportDuplicateLabels$1,visitor$5=visitor_1;function reportDuplicateRules$1(e,u,t){var r={};visitor$5.build({rule:function(e){Object.prototype.hasOwnProperty.call(r,e.name)?t.error('Rule "'.concat(e.name,'" is already defined'),e.nameLocation,[{message:"Original rule location",location:r[e.name]}]):r[e.name]=e.nameLocation}})(e)}var reportDuplicateRules_1=reportDuplicateRules$1,asts$2=asts_1,visitor$4=visitor_1;function reportInfiniteRecursion$1(e,u,t){var r=[],n=[],o=visitor$4.build({rule:function(e){r.push(e.name),o(e.expression),r.pop()},sequence:function(u){u.elements.every((function(u){return o(u),!asts$2.alwaysConsumesOnSuccess(e,u)}))},rule_ref:function(u){n.push(u);var a=asts$2.findRule(e,u.name);if(-1!==r.indexOf(u.name))return r.push(u.name),void t.error("Possible infinite loop when parsing (left recursion: "+r.join(" -> ")+")",a.nameLocation,n.map((function(e,u,t){return{message:u+1!==t.length?"Step ".concat(u+1,': call of the rule "').concat(e.name,'" without input consumption'):"Step ".concat(u+1,": call itself without input consumption - left recursion"),location:e.location}})));a&&o(a),n.pop()}});o(e)}var reportInfiniteRecursion_1=reportInfiniteRecursion$1,asts$1=asts_1,visitor$3=visitor_1;function reportInfiniteRepetition$1(e,u,t){visitor$3.build({zero_or_more:function(u){asts$1.alwaysConsumesOnSuccess(e,u.expression)||t.error("Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",u.location)},one_or_more:function(u){asts$1.alwaysConsumesOnSuccess(e,u.expression)||t.error("Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",u.location)}})(e)}var reportInfiniteRepetition_1=reportInfiniteRepetition$1,asts=asts_1,visitor$2=visitor_1;function reportUndefinedRules$1(e,u,t){visitor$2.build({rule_ref:function(u){asts.findRule(e,u.name)||t.error('Rule "'.concat(u.name,'" is not defined'),u.location)}})(e)}var reportUndefinedRules_1=reportUndefinedRules$1,visitor$1=visitor_1;function reportIncorrectPlucking$1(e,u,t){var r=visitor$1.build({action:function(e){r(e.expression,e)},labeled:function(e,u){e.pick&&u&&t.error('"@" cannot be used with an action block',e.labelLocation,[{message:"Action block location",location:u.codeLocation}]),r(e.expression)}});r(e)}var reportIncorrectPlucking_1=reportIncorrectPlucking$1,__spreadArray=commonjsGlobal&&commonjsGlobal.__spreadArray||function(e,u,t){if(t||2===arguments.length)for(var r,n=0,o=u.length;nu?e:(u-=e.length,e+(t+=t.repeat(u)).slice(0,u))}function peg$parse(e,u){var t,r={},n=(u=void 0!==u?u:{}).grammarSource,o={Grammar:cu},a=cu,i="{",s="}",c="/*",l="*/",p="\\",A='"',E="'",f=/^[\n\r\u2028\u2029]/,h=/^[0-9]/,d=/^[0-9a-f]/i,C=/^[{}]/,g=/^[a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137-\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148-\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C-\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA-\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9-\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC-\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF-\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F-\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0-\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB-\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE-\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0561-\u0587\u13F8-\u13FD\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6-\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FC7\u1FD0-\u1FD3\u1FD6-\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6-\u1FF7\u210A\u210E-\u210F\u2113\u212F\u2134\u2139\u213C-\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65-\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73-\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3-\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7B5\uA7B7\uA7FA\uAB30-\uAB5A\uAB60-\uAB65\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A]/,F=/^[\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5-\u06E6\u07F4-\u07F5\u07FA\u081A\u0824\u0828\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C-\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D-\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA69C-\uA69D\uA717-\uA71F\uA770\uA788\uA7F8-\uA7F9\uA9CF\uA9E6\uAA70\uAADD\uAAF3-\uAAF4\uAB5C-\uAB5F\uFF70\uFF9E-\uFF9F]/,m=/^[\xAA\xBA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05F0-\u05F2\u0620-\u063F\u0641-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0-\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60-\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0CF1-\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u10D0-\u10FA\u10FD-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5-\u1CF6\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A-\uA62B\uA66E\uA6A0-\uA6E5\uA78F\uA7F7\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9E0-\uA9E4\uA9E7-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,_=/^[\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC]/,B=/^[A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178-\u0179\u017B\u017D\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018B\u018E-\u0191\u0193-\u0194\u0196-\u0198\u019C-\u019D\u019F-\u01A0\u01A2\u01A4\u01A6-\u01A7\u01A9\u01AC\u01AE-\u01AF\u01B1-\u01B3\u01B5\u01B7-\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A-\u023B\u023D-\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E-\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9-\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0-\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E-\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D-\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AD\uA7B0-\uA7B4\uA7B6\uFF21-\uFF3A]/,v=/^[\u0903\u093B\u093E-\u0940\u0949-\u094C\u094E-\u094F\u0982-\u0983\u09BE-\u09C0\u09C7-\u09C8\u09CB-\u09CC\u09D7\u0A03\u0A3E-\u0A40\u0A83\u0ABE-\u0AC0\u0AC9\u0ACB-\u0ACC\u0B02-\u0B03\u0B3E\u0B40\u0B47-\u0B48\u0B4B-\u0B4C\u0B57\u0BBE-\u0BBF\u0BC1-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD7\u0C01-\u0C03\u0C41-\u0C44\u0C82-\u0C83\u0CBE\u0CC0-\u0CC4\u0CC7-\u0CC8\u0CCA-\u0CCB\u0CD5-\u0CD6\u0D02-\u0D03\u0D3E-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D57\u0D82-\u0D83\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DF2-\u0DF3\u0F3E-\u0F3F\u0F7F\u102B-\u102C\u1031\u1038\u103B-\u103C\u1056-\u1057\u1062-\u1064\u1067-\u106D\u1083-\u1084\u1087-\u108C\u108F\u109A-\u109C\u17B6\u17BE-\u17C5\u17C7-\u17C8\u1923-\u1926\u1929-\u192B\u1930-\u1931\u1933-\u1938\u1A19-\u1A1A\u1A55\u1A57\u1A61\u1A63-\u1A64\u1A6D-\u1A72\u1B04\u1B35\u1B3B\u1B3D-\u1B41\u1B43-\u1B44\u1B82\u1BA1\u1BA6-\u1BA7\u1BAA\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2-\u1BF3\u1C24-\u1C2B\u1C34-\u1C35\u1CE1\u1CF2-\u1CF3\u302E-\u302F\uA823-\uA824\uA827\uA880-\uA881\uA8B4-\uA8C3\uA952-\uA953\uA983\uA9B4-\uA9B5\uA9BA-\uA9BB\uA9BD-\uA9C0\uAA2F-\uAA30\uAA33-\uAA34\uAA4D\uAA7B\uAA7D\uAAEB\uAAEE-\uAAEF\uAAF5\uABE3-\uABE4\uABE6-\uABE7\uABE9-\uABEA\uABEC]/,D=/^[\u0300-\u036F\u0483-\u0487\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962-\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2-\u09E3\u0A01-\u0A02\u0A3C\u0A41-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A51\u0A70-\u0A71\u0A75\u0A81-\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7-\u0AC8\u0ACD\u0AE2-\u0AE3\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62-\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C62-\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC-\u0CCD\u0CE2-\u0CE3\u0D01\u0D41-\u0D44\u0D4D\u0D62-\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB-\u0EBC\u0EC8-\u0ECD\u0F18-\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86-\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039-\u103A\u103D-\u103E\u1058-\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17B4-\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193B\u1A17-\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABD\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80-\u1B81\u1BA2-\u1BA5\u1BA8-\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8-\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8-\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099-\u309A\uA66F\uA674-\uA67D\uA69E-\uA69F\uA6F0-\uA6F1\uA802\uA806\uA80B\uA825-\uA826\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9E5\uAA29-\uAA2E\uAA31-\uAA32\uAA35-\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7-\uAAB8\uAABE-\uAABF\uAAC1\uAAEC-\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/,$=/^[0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]/,S=/^[\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF]/,y=/^[_\u203F-\u2040\u2054\uFE33-\uFE34\uFE4D-\uFE4F\uFF3F]/,b=/^[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000]/,P=ru("{",!1),x=ru("}",!1),R=ru("=",!1),O=ru("/",!1),L=ru("@",!1),T=ru(":",!1),w=ru("$",!1),N=ru("&",!1),M=ru("!",!1),I=ru("?",!1),k=ru("*",!1),H=ru("+",!1),U=ru("(",!1),j=ru(")",!1),G={type:"any"},V=ou("whitespace"),z=ru("\t",!1),W=ru("\v",!1),Y=ru("\f",!1),J=ru(" ",!1),Q=ru(" ",!1),q=ru("\ufeff",!1),X=nu(["\n","\r","\u2028","\u2029"],!1,!1),K=ou("end of line"),Z=ru("\n",!1),ee=ru("\r\n",!1),ue=ru("\r",!1),te=ru("\u2028",!1),re=ru("\u2029",!1),ne=ou("comment"),oe=ru("/*",!1),ae=ru("*/",!1),ie=ru("//",!1),se=ou("identifier"),ce=ru("_",!1),le=ru("\\",!1),pe=ru("‌",!1),Ae=ru("‍",!1),Ee=ou("literal"),fe=ru("i",!1),he=ou("string"),de=ru('"',!1),Ce=ru("'",!1),ge=ou("character class"),Fe=ru("[",!1),me=ru("^",!1),_e=ru("]",!1),Be=ru("-",!1),ve=ru("0",!1),De=ru("b",!1),$e=ru("f",!1),Se=ru("n",!1),ye=ru("r",!1),be=ru("t",!1),Pe=ru("v",!1),xe=ru("x",!1),Re=ru("u",!1),Oe=nu([["0","9"]],!1,!1),Le=nu([["0","9"],["a","f"]],!1,!0),Te=ru(".",!1),we=ou("code block"),Ne=nu(["{","}"],!1,!1),Me=nu([["a","z"],"µ",["ß","ö"],["ø","ÿ"],"ā","ă","ą","ć","ĉ","ċ","č","ď","đ","ē","ĕ","ė","ę","ě","ĝ","ğ","ġ","ģ","ĥ","ħ","ĩ","ī","ĭ","į","ı","ij","ĵ",["ķ","ĸ"],"ĺ","ļ","ľ","ŀ","ł","ń","ņ",["ň","ʼn"],"ŋ","ō","ŏ","ő","œ","ŕ","ŗ","ř","ś","ŝ","ş","š","ţ","ť","ŧ","ũ","ū","ŭ","ů","ű","ų","ŵ","ŷ","ź","ż",["ž","ƀ"],"ƃ","ƅ","ƈ",["ƌ","ƍ"],"ƒ","ƕ",["ƙ","ƛ"],"ƞ","ơ","ƣ","ƥ","ƨ",["ƪ","ƫ"],"ƭ","ư","ƴ","ƶ",["ƹ","ƺ"],["ƽ","ƿ"],"dž","lj","nj","ǎ","ǐ","ǒ","ǔ","ǖ","ǘ","ǚ",["ǜ","ǝ"],"ǟ","ǡ","ǣ","ǥ","ǧ","ǩ","ǫ","ǭ",["ǯ","ǰ"],"dz","ǵ","ǹ","ǻ","ǽ","ǿ","ȁ","ȃ","ȅ","ȇ","ȉ","ȋ","ȍ","ȏ","ȑ","ȓ","ȕ","ȗ","ș","ț","ȝ","ȟ","ȡ","ȣ","ȥ","ȧ","ȩ","ȫ","ȭ","ȯ","ȱ",["ȳ","ȹ"],"ȼ",["ȿ","ɀ"],"ɂ","ɇ","ɉ","ɋ","ɍ",["ɏ","ʓ"],["ʕ","ʯ"],"ͱ","ͳ","ͷ",["ͻ","ͽ"],"ΐ",["ά","ώ"],["ϐ","ϑ"],["ϕ","ϗ"],"ϙ","ϛ","ϝ","ϟ","ϡ","ϣ","ϥ","ϧ","ϩ","ϫ","ϭ",["ϯ","ϳ"],"ϵ","ϸ",["ϻ","ϼ"],["а","џ"],"ѡ","ѣ","ѥ","ѧ","ѩ","ѫ","ѭ","ѯ","ѱ","ѳ","ѵ","ѷ","ѹ","ѻ","ѽ","ѿ","ҁ","ҋ","ҍ","ҏ","ґ","ғ","ҕ","җ","ҙ","қ","ҝ","ҟ","ҡ","ң","ҥ","ҧ","ҩ","ҫ","ҭ","ү","ұ","ҳ","ҵ","ҷ","ҹ","һ","ҽ","ҿ","ӂ","ӄ","ӆ","ӈ","ӊ","ӌ",["ӎ","ӏ"],"ӑ","ӓ","ӕ","ӗ","ә","ӛ","ӝ","ӟ","ӡ","ӣ","ӥ","ӧ","ө","ӫ","ӭ","ӯ","ӱ","ӳ","ӵ","ӷ","ӹ","ӻ","ӽ","ӿ","ԁ","ԃ","ԅ","ԇ","ԉ","ԋ","ԍ","ԏ","ԑ","ԓ","ԕ","ԗ","ԙ","ԛ","ԝ","ԟ","ԡ","ԣ","ԥ","ԧ","ԩ","ԫ","ԭ","ԯ",["ա","և"],["ᏸ","ᏽ"],["ᴀ","ᴫ"],["ᵫ","ᵷ"],["ᵹ","ᶚ"],"ḁ","ḃ","ḅ","ḇ","ḉ","ḋ","ḍ","ḏ","ḑ","ḓ","ḕ","ḗ","ḙ","ḛ","ḝ","ḟ","ḡ","ḣ","ḥ","ḧ","ḩ","ḫ","ḭ","ḯ","ḱ","ḳ","ḵ","ḷ","ḹ","ḻ","ḽ","ḿ","ṁ","ṃ","ṅ","ṇ","ṉ","ṋ","ṍ","ṏ","ṑ","ṓ","ṕ","ṗ","ṙ","ṛ","ṝ","ṟ","ṡ","ṣ","ṥ","ṧ","ṩ","ṫ","ṭ","ṯ","ṱ","ṳ","ṵ","ṷ","ṹ","ṻ","ṽ","ṿ","ẁ","ẃ","ẅ","ẇ","ẉ","ẋ","ẍ","ẏ","ẑ","ẓ",["ẕ","ẝ"],"ẟ","ạ","ả","ấ","ầ","ẩ","ẫ","ậ","ắ","ằ","ẳ","ẵ","ặ","ẹ","ẻ","ẽ","ế","ề","ể","ễ","ệ","ỉ","ị","ọ","ỏ","ố","ồ","ổ","ỗ","ộ","ớ","ờ","ở","ỡ","ợ","ụ","ủ","ứ","ừ","ử","ữ","ự","ỳ","ỵ","ỷ","ỹ","ỻ","ỽ",["ỿ","ἇ"],["ἐ","ἕ"],["ἠ","ἧ"],["ἰ","ἷ"],["ὀ","ὅ"],["ὐ","ὗ"],["ὠ","ὧ"],["ὰ","ώ"],["ᾀ","ᾇ"],["ᾐ","ᾗ"],["ᾠ","ᾧ"],["ᾰ","ᾴ"],["ᾶ","ᾷ"],"ι",["ῂ","ῄ"],["ῆ","ῇ"],["ῐ","ΐ"],["ῖ","ῗ"],["ῠ","ῧ"],["ῲ","ῴ"],["ῶ","ῷ"],"ℊ",["ℎ","ℏ"],"ℓ","ℯ","ℴ","ℹ",["ℼ","ℽ"],["ⅆ","ⅉ"],"ⅎ","ↄ",["ⰰ","ⱞ"],"ⱡ",["ⱥ","ⱦ"],"ⱨ","ⱪ","ⱬ","ⱱ",["ⱳ","ⱴ"],["ⱶ","ⱻ"],"ⲁ","ⲃ","ⲅ","ⲇ","ⲉ","ⲋ","ⲍ","ⲏ","ⲑ","ⲓ","ⲕ","ⲗ","ⲙ","ⲛ","ⲝ","ⲟ","ⲡ","ⲣ","ⲥ","ⲧ","ⲩ","ⲫ","ⲭ","ⲯ","ⲱ","ⲳ","ⲵ","ⲷ","ⲹ","ⲻ","ⲽ","ⲿ","ⳁ","ⳃ","ⳅ","ⳇ","ⳉ","ⳋ","ⳍ","ⳏ","ⳑ","ⳓ","ⳕ","ⳗ","ⳙ","ⳛ","ⳝ","ⳟ","ⳡ",["ⳣ","ⳤ"],"ⳬ","ⳮ","ⳳ",["ⴀ","ⴥ"],"ⴧ","ⴭ","ꙁ","ꙃ","ꙅ","ꙇ","ꙉ","ꙋ","ꙍ","ꙏ","ꙑ","ꙓ","ꙕ","ꙗ","ꙙ","ꙛ","ꙝ","ꙟ","ꙡ","ꙣ","ꙥ","ꙧ","ꙩ","ꙫ","ꙭ","ꚁ","ꚃ","ꚅ","ꚇ","ꚉ","ꚋ","ꚍ","ꚏ","ꚑ","ꚓ","ꚕ","ꚗ","ꚙ","ꚛ","ꜣ","ꜥ","ꜧ","ꜩ","ꜫ","ꜭ",["ꜯ","ꜱ"],"ꜳ","ꜵ","ꜷ","ꜹ","ꜻ","ꜽ","ꜿ","ꝁ","ꝃ","ꝅ","ꝇ","ꝉ","ꝋ","ꝍ","ꝏ","ꝑ","ꝓ","ꝕ","ꝗ","ꝙ","ꝛ","ꝝ","ꝟ","ꝡ","ꝣ","ꝥ","ꝧ","ꝩ","ꝫ","ꝭ","ꝯ",["ꝱ","ꝸ"],"ꝺ","ꝼ","ꝿ","ꞁ","ꞃ","ꞅ","ꞇ","ꞌ","ꞎ","ꞑ",["ꞓ","ꞕ"],"ꞗ","ꞙ","ꞛ","ꞝ","ꞟ","ꞡ","ꞣ","ꞥ","ꞧ","ꞩ","ꞵ","ꞷ","ꟺ",["ꬰ","ꭚ"],["ꭠ","ꭥ"],["ꭰ","ꮿ"],["ff","st"],["ﬓ","ﬗ"],["a","z"]],!1,!1),Ie=nu([["ʰ","ˁ"],["ˆ","ˑ"],["ˠ","ˤ"],"ˬ","ˮ","ʹ","ͺ","ՙ","ـ",["ۥ","ۦ"],["ߴ","ߵ"],"ߺ","ࠚ","ࠤ","ࠨ","ॱ","ๆ","ໆ","ჼ","ៗ","ᡃ","ᪧ",["ᱸ","ᱽ"],["ᴬ","ᵪ"],"ᵸ",["ᶛ","ᶿ"],"ⁱ","ⁿ",["ₐ","ₜ"],["ⱼ","ⱽ"],"ⵯ","ⸯ","々",["〱","〵"],"〻",["ゝ","ゞ"],["ー","ヾ"],"ꀕ",["ꓸ","ꓽ"],"ꘌ","ꙿ",["ꚜ","ꚝ"],["ꜗ","ꜟ"],"ꝰ","ꞈ",["ꟸ","ꟹ"],"ꧏ","ꧦ","ꩰ","ꫝ",["ꫳ","ꫴ"],["ꭜ","ꭟ"],"ー",["゙","゚"]],!1,!1),ke=nu(["ª","º","ƻ",["ǀ","ǃ"],"ʔ",["א","ת"],["װ","ײ"],["ؠ","ؿ"],["ف","ي"],["ٮ","ٯ"],["ٱ","ۓ"],"ە",["ۮ","ۯ"],["ۺ","ۼ"],"ۿ","ܐ",["ܒ","ܯ"],["ݍ","ޥ"],"ޱ",["ߊ","ߪ"],["ࠀ","ࠕ"],["ࡀ","ࡘ"],["ࢠ","ࢴ"],["ऄ","ह"],"ऽ","ॐ",["क़","ॡ"],["ॲ","ঀ"],["অ","ঌ"],["এ","ঐ"],["ও","ন"],["প","র"],"ল",["শ","হ"],"ঽ","ৎ",["ড়","ঢ়"],["য়","ৡ"],["ৰ","ৱ"],["ਅ","ਊ"],["ਏ","ਐ"],["ਓ","ਨ"],["ਪ","ਰ"],["ਲ","ਲ਼"],["ਵ","ਸ਼"],["ਸ","ਹ"],["ਖ਼","ੜ"],"ਫ਼",["ੲ","ੴ"],["અ","ઍ"],["એ","ઑ"],["ઓ","ન"],["પ","ર"],["લ","ળ"],["વ","હ"],"ઽ","ૐ",["ૠ","ૡ"],"ૹ",["ଅ","ଌ"],["ଏ","ଐ"],["ଓ","ନ"],["ପ","ର"],["ଲ","ଳ"],["ଵ","ହ"],"ଽ",["ଡ଼","ଢ଼"],["ୟ","ୡ"],"ୱ","ஃ",["அ","ஊ"],["எ","ஐ"],["ஒ","க"],["ங","ச"],"ஜ",["ஞ","ட"],["ண","த"],["ந","ப"],["ம","ஹ"],"ௐ",["అ","ఌ"],["ఎ","ఐ"],["ఒ","న"],["ప","హ"],"ఽ",["ౘ","ౚ"],["ౠ","ౡ"],["ಅ","ಌ"],["ಎ","ಐ"],["ಒ","ನ"],["ಪ","ಳ"],["ವ","ಹ"],"ಽ","ೞ",["ೠ","ೡ"],["ೱ","ೲ"],["അ","ഌ"],["എ","ഐ"],["ഒ","ഺ"],"ഽ","ൎ",["ൟ","ൡ"],["ൺ","ൿ"],["අ","ඖ"],["ක","න"],["ඳ","ර"],"ල",["ව","ෆ"],["ก","ะ"],["า","ำ"],["เ","ๅ"],["ກ","ຂ"],"ຄ",["ງ","ຈ"],"ຊ","ຍ",["ດ","ທ"],["ນ","ຟ"],["ມ","ຣ"],"ລ","ວ",["ສ","ຫ"],["ອ","ະ"],["າ","ຳ"],"ຽ",["ເ","ໄ"],["ໜ","ໟ"],"ༀ",["ཀ","ཇ"],["ཉ","ཬ"],["ྈ","ྌ"],["က","ဪ"],"ဿ",["ၐ","ၕ"],["ၚ","ၝ"],"ၡ",["ၥ","ၦ"],["ၮ","ၰ"],["ၵ","ႁ"],"ႎ",["ა","ჺ"],["ჽ","ቈ"],["ቊ","ቍ"],["ቐ","ቖ"],"ቘ",["ቚ","ቝ"],["በ","ኈ"],["ኊ","ኍ"],["ነ","ኰ"],["ኲ","ኵ"],["ኸ","ኾ"],"ዀ",["ዂ","ዅ"],["ወ","ዖ"],["ዘ","ጐ"],["ጒ","ጕ"],["ጘ","ፚ"],["ᎀ","ᎏ"],["ᐁ","ᙬ"],["ᙯ","ᙿ"],["ᚁ","ᚚ"],["ᚠ","ᛪ"],["ᛱ","ᛸ"],["ᜀ","ᜌ"],["ᜎ","ᜑ"],["ᜠ","ᜱ"],["ᝀ","ᝑ"],["ᝠ","ᝬ"],["ᝮ","ᝰ"],["ក","ឳ"],"ៜ",["ᠠ","ᡂ"],["ᡄ","ᡷ"],["ᢀ","ᢨ"],"ᢪ",["ᢰ","ᣵ"],["ᤀ","ᤞ"],["ᥐ","ᥭ"],["ᥰ","ᥴ"],["ᦀ","ᦫ"],["ᦰ","ᧉ"],["ᨀ","ᨖ"],["ᨠ","ᩔ"],["ᬅ","ᬳ"],["ᭅ","ᭋ"],["ᮃ","ᮠ"],["ᮮ","ᮯ"],["ᮺ","ᯥ"],["ᰀ","ᰣ"],["ᱍ","ᱏ"],["ᱚ","ᱷ"],["ᳩ","ᳬ"],["ᳮ","ᳱ"],["ᳵ","ᳶ"],["ℵ","ℸ"],["ⴰ","ⵧ"],["ⶀ","ⶖ"],["ⶠ","ⶦ"],["ⶨ","ⶮ"],["ⶰ","ⶶ"],["ⶸ","ⶾ"],["ⷀ","ⷆ"],["ⷈ","ⷎ"],["ⷐ","ⷖ"],["ⷘ","ⷞ"],"〆","〼",["ぁ","ゖ"],"ゟ",["ァ","ヺ"],"ヿ",["ㄅ","ㄭ"],["ㄱ","ㆎ"],["ㆠ","ㆺ"],["ㇰ","ㇿ"],["㐀","䶵"],["一","鿕"],["ꀀ","ꀔ"],["ꀖ","ꒌ"],["ꓐ","ꓷ"],["ꔀ","ꘋ"],["ꘐ","ꘟ"],["ꘪ","ꘫ"],"ꙮ",["ꚠ","ꛥ"],"ꞏ","ꟷ",["ꟻ","ꠁ"],["ꠃ","ꠅ"],["ꠇ","ꠊ"],["ꠌ","ꠢ"],["ꡀ","ꡳ"],["ꢂ","ꢳ"],["ꣲ","ꣷ"],"ꣻ","ꣽ",["ꤊ","ꤥ"],["ꤰ","ꥆ"],["ꥠ","ꥼ"],["ꦄ","ꦲ"],["ꧠ","ꧤ"],["ꧧ","ꧯ"],["ꧺ","ꧾ"],["ꨀ","ꨨ"],["ꩀ","ꩂ"],["ꩄ","ꩋ"],["ꩠ","ꩯ"],["ꩱ","ꩶ"],"ꩺ",["ꩾ","ꪯ"],"ꪱ",["ꪵ","ꪶ"],["ꪹ","ꪽ"],"ꫀ","ꫂ",["ꫛ","ꫜ"],["ꫠ","ꫪ"],"ꫲ",["ꬁ","ꬆ"],["ꬉ","ꬎ"],["ꬑ","ꬖ"],["ꬠ","ꬦ"],["ꬨ","ꬮ"],["ꯀ","ꯢ"],["가","힣"],["ힰ","ퟆ"],["ퟋ","ퟻ"],["豈","舘"],["並","龎"],"יִ",["ײַ","ﬨ"],["שׁ","זּ"],["טּ","לּ"],"מּ",["נּ","סּ"],["ףּ","פּ"],["צּ","ﮱ"],["ﯓ","ﴽ"],["ﵐ","ﶏ"],["ﶒ","ﷇ"],["ﷰ","ﷻ"],["ﹰ","ﹴ"],["ﹶ","ﻼ"],["ヲ","ッ"],["ア","ン"],["ᅠ","ᄒ"],["ᅡ","ᅦ"],["ᅧ","ᅬ"],["ᅭ","ᅲ"],["ᅳ","ᅵ"]],!1,!1),He=nu(["Dž","Lj","Nj","Dz",["ᾈ","ᾏ"],["ᾘ","ᾟ"],["ᾨ","ᾯ"],"ᾼ","ῌ","ῼ"],!1,!1),Ue=nu([["A","Z"],["À","Ö"],["Ø","Þ"],"Ā","Ă","Ą","Ć","Ĉ","Ċ","Č","Ď","Đ","Ē","Ĕ","Ė","Ę","Ě","Ĝ","Ğ","Ġ","Ģ","Ĥ","Ħ","Ĩ","Ī","Ĭ","Į","İ","IJ","Ĵ","Ķ","Ĺ","Ļ","Ľ","Ŀ","Ł","Ń","Ņ","Ň","Ŋ","Ō","Ŏ","Ő","Œ","Ŕ","Ŗ","Ř","Ś","Ŝ","Ş","Š","Ţ","Ť","Ŧ","Ũ","Ū","Ŭ","Ů","Ű","Ų","Ŵ","Ŷ",["Ÿ","Ź"],"Ż","Ž",["Ɓ","Ƃ"],"Ƅ",["Ɔ","Ƈ"],["Ɖ","Ƌ"],["Ǝ","Ƒ"],["Ɠ","Ɣ"],["Ɩ","Ƙ"],["Ɯ","Ɲ"],["Ɵ","Ơ"],"Ƣ","Ƥ",["Ʀ","Ƨ"],"Ʃ","Ƭ",["Ʈ","Ư"],["Ʊ","Ƴ"],"Ƶ",["Ʒ","Ƹ"],"Ƽ","DŽ","LJ","NJ","Ǎ","Ǐ","Ǒ","Ǔ","Ǖ","Ǘ","Ǚ","Ǜ","Ǟ","Ǡ","Ǣ","Ǥ","Ǧ","Ǩ","Ǫ","Ǭ","Ǯ","DZ","Ǵ",["Ƕ","Ǹ"],"Ǻ","Ǽ","Ǿ","Ȁ","Ȃ","Ȅ","Ȇ","Ȉ","Ȋ","Ȍ","Ȏ","Ȑ","Ȓ","Ȕ","Ȗ","Ș","Ț","Ȝ","Ȟ","Ƞ","Ȣ","Ȥ","Ȧ","Ȩ","Ȫ","Ȭ","Ȯ","Ȱ","Ȳ",["Ⱥ","Ȼ"],["Ƚ","Ⱦ"],"Ɂ",["Ƀ","Ɇ"],"Ɉ","Ɋ","Ɍ","Ɏ","Ͱ","Ͳ","Ͷ","Ϳ","Ά",["Έ","Ί"],"Ό",["Ύ","Ώ"],["Α","Ρ"],["Σ","Ϋ"],"Ϗ",["ϒ","ϔ"],"Ϙ","Ϛ","Ϝ","Ϟ","Ϡ","Ϣ","Ϥ","Ϧ","Ϩ","Ϫ","Ϭ","Ϯ","ϴ","Ϸ",["Ϲ","Ϻ"],["Ͻ","Я"],"Ѡ","Ѣ","Ѥ","Ѧ","Ѩ","Ѫ","Ѭ","Ѯ","Ѱ","Ѳ","Ѵ","Ѷ","Ѹ","Ѻ","Ѽ","Ѿ","Ҁ","Ҋ","Ҍ","Ҏ","Ґ","Ғ","Ҕ","Җ","Ҙ","Қ","Ҝ","Ҟ","Ҡ","Ң","Ҥ","Ҧ","Ҩ","Ҫ","Ҭ","Ү","Ұ","Ҳ","Ҵ","Ҷ","Ҹ","Һ","Ҽ","Ҿ",["Ӏ","Ӂ"],"Ӄ","Ӆ","Ӈ","Ӊ","Ӌ","Ӎ","Ӑ","Ӓ","Ӕ","Ӗ","Ә","Ӛ","Ӝ","Ӟ","Ӡ","Ӣ","Ӥ","Ӧ","Ө","Ӫ","Ӭ","Ӯ","Ӱ","Ӳ","Ӵ","Ӷ","Ӹ","Ӻ","Ӽ","Ӿ","Ԁ","Ԃ","Ԅ","Ԇ","Ԉ","Ԋ","Ԍ","Ԏ","Ԑ","Ԓ","Ԕ","Ԗ","Ԙ","Ԛ","Ԝ","Ԟ","Ԡ","Ԣ","Ԥ","Ԧ","Ԩ","Ԫ","Ԭ","Ԯ",["Ա","Ֆ"],["Ⴀ","Ⴥ"],"Ⴧ","Ⴭ",["Ꭰ","Ᏽ"],"Ḁ","Ḃ","Ḅ","Ḇ","Ḉ","Ḋ","Ḍ","Ḏ","Ḑ","Ḓ","Ḕ","Ḗ","Ḙ","Ḛ","Ḝ","Ḟ","Ḡ","Ḣ","Ḥ","Ḧ","Ḩ","Ḫ","Ḭ","Ḯ","Ḱ","Ḳ","Ḵ","Ḷ","Ḹ","Ḻ","Ḽ","Ḿ","Ṁ","Ṃ","Ṅ","Ṇ","Ṉ","Ṋ","Ṍ","Ṏ","Ṑ","Ṓ","Ṕ","Ṗ","Ṙ","Ṛ","Ṝ","Ṟ","Ṡ","Ṣ","Ṥ","Ṧ","Ṩ","Ṫ","Ṭ","Ṯ","Ṱ","Ṳ","Ṵ","Ṷ","Ṹ","Ṻ","Ṽ","Ṿ","Ẁ","Ẃ","Ẅ","Ẇ","Ẉ","Ẋ","Ẍ","Ẏ","Ẑ","Ẓ","Ẕ","ẞ","Ạ","Ả","Ấ","Ầ","Ẩ","Ẫ","Ậ","Ắ","Ằ","Ẳ","Ẵ","Ặ","Ẹ","Ẻ","Ẽ","Ế","Ề","Ể","Ễ","Ệ","Ỉ","Ị","Ọ","Ỏ","Ố","Ồ","Ổ","Ỗ","Ộ","Ớ","Ờ","Ở","Ỡ","Ợ","Ụ","Ủ","Ứ","Ừ","Ử","Ữ","Ự","Ỳ","Ỵ","Ỷ","Ỹ","Ỻ","Ỽ","Ỿ",["Ἀ","Ἇ"],["Ἐ","Ἕ"],["Ἠ","Ἧ"],["Ἰ","Ἷ"],["Ὀ","Ὅ"],"Ὑ","Ὓ","Ὕ","Ὗ",["Ὠ","Ὧ"],["Ᾰ","Ά"],["Ὲ","Ή"],["Ῐ","Ί"],["Ῠ","Ῥ"],["Ὸ","Ώ"],"ℂ","ℇ",["ℋ","ℍ"],["ℐ","ℒ"],"ℕ",["ℙ","ℝ"],"ℤ","Ω","ℨ",["K","ℭ"],["ℰ","ℳ"],["ℾ","ℿ"],"ⅅ","Ↄ",["Ⰰ","Ⱞ"],"Ⱡ",["Ɫ","Ɽ"],"Ⱨ","Ⱪ","Ⱬ",["Ɑ","Ɒ"],"Ⱳ","Ⱶ",["Ȿ","Ⲁ"],"Ⲃ","Ⲅ","Ⲇ","Ⲉ","Ⲋ","Ⲍ","Ⲏ","Ⲑ","Ⲓ","Ⲕ","Ⲗ","Ⲙ","Ⲛ","Ⲝ","Ⲟ","Ⲡ","Ⲣ","Ⲥ","Ⲧ","Ⲩ","Ⲫ","Ⲭ","Ⲯ","Ⲱ","Ⲳ","Ⲵ","Ⲷ","Ⲹ","Ⲻ","Ⲽ","Ⲿ","Ⳁ","Ⳃ","Ⳅ","Ⳇ","Ⳉ","Ⳋ","Ⳍ","Ⳏ","Ⳑ","Ⳓ","Ⳕ","Ⳗ","Ⳙ","Ⳛ","Ⳝ","Ⳟ","Ⳡ","Ⳣ","Ⳬ","Ⳮ","Ⳳ","Ꙁ","Ꙃ","Ꙅ","Ꙇ","Ꙉ","Ꙋ","Ꙍ","Ꙏ","Ꙑ","Ꙓ","Ꙕ","Ꙗ","Ꙙ","Ꙛ","Ꙝ","Ꙟ","Ꙡ","Ꙣ","Ꙥ","Ꙧ","Ꙩ","Ꙫ","Ꙭ","Ꚁ","Ꚃ","Ꚅ","Ꚇ","Ꚉ","Ꚋ","Ꚍ","Ꚏ","Ꚑ","Ꚓ","Ꚕ","Ꚗ","Ꚙ","Ꚛ","Ꜣ","Ꜥ","Ꜧ","Ꜩ","Ꜫ","Ꜭ","Ꜯ","Ꜳ","Ꜵ","Ꜷ","Ꜹ","Ꜻ","Ꜽ","Ꜿ","Ꝁ","Ꝃ","Ꝅ","Ꝇ","Ꝉ","Ꝋ","Ꝍ","Ꝏ","Ꝑ","Ꝓ","Ꝕ","Ꝗ","Ꝙ","Ꝛ","Ꝝ","Ꝟ","Ꝡ","Ꝣ","Ꝥ","Ꝧ","Ꝩ","Ꝫ","Ꝭ","Ꝯ","Ꝺ","Ꝼ",["Ᵹ","Ꝿ"],"Ꞁ","Ꞃ","Ꞅ","Ꞇ","Ꞌ","Ɥ","Ꞑ","Ꞓ","Ꞗ","Ꞙ","Ꞛ","Ꞝ","Ꞟ","Ꞡ","Ꞣ","Ꞥ","Ꞧ","Ꞩ",["Ɦ","Ɬ"],["Ʞ","Ꞵ"],"Ꞷ",["A","Z"]],!1,!1),je=nu(["ः","ऻ",["ा","ी"],["ॉ","ौ"],["ॎ","ॏ"],["ং","ঃ"],["া","ী"],["ে","ৈ"],["ো","ৌ"],"ৗ","ਃ",["ਾ","ੀ"],"ઃ",["ા","ી"],"ૉ",["ો","ૌ"],["ଂ","ଃ"],"ା","ୀ",["େ","ୈ"],["ୋ","ୌ"],"ୗ",["ா","ி"],["ு","ூ"],["ெ","ை"],["ொ","ௌ"],"ௗ",["ఁ","ః"],["ు","ౄ"],["ಂ","ಃ"],"ಾ",["ೀ","ೄ"],["ೇ","ೈ"],["ೊ","ೋ"],["ೕ","ೖ"],["ം","ഃ"],["ാ","ീ"],["െ","ൈ"],["ൊ","ൌ"],"ൗ",["ං","ඃ"],["ා","ෑ"],["ෘ","ෟ"],["ෲ","ෳ"],["༾","༿"],"ཿ",["ါ","ာ"],"ေ","း",["ျ","ြ"],["ၖ","ၗ"],["ၢ","ၤ"],["ၧ","ၭ"],["ႃ","ႄ"],["ႇ","ႌ"],"ႏ",["ႚ","ႜ"],"ា",["ើ","ៅ"],["ះ","ៈ"],["ᤣ","ᤦ"],["ᤩ","ᤫ"],["ᤰ","ᤱ"],["ᤳ","ᤸ"],["ᨙ","ᨚ"],"ᩕ","ᩗ","ᩡ",["ᩣ","ᩤ"],["ᩭ","ᩲ"],"ᬄ","ᬵ","ᬻ",["ᬽ","ᭁ"],["ᭃ","᭄"],"ᮂ","ᮡ",["ᮦ","ᮧ"],"᮪","ᯧ",["ᯪ","ᯬ"],"ᯮ",["᯲","᯳"],["ᰤ","ᰫ"],["ᰴ","ᰵ"],"᳡",["ᳲ","ᳳ"],["〮","〯"],["ꠣ","ꠤ"],"ꠧ",["ꢀ","ꢁ"],["ꢴ","ꣃ"],["ꥒ","꥓"],"ꦃ",["ꦴ","ꦵ"],["ꦺ","ꦻ"],["ꦽ","꧀"],["ꨯ","ꨰ"],["ꨳ","ꨴ"],"ꩍ","ꩻ","ꩽ","ꫫ",["ꫮ","ꫯ"],"ꫵ",["ꯣ","ꯤ"],["ꯦ","ꯧ"],["ꯩ","ꯪ"],"꯬"],!1,!1),Ge=nu([["̀","ͯ"],["҃","҇"],["֑","ֽ"],"ֿ",["ׁ","ׂ"],["ׄ","ׅ"],"ׇ",["ؐ","ؚ"],["ً","ٟ"],"ٰ",["ۖ","ۜ"],["۟","ۤ"],["ۧ","ۨ"],["۪","ۭ"],"ܑ",["ܰ","݊"],["ަ","ް"],["߫","߳"],["ࠖ","࠙"],["ࠛ","ࠣ"],["ࠥ","ࠧ"],["ࠩ","࠭"],["࡙","࡛"],["ࣣ","ं"],"ऺ","़",["ु","ै"],"्",["॑","ॗ"],["ॢ","ॣ"],"ঁ","়",["ু","ৄ"],"্",["ৢ","ৣ"],["ਁ","ਂ"],"਼",["ੁ","ੂ"],["ੇ","ੈ"],["ੋ","੍"],"ੑ",["ੰ","ੱ"],"ੵ",["ઁ","ં"],"઼",["ુ","ૅ"],["ે","ૈ"],"્",["ૢ","ૣ"],"ଁ","଼","ି",["ୁ","ୄ"],"୍","ୖ",["ୢ","ୣ"],"ஂ","ீ","்","ఀ",["ా","ీ"],["ె","ై"],["ొ","్"],["ౕ","ౖ"],["ౢ","ౣ"],"ಁ","಼","ಿ","ೆ",["ೌ","್"],["ೢ","ೣ"],"ഁ",["ു","ൄ"],"്",["ൢ","ൣ"],"්",["ි","ු"],"ූ","ั",["ิ","ฺ"],["็","๎"],"ັ",["ິ","ູ"],["ົ","ຼ"],["່","ໍ"],["༘","༙"],"༵","༷","༹",["ཱ","ཾ"],["ྀ","྄"],["྆","྇"],["ྍ","ྗ"],["ྙ","ྼ"],"࿆",["ိ","ူ"],["ဲ","့"],["္","်"],["ွ","ှ"],["ၘ","ၙ"],["ၞ","ၠ"],["ၱ","ၴ"],"ႂ",["ႅ","ႆ"],"ႍ","ႝ",["፝","፟"],["ᜒ","᜔"],["ᜲ","᜴"],["ᝒ","ᝓ"],["ᝲ","ᝳ"],["឴","឵"],["ិ","ួ"],"ំ",["៉","៓"],"៝",["᠋","᠍"],"ᢩ",["ᤠ","ᤢ"],["ᤧ","ᤨ"],"ᤲ",["᤹","᤻"],["ᨗ","ᨘ"],"ᨛ","ᩖ",["ᩘ","ᩞ"],"᩠","ᩢ",["ᩥ","ᩬ"],["ᩳ","᩼"],"᩿",["᪰","᪽"],["ᬀ","ᬃ"],"᬴",["ᬶ","ᬺ"],"ᬼ","ᭂ",["᭫","᭳"],["ᮀ","ᮁ"],["ᮢ","ᮥ"],["ᮨ","ᮩ"],["᮫","ᮭ"],"᯦",["ᯨ","ᯩ"],"ᯭ",["ᯯ","ᯱ"],["ᰬ","ᰳ"],["ᰶ","᰷"],["᳐","᳒"],["᳔","᳠"],["᳢","᳨"],"᳭","᳴",["᳸","᳹"],["᷀","᷵"],["᷼","᷿"],["⃐","⃜"],"⃡",["⃥","⃰"],["⳯","⳱"],"⵿",["ⷠ","ⷿ"],["〪","〭"],["゙","゚"],"꙯",["ꙴ","꙽"],["ꚞ","ꚟ"],["꛰","꛱"],"ꠂ","꠆","ꠋ",["ꠥ","ꠦ"],"꣄",["꣠","꣱"],["ꤦ","꤭"],["ꥇ","ꥑ"],["ꦀ","ꦂ"],"꦳",["ꦶ","ꦹ"],"ꦼ","ꧥ",["ꨩ","ꨮ"],["ꨱ","ꨲ"],["ꨵ","ꨶ"],"ꩃ","ꩌ","ꩼ","ꪰ",["ꪲ","ꪴ"],["ꪷ","ꪸ"],["ꪾ","꪿"],"꫁",["ꫬ","ꫭ"],"꫶","ꯥ","ꯨ","꯭","ﬞ",["︀","️"],["︠","︯"]],!1,!1),Ve=nu([["0","9"],["٠","٩"],["۰","۹"],["߀","߉"],["०","९"],["০","৯"],["੦","੯"],["૦","૯"],["୦","୯"],["௦","௯"],["౦","౯"],["೦","೯"],["൦","൯"],["෦","෯"],["๐","๙"],["໐","໙"],["༠","༩"],["၀","၉"],["႐","႙"],["០","៩"],["᠐","᠙"],["᥆","᥏"],["᧐","᧙"],["᪀","᪉"],["᪐","᪙"],["᭐","᭙"],["᮰","᮹"],["᱀","᱉"],["᱐","᱙"],["꘠","꘩"],["꣐","꣙"],["꤀","꤉"],["꧐","꧙"],["꧰","꧹"],["꩐","꩙"],["꯰","꯹"],["0","9"]],!1,!1),ze=nu([["ᛮ","ᛰ"],["Ⅰ","ↂ"],["ↅ","ↈ"],"〇",["〡","〩"],["〸","〺"],["ꛦ","ꛯ"]],!1,!1),We=nu(["_",["‿","⁀"],"⁔",["︳","︴"],["﹍","﹏"],"_"],!1,!1),Ye=nu([" "," "," ",[" "," "]," "," "," "],!1,!1),Je=ru(";",!1),Qe=0,qe=0,Xe=[{line:1,column:1}],Ke=0,Ze=[],eu=0;if("startRule"in u){if(!(u.startRule in o))throw new Error("Can't start parsing from rule \""+u.startRule+'".');a=o[u.startRule]}function uu(){return iu(qe,Qe)}function tu(e,u){throw function(e,u){return new peg$SyntaxError(e,null,null,u)}(e,u=void 0!==u?u:iu(qe,Qe))}function ru(e,u){return{type:"literal",text:e,ignoreCase:u}}function nu(e,u,t){return{type:"class",parts:e,inverted:u,ignoreCase:t}}function ou(e){return{type:"other",description:e}}function au(u){var t,r=Xe[u];if(r)return r;for(t=u-1;!Xe[t];)t--;for(r={line:(r=Xe[t]).line,column:r.column};tKe&&(Ke=Qe,Ze=[]),Ze.push(e))}function cu(){var u,t,n,o,a,c;if(u=Qe,Uu(),t=Qe,n=function(){var u,t,n,o,a;return u=Qe,123===e.charCodeAt(Qe)?(t=i,Qe++):(t=r,0===eu&&su(P)),t!==r&&(n=ku())!==r?(125===e.charCodeAt(Qe)?(o=s,Qe++):(o=r,0===eu&&su(x)),o!==r&&ju()!==r?(qe=u,u={type:"top_level_initializer",code:(a=n)[0],codeLocation:a[1],location:uu()}):(Qe=u,u=r)):(Qe=u,u=r),u}(),n!==r?(o=Uu(),t=n):(Qe=t,t=r),t===r&&(t=null),n=Qe,o=function(){var e,u,t;return e=Qe,(u=ku())!==r&&ju()!==r?(qe=e,e={type:"initializer",code:(t=u)[0],codeLocation:t[1],location:uu()}):(Qe=e,e=r),e}(),o!==r?(a=Uu(),n=o):(Qe=n,n=r),n===r&&(n=null),o=[],a=Qe,(c=lu())!==r?(Uu(),a=c):(Qe=a,a=r),a!==r)for(;a!==r;)o.push(a),a=Qe,(c=lu())!==r?(Uu(),a=c):(Qe=a,a=r);else o=r;return o!==r?(qe=u,u={type:"grammar",topLevelInitializer:t,initializer:n,rules:o,location:uu()}):(Qe=u,u=r),u}function lu(){var u,t,n,o,a,i,s,c;return u=Qe,(t=$u())!==r?(Uu(),n=Qe,(o=bu())!==r?(Uu(),n=o):(Qe=n,n=r),n===r&&(n=null),61===e.charCodeAt(Qe)?(o="=",Qe++):(o=r,0===eu&&su(R)),o!==r?(Uu(),(a=pu())!==r&&ju()!==r?(qe=u,s=n,c=a,u={type:"rule",name:(i=t)[0],nameLocation:i[1],expression:null!==s?{type:"named",name:s,expression:c,location:uu()}:c,location:uu()}):(Qe=u,u=r)):(Qe=u,u=r)):(Qe=u,u=r),u}function pu(){var u,t,n,o,a,i,s,c;if(u=Qe,(t=Au())!==r){for(n=[],o=Qe,Uu(),47===e.charCodeAt(Qe)?(a="/",Qe++):(a=r,0===eu&&su(O)),a!==r?(Uu(),(i=Au())!==r?o=i:(Qe=o,o=r)):(Qe=o,o=r);o!==r;)n.push(o),o=Qe,Uu(),47===e.charCodeAt(Qe)?(a="/",Qe++):(a=r,0===eu&&su(O)),a!==r?(Uu(),(i=Au())!==r?o=i:(Qe=o,o=r)):(Qe=o,o=r);qe=u,s=t,u=(c=n).length>0?{type:"choice",alternatives:[s].concat(c),location:uu()}:s}else Qe=u,u=r;return u}function Au(){var e,u,t,n,o,a;return e=Qe,u=function(){var e,u,t,n,o,a,i;if(e=Qe,(u=Eu())!==r){for(t=[],n=Qe,Uu(),(o=Eu())!==r?n=o:(Qe=n,n=r);n!==r;)t.push(n),n=Qe,Uu(),(o=Eu())!==r?n=o:(Qe=n,n=r);qe=e,a=u,e=(i=t).length>0||"labeled"===a.type&&a.pick?{type:"sequence",elements:[a].concat(i),location:uu()}:a}else Qe=e,e=r;return e}(),u!==r?(t=Qe,Uu(),(n=ku())!==r?t=n:(Qe=t,t=r),t===r&&(t=null),qe=e,o=u,e=null!==(a=t)?{type:"action",expression:o,code:a[0],codeLocation:a[1],location:uu()}:o):(Qe=e,e=r),e}function Eu(){var u,t,n,o,a,i,s;return u=Qe,t=function(){var u,t;return u=Qe,64===e.charCodeAt(Qe)?(t="@",Qe++):(t=r,0===eu&&su(L)),t!==r&&(qe=u,t=uu()),t}(),t!==r?((n=fu())===r&&(n=null),(o=hu())!==r?(qe=u,a=t,i=n,(s=o).type.startsWith("semantic_")&&tu('"@" cannot be used on a semantic predicate',a),u={type:"labeled",label:null!==i?i[0]:null,labelLocation:null!==i?i[1]:a,pick:!0,expression:s,location:uu()}):(Qe=u,u=r)):(Qe=u,u=r),u===r&&(u=Qe,(t=fu())!==r?(n=Uu(),(o=hu())!==r?(qe=u,u=function(e,u){return{type:"labeled",label:e[0],labelLocation:e[1],expression:u,location:uu()}}(t,o)):(Qe=u,u=r)):(Qe=u,u=r),u===r&&(u=hu())),u}function fu(){var u,t,n,o;return u=Qe,(t=$u())!==r?(Uu(),58===e.charCodeAt(Qe)?(n=":",Qe++):(n=r,0===eu&&su(T)),n!==r?(qe=u,o=t,Gu.indexOf(o[0])>=0&&tu("Label can't be a reserved word \"".concat(o[0],'"'),o[1]),u=o):(Qe=u,u=r)):(Qe=u,u=r),u}function hu(){var u,t,n,o;return u=Qe,t=function(){var u;return 36===e.charCodeAt(Qe)?(u="$",Qe++):(u=r,0===eu&&su(w)),u===r&&(38===e.charCodeAt(Qe)?(u="&",Qe++):(u=r,0===eu&&su(N)),u===r&&(33===e.charCodeAt(Qe)?(u="!",Qe++):(u=r,0===eu&&su(M)))),u}(),t!==r?(Uu(),(n=du())!==r?(qe=u,o=n,u={type:OPS_TO_PREFIXED_TYPES[t],expression:o,location:uu()}):(Qe=u,u=r)):(Qe=u,u=r),u===r&&(u=du()),u}function du(){var u,t,n,o;return u=Qe,(t=Cu())!==r?(Uu(),n=function(){var u;return 63===e.charCodeAt(Qe)?(u="?",Qe++):(u=r,0===eu&&su(I)),u===r&&(42===e.charCodeAt(Qe)?(u="*",Qe++):(u=r,0===eu&&su(k)),u===r&&(43===e.charCodeAt(Qe)?(u="+",Qe++):(u=r,0===eu&&su(H)))),u}(),n!==r?(qe=u,o=t,u={type:OPS_TO_SUFFIXED_TYPES[n],expression:o,location:uu()}):(Qe=u,u=r)):(Qe=u,u=r),u===r&&(u=Cu()),u}function Cu(){var u,t,n,o,a;return u=function(){var u,t,n;return eu++,u=Qe,(t=bu())!==r?(105===e.charCodeAt(Qe)?(n="i",Qe++):(n=r,0===eu&&su(fe)),n===r&&(n=null),qe=u,u={type:"literal",value:t,ignoreCase:null!==n,location:uu()}):(Qe=u,u=r),eu--,u===r&&(t=r,0===eu&&su(Ee)),u}(),u===r&&(u=function(){var u,t,n,o,a,i,s,c;if(eu++,u=Qe,91===e.charCodeAt(Qe)?(t="[",Qe++):(t=r,0===eu&&su(Fe)),t!==r){for(94===e.charCodeAt(Qe)?(n="^",Qe++):(n=r,0===eu&&su(me)),n===r&&(n=null),o=[],(a=Ru())===r&&(a=Ou());a!==r;)o.push(a),(a=Ru())===r&&(a=Ou());93===e.charCodeAt(Qe)?(a="]",Qe++):(a=r,0===eu&&su(_e)),a!==r?(105===e.charCodeAt(Qe)?(i="i",Qe++):(i=r,0===eu&&su(fe)),i===r&&(i=null),qe=u,s=n,c=i,u={type:"class",parts:o.filter((function(e){return""!==e})),inverted:null!==s,ignoreCase:null!==c,location:uu()}):(Qe=u,u=r)}else Qe=u,u=r;return eu--,u===r&&(t=r,0===eu&&su(ge)),u}(),u===r&&(u=function(){var u,t;return u=Qe,46===e.charCodeAt(Qe)?(t=".",Qe++):(t=r,0===eu&&su(Te)),t!==r&&(qe=u,t={type:"any",location:uu()}),t}(),u===r&&(u=function(){var u,t,n,o,a,i,s;return u=Qe,(t=$u())!==r?(n=Qe,eu++,o=Qe,a=Uu(),i=Qe,(s=bu())!==r?i=s=[s,Uu()]:(Qe=i,i=r),i===r&&(i=null),61===e.charCodeAt(Qe)?(s="=",Qe++):(s=r,0===eu&&su(R)),s!==r?o=a=[a,i,s]:(Qe=o,o=r),eu--,o===r?n=void 0:(Qe=n,n=r),n!==r?(qe=u,u={type:"rule_ref",name:t[0],location:uu()}):(Qe=u,u=r)):(Qe=u,u=r),u}(),u===r&&(u=function(){var u,t,n,o;return u=Qe,t=function(){var u;return 38===e.charCodeAt(Qe)?(u="&",Qe++):(u=r,0===eu&&su(N)),u===r&&(33===e.charCodeAt(Qe)?(u="!",Qe++):(u=r,0===eu&&su(M))),u}(),t!==r?(Uu(),(n=ku())!==r?(qe=u,o=n,u={type:OPS_TO_SEMANTIC_PREDICATE_TYPES[t],code:o[0],codeLocation:o[1],location:uu()}):(Qe=u,u=r)):(Qe=u,u=r),u}(),u===r&&(u=Qe,40===e.charCodeAt(Qe)?(t="(",Qe++):(t=r,0===eu&&su(U)),t!==r?(Uu(),(n=pu())!==r?(Uu(),41===e.charCodeAt(Qe)?(o=")",Qe++):(o=r,0===eu&&su(j)),o!==r?(qe=u,u="labeled"===(a=n).type||"sequence"===a.type?{type:"group",expression:a,location:uu()}:a):(Qe=u,u=r)):(Qe=u,u=r)):(Qe=u,u=r)))))),u}function gu(){var u;return e.length>Qe?(u=e.charAt(Qe),Qe++):(u=r,0===eu&&su(G)),u}function Fu(){var u;return eu++,9===e.charCodeAt(Qe)?(u="\t",Qe++):(u=r,0===eu&&su(z)),u===r&&(11===e.charCodeAt(Qe)?(u="\v",Qe++):(u=r,0===eu&&su(W)),u===r&&(12===e.charCodeAt(Qe)?(u="\f",Qe++):(u=r,0===eu&&su(Y)),u===r&&(32===e.charCodeAt(Qe)?(u=" ",Qe++):(u=r,0===eu&&su(J)),u===r&&(160===e.charCodeAt(Qe)?(u=" ",Qe++):(u=r,0===eu&&su(Q)),u===r&&(65279===e.charCodeAt(Qe)?(u="\ufeff",Qe++):(u=r,0===eu&&su(q)),u===r&&(u=function(){var u;return b.test(e.charAt(Qe))?(u=e.charAt(Qe),Qe++):(u=r,0===eu&&su(Ye)),u}())))))),eu--,u===r&&0===eu&&su(V),u}function mu(){var u;return f.test(e.charAt(Qe))?(u=e.charAt(Qe),Qe++):(u=r,0===eu&&su(X)),u}function _u(){var u;return eu++,10===e.charCodeAt(Qe)?(u="\n",Qe++):(u=r,0===eu&&su(Z)),u===r&&("\r\n"===e.substr(Qe,2)?(u="\r\n",Qe+=2):(u=r,0===eu&&su(ee)),u===r&&(13===e.charCodeAt(Qe)?(u="\r",Qe++):(u=r,0===eu&&su(ue)),u===r&&(8232===e.charCodeAt(Qe)?(u="\u2028",Qe++):(u=r,0===eu&&su(te)),u===r&&(8233===e.charCodeAt(Qe)?(u="\u2029",Qe++):(u=r,0===eu&&su(re)))))),eu--,u===r&&0===eu&&su(K),u}function Bu(){var u;return eu++,(u=function(){var u,t,n,o,a,i;if(u=Qe,e.substr(Qe,2)===c?(t=c,Qe+=2):(t=r,0===eu&&su(oe)),t!==r){for(n=[],o=Qe,a=Qe,eu++,e.substr(Qe,2)===l?(i=l,Qe+=2):(i=r,0===eu&&su(ae)),eu--,i===r?a=void 0:(Qe=a,a=r),a!==r&&(i=gu())!==r?o=a=[a,i]:(Qe=o,o=r);o!==r;)n.push(o),o=Qe,a=Qe,eu++,e.substr(Qe,2)===l?(i=l,Qe+=2):(i=r,0===eu&&su(ae)),eu--,i===r?a=void 0:(Qe=a,a=r),a!==r&&(i=gu())!==r?o=a=[a,i]:(Qe=o,o=r);e.substr(Qe,2)===l?(o=l,Qe+=2):(o=r,0===eu&&su(ae)),o!==r?u=t=[t,n,o]:(Qe=u,u=r)}else Qe=u,u=r;return u}())===r&&(u=Du()),eu--,u===r&&0===eu&&su(ne),u}function vu(){var u,t,n,o,a,i;if(u=Qe,e.substr(Qe,2)===c?(t=c,Qe+=2):(t=r,0===eu&&su(oe)),t!==r){for(n=[],o=Qe,a=Qe,eu++,e.substr(Qe,2)===l?(i=l,Qe+=2):(i=r,0===eu&&su(ae)),i===r&&(i=mu()),eu--,i===r?a=void 0:(Qe=a,a=r),a!==r&&(i=gu())!==r?o=a=[a,i]:(Qe=o,o=r);o!==r;)n.push(o),o=Qe,a=Qe,eu++,e.substr(Qe,2)===l?(i=l,Qe+=2):(i=r,0===eu&&su(ae)),i===r&&(i=mu()),eu--,i===r?a=void 0:(Qe=a,a=r),a!==r&&(i=gu())!==r?o=a=[a,i]:(Qe=o,o=r);e.substr(Qe,2)===l?(o=l,Qe+=2):(o=r,0===eu&&su(ae)),o!==r?u=t=[t,n,o]:(Qe=u,u=r)}else Qe=u,u=r;return u}function Du(){var u,t,n,o,a,i;if(u=Qe,"//"===e.substr(Qe,2)?(t="//",Qe+=2):(t=r,0===eu&&su(ie)),t!==r){for(n=[],o=Qe,a=Qe,eu++,i=mu(),eu--,i===r?a=void 0:(Qe=a,a=r),a!==r&&(i=gu())!==r?o=a=[a,i]:(Qe=o,o=r);o!==r;)n.push(o),o=Qe,a=Qe,eu++,i=mu(),eu--,i===r?a=void 0:(Qe=a,a=r),a!==r&&(i=gu())!==r?o=a=[a,i]:(Qe=o,o=r);u=t=[t,n]}else Qe=u,u=r;return u}function $u(){var e,u,t,n;if(eu++,e=Qe,(u=Su())!==r){for(t=[],n=yu();n!==r;)t.push(n),n=yu();qe=e,e=[u+t.join(""),uu()]}else Qe=e,e=r;return eu--,e===r&&(u=r,0===eu&&su(se)),e}function Su(){var u,t,n;return(u=function(){var u;return(u=function(){var u;return B.test(e.charAt(Qe))?(u=e.charAt(Qe),Qe++):(u=r,0===eu&&su(Ue)),u}())===r&&(u=function(){var u;return g.test(e.charAt(Qe))?(u=e.charAt(Qe),Qe++):(u=r,0===eu&&su(Me)),u}())===r&&(u=function(){var u;return _.test(e.charAt(Qe))?(u=e.charAt(Qe),Qe++):(u=r,0===eu&&su(He)),u}())===r&&(u=function(){var u;return F.test(e.charAt(Qe))?(u=e.charAt(Qe),Qe++):(u=r,0===eu&&su(Ie)),u}())===r&&(u=function(){var u;return m.test(e.charAt(Qe))?(u=e.charAt(Qe),Qe++):(u=r,0===eu&&su(ke)),u}())===r&&(u=function(){var u;return S.test(e.charAt(Qe))?(u=e.charAt(Qe),Qe++):(u=r,0===eu&&su(ze)),u}()),u}())===r&&(36===e.charCodeAt(Qe)?(u="$",Qe++):(u=r,0===eu&&su(w)),u===r&&(95===e.charCodeAt(Qe)?(u="_",Qe++):(u=r,0===eu&&su(ce)),u===r&&(u=Qe,92===e.charCodeAt(Qe)?(t=p,Qe++):(t=r,0===eu&&su(le)),t!==r&&(n=Nu())!==r?u=n:(Qe=u,u=r)))),u}function yu(){var u;return(u=Su())===r&&(u=function(){var u;return(u=function(){var u;return D.test(e.charAt(Qe))?(u=e.charAt(Qe),Qe++):(u=r,0===eu&&su(Ge)),u}())===r&&(u=function(){var u;return v.test(e.charAt(Qe))?(u=e.charAt(Qe),Qe++):(u=r,0===eu&&su(je)),u}()),u}())===r&&(u=function(){var u;return $.test(e.charAt(Qe))?(u=e.charAt(Qe),Qe++):(u=r,0===eu&&su(Ve)),u}())===r&&(u=function(){var u;return y.test(e.charAt(Qe))?(u=e.charAt(Qe),Qe++):(u=r,0===eu&&su(We)),u}())===r&&(8204===e.charCodeAt(Qe)?(u="‌",Qe++):(u=r,0===eu&&su(pe)),u===r&&(8205===e.charCodeAt(Qe)?(u="‍",Qe++):(u=r,0===eu&&su(Ae)))),u}function bu(){var u,t,n,o;if(eu++,u=Qe,34===e.charCodeAt(Qe)?(t=A,Qe++):(t=r,0===eu&&su(de)),t!==r){for(n=[],o=Pu();o!==r;)n.push(o),o=Pu();34===e.charCodeAt(Qe)?(o=A,Qe++):(o=r,0===eu&&su(de)),o!==r?(qe=u,u=n.join("")):(Qe=u,u=r)}else Qe=u,u=r;if(u===r)if(u=Qe,39===e.charCodeAt(Qe)?(t=E,Qe++):(t=r,0===eu&&su(Ce)),t!==r){for(n=[],o=xu();o!==r;)n.push(o),o=xu();39===e.charCodeAt(Qe)?(o=E,Qe++):(o=r,0===eu&&su(Ce)),o!==r?(qe=u,u=n.join("")):(Qe=u,u=r)}else Qe=u,u=r;return eu--,u===r&&(t=r,0===eu&&su(he)),u}function Pu(){var u,t,n,o;return u=Qe,t=Qe,n=Qe,eu++,34===e.charCodeAt(Qe)?(o=A,Qe++):(o=r,0===eu&&su(de)),o===r&&(92===e.charCodeAt(Qe)?(o=p,Qe++):(o=r,0===eu&&su(le)),o===r&&(o=mu())),eu--,o===r?n=void 0:(Qe=n,n=r),n!==r&&(o=gu())!==r?t=n=[n,o]:(Qe=t,t=r),(u=t!==r?e.substring(u,Qe):t)===r&&(u=Qe,92===e.charCodeAt(Qe)?(t=p,Qe++):(t=r,0===eu&&su(le)),t!==r&&(n=Tu())!==r?u=n:(Qe=u,u=r),u===r&&(u=Lu())),u}function xu(){var u,t,n,o;return u=Qe,t=Qe,n=Qe,eu++,39===e.charCodeAt(Qe)?(o=E,Qe++):(o=r,0===eu&&su(Ce)),o===r&&(92===e.charCodeAt(Qe)?(o=p,Qe++):(o=r,0===eu&&su(le)),o===r&&(o=mu())),eu--,o===r?n=void 0:(Qe=n,n=r),n!==r&&(o=gu())!==r?t=n=[n,o]:(Qe=t,t=r),(u=t!==r?e.substring(u,Qe):t)===r&&(u=Qe,92===e.charCodeAt(Qe)?(t=p,Qe++):(t=r,0===eu&&su(le)),t!==r&&(n=Tu())!==r?u=n:(Qe=u,u=r),u===r&&(u=Lu())),u}function Ru(){var u,t,n,o,a,i;return u=Qe,(t=Ou())!==r?(45===e.charCodeAt(Qe)?(n="-",Qe++):(n=r,0===eu&&su(Be)),n!==r&&(o=Ou())!==r?(qe=u,i=o,(a=t).charCodeAt(0)>i.charCodeAt(0)&&tu("Invalid character range: "+e.substring(qe,Qe)+"."),u=[a,i]):(Qe=u,u=r)):(Qe=u,u=r),u}function Ou(){var u,t,n,o;return u=Qe,t=Qe,n=Qe,eu++,93===e.charCodeAt(Qe)?(o="]",Qe++):(o=r,0===eu&&su(_e)),o===r&&(92===e.charCodeAt(Qe)?(o=p,Qe++):(o=r,0===eu&&su(le)),o===r&&(o=mu())),eu--,o===r?n=void 0:(Qe=n,n=r),n!==r&&(o=gu())!==r?t=n=[n,o]:(Qe=t,t=r),(u=t!==r?e.substring(u,Qe):t)===r&&(u=Qe,92===e.charCodeAt(Qe)?(t=p,Qe++):(t=r,0===eu&&su(le)),t!==r&&(n=Tu())!==r?u=n:(Qe=u,u=r),u===r&&(u=Lu())),u}function Lu(){var u,t;return u=Qe,92===e.charCodeAt(Qe)?(t=p,Qe++):(t=r,0===eu&&su(le)),t!==r&&_u()!==r?(qe=u,u=""):(Qe=u,u=r),u}function Tu(){var u,t,n,o;return u=function(){var u;return(u=wu())===r&&(u=function(){var u,t,n,o;return u=Qe,t=Qe,n=Qe,eu++,o=function(){var u;return(u=wu())===r&&(u=Mu())===r&&(120===e.charCodeAt(Qe)?(u="x",Qe++):(u=r,0===eu&&su(xe)),u===r&&(117===e.charCodeAt(Qe)?(u="u",Qe++):(u=r,0===eu&&su(Re)))),u}(),o===r&&(o=mu()),eu--,o===r?n=void 0:(Qe=n,n=r),n!==r&&(o=gu())!==r?t=n=[n,o]:(Qe=t,t=r),u=t!==r?e.substring(u,Qe):t}()),u}(),u===r&&(u=Qe,48===e.charCodeAt(Qe)?(t="0",Qe++):(t=r,0===eu&&su(ve)),t!==r?(n=Qe,eu++,o=Mu(),eu--,o===r?n=void 0:(Qe=n,n=r),n!==r?(qe=u,u="\0"):(Qe=u,u=r)):(Qe=u,u=r),u===r&&(u=function(){var u,t,n,o,a,i,s;return u=Qe,120===e.charCodeAt(Qe)?(t="x",Qe++):(t=r,0===eu&&su(xe)),t!==r?(n=Qe,o=Qe,(a=Iu())!==r&&(i=Iu())!==r?o=a=[a,i]:(Qe=o,o=r),(n=o!==r?e.substring(n,Qe):o)!==r?(qe=u,s=n,u=String.fromCharCode(parseInt(s,16))):(Qe=u,u=r)):(Qe=u,u=r),u}(),u===r&&(u=Nu()))),u}function wu(){var u,t;return 39===e.charCodeAt(Qe)?(u=E,Qe++):(u=r,0===eu&&su(Ce)),u===r&&(34===e.charCodeAt(Qe)?(u=A,Qe++):(u=r,0===eu&&su(de)),u===r&&(92===e.charCodeAt(Qe)?(u=p,Qe++):(u=r,0===eu&&su(le)),u===r&&(u=Qe,98===e.charCodeAt(Qe)?(t="b",Qe++):(t=r,0===eu&&su(De)),t!==r&&(qe=u,t="\b"),(u=t)===r&&(u=Qe,102===e.charCodeAt(Qe)?(t="f",Qe++):(t=r,0===eu&&su($e)),t!==r&&(qe=u,t="\f"),(u=t)===r&&(u=Qe,110===e.charCodeAt(Qe)?(t="n",Qe++):(t=r,0===eu&&su(Se)),t!==r&&(qe=u,t="\n"),(u=t)===r&&(u=Qe,114===e.charCodeAt(Qe)?(t="r",Qe++):(t=r,0===eu&&su(ye)),t!==r&&(qe=u,t="\r"),(u=t)===r&&(u=Qe,116===e.charCodeAt(Qe)?(t="t",Qe++):(t=r,0===eu&&su(be)),t!==r&&(qe=u,t="\t"),(u=t)===r&&(u=Qe,118===e.charCodeAt(Qe)?(t="v",Qe++):(t=r,0===eu&&su(Pe)),t!==r&&(qe=u,t="\v"),u=t)))))))),u}function Nu(){var u,t,n,o,a,i,s,c,l;return u=Qe,117===e.charCodeAt(Qe)?(t="u",Qe++):(t=r,0===eu&&su(Re)),t!==r?(n=Qe,o=Qe,(a=Iu())!==r&&(i=Iu())!==r&&(s=Iu())!==r&&(c=Iu())!==r?o=a=[a,i,s,c]:(Qe=o,o=r),(n=o!==r?e.substring(n,Qe):o)!==r?(qe=u,l=n,u=String.fromCharCode(parseInt(l,16))):(Qe=u,u=r)):(Qe=u,u=r),u}function Mu(){var u;return h.test(e.charAt(Qe))?(u=e.charAt(Qe),Qe++):(u=r,0===eu&&su(Oe)),u}function Iu(){var u;return d.test(e.charAt(Qe))?(u=e.charAt(Qe),Qe++):(u=r,0===eu&&su(Le)),u}function ku(){var u,t,n,o;return eu++,u=Qe,123===e.charCodeAt(Qe)?(t=i,Qe++):(t=r,0===eu&&su(P)),t!==r?(n=function(){var e,u;return e=Qe,u=Hu(),qe=e,u=[u,uu()]}(),125===e.charCodeAt(Qe)?(o=s,Qe++):(o=r,0===eu&&su(x)),o!==r?u=n:(Qe=u,u=r)):(Qe=u,u=r),eu--,u===r&&(t=r,0===eu&&su(we)),u}function Hu(){var u,t,n,o,a,c;if(u=Qe,t=[],n=[],o=Qe,a=Qe,eu++,C.test(e.charAt(Qe))?(c=e.charAt(Qe),Qe++):(c=r,0===eu&&su(Ne)),eu--,c===r?a=void 0:(Qe=a,a=r),a!==r&&(c=gu())!==r?o=a=[a,c]:(Qe=o,o=r),o!==r)for(;o!==r;)n.push(o),o=Qe,a=Qe,eu++,C.test(e.charAt(Qe))?(c=e.charAt(Qe),Qe++):(c=r,0===eu&&su(Ne)),eu--,c===r?a=void 0:(Qe=a,a=r),a!==r&&(c=gu())!==r?o=a=[a,c]:(Qe=o,o=r);else n=r;for(n===r&&(n=Qe,123===e.charCodeAt(Qe)?(o=i,Qe++):(o=r,0===eu&&su(P)),o!==r?(a=Hu(),125===e.charCodeAt(Qe)?(c=s,Qe++):(c=r,0===eu&&su(x)),c!==r?n=o=[o,a,c]:(Qe=n,n=r)):(Qe=n,n=r));n!==r;){if(t.push(n),n=[],o=Qe,a=Qe,eu++,C.test(e.charAt(Qe))?(c=e.charAt(Qe),Qe++):(c=r,0===eu&&su(Ne)),eu--,c===r?a=void 0:(Qe=a,a=r),a!==r&&(c=gu())!==r?o=a=[a,c]:(Qe=o,o=r),o!==r)for(;o!==r;)n.push(o),o=Qe,a=Qe,eu++,C.test(e.charAt(Qe))?(c=e.charAt(Qe),Qe++):(c=r,0===eu&&su(Ne)),eu--,c===r?a=void 0:(Qe=a,a=r),a!==r&&(c=gu())!==r?o=a=[a,c]:(Qe=o,o=r);else n=r;n===r&&(n=Qe,123===e.charCodeAt(Qe)?(o=i,Qe++):(o=r,0===eu&&su(P)),o!==r?(a=Hu(),125===e.charCodeAt(Qe)?(c=s,Qe++):(c=r,0===eu&&su(x)),c!==r?n=o=[o,a,c]:(Qe=n,n=r)):(Qe=n,n=r))}return e.substring(u,Qe)}function Uu(){var e,u;for(e=[],(u=Fu())===r&&(u=_u())===r&&(u=Bu());u!==r;)e.push(u),(u=Fu())===r&&(u=_u())===r&&(u=Bu());return e}function ju(){var u,t,n,o;return u=Qe,t=Uu(),59===e.charCodeAt(Qe)?(n=";",Qe++):(n=r,0===eu&&su(Je)),n!==r?u=t=[t,n]:(Qe=u,u=r),u===r&&(u=Qe,t=function(){var e,u;for(e=[],(u=Fu())===r&&(u=vu());u!==r;)e.push(u),(u=Fu())===r&&(u=vu());return e}(),(n=Du())===r&&(n=null),(o=_u())!==r?u=t=[t,n,o]:(Qe=u,u=r),u===r&&(u=Qe,t=Uu(),n=function(){var u,t;return u=Qe,eu++,e.length>Qe?(t=e.charAt(Qe),Qe++):(t=r,0===eu&&su(G)),eu--,t===r?u=void 0:(Qe=u,u=r),u}(),n!==r?u=t=[t,n]:(Qe=u,u=r))),u}var Gu=u.reservedWords||[];if((t=a())!==r&&Qe===e.length)return t;throw t!==r&&Qe0){for(u=1,t=1;u0&&(this.functions.shift()(),setTimeout((function(){n.run()}),0))}},o={};n.add((function(){r.start(),o.totalInputSize=0,o.totalParseTime=0})),e.forEach((function(e){n.add(function(e){return function(){r.benchmarkStart(e),o.parser=peg.generate(r.readFile("../examples/"+e.id+".pegjs"),t),o.benchmarkInputSize=0,o.benchmarkParseTime=0}}(e)),e.tests.forEach((function(t){n.add(function(e,t){return function(){r.testStart(e,t);for(var n=r.readFile(e.id+"/"+t.file),a=0,i=0;i\n \n ").concat(null!==r?"":"","\n ").concat(t,"\n ").concat(null!==r?"":"","\n \n \n \n ").concat((n/1024).toFixed(2),"\n \n  kB\n \n \n \n ").concat(o.toFixed(2),"\n \n  ms\n \n \n \n ").concat((n/1024/(o/1e3)).toFixed(2),"\n \n  kB/s\n \n \n "))}var t=parseInt($("#run-count").val(),10),r={cache:$("#cache").is(":checked")};isNaN(t)||t<=0?alert("Number of runs must be a positive integer."):Runner.run(benchmarks,t,r,{readFile:function(e){return $.ajax({type:"GET",url:"https://raw.githubusercontent.com/peggyjs/peggy/".concat(BRANCH,"/benchmark/").concat(e),dataType:"text",async:!1}).responseText},testStart:function(){},testFinish:function(e,t,r,n){u("individual",t.title,"https://github.com/peggyjs/peggy/blob/".concat(BRANCH,"/benchmark/").concat(e.id,"/").concat(t.file),r,n)},benchmarkStart:function(u){e.append("\n \n \n ").concat(u.title,' \n \n "\n '))},benchmarkFinish:function(e,t,r){u("benchmark-total",e.title+" total",null,t,r)},start:function(){$("#run-count, #cache, #run").attr("disabled","disabled"),e.show(),$("#results-table tr").slice(1).remove()},finish:function(e,t){u("total","Total",null,e,t),$.scrollTo("max",{axis:"y",duration:500}),$("#run-count, #cache, #run").removeAttr("disabled")}})})),$(document).ready((function(){return $("#run").focus()})),browser_stub})); \ No newline at end of file diff --git a/docs/js/test-bundle.min.js b/docs/js/test-bundle.min.js index 61048a44..4b67eabc 100644 --- a/docs/js/test-bundle.min.js +++ b/docs/js/test-bundle.min.js @@ -5,4 +5,4 @@ // Copyright (c) 2022- the Peggy authors // Licensed under the MIT License. -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("chai"),require("whatwg-url")):"function"==typeof define&&define.amd?define(["exports","chai","whatwg-url"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).browser={},e.chai,e.whatwgURL)}(this,(function(exports,require$$0,require$$0$1){function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var require$$0__default=_interopDefaultLegacy(require$$0),require$$0__default$1=_interopDefaultLegacy(require$$0$1),commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},__extends=commonjsGlobal&&commonjsGlobal.__extends||(extendStatics=function(e,t){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},extendStatics(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}extendStatics(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),extendStatics,setProtoOf=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},GrammarError$5=function(e){function t(r,n,a){var o=e.call(this,r)||this;return setProtoOf(o,t.prototype),o.name="GrammarError",o.location=n,void 0===a&&(a=[]),o.diagnostics=a,o.stage=null,o.problems=[["error",r,n,a]],o}return __extends(t,e),t.prototype.toString=function(){var t=e.prototype.toString.call(this);this.location&&(t+="\n at ",void 0!==this.location.source&&null!==this.location.source&&(t+="".concat(this.location.source,":")),t+="".concat(this.location.start.line,":").concat(this.location.start.column));for(var r=0,n=this.diagnostics;r0?NEVER_MATCH$1:SOMETIMES_MATCH$1}var o=visitor$9.build({rule:function(e){var t,r=0;if(void 0===e.match){e.match=SOMETIMES_MATCH$1;do{if(t=e.match,e.match=o(e.expression),++r>6)throw new GrammarError$4("Infinity cycle detected when trying to evaluate node match result",e.location)}while(t!==e.match)}return e.match},named:n,choice:function(e){return e.match=a(e.alternatives,!0)},action:n,sequence:function(e){return e.match=a(e.elements,!1)},labeled:n,text:n,simple_and:n,simple_not:function(e){return e.match=-o(e.expression)},optional:r,zero_or_more:r,one_or_more:n,group:n,semantic_and:t,semantic_not:t,rule_ref:function(t){var r=asts$6.findRule(e,t.name);return t.match=o(r)},literal:function(e){var t=0===e.value.length?ALWAYS_MATCH$1:SOMETIMES_MATCH$1;return e.match=t},class:function(e){var t=0===e.parts.length?NEVER_MATCH$1:SOMETIMES_MATCH$1;return e.match=t},any:t});o(e)}inferenceMatchResult$1.ALWAYS_MATCH=ALWAYS_MATCH$1,inferenceMatchResult$1.SOMETIMES_MATCH=SOMETIMES_MATCH$1,inferenceMatchResult$1.NEVER_MATCH=NEVER_MATCH$1;var inferenceMatchResult_1=inferenceMatchResult$1,asts$5=asts_1,op$1=opcodes_1,visitor$8=visitor_1,_a$3=inferenceMatchResult_1,ALWAYS_MATCH=_a$3.ALWAYS_MATCH,SOMETIMES_MATCH=_a$3.SOMETIMES_MATCH,NEVER_MATCH=_a$3.NEVER_MATCH;function generateBytecode$1(e){var t=[],r=[],n=[],a=[];function o(e){var t=JSON.stringify(e),r=n.findIndex((function(e){return JSON.stringify(e)===t}));return-1===r?n.push(e)-1:r}function s(e,t,r){var n={predicate:e,params:t,body:r.code,location:r.codeLocation},o=JSON.stringify(n),s=a.findIndex((function(e){return JSON.stringify(e)===o}));return-1===s?a.push(n)-1:s}function u(e){var t={};return Object.keys(e).forEach((function(r){t[r]=e[r]})),t}function i(e){for(var t=[],r=1;r1?c(SOMETIMES_MATCH,[op$1.IF_ERROR],i([op$1.POP],e(t.slice(1),r)),[]):[])}(e.alternatives,t)},action:function(e,t){var r=u(t.env),n="sequence"!==e.expression.type||0===e.expression.elements.length,a=g(e.expression,{sp:t.sp+(n?1:0),env:r,action:e}),o=0|e.expression.match,p=n&&o!==NEVER_MATCH?s(!1,Object.keys(r),e):null;return n?i([op$1.PUSH_CURR_POS],a,c(o,[op$1.IF_NOT_ERROR],i([op$1.LOAD_SAVED_POS,1],l(p,1,r,t.sp+2)),[]),[op$1.NIP]):a},sequence:function(e,t){return i([op$1.PUSH_CURR_POS],function t(r,n){if(r.length>0){var a=e.elements.length-r.length+1;return i(g(r[0],{sp:n.sp,env:n.env,pluck:n.pluck,action:null}),c(0|r[0].match,[op$1.IF_NOT_ERROR],t(r.slice(1),{sp:n.sp+1,env:n.env,pluck:n.pluck,action:n.action}),i(a>1?[op$1.POP_N,a]:[op$1.POP],[op$1.POP_CURR_POS],[op$1.PUSH_FAILED])))}if(n.pluck.length>0)return i([op$1.PLUCK,e.elements.length+1,n.pluck.length],n.pluck.map((function(e){return n.sp-e})));if(n.action){var o=s(!1,Object.keys(n.env),n.action);return i([op$1.LOAD_SAVED_POS,e.elements.length],l(o,e.elements.length+1,n.env,n.sp))}return i([op$1.WRAP,e.elements.length],[op$1.NIP])}(e.elements,{sp:t.sp+1,env:t.env,pluck:[],action:t.action}))},labeled:function(e,t){var r=t.env,n=e.label,a=t.sp+1;return n&&(r=u(t.env),t.env[e.label]=a),e.pick&&t.pluck.push(a),g(e.expression,{sp:t.sp,env:r,action:null})},text:function(e,t){return i([op$1.PUSH_CURR_POS],g(e.expression,{sp:t.sp+1,env:u(t.env),action:null}),c(0|e.match,[op$1.IF_NOT_ERROR],i([op$1.POP],[op$1.TEXT]),[op$1.NIP]))},simple_and:function(e,t){return p(e.expression,!1,t)},simple_not:function(e,t){return p(e.expression,!0,t)},optional:function(e,t){return i(g(e.expression,{sp:t.sp,env:u(t.env),action:null}),c(-(0|e.expression.match),[op$1.IF_ERROR],i([op$1.POP],[op$1.PUSH_NULL]),[]))},zero_or_more:function(e,t){var r=g(e.expression,{sp:t.sp+1,env:u(t.env),action:null});return i([op$1.PUSH_EMPTY_ARRAY],r,d(r),[op$1.POP])},one_or_more:function(e,t){var r=g(e.expression,{sp:t.sp+1,env:u(t.env),action:null});return i([op$1.PUSH_EMPTY_ARRAY],r,c(0|e.expression.match,[op$1.IF_NOT_ERROR],i(d(r),[op$1.POP]),i([op$1.POP],[op$1.POP],[op$1.PUSH_FAILED])))},group:function(e,t){return g(e.expression,{sp:t.sp,env:u(t.env),action:null})},semantic_and:function(e,t){return f(e,!1,t)},semantic_not:function(e,t){return f(e,!0,t)},rule_ref:function(t){return[op$1.RULE,asts$5.indexOfRule(e,t.name)]},literal:function(e){if(e.value.length>0){var r=0|e.match,n=r===SOMETIMES_MATCH||r===ALWAYS_MATCH&&!e.ignoreCase?(s=e.ignoreCase?e.value.toLowerCase():e.value,-1===(u=t.indexOf(s))?t.push(s)-1:u):null,a=r!==ALWAYS_MATCH?o({type:"literal",value:e.value,ignoreCase:e.ignoreCase}):null;return c(r,e.ignoreCase?[op$1.MATCH_STRING_IC,n]:[op$1.MATCH_STRING,n],e.ignoreCase?[op$1.ACCEPT_N,e.value.length]:[op$1.ACCEPT_STRING,n],[op$1.FAIL,a])}var s,u;return[op$1.PUSH_EMPTY_STRING]},class:function(e){var t=0|e.match,n=t===SOMETIMES_MATCH?function(e){var t={value:e.parts,inverted:e.inverted,ignoreCase:e.ignoreCase},n=JSON.stringify(t),a=r.findIndex((function(e){return JSON.stringify(e)===n}));return-1===a?r.push(t)-1:a}(e):null,a=t!==ALWAYS_MATCH?o({type:"class",value:e.parts,inverted:e.inverted,ignoreCase:e.ignoreCase}):null;return c(t,[op$1.MATCH_CHAR_CLASS,n],[op$1.ACCEPT_N,1],[op$1.FAIL,a])},any:function(e){var t=0|e.match,r=t!==ALWAYS_MATCH?o({type:"any"}):null;return c(t,[op$1.MATCH_ANY],[op$1.ACCEPT_N,1],[op$1.FAIL,r])}});g(e)}var generateBytecode_1=generateBytecode$1,Stack$2=function(){function e(e,t,r){this.sp=-1,this.maxSp=-1,this.varName=t,this.ruleName=e,this.type=r}return e.prototype.name=function(e){if(e<0)throw new RangeError("Rule '".concat(this.ruleName,"': The variable stack underflow: attempt to use a variable '").concat(this.varName,"' at an index ").concat(e));return this.varName+e},e.prototype.push=function(e){var t=this.name(++this.sp)+" = "+e+";";return this.sp>this.maxSp&&(this.maxSp=this.sp),t},e.prototype.pop=function(e){var t=this;return void 0!==e?(this.sp-=e,Array.from({length:e},(function(e,r){return t.name(t.sp+1+r)}))):this.name(this.sp--)},e.prototype.top=function(){return this.name(this.sp)},e.prototype.index=function(e){if(e<0)throw new RangeError("Rule '".concat(this.ruleName,"': The variable stack overflow: attempt to get a variable at a negative index ").concat(e));return this.name(this.sp-e)},e.prototype.result=function(){if(this.maxSp<0)throw new RangeError("Rule '".concat(this.ruleName,"': The variable stack is empty, can't get the result'"));return this.name(0)},e.prototype.defines=function(){var e=this;return this.maxSp<0?"":this.type+" "+Array.from({length:this.maxSp+1},(function(t,r){return e.name(r)})).join(", ")+";"},e.prototype.checkedIf=function(e,t,r){var n=this.sp;if(t(),r){var a=this.sp;if(this.sp=n,r(),a!==this.sp)throw new Error("Rule '"+this.ruleName+"', position "+e+": Branches of a condition can't move the stack pointer differently (before: "+n+", after then: "+a+", after else: "+this.sp+").")}},e.prototype.checkedLoop=function(e,t){var r=this.sp;if(t(),r!==this.sp)throw new Error("Rule '"+this.ruleName+"', position "+e+": Body of a loop can't move the stack pointer (before: "+r+", after: "+this.sp+").")},e}(),stack=Stack$2,version$1="2.0.1",utils$1={};function hex$1(e){return e.charCodeAt(0).toString(16).toUpperCase()}function stringEscape$2(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\v/g,"\\v").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+hex$1(e)})).replace(/[\x10-\x1F\x7F-\xFF]/g,(function(e){return"\\x"+hex$1(e)})).replace(/[\u0100-\u0FFF]/g,(function(e){return"\\u0"+hex$1(e)})).replace(/[\u1000-\uFFFF]/g,(function(e){return"\\u"+hex$1(e)}))}function regexpClassEscape$2(e){return e.replace(/\\/g,"\\\\").replace(/\//g,"\\/").replace(/]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\v/g,"\\v").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+hex$1(e)})).replace(/[\x10-\x1F\x7F-\xFF]/g,(function(e){return"\\x"+hex$1(e)})).replace(/[\u0100-\u0FFF]/g,(function(e){return"\\u0"+hex$1(e)})).replace(/[\u1000-\uFFFF]/g,(function(e){return"\\u"+hex$1(e)}))}function base64$6(e){for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r=e.length%3,n=e.length-r,a="",o=0;o>2],a+=t[(3&e[o])<<4|e[o+1]>>4],a+=t[(15&e[o+1])<<2|e[o+2]>>6],a+=t[63&e[o+2]];return 1===r?(a+=t[e[n]>>2],a+=t[(3&e[n])<<4],a+="=="):2===r&&(a+=t[e[n]>>2],a+=t[(3&e[n])<<4|e[n+1]>>4],a+=t[(15&e[n+1])<<2],a+="="),a}utils$1.hex=hex$1,utils$1.stringEscape=stringEscape$2,utils$1.regexpClassEscape=regexpClassEscape$2,utils$1.base64=base64$6;var sourceMap$1={},sourceMapGenerator$1={},base64Vlq$1={},base64$5={};const intToCharMap$1="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");base64$5.encode=function(e){if(0<=e&&e>>=VLQ_BASE_SHIFT$1,n>0&&(t|=VLQ_CONTINUATION_BIT$1),r+=base64$4.encode(t)}while(n>0);return r};var util$8={};function getArg$1(e,t,r){if(t in e)return e[t];if(3===arguments.length)return r;throw new Error('"'+t+'" is a required argument.')}util$8.getArg=getArg$1;const supportsNullProto$1=!("__proto__"in Object.create(null));function identity$1(e){return e}function toSetString$1(e){return isProtoString$1(e)?"$"+e:e}function fromSetString$1(e){return isProtoString$1(e)?e.slice(1):e}function isProtoString$1(e){if(!e)return!1;const t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(let r=t-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function strcmp$1(e,t){return e===t?0:null===e?1:null===t?-1:e>t?1:-1}function compareByGeneratedPositionsInflated$1(e,t){let r=e.generatedLine-t.generatedLine;return 0!==r?r:(r=e.generatedColumn-t.generatedColumn,0!==r?r:(r=strcmp$1(e.source,t.source),0!==r?r:(r=e.originalLine-t.originalLine,0!==r?r:(r=e.originalColumn-t.originalColumn,0!==r?r:strcmp$1(e.name,t.name)))))}util$8.toSetString=supportsNullProto$1?identity$1:toSetString$1,util$8.fromSetString=supportsNullProto$1?identity$1:fromSetString$1,util$8.compareByGeneratedPositionsInflated=compareByGeneratedPositionsInflated$1;const PROTOCOL$1="http:",PROTOCOL_AND_HOST$1=`${PROTOCOL$1}//host`;function createSafeHandler$1(e){return t=>{const r=getURLType$1(t),n=buildSafeBase$1(t),a=new URL(t,n);e(a);const o=a.toString();return"absolute"===r?o:"scheme-relative"===r?o.slice(PROTOCOL$1.length):"path-absolute"===r?o.slice(PROTOCOL_AND_HOST$1.length):computeRelativeURL$1(n,o)}}function withBase$1(e,t){return new URL(e,t).toString()}function buildUniqueSegment$1(e,t){let r=0;for(;;){const n=e+r++;if(-1===t.indexOf(n))return n}}function buildSafeBase$1(e){const t=e.split("..").length-1,r=buildUniqueSegment$1("p",e);let n=`${PROTOCOL_AND_HOST$1}/`;for(let e=0;e0&&!n[n.length-1]&&n.pop();r.length>0&&n.length>0&&r[0]===n[0];)r.shift(),n.shift();return n.map((()=>"..")).concat(r).join("/")+t.search+t.hash}const ensureDirectory$1=createSafeHandler$1((e=>{e.pathname=e.pathname.replace(/\/?$/,"/")})),normalize$1=createSafeHandler$1((e=>{}));function join$1(e,t){const r=getURLType$1(t),n=getURLType$1(e);if(e=ensureDirectory$1(e),"absolute"===r)return withBase$1(t,void 0);if("absolute"===n)return withBase$1(t,e);if("scheme-relative"===r)return normalize$1(t);if("scheme-relative"===n)return withBase$1(t,withBase$1(e,PROTOCOL_AND_HOST$1)).slice(PROTOCOL$1.length);if("path-absolute"===r)return normalize$1(t);if("path-absolute"===n)return withBase$1(t,withBase$1(e,PROTOCOL_AND_HOST$1)).slice(PROTOCOL_AND_HOST$1.length);const a=buildSafeBase$1(t+e);return computeRelativeURL$1(a,withBase$1(t,withBase$1(e,a)))}function relative$1(e,t){const r=relativeIfPossible$1(e,t);return"string"==typeof r?r:normalize$1(t)}function relativeIfPossible$1(e,t){if(getURLType$1(e)!==getURLType$1(t))return null;const r=buildSafeBase$1(e+t),n=new URL(e,r),a=new URL(t,r);try{new URL("",a.toString())}catch(e){return null}return a.protocol!==n.protocol||a.user!==n.user||a.password!==n.password||a.hostname!==n.hostname||a.port!==n.port?null:computeRelativeURL$1(n,a)}util$8.normalize=normalize$1,util$8.join=join$1,util$8.relative=relative$1;var arraySet$1={};class ArraySet$4{constructor(){this._array=[],this._set=new Map}static fromArray(e,t){const r=new ArraySet$4;for(let n=0,a=e.length;n=0)return t;throw new Error('"'+e+'" is not in the set.')}at(e){if(e>=0&&er||n==r&&o>=a||util$7.compareByGeneratedPositionsInflated(e,t)<=0}class MappingList$3{constructor(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}unsortedForEach(e,t){this._array.forEach(e,t)}add(e){generatedPositionAfter$1(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))}toArray(){return this._sorted||(this._array.sort(util$7.compareByGeneratedPositionsInflated),this._sorted=!0),this._array}}mappingList$1.MappingList=MappingList$3;const base64VLQ$1=base64Vlq$1,util$6=util$8,ArraySet$3=arraySet$1.ArraySet,MappingList$2=mappingList$1.MappingList;class SourceMapGenerator$3{constructor(e){e||(e={}),this._file=util$6.getArg(e,"file",null),this._sourceRoot=util$6.getArg(e,"sourceRoot",null),this._skipValidation=util$6.getArg(e,"skipValidation",!1),this._sources=new ArraySet$3,this._names=new ArraySet$3,this._mappings=new MappingList$2,this._sourcesContents=null}static fromSourceMap(e){const t=e.sourceRoot,r=new SourceMapGenerator$3({file:e.file,sourceRoot:t});return e.eachMapping((function(e){const n={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(n.source=e.source,null!=t&&(n.source=util$6.relative(t,n.source)),n.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(n.name=e.name)),r.addMapping(n)})),e.sources.forEach((function(n){let a=n;null!=t&&(a=util$6.relative(t,n)),r._sources.has(a)||r._sources.add(a);const o=e.sourceContentFor(n);null!=o&&r.setSourceContent(n,o)})),r}addMapping(e){const t=util$6.getArg(e,"generated"),r=util$6.getArg(e,"original",null);let n=util$6.getArg(e,"source",null),a=util$6.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,r,n,a),null!=n&&(n=String(n),this._sources.has(n)||this._sources.add(n)),null!=a&&(a=String(a),this._names.has(a)||this._names.add(a)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:r&&r.line,originalColumn:r&&r.column,source:n,name:a})}setSourceContent(e,t){let r=e;null!=this._sourceRoot&&(r=util$6.relative(this._sourceRoot,r)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[util$6.toSetString(r)]=t):this._sourcesContents&&(delete this._sourcesContents[util$6.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))}applySourceMap(e,t,r){let n=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');n=e.file}const a=this._sourceRoot;null!=a&&(n=util$6.relative(a,n));const o=this._mappings.toArray().length>0?new ArraySet$3:this._sources,s=new ArraySet$3;this._mappings.unsortedForEach((function(t){if(t.source===n&&null!=t.originalLine){const n=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=n.source&&(t.source=n.source,null!=r&&(t.source=util$6.join(r,t.source)),null!=a&&(t.source=util$6.relative(a,t.source)),t.originalLine=n.line,t.originalColumn=n.column,null!=n.name&&(t.name=n.name))}const u=t.source;null==u||o.has(u)||o.add(u);const i=t.name;null==i||s.has(i)||s.add(i)}),this),this._sources=o,this._names=s,e.sources.forEach((function(t){const n=e.sourceContentFor(t);null!=n&&(null!=r&&(t=util$6.join(r,t)),null!=a&&(t=util$6.relative(a,t)),this.setSourceContent(t,n))}),this)}_validateMapping(e,t,r,n){if(t&&"number"!=typeof t.line&&"number"!=typeof t.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0&&!t&&!r&&!n);else if(!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:t,name:n}))}_serializeMappings(){let e,t,r,n,a=0,o=1,s=0,u=0,i=0,c=0,l="";const p=this._mappings.toArray();for(let f=0,d=p.length;f0){if(!util$6.compareByGeneratedPositionsInflated(t,p[f-1]))continue;e+=","}e+=base64VLQ$1.encode(t.generatedColumn-a),a=t.generatedColumn,null!=t.source&&(n=this._sources.indexOf(t.source),e+=base64VLQ$1.encode(n-c),c=n,e+=base64VLQ$1.encode(t.originalLine-1-u),u=t.originalLine-1,e+=base64VLQ$1.encode(t.originalColumn-s),s=t.originalColumn,null!=t.name&&(r=this._names.indexOf(t.name),e+=base64VLQ$1.encode(r-i),i=r)),l+=e}return l}_generateSourcesContent(e,t){return e.map((function(e){if(!this._sourcesContents)return null;null!=t&&(e=util$6.relative(t,e));const r=util$6.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null}),this)}toJSON(){const e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e}toString(){return JSON.stringify(this.toJSON())}}SourceMapGenerator$3.prototype._version=3,sourceMapGenerator$1.SourceMapGenerator=SourceMapGenerator$3;var sourceNode$1={};const SourceMapGenerator$2=sourceMapGenerator$1.SourceMapGenerator,util$5=util$8,REGEX_NEWLINE$1=/(\r?\n)/,NEWLINE_CODE$1=10,isSourceNode$1="$$$isSourceNode$$$";class SourceNode$3{constructor(e,t,r,n,a){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==r?null:r,this.name=null==a?null:a,this[isSourceNode$1]=!0,null!=n&&this.add(n)}static fromStringWithSourceMap(e,t,r){const n=new SourceNode$3,a=e.split(REGEX_NEWLINE$1);let o=0;const s=function(){return e()+(e()||"");function e(){return o=0;t--)this.prepend(e[t]);else{if(!e[isSourceNode$1]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this}walk(e){let t;for(let r=0,n=this.children.length;r0){for(t=[],r=0;r0&&(r.forEach((function(e){o.push("var "+e+' = require("'+stringEscape$1(t.dependencies[e])+'");')})),o.push("")),o.push(e,"","module.exports = "+a()+";"),o},es:function(){var r=Object.keys(t.dependencies),a=n();return a.push(""),r.length>0&&(r.forEach((function(e){a.push("import "+e+' from "'+stringEscape$1(t.dependencies[e])+'";')})),a.push("")),a.push(e,"","export {"," peg$SyntaxError as SyntaxError,",t.trace?" peg$DefaultTracer as DefaultTracer,":""," peg$parse as parse","};"),a},amd:function(){var o=Object.keys(t.dependencies),s="["+o.map((function(e){return t.dependencies[e]})).map((function(e){return'"'+stringEscape$1(e)+'"'})).join(", ")+"]",u=o.join(", ");return __spreadArray$3(__spreadArray$3([],n(),!0),["define("+s+", function("+u+") {",' "use strict";',"",e,"",r("return "+a()+";"),"});"],!1)},globals:function(){return __spreadArray$3(__spreadArray$3([],n(),!0),["(function(root) {",' "use strict";',"",e,"",r("root."+t.exportVar+" = "+a()+";"),"})(this);"],!1)},umd:function(){var o=Object.keys(t.dependencies),s=o.map((function(e){return t.dependencies[e]})),u="["+s.map((function(e){return'"'+stringEscape$1(e)+'"'})).join(", ")+"]",i=s.map((function(e){return'require("'+stringEscape$1(e)+'")'})).join(", "),c=o.join(", "),l=n();return l.push("(function(root, factory) {",' if (typeof define === "function" && define.amd) {'," define("+u+", factory);",' } else if (typeof module === "object" && module.exports) {'," module.exports = factory("+i+");"),null!==t.exportVar&&l.push(" } else {"," root."+t.exportVar+" = factory();"),l.push(" }","})(this, function("+c+") {",' "use strict";',"",e,"",r("return "+a()+";"),"});"),l}},s=o[t.format]();return new SourceNode$2(null,null,t.grammarSource,s.map((function(e){return e instanceof SourceNode$2?e:e+"\n"})))}(function(){var c=[];e.topLevelInitializer&&(c.push(i(e.topLevelInitializer)),c.push("")),c.push("function peg$subclass(child, parent) {"," function C() { this.constructor = child; }"," C.prototype = parent.prototype;"," child.prototype = new C();","}","","function peg$SyntaxError(message, expected, found, location) {"," var self = Error.call(this, message);"," // istanbul ignore next Check is a necessary evil to support older environments"," if (Object.setPrototypeOf) {"," Object.setPrototypeOf(self, peg$SyntaxError.prototype);"," }"," self.expected = expected;"," self.found = found;"," self.location = location;",' self.name = "SyntaxError";'," return self;","}","","peg$subclass(peg$SyntaxError, Error);","","function peg$padEnd(str, targetLength, padString) {",' padString = padString || " ";'," if (str.length > targetLength) { return str; }"," targetLength -= str.length;"," padString += padString.repeat(targetLength);"," return str + padString.slice(0, targetLength);","}","","peg$SyntaxError.prototype.format = function(sources) {",' var str = "Error: " + this.message;'," if (this.location) {"," var src = null;"," var k;"," for (k = 0; k < sources.length; k++) {"," if (sources[k].source === this.location.source) {"," src = sources[k].text.split(/\\r\\n|\\n|\\r/g);"," break;"," }"," }"," var s = this.location.start;",' var loc = this.location.source + ":" + s.line + ":" + s.column;'," if (src) {"," var e = this.location.end;"," var filler = peg$padEnd(\"\", s.line.toString().length, ' ');"," var line = src[s.line - 1];"," var last = s.line === e.line ? e.column : line.length + 1;"," var hatLen = (last - s.column) || 1;",' str += "\\n --\x3e " + loc + "\\n"',' + filler + " |\\n"',' + s.line + " | " + line + "\\n"',' + filler + " | " + peg$padEnd("", s.column - 1, \' \')',' + peg$padEnd("", hatLen, "^");'," } else {",' str += "\\n at " + loc;'," }"," }"," return str;","};","","peg$SyntaxError.buildMessage = function(expected, found) {"," var DESCRIBE_EXPECTATION_FNS = {"," literal: function(expectation) {",' return "\\"" + literalEscape(expectation.text) + "\\"";'," },",""," class: function(expectation) {"," var escapedParts = expectation.parts.map(function(part) {"," return Array.isArray(part)",' ? classEscape(part[0]) + "-" + classEscape(part[1])'," : classEscape(part);"," });","",' return "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]";'," },",""," any: function() {",' return "any character";'," },",""," end: function() {",' return "end of input";'," },",""," other: function(expectation) {"," return expectation.description;"," }"," };",""," function hex(ch) {"," return ch.charCodeAt(0).toString(16).toUpperCase();"," }",""," function literalEscape(s) {"," return s",' .replace(/\\\\/g, "\\\\\\\\")',' .replace(/"/g, "\\\\\\"")',' .replace(/\\0/g, "\\\\0")',' .replace(/\\t/g, "\\\\t")',' .replace(/\\n/g, "\\\\n")',' .replace(/\\r/g, "\\\\r")',' .replace(/[\\x00-\\x0F]/g, function(ch) { return "\\\\x0" + hex(ch); })',' .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return "\\\\x" + hex(ch); });'," }",""," function classEscape(s) {"," return s",' .replace(/\\\\/g, "\\\\\\\\")',' .replace(/\\]/g, "\\\\]")',' .replace(/\\^/g, "\\\\^")',' .replace(/-/g, "\\\\-")',' .replace(/\\0/g, "\\\\0")',' .replace(/\\t/g, "\\\\t")',' .replace(/\\n/g, "\\\\n")',' .replace(/\\r/g, "\\\\r")',' .replace(/[\\x00-\\x0F]/g, function(ch) { return "\\\\x0" + hex(ch); })',' .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return "\\\\x" + hex(ch); });'," }",""," function describeExpectation(expectation) {"," return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);"," }",""," function describeExpected(expected) {"," var descriptions = expected.map(describeExpectation);"," var i, j;",""," descriptions.sort();",""," if (descriptions.length > 0) {"," for (i = 1, j = 1; i < descriptions.length; i++) {"," if (descriptions[i - 1] !== descriptions[i]) {"," descriptions[j] = descriptions[i];"," j++;"," }"," }"," descriptions.length = j;"," }",""," switch (descriptions.length) {"," case 1:"," return descriptions[0];",""," case 2:",' return descriptions[0] + " or " + descriptions[1];',""," default:",' return descriptions.slice(0, -1).join(", ")',' + ", or "'," + descriptions[descriptions.length - 1];"," }"," }",""," function describeFound(found) {",' return found ? "\\"" + literalEscape(found) + "\\"" : "end of input";'," }","",' return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";',"};",""),t.trace&&c.push("function peg$DefaultTracer() {"," this.indentLevel = 0;","}","","peg$DefaultTracer.prototype.trace = function(event) {"," var that = this;",""," function log(event) {"," function repeat(string, n) {",' var result = "", i;',""," for (i = 0; i < n; i++) {"," result += string;"," }",""," return result;"," }",""," function pad(string, length) {",' return string + repeat(" ", length - string.length);'," }","",' if (typeof console === "object") {'," console.log(",' event.location.start.line + ":" + event.location.start.column + "-"',' + event.location.end.line + ":" + event.location.end.column + " "',' + pad(event.type, 10) + " "',' + repeat(" ", that.indentLevel) + event.rule'," );"," }"," }",""," switch (event.type) {",' case "rule.enter":'," log(event);"," this.indentLevel++;"," break;","",' case "rule.match":'," this.indentLevel--;"," log(event);"," break;","",' case "rule.fail":'," this.indentLevel--;"," log(event);"," break;",""," default:",' throw new Error("Invalid event type: " + event.type + ".");'," }","};","");var l="{ "+t.allowedStartRules.map((function(e){return e+": "+u(e)})).join(", ")+" }",p=u(t.allowedStartRules[0]);return c.push("function peg$parse(input, options) {"," options = options !== undefined ? options : {};",""," var peg$FAILED = {};"," var peg$source = options.grammarSource;",""," var peg$startRuleFunctions = "+l+";"," var peg$startRuleFunction = "+p+";","",new SourceNode$2(null,null,t.grammarSource,[e.literals.map((function(e,t){return" var "+n(t)+' = "'+stringEscape$1(e)+'";'})).concat("",e.classes.map((function(e,t){return" var "+a(t)+" = /^["+((r=e).inverted?"^":"")+r.value.map((function(e){return Array.isArray(e)?regexpClassEscape$1(e[0])+"-"+regexpClassEscape$1(e[1]):regexpClassEscape$1(e)})).join("")+"]/"+(r.ignoreCase?"i":"")+";";var r}))).concat("",e.expectations.map((function(e,t){return" var "+o(t)+" = "+function(e){switch(e.type){case"rule":return'peg$otherExpectation("'+stringEscape$1(e.value)+'")';case"literal":return'peg$literalExpectation("'+stringEscape$1(e.value)+'", '+e.ignoreCase+")";case"class":return"peg$classExpectation(["+e.value.map((function(e){return Array.isArray(e)?'["'+stringEscape$1(e[0])+'", "'+stringEscape$1(e[1])+'"]':'"'+stringEscape$1(e)+'"'})).join(", ")+"], "+e.inverted+", "+e.ignoreCase+")";case"any":return"peg$anyExpectation()";default:throw new Error("Unknown expectation type ("+JSON.stringify(e)+")")}}(e)+";"}))).concat("").join("\n"),e.functions.map((function(e,t){return wrapInSourceNode("\n var ".concat(s(t)," = function(").concat(e.params.join(", "),") {"),e.body,e.location,"};")}))]),""," var peg$currPos = 0;"," var peg$savedPos = 0;"," var peg$posDetailsCache = [{ line: 1, column: 1 }];"," var peg$maxFailPos = 0;"," var peg$maxFailExpected = [];"," var peg$silentFails = 0;",""),t.cache&&c.push(" var peg$resultsCache = {};",""),t.trace&&c.push(' var peg$tracer = "tracer" in options ? options.tracer : new peg$DefaultTracer();',""),c.push(" var peg$result;","",' if ("startRule" in options) {'," if (!(options.startRule in peg$startRuleFunctions)) {",' throw new Error("Can\'t start parsing from rule \\"" + options.startRule + "\\".");'," }",""," peg$startRuleFunction = peg$startRuleFunctions[options.startRule];"," }",""," function text() {"," return input.substring(peg$savedPos, peg$currPos);"," }",""," function offset() {"," return peg$savedPos;"," }",""," function range() {"," return {"," source: peg$source,"," start: peg$savedPos,"," end: peg$currPos"," };"," }",""," function location() {"," return peg$computeLocation(peg$savedPos, peg$currPos);"," }",""," function expected(description, location) {"," location = location !== undefined"," ? location"," : peg$computeLocation(peg$savedPos, peg$currPos);",""," throw peg$buildStructuredError("," [peg$otherExpectation(description)],"," input.substring(peg$savedPos, peg$currPos),"," location"," );"," }",""," function error(message, location) {"," location = location !== undefined"," ? location"," : peg$computeLocation(peg$savedPos, peg$currPos);",""," throw peg$buildSimpleError(message, location);"," }",""," function peg$literalExpectation(text, ignoreCase) {",' return { type: "literal", text: text, ignoreCase: ignoreCase };'," }",""," function peg$classExpectation(parts, inverted, ignoreCase) {",' return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase };'," }",""," function peg$anyExpectation() {",' return { type: "any" };'," }",""," function peg$endExpectation() {",' return { type: "end" };'," }",""," function peg$otherExpectation(description) {",' return { type: "other", description: description };'," }",""," function peg$computePosDetails(pos) {"," var details = peg$posDetailsCache[pos];"," var p;",""," if (details) {"," return details;"," } else {"," p = pos - 1;"," while (!peg$posDetailsCache[p]) {"," p--;"," }",""," details = peg$posDetailsCache[p];"," details = {"," line: details.line,"," column: details.column"," };",""," while (p < pos) {"," if (input.charCodeAt(p) === 10) {"," details.line++;"," details.column = 1;"," } else {"," details.column++;"," }",""," p++;"," }",""," peg$posDetailsCache[pos] = details;",""," return details;"," }"," }",""," function peg$computeLocation(startPos, endPos) {"," var startPosDetails = peg$computePosDetails(startPos);"," var endPosDetails = peg$computePosDetails(endPos);",""," return {"," source: peg$source,"," start: {"," offset: startPos,"," line: startPosDetails.line,"," column: startPosDetails.column"," },"," end: {"," offset: endPos,"," line: endPosDetails.line,"," column: endPosDetails.column"," }"," };"," }",""," function peg$fail(expected) {"," if (peg$currPos < peg$maxFailPos) { return; }",""," if (peg$currPos > peg$maxFailPos) {"," peg$maxFailPos = peg$currPos;"," peg$maxFailExpected = [];"," }",""," peg$maxFailExpected.push(expected);"," }",""," function peg$buildSimpleError(message, location) {"," return new peg$SyntaxError(message, null, null, location);"," }",""," function peg$buildStructuredError(expected, found, location) {"," return new peg$SyntaxError("," peg$SyntaxError.buildMessage(expected, found),"," expected,"," found,"," location"," );"," }",""),e.rules.forEach((function(i){c.push.apply(c,function(i){var c=[],l=new Stack$1(i.name,"s","var"),p=function t(i){var c,p=0,f=i.length,d=[];function g(e,n){var a,o,s=n+3,u=i[p+s-2],c=i[p+s-1];l.checkedIf(p,(function(){p+=s,a=t(i.slice(p,p+u)),p+=u}),c>0?function(){o=t(i.slice(p,p+c)),p+=c}:null),d.push("if ("+e+") {"),d.push.apply(d,a.map(r)),c>0&&(d.push("} else {"),d.push.apply(d,o.map(r))),d.push("}")}function h(e){var n,a=i[p+2-1];l.checkedLoop(p,(function(){p+=2,n=t(i.slice(p,p+a)),p+=a})),d.push("while ("+e+") {"),d.push.apply(d,n.map(r)),d.push("}")}function m(){var e=i[p+4-1],t=s(i[p+1])+"("+i.slice(p+4,p+4+e).map((function(e){return l.index(e)})).join(", ")+")";l.pop(i[p+2]),d.push(l.push(t)),p+=4+e}for(;p peg$currPos",0);break;case op.MATCH_STRING:g(e.literals[i[p+1]].length>1?"input.substr(peg$currPos, "+e.literals[i[p+1]].length+") === "+n(i[p+1]):"input.charCodeAt(peg$currPos) === "+e.literals[i[p+1]].charCodeAt(0),1);break;case op.MATCH_STRING_IC:g("input.substr(peg$currPos, "+e.literals[i[p+1]].length+").toLowerCase() === "+n(i[p+1]),1);break;case op.MATCH_CHAR_CLASS:g(a(i[p+1])+".test(input.charAt(peg$currPos))",1);break;case op.ACCEPT_N:d.push(l.push(i[p+1]>1?"input.substr(peg$currPos, "+i[p+1]+")":"input.charAt(peg$currPos)")),d.push(i[p+1]>1?"peg$currPos += "+i[p+1]+";":"peg$currPos++;"),p+=2;break;case op.ACCEPT_STRING:d.push(l.push(n(i[p+1]))),d.push(e.literals[i[p+1]].length>1?"peg$currPos += "+e.literals[i[p+1]].length+";":"peg$currPos++;"),p+=2;break;case op.FAIL:d.push(l.push("peg$FAILED")),d.push("if (peg$silentFails === 0) { peg$fail("+o(i[p+1])+"); }"),p+=2;break;case op.LOAD_SAVED_POS:d.push("peg$savedPos = "+l.index(i[p+1])+";"),p+=2;break;case op.UPDATE_SAVED_POS:d.push("peg$savedPos = peg$currPos;"),p++;break;case op.CALL:m();break;case op.RULE:d.push(l.push(u(e.rules[i[p+1]].name)+"()")),p+=2;break;case op.SILENT_FAILS_ON:d.push("peg$silentFails++;"),p++;break;case op.SILENT_FAILS_OFF:d.push("peg$silentFails--;"),p++;break;default:throw new Error("Invalid opcode: "+i[p]+".")}return d}(i.bytecode);return c.push(wrapInSourceNode(" function ",u(i.name),i.nameLocation,"() {\n",i.name)),t.trace&&c.push(" var startPos = peg$currPos;"),c.push(r(l.defines())),c.push.apply(c,function(r,n){var a=[];return a.push(""),t.trace&&a.push("peg$tracer.trace({",' type: "rule.enter",'," rule: "+r+","," location: peg$computeLocation(startPos, startPos)","});",""),t.cache&&(a.push("var key = peg$currPos * "+e.rules.length+" + "+n+";","var cached = peg$resultsCache[key];","","if (cached) {"," peg$currPos = cached.nextPos;",""),t.trace&&a.push("if (cached.result !== peg$FAILED) {"," peg$tracer.trace({",' type: "rule.match",'," rule: "+r+","," result: cached.result,"," location: peg$computeLocation(startPos, peg$currPos)"," });","} else {"," peg$tracer.trace({",' type: "rule.fail",'," rule: "+r+","," location: peg$computeLocation(startPos, startPos)"," });","}",""),a.push(" return cached.result;","}","")),a}('"'+stringEscape$1(i.name)+'"',asts$4.indexOfRule(e,i.name)).map(r)),c.push.apply(c,p.map(r)),c.push.apply(c,function(e,r){var n=[];return t.cache&&n.push("","peg$resultsCache[key] = { nextPos: peg$currPos, result: "+r+" };"),t.trace&&n.push("","if ("+r+" !== peg$FAILED) {"," peg$tracer.trace({",' type: "rule.match",'," rule: "+e+","," result: "+r+","," location: peg$computeLocation(startPos, peg$currPos)"," });","} else {"," peg$tracer.trace({",' type: "rule.fail",'," rule: "+e+","," location: peg$computeLocation(startPos, startPos)"," });","}"),n.push("","return "+r+";"),n}('"'+stringEscape$1(i.name)+'"',l.result()).map(r)),c.push("}"),c}(i).map(r)),c.push("")})),e.initializer&&(c.push(i(e.initializer)),c.push("")),c.push(" peg$result = peg$startRuleFunction();",""," if (peg$result !== peg$FAILED && peg$currPos === input.length) {"," return peg$result;"," } else {"," if (peg$result !== peg$FAILED && peg$currPos < input.length) {"," peg$fail(peg$endExpectation());"," }",""," throw peg$buildStructuredError("," peg$maxFailExpected,"," peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,"," peg$maxFailPos < input.length"," ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)"," : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)"," );"," }","}"),new SourceNode$2(null,null,t.grammarSource,c.map((function(e){return e instanceof SourceNode$2?e:e+"\n"})))}())}var generateJs=generateJS$1,asts$3=asts_1,visitor$7=visitor_1;function removeProxyRules$1(e,t,r){var n=[];e.rules.forEach((function(a,o){var s;"rule"===(s=a).type&&"rule_ref"===s.expression.type&&(function(e,t,n){visitor$7.build({rule_ref:function(a){a.name===t&&(a.name=n,r.info('Proxy rule "'.concat(t,'" replaced by the rule "').concat(n,'"'),a.location,[{message:"This rule will be used",location:asts$3.findRule(e,n).nameLocation}]))}})(e)}(e,a.name,a.expression.name),-1===t.allowedStartRules.indexOf(a.name)&&n.push(o))})),n.reverse(),n.forEach((function(t){e.rules.splice(t,1)}))}var removeProxyRules_1=removeProxyRules$1,visitor$6=visitor_1;function reportDuplicateLabels$1(e,t,r){function n(e){var t={};return Object.keys(e).forEach((function(r){t[r]=e[r]})),t}function a(e,t){o(e.expression,n(t))}var o=visitor$6.build({rule:function(e){o(e.expression,{})},choice:function(e,t){e.alternatives.forEach((function(e){o(e,n(t))}))},action:a,labeled:function(e,t){var n=e.label;n&&Object.prototype.hasOwnProperty.call(t,n)&&r.error('Label "'.concat(e.label,'" is already defined'),e.labelLocation,[{message:"Original label location",location:t[n]}]),o(e.expression,t),t[e.label]=e.labelLocation},text:a,simple_and:a,simple_not:a,optional:a,zero_or_more:a,one_or_more:a,group:a});o(e)}var reportDuplicateLabels_1=reportDuplicateLabels$1,visitor$5=visitor_1;function reportDuplicateRules$1(e,t,r){var n={};visitor$5.build({rule:function(e){Object.prototype.hasOwnProperty.call(n,e.name)?r.error('Rule "'.concat(e.name,'" is already defined'),e.nameLocation,[{message:"Original rule location",location:n[e.name]}]):n[e.name]=e.nameLocation}})(e)}var reportDuplicateRules_1=reportDuplicateRules$1,asts$2=asts_1,visitor$4=visitor_1;function reportInfiniteRecursion$1(e,t,r){var n=[],a=[],o=visitor$4.build({rule:function(e){n.push(e.name),o(e.expression),n.pop()},sequence:function(t){t.elements.every((function(t){return o(t),!asts$2.alwaysConsumesOnSuccess(e,t)}))},rule_ref:function(t){a.push(t);var s=asts$2.findRule(e,t.name);if(-1!==n.indexOf(t.name))return n.push(t.name),void r.error("Possible infinite loop when parsing (left recursion: "+n.join(" -> ")+")",s.nameLocation,a.map((function(e,t,r){return{message:t+1!==r.length?"Step ".concat(t+1,': call of the rule "').concat(e.name,'" without input consumption'):"Step ".concat(t+1,": call itself without input consumption - left recursion"),location:e.location}})));s&&o(s),a.pop()}});o(e)}var reportInfiniteRecursion_1=reportInfiniteRecursion$1,asts$1=asts_1,visitor$3=visitor_1;function reportInfiniteRepetition$1(e,t,r){visitor$3.build({zero_or_more:function(t){asts$1.alwaysConsumesOnSuccess(e,t.expression)||r.error("Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",t.location)},one_or_more:function(t){asts$1.alwaysConsumesOnSuccess(e,t.expression)||r.error("Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",t.location)}})(e)}var reportInfiniteRepetition_1=reportInfiniteRepetition$1,asts=asts_1,visitor$2=visitor_1;function reportUndefinedRules$1(e,t,r){visitor$2.build({rule_ref:function(t){asts.findRule(e,t.name)||r.error('Rule "'.concat(t.name,'" is not defined'),t.location)}})(e)}var reportUndefinedRules_1=reportUndefinedRules$1,visitor$1=visitor_1;function reportIncorrectPlucking$1(e,t,r){var n=visitor$1.build({action:function(e){n(e.expression,e)},labeled:function(e,t){e.pick&&t&&r.error('"@" cannot be used with an action block',e.labelLocation,[{message:"Action block location",location:t.codeLocation}]),n(e.expression)}});n(e)}var reportIncorrectPlucking_1=reportIncorrectPlucking$1,__spreadArray$2=commonjsGlobal&&commonjsGlobal.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var n,a=0,o=t.length;at?e:(t-=e.length,e+(r+=r.repeat(t)).slice(0,t))}function peg$parse(e,t){var r,n={},a=(t=void 0!==t?t:{}).grammarSource,o={Grammar:ct},s=ct,u="{",i="}",c="/*",l="*/",p="\\",f='"',d="'",g=/^[\n\r\u2028\u2029]/,h=/^[0-9]/,m=/^[0-9a-f]/i,$=/^[{}]/,A=/^[a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137-\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148-\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C-\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA-\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9-\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC-\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF-\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F-\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0-\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB-\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE-\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0561-\u0587\u13F8-\u13FD\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6-\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FC7\u1FD0-\u1FD3\u1FD6-\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6-\u1FF7\u210A\u210E-\u210F\u2113\u212F\u2134\u2139\u213C-\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65-\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73-\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3-\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7B5\uA7B7\uA7FA\uAB30-\uAB5A\uAB60-\uAB65\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A]/,b=/^[\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5-\u06E6\u07F4-\u07F5\u07FA\u081A\u0824\u0828\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C-\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D-\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA69C-\uA69D\uA717-\uA71F\uA770\uA788\uA7F8-\uA7F9\uA9CF\uA9E6\uAA70\uAADD\uAAF3-\uAAF4\uAB5C-\uAB5F\uFF70\uFF9E-\uFF9F]/,x=/^[\xAA\xBA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05F0-\u05F2\u0620-\u063F\u0641-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0-\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60-\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0CF1-\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u10D0-\u10FA\u10FD-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5-\u1CF6\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A-\uA62B\uA66E\uA6A0-\uA6E5\uA78F\uA7F7\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9E0-\uA9E4\uA9E7-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,E=/^[\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC]/,v=/^[A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178-\u0179\u017B\u017D\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018B\u018E-\u0191\u0193-\u0194\u0196-\u0198\u019C-\u019D\u019F-\u01A0\u01A2\u01A4\u01A6-\u01A7\u01A9\u01AC\u01AE-\u01AF\u01B1-\u01B3\u01B5\u01B7-\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A-\u023B\u023D-\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E-\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9-\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0-\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E-\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D-\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AD\uA7B0-\uA7B4\uA7B6\uFF21-\uFF3A]/,C=/^[\u0903\u093B\u093E-\u0940\u0949-\u094C\u094E-\u094F\u0982-\u0983\u09BE-\u09C0\u09C7-\u09C8\u09CB-\u09CC\u09D7\u0A03\u0A3E-\u0A40\u0A83\u0ABE-\u0AC0\u0AC9\u0ACB-\u0ACC\u0B02-\u0B03\u0B3E\u0B40\u0B47-\u0B48\u0B4B-\u0B4C\u0B57\u0BBE-\u0BBF\u0BC1-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD7\u0C01-\u0C03\u0C41-\u0C44\u0C82-\u0C83\u0CBE\u0CC0-\u0CC4\u0CC7-\u0CC8\u0CCA-\u0CCB\u0CD5-\u0CD6\u0D02-\u0D03\u0D3E-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D57\u0D82-\u0D83\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DF2-\u0DF3\u0F3E-\u0F3F\u0F7F\u102B-\u102C\u1031\u1038\u103B-\u103C\u1056-\u1057\u1062-\u1064\u1067-\u106D\u1083-\u1084\u1087-\u108C\u108F\u109A-\u109C\u17B6\u17BE-\u17C5\u17C7-\u17C8\u1923-\u1926\u1929-\u192B\u1930-\u1931\u1933-\u1938\u1A19-\u1A1A\u1A55\u1A57\u1A61\u1A63-\u1A64\u1A6D-\u1A72\u1B04\u1B35\u1B3B\u1B3D-\u1B41\u1B43-\u1B44\u1B82\u1BA1\u1BA6-\u1BA7\u1BAA\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2-\u1BF3\u1C24-\u1C2B\u1C34-\u1C35\u1CE1\u1CF2-\u1CF3\u302E-\u302F\uA823-\uA824\uA827\uA880-\uA881\uA8B4-\uA8C3\uA952-\uA953\uA983\uA9B4-\uA9B5\uA9BA-\uA9BB\uA9BD-\uA9C0\uAA2F-\uAA30\uAA33-\uAA34\uAA4D\uAA7B\uAA7D\uAAEB\uAAEE-\uAAEF\uAAF5\uABE3-\uABE4\uABE6-\uABE7\uABE9-\uABEA\uABEC]/,y=/^[\u0300-\u036F\u0483-\u0487\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962-\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2-\u09E3\u0A01-\u0A02\u0A3C\u0A41-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A51\u0A70-\u0A71\u0A75\u0A81-\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7-\u0AC8\u0ACD\u0AE2-\u0AE3\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62-\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C62-\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC-\u0CCD\u0CE2-\u0CE3\u0D01\u0D41-\u0D44\u0D4D\u0D62-\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB-\u0EBC\u0EC8-\u0ECD\u0F18-\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86-\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039-\u103A\u103D-\u103E\u1058-\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17B4-\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193B\u1A17-\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABD\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80-\u1B81\u1BA2-\u1BA5\u1BA8-\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8-\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8-\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099-\u309A\uA66F\uA674-\uA67D\uA69E-\uA69F\uA6F0-\uA6F1\uA802\uA806\uA80B\uA825-\uA826\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9E5\uAA29-\uAA2E\uAA31-\uAA32\uAA35-\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7-\uAAB8\uAABE-\uAABF\uAAC1\uAAEC-\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/,_=/^[0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]/,S=/^[\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF]/,F=/^[_\u203F-\u2040\u2054\uFE33-\uFE34\uFE4D-\uFE4F\uFF3F]/,w=/^[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000]/,B=nt("{",!1),D=nt("}",!1),T=nt("=",!1),P=nt("/",!1),R=nt("@",!1),L=nt(":",!1),O=nt("$",!1),M=nt("&",!1),I=nt("!",!1),k=nt("?",!1),j=nt("*",!1),N=nt("+",!1),U=nt("(",!1),q=nt(")",!1),G={type:"any"},H=ot("whitespace"),z=nt("\t",!1),W=nt("\v",!1),V=nt("\f",!1),Y=nt(" ",!1),Q=nt(" ",!1),J=nt("\ufeff",!1),X=at(["\n","\r","\u2028","\u2029"],!1,!1),Z=ot("end of line"),K=nt("\n",!1),ee=nt("\r\n",!1),te=nt("\r",!1),re=nt("\u2028",!1),ne=nt("\u2029",!1),ae=ot("comment"),oe=nt("/*",!1),se=nt("*/",!1),ue=nt("//",!1),ie=ot("identifier"),ce=nt("_",!1),le=nt("\\",!1),pe=nt("‌",!1),fe=nt("‍",!1),de=ot("literal"),ge=nt("i",!1),he=ot("string"),me=nt('"',!1),$e=nt("'",!1),Ae=ot("character class"),be=nt("[",!1),xe=nt("^",!1),Ee=nt("]",!1),ve=nt("-",!1),Ce=nt("0",!1),ye=nt("b",!1),_e=nt("f",!1),Se=nt("n",!1),Fe=nt("r",!1),we=nt("t",!1),Be=nt("v",!1),De=nt("x",!1),Te=nt("u",!1),Pe=at([["0","9"]],!1,!1),Re=at([["0","9"],["a","f"]],!1,!0),Le=nt(".",!1),Oe=ot("code block"),Me=at(["{","}"],!1,!1),Ie=at([["a","z"],"µ",["ß","ö"],["ø","ÿ"],"ā","ă","ą","ć","ĉ","ċ","č","ď","đ","ē","ĕ","ė","ę","ě","ĝ","ğ","ġ","ģ","ĥ","ħ","ĩ","ī","ĭ","į","ı","ij","ĵ",["ķ","ĸ"],"ĺ","ļ","ľ","ŀ","ł","ń","ņ",["ň","ʼn"],"ŋ","ō","ŏ","ő","œ","ŕ","ŗ","ř","ś","ŝ","ş","š","ţ","ť","ŧ","ũ","ū","ŭ","ů","ű","ų","ŵ","ŷ","ź","ż",["ž","ƀ"],"ƃ","ƅ","ƈ",["ƌ","ƍ"],"ƒ","ƕ",["ƙ","ƛ"],"ƞ","ơ","ƣ","ƥ","ƨ",["ƪ","ƫ"],"ƭ","ư","ƴ","ƶ",["ƹ","ƺ"],["ƽ","ƿ"],"dž","lj","nj","ǎ","ǐ","ǒ","ǔ","ǖ","ǘ","ǚ",["ǜ","ǝ"],"ǟ","ǡ","ǣ","ǥ","ǧ","ǩ","ǫ","ǭ",["ǯ","ǰ"],"dz","ǵ","ǹ","ǻ","ǽ","ǿ","ȁ","ȃ","ȅ","ȇ","ȉ","ȋ","ȍ","ȏ","ȑ","ȓ","ȕ","ȗ","ș","ț","ȝ","ȟ","ȡ","ȣ","ȥ","ȧ","ȩ","ȫ","ȭ","ȯ","ȱ",["ȳ","ȹ"],"ȼ",["ȿ","ɀ"],"ɂ","ɇ","ɉ","ɋ","ɍ",["ɏ","ʓ"],["ʕ","ʯ"],"ͱ","ͳ","ͷ",["ͻ","ͽ"],"ΐ",["ά","ώ"],["ϐ","ϑ"],["ϕ","ϗ"],"ϙ","ϛ","ϝ","ϟ","ϡ","ϣ","ϥ","ϧ","ϩ","ϫ","ϭ",["ϯ","ϳ"],"ϵ","ϸ",["ϻ","ϼ"],["а","џ"],"ѡ","ѣ","ѥ","ѧ","ѩ","ѫ","ѭ","ѯ","ѱ","ѳ","ѵ","ѷ","ѹ","ѻ","ѽ","ѿ","ҁ","ҋ","ҍ","ҏ","ґ","ғ","ҕ","җ","ҙ","қ","ҝ","ҟ","ҡ","ң","ҥ","ҧ","ҩ","ҫ","ҭ","ү","ұ","ҳ","ҵ","ҷ","ҹ","һ","ҽ","ҿ","ӂ","ӄ","ӆ","ӈ","ӊ","ӌ",["ӎ","ӏ"],"ӑ","ӓ","ӕ","ӗ","ә","ӛ","ӝ","ӟ","ӡ","ӣ","ӥ","ӧ","ө","ӫ","ӭ","ӯ","ӱ","ӳ","ӵ","ӷ","ӹ","ӻ","ӽ","ӿ","ԁ","ԃ","ԅ","ԇ","ԉ","ԋ","ԍ","ԏ","ԑ","ԓ","ԕ","ԗ","ԙ","ԛ","ԝ","ԟ","ԡ","ԣ","ԥ","ԧ","ԩ","ԫ","ԭ","ԯ",["ա","և"],["ᏸ","ᏽ"],["ᴀ","ᴫ"],["ᵫ","ᵷ"],["ᵹ","ᶚ"],"ḁ","ḃ","ḅ","ḇ","ḉ","ḋ","ḍ","ḏ","ḑ","ḓ","ḕ","ḗ","ḙ","ḛ","ḝ","ḟ","ḡ","ḣ","ḥ","ḧ","ḩ","ḫ","ḭ","ḯ","ḱ","ḳ","ḵ","ḷ","ḹ","ḻ","ḽ","ḿ","ṁ","ṃ","ṅ","ṇ","ṉ","ṋ","ṍ","ṏ","ṑ","ṓ","ṕ","ṗ","ṙ","ṛ","ṝ","ṟ","ṡ","ṣ","ṥ","ṧ","ṩ","ṫ","ṭ","ṯ","ṱ","ṳ","ṵ","ṷ","ṹ","ṻ","ṽ","ṿ","ẁ","ẃ","ẅ","ẇ","ẉ","ẋ","ẍ","ẏ","ẑ","ẓ",["ẕ","ẝ"],"ẟ","ạ","ả","ấ","ầ","ẩ","ẫ","ậ","ắ","ằ","ẳ","ẵ","ặ","ẹ","ẻ","ẽ","ế","ề","ể","ễ","ệ","ỉ","ị","ọ","ỏ","ố","ồ","ổ","ỗ","ộ","ớ","ờ","ở","ỡ","ợ","ụ","ủ","ứ","ừ","ử","ữ","ự","ỳ","ỵ","ỷ","ỹ","ỻ","ỽ",["ỿ","ἇ"],["ἐ","ἕ"],["ἠ","ἧ"],["ἰ","ἷ"],["ὀ","ὅ"],["ὐ","ὗ"],["ὠ","ὧ"],["ὰ","ώ"],["ᾀ","ᾇ"],["ᾐ","ᾗ"],["ᾠ","ᾧ"],["ᾰ","ᾴ"],["ᾶ","ᾷ"],"ι",["ῂ","ῄ"],["ῆ","ῇ"],["ῐ","ΐ"],["ῖ","ῗ"],["ῠ","ῧ"],["ῲ","ῴ"],["ῶ","ῷ"],"ℊ",["ℎ","ℏ"],"ℓ","ℯ","ℴ","ℹ",["ℼ","ℽ"],["ⅆ","ⅉ"],"ⅎ","ↄ",["ⰰ","ⱞ"],"ⱡ",["ⱥ","ⱦ"],"ⱨ","ⱪ","ⱬ","ⱱ",["ⱳ","ⱴ"],["ⱶ","ⱻ"],"ⲁ","ⲃ","ⲅ","ⲇ","ⲉ","ⲋ","ⲍ","ⲏ","ⲑ","ⲓ","ⲕ","ⲗ","ⲙ","ⲛ","ⲝ","ⲟ","ⲡ","ⲣ","ⲥ","ⲧ","ⲩ","ⲫ","ⲭ","ⲯ","ⲱ","ⲳ","ⲵ","ⲷ","ⲹ","ⲻ","ⲽ","ⲿ","ⳁ","ⳃ","ⳅ","ⳇ","ⳉ","ⳋ","ⳍ","ⳏ","ⳑ","ⳓ","ⳕ","ⳗ","ⳙ","ⳛ","ⳝ","ⳟ","ⳡ",["ⳣ","ⳤ"],"ⳬ","ⳮ","ⳳ",["ⴀ","ⴥ"],"ⴧ","ⴭ","ꙁ","ꙃ","ꙅ","ꙇ","ꙉ","ꙋ","ꙍ","ꙏ","ꙑ","ꙓ","ꙕ","ꙗ","ꙙ","ꙛ","ꙝ","ꙟ","ꙡ","ꙣ","ꙥ","ꙧ","ꙩ","ꙫ","ꙭ","ꚁ","ꚃ","ꚅ","ꚇ","ꚉ","ꚋ","ꚍ","ꚏ","ꚑ","ꚓ","ꚕ","ꚗ","ꚙ","ꚛ","ꜣ","ꜥ","ꜧ","ꜩ","ꜫ","ꜭ",["ꜯ","ꜱ"],"ꜳ","ꜵ","ꜷ","ꜹ","ꜻ","ꜽ","ꜿ","ꝁ","ꝃ","ꝅ","ꝇ","ꝉ","ꝋ","ꝍ","ꝏ","ꝑ","ꝓ","ꝕ","ꝗ","ꝙ","ꝛ","ꝝ","ꝟ","ꝡ","ꝣ","ꝥ","ꝧ","ꝩ","ꝫ","ꝭ","ꝯ",["ꝱ","ꝸ"],"ꝺ","ꝼ","ꝿ","ꞁ","ꞃ","ꞅ","ꞇ","ꞌ","ꞎ","ꞑ",["ꞓ","ꞕ"],"ꞗ","ꞙ","ꞛ","ꞝ","ꞟ","ꞡ","ꞣ","ꞥ","ꞧ","ꞩ","ꞵ","ꞷ","ꟺ",["ꬰ","ꭚ"],["ꭠ","ꭥ"],["ꭰ","ꮿ"],["ff","st"],["ﬓ","ﬗ"],["a","z"]],!1,!1),ke=at([["ʰ","ˁ"],["ˆ","ˑ"],["ˠ","ˤ"],"ˬ","ˮ","ʹ","ͺ","ՙ","ـ",["ۥ","ۦ"],["ߴ","ߵ"],"ߺ","ࠚ","ࠤ","ࠨ","ॱ","ๆ","ໆ","ჼ","ៗ","ᡃ","ᪧ",["ᱸ","ᱽ"],["ᴬ","ᵪ"],"ᵸ",["ᶛ","ᶿ"],"ⁱ","ⁿ",["ₐ","ₜ"],["ⱼ","ⱽ"],"ⵯ","ⸯ","々",["〱","〵"],"〻",["ゝ","ゞ"],["ー","ヾ"],"ꀕ",["ꓸ","ꓽ"],"ꘌ","ꙿ",["ꚜ","ꚝ"],["ꜗ","ꜟ"],"ꝰ","ꞈ",["ꟸ","ꟹ"],"ꧏ","ꧦ","ꩰ","ꫝ",["ꫳ","ꫴ"],["ꭜ","ꭟ"],"ー",["゙","゚"]],!1,!1),je=at(["ª","º","ƻ",["ǀ","ǃ"],"ʔ",["א","ת"],["װ","ײ"],["ؠ","ؿ"],["ف","ي"],["ٮ","ٯ"],["ٱ","ۓ"],"ە",["ۮ","ۯ"],["ۺ","ۼ"],"ۿ","ܐ",["ܒ","ܯ"],["ݍ","ޥ"],"ޱ",["ߊ","ߪ"],["ࠀ","ࠕ"],["ࡀ","ࡘ"],["ࢠ","ࢴ"],["ऄ","ह"],"ऽ","ॐ",["क़","ॡ"],["ॲ","ঀ"],["অ","ঌ"],["এ","ঐ"],["ও","ন"],["প","র"],"ল",["শ","হ"],"ঽ","ৎ",["ড়","ঢ়"],["য়","ৡ"],["ৰ","ৱ"],["ਅ","ਊ"],["ਏ","ਐ"],["ਓ","ਨ"],["ਪ","ਰ"],["ਲ","ਲ਼"],["ਵ","ਸ਼"],["ਸ","ਹ"],["ਖ਼","ੜ"],"ਫ਼",["ੲ","ੴ"],["અ","ઍ"],["એ","ઑ"],["ઓ","ન"],["પ","ર"],["લ","ળ"],["વ","હ"],"ઽ","ૐ",["ૠ","ૡ"],"ૹ",["ଅ","ଌ"],["ଏ","ଐ"],["ଓ","ନ"],["ପ","ର"],["ଲ","ଳ"],["ଵ","ହ"],"ଽ",["ଡ଼","ଢ଼"],["ୟ","ୡ"],"ୱ","ஃ",["அ","ஊ"],["எ","ஐ"],["ஒ","க"],["ங","ச"],"ஜ",["ஞ","ட"],["ண","த"],["ந","ப"],["ம","ஹ"],"ௐ",["అ","ఌ"],["ఎ","ఐ"],["ఒ","న"],["ప","హ"],"ఽ",["ౘ","ౚ"],["ౠ","ౡ"],["ಅ","ಌ"],["ಎ","ಐ"],["ಒ","ನ"],["ಪ","ಳ"],["ವ","ಹ"],"ಽ","ೞ",["ೠ","ೡ"],["ೱ","ೲ"],["അ","ഌ"],["എ","ഐ"],["ഒ","ഺ"],"ഽ","ൎ",["ൟ","ൡ"],["ൺ","ൿ"],["අ","ඖ"],["ක","න"],["ඳ","ර"],"ල",["ව","ෆ"],["ก","ะ"],["า","ำ"],["เ","ๅ"],["ກ","ຂ"],"ຄ",["ງ","ຈ"],"ຊ","ຍ",["ດ","ທ"],["ນ","ຟ"],["ມ","ຣ"],"ລ","ວ",["ສ","ຫ"],["ອ","ະ"],["າ","ຳ"],"ຽ",["ເ","ໄ"],["ໜ","ໟ"],"ༀ",["ཀ","ཇ"],["ཉ","ཬ"],["ྈ","ྌ"],["က","ဪ"],"ဿ",["ၐ","ၕ"],["ၚ","ၝ"],"ၡ",["ၥ","ၦ"],["ၮ","ၰ"],["ၵ","ႁ"],"ႎ",["ა","ჺ"],["ჽ","ቈ"],["ቊ","ቍ"],["ቐ","ቖ"],"ቘ",["ቚ","ቝ"],["በ","ኈ"],["ኊ","ኍ"],["ነ","ኰ"],["ኲ","ኵ"],["ኸ","ኾ"],"ዀ",["ዂ","ዅ"],["ወ","ዖ"],["ዘ","ጐ"],["ጒ","ጕ"],["ጘ","ፚ"],["ᎀ","ᎏ"],["ᐁ","ᙬ"],["ᙯ","ᙿ"],["ᚁ","ᚚ"],["ᚠ","ᛪ"],["ᛱ","ᛸ"],["ᜀ","ᜌ"],["ᜎ","ᜑ"],["ᜠ","ᜱ"],["ᝀ","ᝑ"],["ᝠ","ᝬ"],["ᝮ","ᝰ"],["ក","ឳ"],"ៜ",["ᠠ","ᡂ"],["ᡄ","ᡷ"],["ᢀ","ᢨ"],"ᢪ",["ᢰ","ᣵ"],["ᤀ","ᤞ"],["ᥐ","ᥭ"],["ᥰ","ᥴ"],["ᦀ","ᦫ"],["ᦰ","ᧉ"],["ᨀ","ᨖ"],["ᨠ","ᩔ"],["ᬅ","ᬳ"],["ᭅ","ᭋ"],["ᮃ","ᮠ"],["ᮮ","ᮯ"],["ᮺ","ᯥ"],["ᰀ","ᰣ"],["ᱍ","ᱏ"],["ᱚ","ᱷ"],["ᳩ","ᳬ"],["ᳮ","ᳱ"],["ᳵ","ᳶ"],["ℵ","ℸ"],["ⴰ","ⵧ"],["ⶀ","ⶖ"],["ⶠ","ⶦ"],["ⶨ","ⶮ"],["ⶰ","ⶶ"],["ⶸ","ⶾ"],["ⷀ","ⷆ"],["ⷈ","ⷎ"],["ⷐ","ⷖ"],["ⷘ","ⷞ"],"〆","〼",["ぁ","ゖ"],"ゟ",["ァ","ヺ"],"ヿ",["ㄅ","ㄭ"],["ㄱ","ㆎ"],["ㆠ","ㆺ"],["ㇰ","ㇿ"],["㐀","䶵"],["一","鿕"],["ꀀ","ꀔ"],["ꀖ","ꒌ"],["ꓐ","ꓷ"],["ꔀ","ꘋ"],["ꘐ","ꘟ"],["ꘪ","ꘫ"],"ꙮ",["ꚠ","ꛥ"],"ꞏ","ꟷ",["ꟻ","ꠁ"],["ꠃ","ꠅ"],["ꠇ","ꠊ"],["ꠌ","ꠢ"],["ꡀ","ꡳ"],["ꢂ","ꢳ"],["ꣲ","ꣷ"],"ꣻ","ꣽ",["ꤊ","ꤥ"],["ꤰ","ꥆ"],["ꥠ","ꥼ"],["ꦄ","ꦲ"],["ꧠ","ꧤ"],["ꧧ","ꧯ"],["ꧺ","ꧾ"],["ꨀ","ꨨ"],["ꩀ","ꩂ"],["ꩄ","ꩋ"],["ꩠ","ꩯ"],["ꩱ","ꩶ"],"ꩺ",["ꩾ","ꪯ"],"ꪱ",["ꪵ","ꪶ"],["ꪹ","ꪽ"],"ꫀ","ꫂ",["ꫛ","ꫜ"],["ꫠ","ꫪ"],"ꫲ",["ꬁ","ꬆ"],["ꬉ","ꬎ"],["ꬑ","ꬖ"],["ꬠ","ꬦ"],["ꬨ","ꬮ"],["ꯀ","ꯢ"],["가","힣"],["ힰ","ퟆ"],["ퟋ","ퟻ"],["豈","舘"],["並","龎"],"יִ",["ײַ","ﬨ"],["שׁ","זּ"],["טּ","לּ"],"מּ",["נּ","סּ"],["ףּ","פּ"],["צּ","ﮱ"],["ﯓ","ﴽ"],["ﵐ","ﶏ"],["ﶒ","ﷇ"],["ﷰ","ﷻ"],["ﹰ","ﹴ"],["ﹶ","ﻼ"],["ヲ","ッ"],["ア","ン"],["ᅠ","ᄒ"],["ᅡ","ᅦ"],["ᅧ","ᅬ"],["ᅭ","ᅲ"],["ᅳ","ᅵ"]],!1,!1),Ne=at(["Dž","Lj","Nj","Dz",["ᾈ","ᾏ"],["ᾘ","ᾟ"],["ᾨ","ᾯ"],"ᾼ","ῌ","ῼ"],!1,!1),Ue=at([["A","Z"],["À","Ö"],["Ø","Þ"],"Ā","Ă","Ą","Ć","Ĉ","Ċ","Č","Ď","Đ","Ē","Ĕ","Ė","Ę","Ě","Ĝ","Ğ","Ġ","Ģ","Ĥ","Ħ","Ĩ","Ī","Ĭ","Į","İ","IJ","Ĵ","Ķ","Ĺ","Ļ","Ľ","Ŀ","Ł","Ń","Ņ","Ň","Ŋ","Ō","Ŏ","Ő","Œ","Ŕ","Ŗ","Ř","Ś","Ŝ","Ş","Š","Ţ","Ť","Ŧ","Ũ","Ū","Ŭ","Ů","Ű","Ų","Ŵ","Ŷ",["Ÿ","Ź"],"Ż","Ž",["Ɓ","Ƃ"],"Ƅ",["Ɔ","Ƈ"],["Ɖ","Ƌ"],["Ǝ","Ƒ"],["Ɠ","Ɣ"],["Ɩ","Ƙ"],["Ɯ","Ɲ"],["Ɵ","Ơ"],"Ƣ","Ƥ",["Ʀ","Ƨ"],"Ʃ","Ƭ",["Ʈ","Ư"],["Ʊ","Ƴ"],"Ƶ",["Ʒ","Ƹ"],"Ƽ","DŽ","LJ","NJ","Ǎ","Ǐ","Ǒ","Ǔ","Ǖ","Ǘ","Ǚ","Ǜ","Ǟ","Ǡ","Ǣ","Ǥ","Ǧ","Ǩ","Ǫ","Ǭ","Ǯ","DZ","Ǵ",["Ƕ","Ǹ"],"Ǻ","Ǽ","Ǿ","Ȁ","Ȃ","Ȅ","Ȇ","Ȉ","Ȋ","Ȍ","Ȏ","Ȑ","Ȓ","Ȕ","Ȗ","Ș","Ț","Ȝ","Ȟ","Ƞ","Ȣ","Ȥ","Ȧ","Ȩ","Ȫ","Ȭ","Ȯ","Ȱ","Ȳ",["Ⱥ","Ȼ"],["Ƚ","Ⱦ"],"Ɂ",["Ƀ","Ɇ"],"Ɉ","Ɋ","Ɍ","Ɏ","Ͱ","Ͳ","Ͷ","Ϳ","Ά",["Έ","Ί"],"Ό",["Ύ","Ώ"],["Α","Ρ"],["Σ","Ϋ"],"Ϗ",["ϒ","ϔ"],"Ϙ","Ϛ","Ϝ","Ϟ","Ϡ","Ϣ","Ϥ","Ϧ","Ϩ","Ϫ","Ϭ","Ϯ","ϴ","Ϸ",["Ϲ","Ϻ"],["Ͻ","Я"],"Ѡ","Ѣ","Ѥ","Ѧ","Ѩ","Ѫ","Ѭ","Ѯ","Ѱ","Ѳ","Ѵ","Ѷ","Ѹ","Ѻ","Ѽ","Ѿ","Ҁ","Ҋ","Ҍ","Ҏ","Ґ","Ғ","Ҕ","Җ","Ҙ","Қ","Ҝ","Ҟ","Ҡ","Ң","Ҥ","Ҧ","Ҩ","Ҫ","Ҭ","Ү","Ұ","Ҳ","Ҵ","Ҷ","Ҹ","Һ","Ҽ","Ҿ",["Ӏ","Ӂ"],"Ӄ","Ӆ","Ӈ","Ӊ","Ӌ","Ӎ","Ӑ","Ӓ","Ӕ","Ӗ","Ә","Ӛ","Ӝ","Ӟ","Ӡ","Ӣ","Ӥ","Ӧ","Ө","Ӫ","Ӭ","Ӯ","Ӱ","Ӳ","Ӵ","Ӷ","Ӹ","Ӻ","Ӽ","Ӿ","Ԁ","Ԃ","Ԅ","Ԇ","Ԉ","Ԋ","Ԍ","Ԏ","Ԑ","Ԓ","Ԕ","Ԗ","Ԙ","Ԛ","Ԝ","Ԟ","Ԡ","Ԣ","Ԥ","Ԧ","Ԩ","Ԫ","Ԭ","Ԯ",["Ա","Ֆ"],["Ⴀ","Ⴥ"],"Ⴧ","Ⴭ",["Ꭰ","Ᏽ"],"Ḁ","Ḃ","Ḅ","Ḇ","Ḉ","Ḋ","Ḍ","Ḏ","Ḑ","Ḓ","Ḕ","Ḗ","Ḙ","Ḛ","Ḝ","Ḟ","Ḡ","Ḣ","Ḥ","Ḧ","Ḩ","Ḫ","Ḭ","Ḯ","Ḱ","Ḳ","Ḵ","Ḷ","Ḹ","Ḻ","Ḽ","Ḿ","Ṁ","Ṃ","Ṅ","Ṇ","Ṉ","Ṋ","Ṍ","Ṏ","Ṑ","Ṓ","Ṕ","Ṗ","Ṙ","Ṛ","Ṝ","Ṟ","Ṡ","Ṣ","Ṥ","Ṧ","Ṩ","Ṫ","Ṭ","Ṯ","Ṱ","Ṳ","Ṵ","Ṷ","Ṹ","Ṻ","Ṽ","Ṿ","Ẁ","Ẃ","Ẅ","Ẇ","Ẉ","Ẋ","Ẍ","Ẏ","Ẑ","Ẓ","Ẕ","ẞ","Ạ","Ả","Ấ","Ầ","Ẩ","Ẫ","Ậ","Ắ","Ằ","Ẳ","Ẵ","Ặ","Ẹ","Ẻ","Ẽ","Ế","Ề","Ể","Ễ","Ệ","Ỉ","Ị","Ọ","Ỏ","Ố","Ồ","Ổ","Ỗ","Ộ","Ớ","Ờ","Ở","Ỡ","Ợ","Ụ","Ủ","Ứ","Ừ","Ử","Ữ","Ự","Ỳ","Ỵ","Ỷ","Ỹ","Ỻ","Ỽ","Ỿ",["Ἀ","Ἇ"],["Ἐ","Ἕ"],["Ἠ","Ἧ"],["Ἰ","Ἷ"],["Ὀ","Ὅ"],"Ὑ","Ὓ","Ὕ","Ὗ",["Ὠ","Ὧ"],["Ᾰ","Ά"],["Ὲ","Ή"],["Ῐ","Ί"],["Ῠ","Ῥ"],["Ὸ","Ώ"],"ℂ","ℇ",["ℋ","ℍ"],["ℐ","ℒ"],"ℕ",["ℙ","ℝ"],"ℤ","Ω","ℨ",["K","ℭ"],["ℰ","ℳ"],["ℾ","ℿ"],"ⅅ","Ↄ",["Ⰰ","Ⱞ"],"Ⱡ",["Ɫ","Ɽ"],"Ⱨ","Ⱪ","Ⱬ",["Ɑ","Ɒ"],"Ⱳ","Ⱶ",["Ȿ","Ⲁ"],"Ⲃ","Ⲅ","Ⲇ","Ⲉ","Ⲋ","Ⲍ","Ⲏ","Ⲑ","Ⲓ","Ⲕ","Ⲗ","Ⲙ","Ⲛ","Ⲝ","Ⲟ","Ⲡ","Ⲣ","Ⲥ","Ⲧ","Ⲩ","Ⲫ","Ⲭ","Ⲯ","Ⲱ","Ⲳ","Ⲵ","Ⲷ","Ⲹ","Ⲻ","Ⲽ","Ⲿ","Ⳁ","Ⳃ","Ⳅ","Ⳇ","Ⳉ","Ⳋ","Ⳍ","Ⳏ","Ⳑ","Ⳓ","Ⳕ","Ⳗ","Ⳙ","Ⳛ","Ⳝ","Ⳟ","Ⳡ","Ⳣ","Ⳬ","Ⳮ","Ⳳ","Ꙁ","Ꙃ","Ꙅ","Ꙇ","Ꙉ","Ꙋ","Ꙍ","Ꙏ","Ꙑ","Ꙓ","Ꙕ","Ꙗ","Ꙙ","Ꙛ","Ꙝ","Ꙟ","Ꙡ","Ꙣ","Ꙥ","Ꙧ","Ꙩ","Ꙫ","Ꙭ","Ꚁ","Ꚃ","Ꚅ","Ꚇ","Ꚉ","Ꚋ","Ꚍ","Ꚏ","Ꚑ","Ꚓ","Ꚕ","Ꚗ","Ꚙ","Ꚛ","Ꜣ","Ꜥ","Ꜧ","Ꜩ","Ꜫ","Ꜭ","Ꜯ","Ꜳ","Ꜵ","Ꜷ","Ꜹ","Ꜻ","Ꜽ","Ꜿ","Ꝁ","Ꝃ","Ꝅ","Ꝇ","Ꝉ","Ꝋ","Ꝍ","Ꝏ","Ꝑ","Ꝓ","Ꝕ","Ꝗ","Ꝙ","Ꝛ","Ꝝ","Ꝟ","Ꝡ","Ꝣ","Ꝥ","Ꝧ","Ꝩ","Ꝫ","Ꝭ","Ꝯ","Ꝺ","Ꝼ",["Ᵹ","Ꝿ"],"Ꞁ","Ꞃ","Ꞅ","Ꞇ","Ꞌ","Ɥ","Ꞑ","Ꞓ","Ꞗ","Ꞙ","Ꞛ","Ꞝ","Ꞟ","Ꞡ","Ꞣ","Ꞥ","Ꞧ","Ꞩ",["Ɦ","Ɬ"],["Ʞ","Ꞵ"],"Ꞷ",["A","Z"]],!1,!1),qe=at(["ः","ऻ",["ा","ी"],["ॉ","ौ"],["ॎ","ॏ"],["ং","ঃ"],["া","ী"],["ে","ৈ"],["ো","ৌ"],"ৗ","ਃ",["ਾ","ੀ"],"ઃ",["ા","ી"],"ૉ",["ો","ૌ"],["ଂ","ଃ"],"ା","ୀ",["େ","ୈ"],["ୋ","ୌ"],"ୗ",["ா","ி"],["ு","ூ"],["ெ","ை"],["ொ","ௌ"],"ௗ",["ఁ","ః"],["ు","ౄ"],["ಂ","ಃ"],"ಾ",["ೀ","ೄ"],["ೇ","ೈ"],["ೊ","ೋ"],["ೕ","ೖ"],["ം","ഃ"],["ാ","ീ"],["െ","ൈ"],["ൊ","ൌ"],"ൗ",["ං","ඃ"],["ා","ෑ"],["ෘ","ෟ"],["ෲ","ෳ"],["༾","༿"],"ཿ",["ါ","ာ"],"ေ","း",["ျ","ြ"],["ၖ","ၗ"],["ၢ","ၤ"],["ၧ","ၭ"],["ႃ","ႄ"],["ႇ","ႌ"],"ႏ",["ႚ","ႜ"],"ា",["ើ","ៅ"],["ះ","ៈ"],["ᤣ","ᤦ"],["ᤩ","ᤫ"],["ᤰ","ᤱ"],["ᤳ","ᤸ"],["ᨙ","ᨚ"],"ᩕ","ᩗ","ᩡ",["ᩣ","ᩤ"],["ᩭ","ᩲ"],"ᬄ","ᬵ","ᬻ",["ᬽ","ᭁ"],["ᭃ","᭄"],"ᮂ","ᮡ",["ᮦ","ᮧ"],"᮪","ᯧ",["ᯪ","ᯬ"],"ᯮ",["᯲","᯳"],["ᰤ","ᰫ"],["ᰴ","ᰵ"],"᳡",["ᳲ","ᳳ"],["〮","〯"],["ꠣ","ꠤ"],"ꠧ",["ꢀ","ꢁ"],["ꢴ","ꣃ"],["ꥒ","꥓"],"ꦃ",["ꦴ","ꦵ"],["ꦺ","ꦻ"],["ꦽ","꧀"],["ꨯ","ꨰ"],["ꨳ","ꨴ"],"ꩍ","ꩻ","ꩽ","ꫫ",["ꫮ","ꫯ"],"ꫵ",["ꯣ","ꯤ"],["ꯦ","ꯧ"],["ꯩ","ꯪ"],"꯬"],!1,!1),Ge=at([["̀","ͯ"],["҃","҇"],["֑","ֽ"],"ֿ",["ׁ","ׂ"],["ׄ","ׅ"],"ׇ",["ؐ","ؚ"],["ً","ٟ"],"ٰ",["ۖ","ۜ"],["۟","ۤ"],["ۧ","ۨ"],["۪","ۭ"],"ܑ",["ܰ","݊"],["ަ","ް"],["߫","߳"],["ࠖ","࠙"],["ࠛ","ࠣ"],["ࠥ","ࠧ"],["ࠩ","࠭"],["࡙","࡛"],["ࣣ","ं"],"ऺ","़",["ु","ै"],"्",["॑","ॗ"],["ॢ","ॣ"],"ঁ","়",["ু","ৄ"],"্",["ৢ","ৣ"],["ਁ","ਂ"],"਼",["ੁ","ੂ"],["ੇ","ੈ"],["ੋ","੍"],"ੑ",["ੰ","ੱ"],"ੵ",["ઁ","ં"],"઼",["ુ","ૅ"],["ે","ૈ"],"્",["ૢ","ૣ"],"ଁ","଼","ି",["ୁ","ୄ"],"୍","ୖ",["ୢ","ୣ"],"ஂ","ீ","்","ఀ",["ా","ీ"],["ె","ై"],["ొ","్"],["ౕ","ౖ"],["ౢ","ౣ"],"ಁ","಼","ಿ","ೆ",["ೌ","್"],["ೢ","ೣ"],"ഁ",["ു","ൄ"],"്",["ൢ","ൣ"],"්",["ි","ු"],"ූ","ั",["ิ","ฺ"],["็","๎"],"ັ",["ິ","ູ"],["ົ","ຼ"],["່","ໍ"],["༘","༙"],"༵","༷","༹",["ཱ","ཾ"],["ྀ","྄"],["྆","྇"],["ྍ","ྗ"],["ྙ","ྼ"],"࿆",["ိ","ူ"],["ဲ","့"],["္","်"],["ွ","ှ"],["ၘ","ၙ"],["ၞ","ၠ"],["ၱ","ၴ"],"ႂ",["ႅ","ႆ"],"ႍ","ႝ",["፝","፟"],["ᜒ","᜔"],["ᜲ","᜴"],["ᝒ","ᝓ"],["ᝲ","ᝳ"],["឴","឵"],["ិ","ួ"],"ំ",["៉","៓"],"៝",["᠋","᠍"],"ᢩ",["ᤠ","ᤢ"],["ᤧ","ᤨ"],"ᤲ",["᤹","᤻"],["ᨗ","ᨘ"],"ᨛ","ᩖ",["ᩘ","ᩞ"],"᩠","ᩢ",["ᩥ","ᩬ"],["ᩳ","᩼"],"᩿",["᪰","᪽"],["ᬀ","ᬃ"],"᬴",["ᬶ","ᬺ"],"ᬼ","ᭂ",["᭫","᭳"],["ᮀ","ᮁ"],["ᮢ","ᮥ"],["ᮨ","ᮩ"],["᮫","ᮭ"],"᯦",["ᯨ","ᯩ"],"ᯭ",["ᯯ","ᯱ"],["ᰬ","ᰳ"],["ᰶ","᰷"],["᳐","᳒"],["᳔","᳠"],["᳢","᳨"],"᳭","᳴",["᳸","᳹"],["᷀","᷵"],["᷼","᷿"],["⃐","⃜"],"⃡",["⃥","⃰"],["⳯","⳱"],"⵿",["ⷠ","ⷿ"],["〪","〭"],["゙","゚"],"꙯",["ꙴ","꙽"],["ꚞ","ꚟ"],["꛰","꛱"],"ꠂ","꠆","ꠋ",["ꠥ","ꠦ"],"꣄",["꣠","꣱"],["ꤦ","꤭"],["ꥇ","ꥑ"],["ꦀ","ꦂ"],"꦳",["ꦶ","ꦹ"],"ꦼ","ꧥ",["ꨩ","ꨮ"],["ꨱ","ꨲ"],["ꨵ","ꨶ"],"ꩃ","ꩌ","ꩼ","ꪰ",["ꪲ","ꪴ"],["ꪷ","ꪸ"],["ꪾ","꪿"],"꫁",["ꫬ","ꫭ"],"꫶","ꯥ","ꯨ","꯭","ﬞ",["︀","️"],["︠","︯"]],!1,!1),He=at([["0","9"],["٠","٩"],["۰","۹"],["߀","߉"],["०","९"],["০","৯"],["੦","੯"],["૦","૯"],["୦","୯"],["௦","௯"],["౦","౯"],["೦","೯"],["൦","൯"],["෦","෯"],["๐","๙"],["໐","໙"],["༠","༩"],["၀","၉"],["႐","႙"],["០","៩"],["᠐","᠙"],["᥆","᥏"],["᧐","᧙"],["᪀","᪉"],["᪐","᪙"],["᭐","᭙"],["᮰","᮹"],["᱀","᱉"],["᱐","᱙"],["꘠","꘩"],["꣐","꣙"],["꤀","꤉"],["꧐","꧙"],["꧰","꧹"],["꩐","꩙"],["꯰","꯹"],["0","9"]],!1,!1),ze=at([["ᛮ","ᛰ"],["Ⅰ","ↂ"],["ↅ","ↈ"],"〇",["〡","〩"],["〸","〺"],["ꛦ","ꛯ"]],!1,!1),We=at(["_",["‿","⁀"],"⁔",["︳","︴"],["﹍","﹏"],"_"],!1,!1),Ve=at([" "," "," ",[" "," "]," "," "," "],!1,!1),Ye=nt(";",!1),Qe=0,Je=0,Xe=[{line:1,column:1}],Ze=0,Ke=[],et=0;if("startRule"in t){if(!(t.startRule in o))throw new Error("Can't start parsing from rule \""+t.startRule+'".');s=o[t.startRule]}function tt(){return ut(Je,Qe)}function rt(e,t){throw function(e,t){return new peg$SyntaxError(e,null,null,t)}(e,t=void 0!==t?t:ut(Je,Qe))}function nt(e,t){return{type:"literal",text:e,ignoreCase:t}}function at(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function ot(e){return{type:"other",description:e}}function st(t){var r,n=Xe[t];if(n)return n;for(r=t-1;!Xe[r];)r--;for(n={line:(n=Xe[r]).line,column:n.column};rZe&&(Ze=Qe,Ke=[]),Ke.push(e))}function ct(){var t,r,a,o,s,c;if(t=Qe,Ut(),r=Qe,a=function(){var t,r,a,o,s;return t=Qe,123===e.charCodeAt(Qe)?(r=u,Qe++):(r=n,0===et&&it(B)),r!==n&&(a=jt())!==n?(125===e.charCodeAt(Qe)?(o=i,Qe++):(o=n,0===et&&it(D)),o!==n&&qt()!==n?(Je=t,t={type:"top_level_initializer",code:(s=a)[0],codeLocation:s[1],location:tt()}):(Qe=t,t=n)):(Qe=t,t=n),t}(),a!==n?(o=Ut(),r=a):(Qe=r,r=n),r===n&&(r=null),a=Qe,o=function(){var e,t,r;return e=Qe,(t=jt())!==n&&qt()!==n?(Je=e,e={type:"initializer",code:(r=t)[0],codeLocation:r[1],location:tt()}):(Qe=e,e=n),e}(),o!==n?(s=Ut(),a=o):(Qe=a,a=n),a===n&&(a=null),o=[],s=Qe,(c=lt())!==n?(Ut(),s=c):(Qe=s,s=n),s!==n)for(;s!==n;)o.push(s),s=Qe,(c=lt())!==n?(Ut(),s=c):(Qe=s,s=n);else o=n;return o!==n?(Je=t,t={type:"grammar",topLevelInitializer:r,initializer:a,rules:o,location:tt()}):(Qe=t,t=n),t}function lt(){var t,r,a,o,s;return t=Qe,(r=_t())!==n?(Ut(),a=Qe,(o=wt())!==n?(Ut(),a=o):(Qe=a,a=n),a===n&&(a=null),61===e.charCodeAt(Qe)?(o="=",Qe++):(o=n,0===et&&it(T)),o!==n?(Ut(),(s=pt())!==n&&qt()!==n?(Je=t,t=function(e,t,r){return{type:"rule",name:e[0],nameLocation:e[1],expression:null!==t?{type:"named",name:t,expression:r,location:tt()}:r,location:tt()}}(r,a,s)):(Qe=t,t=n)):(Qe=t,t=n)):(Qe=t,t=n),t}function pt(){var t,r,a,o,s,u,i,c;if(t=Qe,(r=ft())!==n){for(a=[],o=Qe,Ut(),47===e.charCodeAt(Qe)?(s="/",Qe++):(s=n,0===et&&it(P)),s!==n?(Ut(),(u=ft())!==n?o=u:(Qe=o,o=n)):(Qe=o,o=n);o!==n;)a.push(o),o=Qe,Ut(),47===e.charCodeAt(Qe)?(s="/",Qe++):(s=n,0===et&&it(P)),s!==n?(Ut(),(u=ft())!==n?o=u:(Qe=o,o=n)):(Qe=o,o=n);Je=t,i=r,t=(c=a).length>0?{type:"choice",alternatives:[i].concat(c),location:tt()}:i}else Qe=t,t=n;return t}function ft(){var e,t,r,a,o,s;return e=Qe,t=function(){var e,t,r,a,o,s,u;if(e=Qe,(t=dt())!==n){for(r=[],a=Qe,Ut(),(o=dt())!==n?a=o:(Qe=a,a=n);a!==n;)r.push(a),a=Qe,Ut(),(o=dt())!==n?a=o:(Qe=a,a=n);Je=e,s=t,e=(u=r).length>0||"labeled"===s.type&&s.pick?{type:"sequence",elements:[s].concat(u),location:tt()}:s}else Qe=e,e=n;return e}(),t!==n?(r=Qe,Ut(),(a=jt())!==n?r=a:(Qe=r,r=n),r===n&&(r=null),Je=e,o=t,e=null!==(s=r)?{type:"action",expression:o,code:s[0],codeLocation:s[1],location:tt()}:o):(Qe=e,e=n),e}function dt(){var t,r,a,o,s,u,i;return t=Qe,r=function(){var t,r;return t=Qe,64===e.charCodeAt(Qe)?(r="@",Qe++):(r=n,0===et&&it(R)),r!==n&&(Je=t,r=tt()),r}(),r!==n?((a=gt())===n&&(a=null),(o=ht())!==n?(Je=t,s=r,u=a,(i=o).type.startsWith("semantic_")&&rt('"@" cannot be used on a semantic predicate',s),t={type:"labeled",label:null!==u?u[0]:null,labelLocation:null!==u?u[1]:s,pick:!0,expression:i,location:tt()}):(Qe=t,t=n)):(Qe=t,t=n),t===n&&(t=Qe,(r=gt())!==n?(a=Ut(),(o=ht())!==n?(Je=t,t=function(e,t){return{type:"labeled",label:e[0],labelLocation:e[1],expression:t,location:tt()}}(r,o)):(Qe=t,t=n)):(Qe=t,t=n),t===n&&(t=ht())),t}function gt(){var t,r,a,o;return t=Qe,(r=_t())!==n?(Ut(),58===e.charCodeAt(Qe)?(a=":",Qe++):(a=n,0===et&&it(L)),a!==n?(Je=t,o=r,Gt.indexOf(o[0])>=0&&rt("Label can't be a reserved word \"".concat(o[0],'"'),o[1]),t=o):(Qe=t,t=n)):(Qe=t,t=n),t}function ht(){var t,r,a,o;return t=Qe,r=function(){var t;return 36===e.charCodeAt(Qe)?(t="$",Qe++):(t=n,0===et&&it(O)),t===n&&(38===e.charCodeAt(Qe)?(t="&",Qe++):(t=n,0===et&&it(M)),t===n&&(33===e.charCodeAt(Qe)?(t="!",Qe++):(t=n,0===et&&it(I)))),t}(),r!==n?(Ut(),(a=mt())!==n?(Je=t,o=a,t={type:OPS_TO_PREFIXED_TYPES[r],expression:o,location:tt()}):(Qe=t,t=n)):(Qe=t,t=n),t===n&&(t=mt()),t}function mt(){var t,r,a,o;return t=Qe,(r=$t())!==n?(Ut(),a=function(){var t;return 63===e.charCodeAt(Qe)?(t="?",Qe++):(t=n,0===et&&it(k)),t===n&&(42===e.charCodeAt(Qe)?(t="*",Qe++):(t=n,0===et&&it(j)),t===n&&(43===e.charCodeAt(Qe)?(t="+",Qe++):(t=n,0===et&&it(N)))),t}(),a!==n?(Je=t,o=r,t={type:OPS_TO_SUFFIXED_TYPES[a],expression:o,location:tt()}):(Qe=t,t=n)):(Qe=t,t=n),t===n&&(t=$t()),t}function $t(){var t,r,a,o,s;return t=function(){var t,r,a;return et++,t=Qe,(r=wt())!==n?(105===e.charCodeAt(Qe)?(a="i",Qe++):(a=n,0===et&&it(ge)),a===n&&(a=null),Je=t,t={type:"literal",value:r,ignoreCase:null!==a,location:tt()}):(Qe=t,t=n),et--,t===n&&(r=n,0===et&&it(de)),t}(),t===n&&(t=function(){var t,r,a,o,s,u,i,c;if(et++,t=Qe,91===e.charCodeAt(Qe)?(r="[",Qe++):(r=n,0===et&&it(be)),r!==n){for(94===e.charCodeAt(Qe)?(a="^",Qe++):(a=n,0===et&&it(xe)),a===n&&(a=null),o=[],(s=Tt())===n&&(s=Pt());s!==n;)o.push(s),(s=Tt())===n&&(s=Pt());93===e.charCodeAt(Qe)?(s="]",Qe++):(s=n,0===et&&it(Ee)),s!==n?(105===e.charCodeAt(Qe)?(u="i",Qe++):(u=n,0===et&&it(ge)),u===n&&(u=null),Je=t,i=a,c=u,t={type:"class",parts:o.filter((function(e){return""!==e})),inverted:null!==i,ignoreCase:null!==c,location:tt()}):(Qe=t,t=n)}else Qe=t,t=n;return et--,t===n&&(r=n,0===et&&it(Ae)),t}(),t===n&&(t=function(){var t,r;return t=Qe,46===e.charCodeAt(Qe)?(r=".",Qe++):(r=n,0===et&&it(Le)),r!==n&&(Je=t,r={type:"any",location:tt()}),r}(),t===n&&(t=function(){var t,r,a,o,s,u,i;return t=Qe,(r=_t())!==n?(a=Qe,et++,o=Qe,s=Ut(),u=Qe,(i=wt())!==n?u=i=[i,Ut()]:(Qe=u,u=n),u===n&&(u=null),61===e.charCodeAt(Qe)?(i="=",Qe++):(i=n,0===et&&it(T)),i!==n?o=s=[s,u,i]:(Qe=o,o=n),et--,o===n?a=void 0:(Qe=a,a=n),a!==n?(Je=t,t=function(e){return{type:"rule_ref",name:e[0],location:tt()}}(r)):(Qe=t,t=n)):(Qe=t,t=n),t}(),t===n&&(t=function(){var t,r,a,o;return t=Qe,r=function(){var t;return 38===e.charCodeAt(Qe)?(t="&",Qe++):(t=n,0===et&&it(M)),t===n&&(33===e.charCodeAt(Qe)?(t="!",Qe++):(t=n,0===et&&it(I))),t}(),r!==n?(Ut(),(a=jt())!==n?(Je=t,o=a,t={type:OPS_TO_SEMANTIC_PREDICATE_TYPES[r],code:o[0],codeLocation:o[1],location:tt()}):(Qe=t,t=n)):(Qe=t,t=n),t}(),t===n&&(t=Qe,40===e.charCodeAt(Qe)?(r="(",Qe++):(r=n,0===et&&it(U)),r!==n?(Ut(),(a=pt())!==n?(Ut(),41===e.charCodeAt(Qe)?(o=")",Qe++):(o=n,0===et&&it(q)),o!==n?(Je=t,t="labeled"===(s=a).type||"sequence"===s.type?{type:"group",expression:s,location:tt()}:s):(Qe=t,t=n)):(Qe=t,t=n)):(Qe=t,t=n)))))),t}function At(){var t;return e.length>Qe?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(G)),t}function bt(){var t;return et++,9===e.charCodeAt(Qe)?(t="\t",Qe++):(t=n,0===et&&it(z)),t===n&&(11===e.charCodeAt(Qe)?(t="\v",Qe++):(t=n,0===et&&it(W)),t===n&&(12===e.charCodeAt(Qe)?(t="\f",Qe++):(t=n,0===et&&it(V)),t===n&&(32===e.charCodeAt(Qe)?(t=" ",Qe++):(t=n,0===et&&it(Y)),t===n&&(160===e.charCodeAt(Qe)?(t=" ",Qe++):(t=n,0===et&&it(Q)),t===n&&(65279===e.charCodeAt(Qe)?(t="\ufeff",Qe++):(t=n,0===et&&it(J)),t===n&&(t=function(){var t;return w.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(Ve)),t}())))))),et--,t===n&&0===et&&it(H),t}function xt(){var t;return g.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(X)),t}function Et(){var t;return et++,10===e.charCodeAt(Qe)?(t="\n",Qe++):(t=n,0===et&&it(K)),t===n&&("\r\n"===e.substr(Qe,2)?(t="\r\n",Qe+=2):(t=n,0===et&&it(ee)),t===n&&(13===e.charCodeAt(Qe)?(t="\r",Qe++):(t=n,0===et&&it(te)),t===n&&(8232===e.charCodeAt(Qe)?(t="\u2028",Qe++):(t=n,0===et&&it(re)),t===n&&(8233===e.charCodeAt(Qe)?(t="\u2029",Qe++):(t=n,0===et&&it(ne)))))),et--,t===n&&0===et&&it(Z),t}function vt(){var t;return et++,(t=function(){var t,r,a,o,s,u;if(t=Qe,e.substr(Qe,2)===c?(r=c,Qe+=2):(r=n,0===et&&it(oe)),r!==n){for(a=[],o=Qe,s=Qe,et++,e.substr(Qe,2)===l?(u=l,Qe+=2):(u=n,0===et&&it(se)),et--,u===n?s=void 0:(Qe=s,s=n),s!==n&&(u=At())!==n?o=s=[s,u]:(Qe=o,o=n);o!==n;)a.push(o),o=Qe,s=Qe,et++,e.substr(Qe,2)===l?(u=l,Qe+=2):(u=n,0===et&&it(se)),et--,u===n?s=void 0:(Qe=s,s=n),s!==n&&(u=At())!==n?o=s=[s,u]:(Qe=o,o=n);e.substr(Qe,2)===l?(o=l,Qe+=2):(o=n,0===et&&it(se)),o!==n?t=r=[r,a,o]:(Qe=t,t=n)}else Qe=t,t=n;return t}())===n&&(t=yt()),et--,t===n&&0===et&&it(ae),t}function Ct(){var t,r,a,o,s,u;if(t=Qe,e.substr(Qe,2)===c?(r=c,Qe+=2):(r=n,0===et&&it(oe)),r!==n){for(a=[],o=Qe,s=Qe,et++,e.substr(Qe,2)===l?(u=l,Qe+=2):(u=n,0===et&&it(se)),u===n&&(u=xt()),et--,u===n?s=void 0:(Qe=s,s=n),s!==n&&(u=At())!==n?o=s=[s,u]:(Qe=o,o=n);o!==n;)a.push(o),o=Qe,s=Qe,et++,e.substr(Qe,2)===l?(u=l,Qe+=2):(u=n,0===et&&it(se)),u===n&&(u=xt()),et--,u===n?s=void 0:(Qe=s,s=n),s!==n&&(u=At())!==n?o=s=[s,u]:(Qe=o,o=n);e.substr(Qe,2)===l?(o=l,Qe+=2):(o=n,0===et&&it(se)),o!==n?t=r=[r,a,o]:(Qe=t,t=n)}else Qe=t,t=n;return t}function yt(){var t,r,a,o,s,u;if(t=Qe,"//"===e.substr(Qe,2)?(r="//",Qe+=2):(r=n,0===et&&it(ue)),r!==n){for(a=[],o=Qe,s=Qe,et++,u=xt(),et--,u===n?s=void 0:(Qe=s,s=n),s!==n&&(u=At())!==n?o=s=[s,u]:(Qe=o,o=n);o!==n;)a.push(o),o=Qe,s=Qe,et++,u=xt(),et--,u===n?s=void 0:(Qe=s,s=n),s!==n&&(u=At())!==n?o=s=[s,u]:(Qe=o,o=n);t=r=[r,a]}else Qe=t,t=n;return t}function _t(){var e,t,r,a;if(et++,e=Qe,(t=St())!==n){for(r=[],a=Ft();a!==n;)r.push(a),a=Ft();Je=e,e=[t+r.join(""),tt()]}else Qe=e,e=n;return et--,e===n&&(t=n,0===et&&it(ie)),e}function St(){var t,r,a;return(t=function(){var t;return(t=function(){var t;return v.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(Ue)),t}())===n&&(t=function(){var t;return A.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(Ie)),t}())===n&&(t=function(){var t;return E.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(Ne)),t}())===n&&(t=function(){var t;return b.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(ke)),t}())===n&&(t=function(){var t;return x.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(je)),t}())===n&&(t=function(){var t;return S.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(ze)),t}()),t}())===n&&(36===e.charCodeAt(Qe)?(t="$",Qe++):(t=n,0===et&&it(O)),t===n&&(95===e.charCodeAt(Qe)?(t="_",Qe++):(t=n,0===et&&it(ce)),t===n&&(t=Qe,92===e.charCodeAt(Qe)?(r=p,Qe++):(r=n,0===et&&it(le)),r!==n&&(a=Mt())!==n?t=a:(Qe=t,t=n)))),t}function Ft(){var t;return(t=St())===n&&(t=function(){var t;return(t=function(){var t;return y.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(Ge)),t}())===n&&(t=function(){var t;return C.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(qe)),t}()),t}())===n&&(t=function(){var t;return _.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(He)),t}())===n&&(t=function(){var t;return F.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(We)),t}())===n&&(8204===e.charCodeAt(Qe)?(t="‌",Qe++):(t=n,0===et&&it(pe)),t===n&&(8205===e.charCodeAt(Qe)?(t="‍",Qe++):(t=n,0===et&&it(fe)))),t}function wt(){var t,r,a,o;if(et++,t=Qe,34===e.charCodeAt(Qe)?(r=f,Qe++):(r=n,0===et&&it(me)),r!==n){for(a=[],o=Bt();o!==n;)a.push(o),o=Bt();34===e.charCodeAt(Qe)?(o=f,Qe++):(o=n,0===et&&it(me)),o!==n?(Je=t,t=a.join("")):(Qe=t,t=n)}else Qe=t,t=n;if(t===n)if(t=Qe,39===e.charCodeAt(Qe)?(r=d,Qe++):(r=n,0===et&&it($e)),r!==n){for(a=[],o=Dt();o!==n;)a.push(o),o=Dt();39===e.charCodeAt(Qe)?(o=d,Qe++):(o=n,0===et&&it($e)),o!==n?(Je=t,t=a.join("")):(Qe=t,t=n)}else Qe=t,t=n;return et--,t===n&&(r=n,0===et&&it(he)),t}function Bt(){var t,r,a,o;return t=Qe,r=Qe,a=Qe,et++,34===e.charCodeAt(Qe)?(o=f,Qe++):(o=n,0===et&&it(me)),o===n&&(92===e.charCodeAt(Qe)?(o=p,Qe++):(o=n,0===et&&it(le)),o===n&&(o=xt())),et--,o===n?a=void 0:(Qe=a,a=n),a!==n&&(o=At())!==n?r=a=[a,o]:(Qe=r,r=n),(t=r!==n?e.substring(t,Qe):r)===n&&(t=Qe,92===e.charCodeAt(Qe)?(r=p,Qe++):(r=n,0===et&&it(le)),r!==n&&(a=Lt())!==n?t=a:(Qe=t,t=n),t===n&&(t=Rt())),t}function Dt(){var t,r,a,o;return t=Qe,r=Qe,a=Qe,et++,39===e.charCodeAt(Qe)?(o=d,Qe++):(o=n,0===et&&it($e)),o===n&&(92===e.charCodeAt(Qe)?(o=p,Qe++):(o=n,0===et&&it(le)),o===n&&(o=xt())),et--,o===n?a=void 0:(Qe=a,a=n),a!==n&&(o=At())!==n?r=a=[a,o]:(Qe=r,r=n),(t=r!==n?e.substring(t,Qe):r)===n&&(t=Qe,92===e.charCodeAt(Qe)?(r=p,Qe++):(r=n,0===et&&it(le)),r!==n&&(a=Lt())!==n?t=a:(Qe=t,t=n),t===n&&(t=Rt())),t}function Tt(){var t,r,a,o,s,u;return t=Qe,(r=Pt())!==n?(45===e.charCodeAt(Qe)?(a="-",Qe++):(a=n,0===et&&it(ve)),a!==n&&(o=Pt())!==n?(Je=t,u=o,(s=r).charCodeAt(0)>u.charCodeAt(0)&&rt("Invalid character range: "+e.substring(Je,Qe)+"."),t=[s,u]):(Qe=t,t=n)):(Qe=t,t=n),t}function Pt(){var t,r,a,o;return t=Qe,r=Qe,a=Qe,et++,93===e.charCodeAt(Qe)?(o="]",Qe++):(o=n,0===et&&it(Ee)),o===n&&(92===e.charCodeAt(Qe)?(o=p,Qe++):(o=n,0===et&&it(le)),o===n&&(o=xt())),et--,o===n?a=void 0:(Qe=a,a=n),a!==n&&(o=At())!==n?r=a=[a,o]:(Qe=r,r=n),(t=r!==n?e.substring(t,Qe):r)===n&&(t=Qe,92===e.charCodeAt(Qe)?(r=p,Qe++):(r=n,0===et&&it(le)),r!==n&&(a=Lt())!==n?t=a:(Qe=t,t=n),t===n&&(t=Rt())),t}function Rt(){var t,r;return t=Qe,92===e.charCodeAt(Qe)?(r=p,Qe++):(r=n,0===et&&it(le)),r!==n&&Et()!==n?(Je=t,t=""):(Qe=t,t=n),t}function Lt(){var t,r,a,o;return t=function(){var t;return(t=Ot())===n&&(t=function(){var t,r,a,o;return t=Qe,r=Qe,a=Qe,et++,o=function(){var t;return(t=Ot())===n&&(t=It())===n&&(120===e.charCodeAt(Qe)?(t="x",Qe++):(t=n,0===et&&it(De)),t===n&&(117===e.charCodeAt(Qe)?(t="u",Qe++):(t=n,0===et&&it(Te)))),t}(),o===n&&(o=xt()),et--,o===n?a=void 0:(Qe=a,a=n),a!==n&&(o=At())!==n?r=a=[a,o]:(Qe=r,r=n),t=r!==n?e.substring(t,Qe):r}()),t}(),t===n&&(t=Qe,48===e.charCodeAt(Qe)?(r="0",Qe++):(r=n,0===et&&it(Ce)),r!==n?(a=Qe,et++,o=It(),et--,o===n?a=void 0:(Qe=a,a=n),a!==n?(Je=t,t="\0"):(Qe=t,t=n)):(Qe=t,t=n),t===n&&(t=function(){var t,r,a,o,s,u,i;return t=Qe,120===e.charCodeAt(Qe)?(r="x",Qe++):(r=n,0===et&&it(De)),r!==n?(a=Qe,o=Qe,(s=kt())!==n&&(u=kt())!==n?o=s=[s,u]:(Qe=o,o=n),(a=o!==n?e.substring(a,Qe):o)!==n?(Je=t,i=a,t=String.fromCharCode(parseInt(i,16))):(Qe=t,t=n)):(Qe=t,t=n),t}(),t===n&&(t=Mt()))),t}function Ot(){var t,r;return 39===e.charCodeAt(Qe)?(t=d,Qe++):(t=n,0===et&&it($e)),t===n&&(34===e.charCodeAt(Qe)?(t=f,Qe++):(t=n,0===et&&it(me)),t===n&&(92===e.charCodeAt(Qe)?(t=p,Qe++):(t=n,0===et&&it(le)),t===n&&(t=Qe,98===e.charCodeAt(Qe)?(r="b",Qe++):(r=n,0===et&&it(ye)),r!==n&&(Je=t,r="\b"),(t=r)===n&&(t=Qe,102===e.charCodeAt(Qe)?(r="f",Qe++):(r=n,0===et&&it(_e)),r!==n&&(Je=t,r="\f"),(t=r)===n&&(t=Qe,110===e.charCodeAt(Qe)?(r="n",Qe++):(r=n,0===et&&it(Se)),r!==n&&(Je=t,r="\n"),(t=r)===n&&(t=Qe,114===e.charCodeAt(Qe)?(r="r",Qe++):(r=n,0===et&&it(Fe)),r!==n&&(Je=t,r="\r"),(t=r)===n&&(t=Qe,116===e.charCodeAt(Qe)?(r="t",Qe++):(r=n,0===et&&it(we)),r!==n&&(Je=t,r="\t"),(t=r)===n&&(t=Qe,118===e.charCodeAt(Qe)?(r="v",Qe++):(r=n,0===et&&it(Be)),r!==n&&(Je=t,r="\v"),t=r)))))))),t}function Mt(){var t,r,a,o,s,u,i,c,l;return t=Qe,117===e.charCodeAt(Qe)?(r="u",Qe++):(r=n,0===et&&it(Te)),r!==n?(a=Qe,o=Qe,(s=kt())!==n&&(u=kt())!==n&&(i=kt())!==n&&(c=kt())!==n?o=s=[s,u,i,c]:(Qe=o,o=n),(a=o!==n?e.substring(a,Qe):o)!==n?(Je=t,l=a,t=String.fromCharCode(parseInt(l,16))):(Qe=t,t=n)):(Qe=t,t=n),t}function It(){var t;return h.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(Pe)),t}function kt(){var t;return m.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(Re)),t}function jt(){var t,r,a,o;return et++,t=Qe,123===e.charCodeAt(Qe)?(r=u,Qe++):(r=n,0===et&&it(B)),r!==n?(a=function(){var e,t;return e=Qe,t=Nt(),Je=e,t=[t,tt()]}(),125===e.charCodeAt(Qe)?(o=i,Qe++):(o=n,0===et&&it(D)),o!==n?t=a:(Qe=t,t=n)):(Qe=t,t=n),et--,t===n&&(r=n,0===et&&it(Oe)),t}function Nt(){var t,r,a,o,s,c;if(t=Qe,r=[],a=[],o=Qe,s=Qe,et++,$.test(e.charAt(Qe))?(c=e.charAt(Qe),Qe++):(c=n,0===et&&it(Me)),et--,c===n?s=void 0:(Qe=s,s=n),s!==n&&(c=At())!==n?o=s=[s,c]:(Qe=o,o=n),o!==n)for(;o!==n;)a.push(o),o=Qe,s=Qe,et++,$.test(e.charAt(Qe))?(c=e.charAt(Qe),Qe++):(c=n,0===et&&it(Me)),et--,c===n?s=void 0:(Qe=s,s=n),s!==n&&(c=At())!==n?o=s=[s,c]:(Qe=o,o=n);else a=n;for(a===n&&(a=Qe,123===e.charCodeAt(Qe)?(o=u,Qe++):(o=n,0===et&&it(B)),o!==n?(s=Nt(),125===e.charCodeAt(Qe)?(c=i,Qe++):(c=n,0===et&&it(D)),c!==n?a=o=[o,s,c]:(Qe=a,a=n)):(Qe=a,a=n));a!==n;){if(r.push(a),a=[],o=Qe,s=Qe,et++,$.test(e.charAt(Qe))?(c=e.charAt(Qe),Qe++):(c=n,0===et&&it(Me)),et--,c===n?s=void 0:(Qe=s,s=n),s!==n&&(c=At())!==n?o=s=[s,c]:(Qe=o,o=n),o!==n)for(;o!==n;)a.push(o),o=Qe,s=Qe,et++,$.test(e.charAt(Qe))?(c=e.charAt(Qe),Qe++):(c=n,0===et&&it(Me)),et--,c===n?s=void 0:(Qe=s,s=n),s!==n&&(c=At())!==n?o=s=[s,c]:(Qe=o,o=n);else a=n;a===n&&(a=Qe,123===e.charCodeAt(Qe)?(o=u,Qe++):(o=n,0===et&&it(B)),o!==n?(s=Nt(),125===e.charCodeAt(Qe)?(c=i,Qe++):(c=n,0===et&&it(D)),c!==n?a=o=[o,s,c]:(Qe=a,a=n)):(Qe=a,a=n))}return e.substring(t,Qe)}function Ut(){var e,t;for(e=[],(t=bt())===n&&(t=Et())===n&&(t=vt());t!==n;)e.push(t),(t=bt())===n&&(t=Et())===n&&(t=vt());return e}function qt(){var t,r,a,o;return t=Qe,r=Ut(),59===e.charCodeAt(Qe)?(a=";",Qe++):(a=n,0===et&&it(Ye)),a!==n?t=r=[r,a]:(Qe=t,t=n),t===n&&(t=Qe,r=function(){var e,t;for(e=[],(t=bt())===n&&(t=Ct());t!==n;)e.push(t),(t=bt())===n&&(t=Ct());return e}(),(a=yt())===n&&(a=null),(o=Et())!==n?t=r=[r,a,o]:(Qe=t,t=n),t===n&&(t=Qe,r=Ut(),a=function(){var t,r;return t=Qe,et++,e.length>Qe?(r=e.charAt(Qe),Qe++):(r=n,0===et&&it(G)),et--,r===n?t=void 0:(Qe=t,t=n),t}(),a!==n?t=r=[r,a]:(Qe=t,t=n))),t}var Gt=t.reservedWords||[];if((r=s())!==n&&Qe===e.length)return r;throw r!==n&&Qe0){for(t=1,r=1;t>>=VLQ_BASE_SHIFT,n>0&&(t|=VLQ_CONTINUATION_BIT),r+=base64$1.encode(t)}while(n>0);return r};var util$4={},urlBrowser=require$$0__default$1.default.URL;const URL$1=urlBrowser;function getArg(e,t,r){if(t in e)return e[t];if(3===arguments.length)return r;throw new Error('"'+t+'" is a required argument.')}util$4.getArg=getArg;const supportsNullProto=!("__proto__"in Object.create(null));function identity(e){return e}function toSetString(e){return isProtoString(e)?"$"+e:e}function fromSetString(e){return isProtoString(e)?e.slice(1):e}function isProtoString(e){if(!e)return!1;const t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(let r=t-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function strcmp(e,t){return e===t?0:null===e?1:null===t?-1:e>t?1:-1}function compareByGeneratedPositionsInflated(e,t){let r=e.generatedLine-t.generatedLine;return 0!==r?r:(r=e.generatedColumn-t.generatedColumn,0!==r?r:(r=strcmp(e.source,t.source),0!==r?r:(r=e.originalLine-t.originalLine,0!==r?r:(r=e.originalColumn-t.originalColumn,0!==r?r:strcmp(e.name,t.name)))))}function parseSourceMapInput(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))}util$4.toSetString=supportsNullProto?identity:toSetString,util$4.fromSetString=supportsNullProto?identity:fromSetString,util$4.compareByGeneratedPositionsInflated=compareByGeneratedPositionsInflated,util$4.parseSourceMapInput=parseSourceMapInput;const PROTOCOL="http:",PROTOCOL_AND_HOST=`${PROTOCOL}//host`;function createSafeHandler(e){return t=>{const r=getURLType(t),n=buildSafeBase(t),a=new URL$1(t,n);e(a);const o=a.toString();return"absolute"===r?o:"scheme-relative"===r?o.slice(PROTOCOL.length):"path-absolute"===r?o.slice(PROTOCOL_AND_HOST.length):computeRelativeURL(n,o)}}function withBase(e,t){return new URL$1(e,t).toString()}function buildUniqueSegment(e,t){let r=0;for(;;){const n=e+r++;if(-1===t.indexOf(n))return n}}function buildSafeBase(e){const t=e.split("..").length-1,r=buildUniqueSegment("p",e);let n=`${PROTOCOL_AND_HOST}/`;for(let e=0;e0&&!n[n.length-1]&&n.pop();r.length>0&&n.length>0&&r[0]===n[0];)r.shift(),n.shift();return n.map((()=>"..")).concat(r).join("/")+t.search+t.hash}const ensureDirectory=createSafeHandler((e=>{e.pathname=e.pathname.replace(/\/?$/,"/")})),trimFilename=createSafeHandler((e=>{e.href=new URL$1(".",e.toString()).toString()})),normalize=createSafeHandler((e=>{}));function join(e,t){const r=getURLType(t),n=getURLType(e);if(e=ensureDirectory(e),"absolute"===r)return withBase(t,void 0);if("absolute"===n)return withBase(t,e);if("scheme-relative"===r)return normalize(t);if("scheme-relative"===n)return withBase(t,withBase(e,PROTOCOL_AND_HOST)).slice(PROTOCOL.length);if("path-absolute"===r)return normalize(t);if("path-absolute"===n)return withBase(t,withBase(e,PROTOCOL_AND_HOST)).slice(PROTOCOL_AND_HOST.length);const a=buildSafeBase(t+e);return computeRelativeURL(a,withBase(t,withBase(e,a)))}function relative(e,t){const r=relativeIfPossible(e,t);return"string"==typeof r?r:normalize(t)}function relativeIfPossible(e,t){if(getURLType(e)!==getURLType(t))return null;const r=buildSafeBase(e+t),n=new URL$1(e,r),a=new URL$1(t,r);try{new URL$1("",a.toString())}catch(e){return null}return a.protocol!==n.protocol||a.user!==n.user||a.password!==n.password||a.hostname!==n.hostname||a.port!==n.port?null:computeRelativeURL(n,a)}function computeSourceURL(e,t,r){e&&"path-absolute"===getURLType(t)&&(t=t.replace(/^\//,""));let n=normalize(t||"");return e&&(n=join(e,n)),r&&(n=join(trimFilename(r),n)),n}util$4.normalize=normalize,util$4.join=join,util$4.relative=relative,util$4.computeSourceURL=computeSourceURL;var arraySet={};class ArraySet$2{constructor(){this._array=[],this._set=new Map}static fromArray(e,t){const r=new ArraySet$2;for(let n=0,a=e.length;n=0)return t;throw new Error('"'+e+'" is not in the set.')}at(e){if(e>=0&&er||n==r&&o>=a||util$3.compareByGeneratedPositionsInflated(e,t)<=0}class MappingList$1{constructor(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}unsortedForEach(e,t){this._array.forEach(e,t)}add(e){generatedPositionAfter(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))}toArray(){return this._sorted||(this._array.sort(util$3.compareByGeneratedPositionsInflated),this._sorted=!0),this._array}}mappingList.MappingList=MappingList$1;const base64VLQ=base64Vlq,util$2=util$4,ArraySet$1=arraySet.ArraySet,MappingList=mappingList.MappingList;class SourceMapGenerator$1{constructor(e){e||(e={}),this._file=util$2.getArg(e,"file",null),this._sourceRoot=util$2.getArg(e,"sourceRoot",null),this._skipValidation=util$2.getArg(e,"skipValidation",!1),this._sources=new ArraySet$1,this._names=new ArraySet$1,this._mappings=new MappingList,this._sourcesContents=null}static fromSourceMap(e){const t=e.sourceRoot,r=new SourceMapGenerator$1({file:e.file,sourceRoot:t});return e.eachMapping((function(e){const n={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(n.source=e.source,null!=t&&(n.source=util$2.relative(t,n.source)),n.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(n.name=e.name)),r.addMapping(n)})),e.sources.forEach((function(n){let a=n;null!==t&&(a=util$2.relative(t,n)),r._sources.has(a)||r._sources.add(a);const o=e.sourceContentFor(n);null!=o&&r.setSourceContent(n,o)})),r}addMapping(e){const t=util$2.getArg(e,"generated"),r=util$2.getArg(e,"original",null);let n=util$2.getArg(e,"source",null),a=util$2.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,r,n,a),null!=n&&(n=String(n),this._sources.has(n)||this._sources.add(n)),null!=a&&(a=String(a),this._names.has(a)||this._names.add(a)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=r&&r.line,originalColumn:null!=r&&r.column,source:n,name:a})}setSourceContent(e,t){let r=e;null!=this._sourceRoot&&(r=util$2.relative(this._sourceRoot,r)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[util$2.toSetString(r)]=t):this._sourcesContents&&(delete this._sourcesContents[util$2.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))}applySourceMap(e,t,r){let n=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');n=e.file}const a=this._sourceRoot;null!=a&&(n=util$2.relative(a,n));const o=this._mappings.toArray().length>0?new ArraySet$1:this._sources,s=new ArraySet$1;this._mappings.unsortedForEach((function(t){if(t.source===n&&null!=t.originalLine){const n=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=n.source&&(t.source=n.source,null!=r&&(t.source=util$2.join(r,t.source)),null!=a&&(t.source=util$2.relative(a,t.source)),t.originalLine=n.line,t.originalColumn=n.column,null!=n.name&&(t.name=n.name))}const u=t.source;null==u||o.has(u)||o.add(u);const i=t.name;null==i||s.has(i)||s.add(i)}),this),this._sources=o,this._names=s,e.sources.forEach((function(t){const n=e.sourceContentFor(t);null!=n&&(null!=r&&(t=util$2.join(r,t)),null!=a&&(t=util$2.relative(a,t)),this.setSourceContent(t,n))}),this)}_validateMapping(e,t,r,n){if(t&&"number"!=typeof t.line&&"number"!=typeof t.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0&&!t&&!r&&!n);else if(!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:t,name:n}))}_serializeMappings(){let e,t,r,n,a=0,o=1,s=0,u=0,i=0,c=0,l="";const p=this._mappings.toArray();for(let f=0,d=p.length;f0){if(!util$2.compareByGeneratedPositionsInflated(t,p[f-1]))continue;e+=","}e+=base64VLQ.encode(t.generatedColumn-a),a=t.generatedColumn,null!=t.source&&(n=this._sources.indexOf(t.source),e+=base64VLQ.encode(n-c),c=n,e+=base64VLQ.encode(t.originalLine-1-u),u=t.originalLine-1,e+=base64VLQ.encode(t.originalColumn-s),s=t.originalColumn,null!=t.name&&(r=this._names.indexOf(t.name),e+=base64VLQ.encode(r-i),i=r)),l+=e}return l}_generateSourcesContent(e,t){return e.map((function(e){if(!this._sourcesContents)return null;null!=t&&(e=util$2.relative(t,e));const r=util$2.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null}),this)}toJSON(){const e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e}toString(){return JSON.stringify(this.toJSON())}}SourceMapGenerator$1.prototype._version=3,sourceMapGenerator.SourceMapGenerator=SourceMapGenerator$1;var sourceMapConsumer={},binarySearch$1={};!function(e){function t(r,n,a,o,s,u){const i=Math.floor((n-r)/2)+r,c=s(a,o[i],!0);return 0===c?i:c>0?n-i>1?t(i,n,a,o,s,u):u==e.LEAST_UPPER_BOUND?n1?t(r,i,a,o,s,u):u==e.LEAST_UPPER_BOUND?i:r<0?-1:r}e.GREATEST_LOWER_BOUND=1,e.LEAST_UPPER_BOUND=2,e.search=function(r,n,a,o){if(0===n.length)return-1;let s=t(-1,n.length,r,n,a,o||e.GREATEST_LOWER_BOUND);if(s<0)return-1;for(;s-1>=0&&0===a(n[s],n[s-1],!0);)--s;return s}}(binarySearch$1);var readWasmBrowser={exports:{}};let mappingsWasm=null;readWasmBrowser.exports=function(){if("string"==typeof mappingsWasm)return fetch(mappingsWasm).then((e=>e.arrayBuffer()));if(mappingsWasm instanceof ArrayBuffer)return Promise.resolve(mappingsWasm);throw new Error("You must provide the string URL or ArrayBuffer contents of lib/mappings.wasm by calling SourceMapConsumer.initialize({ 'lib/mappings.wasm': ... }) before using SourceMapConsumer")},readWasmBrowser.exports.initialize=e=>{mappingsWasm=e};const readWasm$1=readWasmBrowser.exports;function Mapping(){this.generatedLine=0,this.generatedColumn=0,this.lastGeneratedColumn=null,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}let cachedWasm=null;var wasm$1=function(){if(cachedWasm)return cachedWasm;const e=[];return cachedWasm=readWasm$1().then((t=>WebAssembly.instantiate(t,{env:{mapping_callback(t,r,n,a,o,s,u,i,c,l){const p=new Mapping;p.generatedLine=t+1,p.generatedColumn=r,n&&(p.lastGeneratedColumn=a-1),o&&(p.source=s,p.originalLine=u+1,p.originalColumn=i,c&&(p.name=l)),e[e.length-1](p)},start_all_generated_locations_for(){console.time("all_generated_locations_for")},end_all_generated_locations_for(){console.timeEnd("all_generated_locations_for")},start_compute_column_spans(){console.time("compute_column_spans")},end_compute_column_spans(){console.timeEnd("compute_column_spans")},start_generated_location_for(){console.time("generated_location_for")},end_generated_location_for(){console.timeEnd("generated_location_for")},start_original_location_for(){console.time("original_location_for")},end_original_location_for(){console.timeEnd("original_location_for")},start_parse_mappings(){console.time("parse_mappings")},end_parse_mappings(){console.timeEnd("parse_mappings")},start_sort_by_generated_location(){console.time("sort_by_generated_location")},end_sort_by_generated_location(){console.timeEnd("sort_by_generated_location")},start_sort_by_original_location(){console.time("sort_by_original_location")},end_sort_by_original_location(){console.timeEnd("sort_by_original_location")}}}))).then((t=>({exports:t.instance.exports,withMappingCallback:(t,r)=>{e.push(t);try{r()}finally{e.pop()}}}))).then(null,(e=>{throw cachedWasm=null,e})),cachedWasm};const util$1=util$4,binarySearch=binarySearch$1,ArraySet=arraySet.ArraySet,readWasm=readWasmBrowser.exports,wasm=wasm$1,INTERNAL=Symbol("smcInternal");class SourceMapConsumer$1{constructor(e,t){return e==INTERNAL?Promise.resolve(this):_factory(e,t)}static initialize(e){readWasm.initialize(e["lib/mappings.wasm"])}static fromSourceMap(e,t){return _factoryBSM(e,t)}static async with(e,t,r){const n=await new SourceMapConsumer$1(e,t);try{return await r(n)}finally{n.destroy()}}eachMapping(e,t,r){throw new Error("Subclasses must implement eachMapping")}allGeneratedPositionsFor(e){throw new Error("Subclasses must implement allGeneratedPositionsFor")}destroy(){throw new Error("Subclasses must implement destroy")}}SourceMapConsumer$1.prototype._version=3,SourceMapConsumer$1.GENERATED_ORDER=1,SourceMapConsumer$1.ORIGINAL_ORDER=2,SourceMapConsumer$1.GREATEST_LOWER_BOUND=1,SourceMapConsumer$1.LEAST_UPPER_BOUND=2,sourceMapConsumer.SourceMapConsumer=SourceMapConsumer$1;class BasicSourceMapConsumer extends SourceMapConsumer$1{constructor(e,t){return super(INTERNAL).then((r=>{let n=e;"string"==typeof e&&(n=util$1.parseSourceMapInput(e));const a=util$1.getArg(n,"version"),o=util$1.getArg(n,"sources").map(String),s=util$1.getArg(n,"names",[]),u=util$1.getArg(n,"sourceRoot",null),i=util$1.getArg(n,"sourcesContent",null),c=util$1.getArg(n,"mappings"),l=util$1.getArg(n,"file",null);if(a!=r._version)throw new Error("Unsupported version: "+a);return r._sourceLookupCache=new Map,r._names=ArraySet.fromArray(s.map(String),!0),r._sources=ArraySet.fromArray(o,!0),r._absoluteSources=ArraySet.fromArray(r._sources.toArray().map((function(e){return util$1.computeSourceURL(u,e,t)})),!0),r.sourceRoot=u,r.sourcesContent=i,r._mappings=c,r._sourceMapURL=t,r.file=l,r._computedColumnSpans=!1,r._mappingsPtr=0,r._wasm=null,wasm().then((e=>(r._wasm=e,r)))}))}_findSourceIndex(e){const t=this._sourceLookupCache.get(e);if("number"==typeof t)return t;const r=util$1.computeSourceURL(null,e,this._sourceMapURL);if(this._absoluteSources.has(r)){const t=this._absoluteSources.indexOf(r);return this._sourceLookupCache.set(e,t),t}const n=util$1.computeSourceURL(this.sourceRoot,e,this._sourceMapURL);if(this._absoluteSources.has(n)){const t=this._absoluteSources.indexOf(n);return this._sourceLookupCache.set(e,t),t}return-1}static fromSourceMap(e,t){return new BasicSourceMapConsumer(e.toString())}get sources(){return this._absoluteSources.toArray()}_getMappingsPtr(){return 0===this._mappingsPtr&&this._parseMappings(),this._mappingsPtr}_parseMappings(){const e=this._mappings,t=e.length,r=this._wasm.exports.allocate_mappings(t),n=new Uint8Array(this._wasm.exports.memory.buffer,r,t);for(let r=0;r{null!==t.source&&(t.source=this._absoluteSources.at(t.source),null!==t.name&&(t.name=this._names.at(t.name))),this._computedColumnSpans&&null===t.lastGeneratedColumn&&(t.lastGeneratedColumn=1/0),e.call(n,t)}),(()=>{switch(a){case SourceMapConsumer$1.GENERATED_ORDER:this._wasm.exports.by_generated_location(this._getMappingsPtr());break;case SourceMapConsumer$1.ORIGINAL_ORDER:this._wasm.exports.by_original_location(this._getMappingsPtr());break;default:throw new Error("Unknown order of iteration.")}}))}allGeneratedPositionsFor(e){let t=util$1.getArg(e,"source");const r=util$1.getArg(e,"line"),n=e.column||0;if(t=this._findSourceIndex(t),t<0)return[];if(r<1)throw new Error("Line numbers must be >= 1");if(n<0)throw new Error("Column numbers must be >= 0");const a=[];return this._wasm.withMappingCallback((e=>{let t=e.lastGeneratedColumn;this._computedColumnSpans&&null===t&&(t=1/0),a.push({line:e.generatedLine,column:e.generatedColumn,lastColumn:t})}),(()=>{this._wasm.exports.all_generated_locations_for(this._getMappingsPtr(),t,r-1,"column"in e,n)})),a}destroy(){0!==this._mappingsPtr&&(this._wasm.exports.free_mappings(this._mappingsPtr),this._mappingsPtr=0)}computeColumnSpans(){this._computedColumnSpans||(this._wasm.exports.compute_column_spans(this._getMappingsPtr()),this._computedColumnSpans=!0)}originalPositionFor(e){const t={generatedLine:util$1.getArg(e,"line"),generatedColumn:util$1.getArg(e,"column")};if(t.generatedLine<1)throw new Error("Line numbers must be >= 1");if(t.generatedColumn<0)throw new Error("Column numbers must be >= 0");let r,n=util$1.getArg(e,"bias",SourceMapConsumer$1.GREATEST_LOWER_BOUND);if(null==n&&(n=SourceMapConsumer$1.GREATEST_LOWER_BOUND),this._wasm.withMappingCallback((e=>r=e),(()=>{this._wasm.exports.original_location_for(this._getMappingsPtr(),t.generatedLine-1,t.generatedColumn,n)})),r&&r.generatedLine===t.generatedLine){let e=util$1.getArg(r,"source",null);null!==e&&(e=this._absoluteSources.at(e));let t=util$1.getArg(r,"name",null);return null!==t&&(t=this._names.at(t)),{source:e,line:util$1.getArg(r,"originalLine",null),column:util$1.getArg(r,"originalColumn",null),name:t}}return{source:null,line:null,column:null,name:null}}hasContentsOfAllSources(){return!!this.sourcesContent&&this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some((function(e){return null==e}))}sourceContentFor(e,t){if(!this.sourcesContent)return null;const r=this._findSourceIndex(e);if(r>=0)return this.sourcesContent[r];if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')}generatedPositionFor(e){let t=util$1.getArg(e,"source");if(t=this._findSourceIndex(t),t<0)return{line:null,column:null,lastColumn:null};const r={source:t,originalLine:util$1.getArg(e,"line"),originalColumn:util$1.getArg(e,"column")};if(r.originalLine<1)throw new Error("Line numbers must be >= 1");if(r.originalColumn<0)throw new Error("Column numbers must be >= 0");let n,a=util$1.getArg(e,"bias",SourceMapConsumer$1.GREATEST_LOWER_BOUND);if(null==a&&(a=SourceMapConsumer$1.GREATEST_LOWER_BOUND),this._wasm.withMappingCallback((e=>n=e),(()=>{this._wasm.exports.generated_location_for(this._getMappingsPtr(),r.source,r.originalLine-1,r.originalColumn,a)})),n&&n.source===r.source){let e=n.lastGeneratedColumn;return this._computedColumnSpans&&null===e&&(e=1/0),{line:util$1.getArg(n,"generatedLine",null),column:util$1.getArg(n,"generatedColumn",null),lastColumn:e}}return{line:null,column:null,lastColumn:null}}}BasicSourceMapConsumer.prototype.consumer=SourceMapConsumer$1,sourceMapConsumer.BasicSourceMapConsumer=BasicSourceMapConsumer;class IndexedSourceMapConsumer extends SourceMapConsumer$1{constructor(e,t){return super(INTERNAL).then((r=>{let n=e;"string"==typeof e&&(n=util$1.parseSourceMapInput(e));const a=util$1.getArg(n,"version"),o=util$1.getArg(n,"sections");if(a!=r._version)throw new Error("Unsupported version: "+a);let s={line:-1,column:0};return Promise.all(o.map((e=>{if(e.url)throw new Error("Support for url field in sections not implemented.");const r=util$1.getArg(e,"offset"),n=util$1.getArg(r,"line"),a=util$1.getArg(r,"column");if(n({generatedOffset:{generatedLine:n+1,generatedColumn:a+1},consumer:e})))}))).then((e=>(r._sections=e,r)))}))}get sources(){const e=[];for(let t=0;t=0?this._sections[t]:null,n=t>=0&&t+1=0?this._sections[t]:null,n=t>=0&&t+1{const t=r.generatedOffset.generatedLine-1,a=r.generatedOffset.generatedColumn-1;return 1===e.line&&(e.column+=a,"number"==typeof e.lastColumn&&(e.lastColumn+=a)),e.lastColumn===1/0&&n&&e.line===n.generatedOffset.generatedLine&&(e.lastColumn=n.generatedOffset.generatedColumn-2),e.line+=t,e})):[]}eachMapping(e,t,r){this._sections.forEach(((n,a)=>{const o=a+1=0;t--)this.prepend(e[t]);else{if(!e[isSourceNode]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this}walk(e){let t;for(let r=0,n=this.children.length;r0){for(t=[],r=0;r=10"},require$$2={name:name,version:version,description:description,keywords:keywords,homepage:homepage,repository:repository,bugs:bugs,license:license,author:author,main:main,unpkg:unpkg,jsdelivr:jsdelivr,types:types,bin:bin,scripts:scripts,devDependencies:devDependencies,dependencies:dependencies,tsd:tsd,engines:engines},chai$d=require$$0__default.default,peg$1=peg_1,pkg=require$$2,SourceMapConsumer=sourceMap.SourceMapConsumer,spy=utils.spy,peggyVersion=function(){return peg$1.VERSION};beforeEach((function(){return"undefined"!=typeof window?SourceMapConsumer.initialize({"lib/mappings.wasm":"https://raw.githubusercontent.com/mozilla/source-map/0.7.3/lib/mappings.wasm"}):null}));var expect$d=chai$d.expect;describe("Peggy API",(function(){it("has the correct VERSION",(function(){expect$d(peg$1.VERSION).to.equal(pkg.version)})),describe("generate",(function(){it("generates a parser",(function(){var e=peg$1.generate("start = 'a'");expect$d(e).to.be.an("object"),expect$d(e.parse("a")).to.equal("a")})),it("throws an exception on syntax error",(function(){expect$d((function(){peg$1.generate("start = @")})).to.throw()})),it("throws an exception on semantic error",(function(){expect$d((function(){peg$1.generate("start = undefined")})).to.throw()})),describe("allowed start rules",(function(){var e=["a = 'x'","b = 'x'","c = 'x'"].join("\n");describe("when |allowedStartRules| is not set",(function(){it("generated parser can start only from the first rule",(function(){var t=peg$1.generate(e);expect$d(t.parse("x",{startRule:"a"})).to.equal("x"),expect$d((function(){t.parse("x",{startRule:"b"})})).to.throw(),expect$d((function(){t.parse("x",{startRule:"c"})})).to.throw()}))})),describe("when |allowedStartRules| is set",(function(){it("generated parser can start only from specified rules",(function(){var t=peg$1.generate(e,{allowedStartRules:["b","c"]});expect$d((function(){t.parse("x",{startRule:"a"})})).to.throw(),expect$d(t.parse("x",{startRule:"b"})).to.equal("x"),expect$d(t.parse("x",{startRule:"c"})).to.equal("x")}))}))})),describe("intermediate results caching",(function(){var e=["{ var n = 0; }","start = (a 'b') / (a 'c') { return n; }","a = 'a' { n++; }"].join("\n");describe("when |cache| is not set",(function(){it("generated parser doesn't cache intermediate parse results",(function(){var t=peg$1.generate(e);expect$d(t.parse("ac")).to.equal(2)}))})),describe("when |cache| is set to |false|",(function(){it("generated parser doesn't cache intermediate parse results",(function(){var t=peg$1.generate(e,{cache:!1});expect$d(t.parse("ac")).to.equal(2)}))})),describe("when |cache| is set to |true|",(function(){it("generated parser caches intermediate parse results",(function(){var t=peg$1.generate(e,{cache:!0});expect$d(t.parse("ac")).to.equal(1)}))}))})),describe("tracing",(function(){var e="start = 'a'";describe("when |trace| is not set",(function(){it("generated parser doesn't trace",(function(){var t=peg$1.generate(e),r={trace:spy()};t.parse("a",{tracer:r}),expect$d(r.trace.called).to.equal(!1)}))})),describe("when |trace| is set to |false|",(function(){it("generated parser doesn't trace",(function(){var t=peg$1.generate(e,{trace:!1}),r={trace:spy()};t.parse("a",{tracer:r}),expect$d(r.trace.called).to.equal(!1)}))})),describe("when |trace| is set to |true|",(function(){it("generated parser traces",(function(){var t=peg$1.generate(e,{trace:!0}),r={trace:spy()};t.parse("a",{tracer:r}),expect$d(r.trace.called).to.equal(!0)}))}))})),describe("output",(function(){var grammar="start = 'a'";describe("when |output| is not set",(function(){it("returns generated parser object",(function(){var e=peg$1.generate(grammar);expect$d(e).to.be.an("object"),expect$d(e.parse("a")).to.equal("a")}))})),describe('when |output| is set to |"parser"|',(function(){it("returns generated parser object",(function(){var e=peg$1.generate(grammar,{output:"parser"});expect$d(e).to.be.an("object"),expect$d(e.parse("a")).to.equal("a")}))})),describe('when |output| is set to |"source"|',(function(){it("returns generated parser source code",(function(){var source=peg$1.generate(grammar,{output:"source"});expect$d(source).to.be.a("string"),expect$d(eval(source).parse("a")).to.equal("a")}))}))})),describe("reserved words",(function(){describe("throws an exception on reserved JS words used as a label",(function(){for(var e=function(e){it(e,(function(){expect$d((function(){peg$1.generate(["start = "+e+":end","end = 'a'"].join("\n"),{output:"source"})})).to.throw(peg$1.parser.SyntaxError)}))},t=0,r=peg$1.RESERVED_WORDS;t start -> leftRecursion -> duplicatedRule)"])}}))}))}));var chai$b=require$$0__default.default,parser$1=parser$4,compiler=compiler_1,expect$b=chai$b.expect;describe("Peggy compiler",(function(){it("checks start rules",(function(){var e=parser$1.parse("foo='1'");expect$b(compiler.compile(e,compiler.passes)).to.be.an("object"),expect$b((function(){return compiler.compile(e,compiler.passes,{allowedStartRules:null})})).to.throw("allowedStartRules must be an array"),expect$b((function(){return compiler.compile(e,compiler.passes,{allowedStartRules:[]})})).to.throw("Must have at least one start rule"),expect$b((function(){return compiler.compile(e,compiler.passes,{allowedStartRules:["bar"]})})).to.throw('Unknown start rule "bar"')})),it("checks output type",(function(){var e=parser$1.parse("foo='1'");expect$b(compiler.compile(e,compiler.passes,{output:"source"})).to.be.a("string"),expect$b((function(){return compiler.compile(e,compiler.passes,{output:"INVALID OUTPUT TYPE"})})).to.throw("Invalid output format: INVALID OUTPUT TYPE.")})),it("generates inline sourceMappingURL",(function(){var e=parser$1.parse("foo='1'");if(expect$b(e).to.be.an("object"),"function"==typeof TextEncoder&&(expect$b(compiler.compile(e,compiler.passes,{output:"source-with-inline-map"})).to.match(/^\/\/# sourceMappingURL=data:application\/json;charset=utf-8;base64,/m),"object"==typeof globalThis)){var t=globalThis.TextEncoder;delete globalThis.TextEncoder,expect$b((function(){return compiler.compile(e,compiler.passes,{output:"source-with-inline-map"})})).to.throw("TextEncoder is not supported by this platform"),globalThis.TextEncoder=t}}))}));var chai$a=require$$0__default.default,Stack=stack,expect$a=chai$a.expect;describe("utility class Stack",(function(){describe("for an empty stack",(function(){var e;beforeEach((function(){e=new Stack("rule","v","let")})),describe("throws an error when attempting",(function(){it("`pop`",(function(){expect$a((function(){return e.pop()})).to.throw(RangeError,"Rule 'rule': The variable stack underflow: attempt to use a variable 'v' at an index -1")})),it("`top`",(function(){expect$a((function(){return e.top()})).to.throw(RangeError,"Rule 'rule': The variable stack underflow: attempt to use a variable 'v' at an index -1")})),it("`result`",(function(){expect$a((function(){return e.result()})).to.throw(RangeError,"Rule 'rule': The variable stack is empty, can't get the result")})),it("`index`",(function(){expect$a((function(){return e.index(-2)})).to.throw(RangeError,"Rule 'rule': The variable stack overflow: attempt to get a variable at a negative index -2"),expect$a((function(){return e.index(0)})).to.throw(RangeError,"Rule 'rule': The variable stack underflow: attempt to use a variable 'v' at an index -1"),expect$a((function(){return e.index(2)})).to.throw(RangeError,"Rule 'rule': The variable stack underflow: attempt to use a variable 'v' at an index -3")}))})),it("`defines` returns an empty string",(function(){expect$a(e.defines()).to.equal("")}))})),it("throws an error when attempting `pop` more than `push`",(function(){var e=new Stack("rule","v","let");e.push("1"),expect$a((function(){return e.pop(3)})).to.throw(RangeError,"Rule 'rule': The variable stack underflow: attempt to use a variable 'v' at an index -2")})),it("returns a variable with an index 0 for `result`",(function(){var e=new Stack("rule","v","let");e.push("1"),expect$a(e.result()).to.equal("v0")})),it("`defines` returns a define expression for all used variables",(function(){var e=new Stack("rule","v","let");e.push("1"),e.push("2"),e.pop(),e.push("3"),expect$a(e.defines()).to.equal("let v0, v1;")})),describe("`checkedIf` method",(function(){var e;beforeEach((function(){(e=new Stack("rule","v","let")).push("1")})),describe("does not throws an error",(function(){it("without the else brach",(function(){expect$a((function(){return e.checkedIf(0,(function(){}))})).to.not.throw(),expect$a((function(){return e.checkedIf(0,(function(){return e.pop()}))})).to.not.throw(),expect$a((function(){return e.checkedIf(0,(function(){return e.push("2")}))})).to.not.throw()})),describe("when the stack pointer",(function(){it("was not moving in both the arms",(function(){function t(){}function r(){e.push("1"),e.pop()}function n(){e.push("1"),e.push("2"),e.pop(2)}function a(){e.push("1"),e.pop(),e.push("2"),e.pop()}expect$a((function(){return e.checkedIf(0,t,t)})).to.not.throw(),expect$a((function(){return e.checkedIf(0,r,r)})).to.not.throw(),expect$a((function(){return e.checkedIf(0,n,n)})).to.not.throw(),expect$a((function(){return e.checkedIf(0,a,a)})).to.not.throw()})),it("increases on the same value in both the arms",(function(){expect$a((function(){return e.checkedIf(0,(function(){return e.push("1")}),(function(){return e.push("2")}))})).to.not.throw()})),it("decreases on the same value in both the arms",(function(){e.push("2"),expect$a((function(){return e.checkedIf(0,(function(){return e.pop(2)}),(function(){e.pop(),e.pop()}))})).to.not.throw()}))}))})),describe("throws an error when the stack pointer",(function(){it("was not moving in `if` and decreases in `then`",(function(){expect$a((function(){e.checkedIf(0,(function(){}),(function(){return e.pop()}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: 0, after else: -1).")})),it("decreases in `if` and was not moving in `then`",(function(){expect$a((function(){e.checkedIf(0,(function(){return e.pop()}),(function(){}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: -1, after else: 0).")})),it("was not moving in `if` and increases in `then`",(function(){expect$a((function(){e.checkedIf(0,(function(){}),(function(){return e.push("2")}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: 0, after else: 1).")})),it("increases in `if` and was not moving in `then`",(function(){expect$a((function(){e.checkedIf(0,(function(){return e.push("2")}),(function(){}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: 1, after else: 0).")})),it("decreases in `if` and increases in `then`",(function(){expect$a((function(){e.checkedIf(0,(function(){return e.pop()}),(function(){return e.push("2")}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: -1, after else: 1).")})),it("increases in `if` and decreases in `then`",(function(){expect$a((function(){e.checkedIf(0,(function(){return e.push("2")}),(function(){return e.pop()}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: 1, after else: -1).")}))}))})),describe("`checkedLoop` method",(function(){var e;beforeEach((function(){(e=new Stack("rule","v","let")).push("1")})),it("does not throws an error when the stack pointer was not moving",(function(){function t(){}function r(){e.push("1"),e.pop()}function n(){e.push("1"),e.push("2"),e.pop(2)}function a(){e.push("1"),e.pop(),e.push("2"),e.pop()}expect$a((function(){return e.checkedLoop(0,t)})).to.not.throw(),expect$a((function(){return e.checkedLoop(0,r)})).to.not.throw(),expect$a((function(){return e.checkedLoop(0,n)})).to.not.throw(),expect$a((function(){return e.checkedLoop(0,a)})).to.not.throw()})),it("throws an error when the stack pointer increases",(function(){expect$a((function(){return e.checkedLoop(0,(function(){return e.push("1")}))})).to.throw(Error,"Rule 'rule', position 0: Body of a loop can't move the stack pointer (before: 0, after: 1).")})),it("throws an error when the stack pointer decreases",(function(){expect$a((function(){return e.checkedLoop(0,(function(){return e.pop()}))})).to.throw(Error,"Rule 'rule', position 0: Body of a loop can't move the stack pointer (before: 0, after: -1).")}))}))}));var chai$9=require$$0__default.default,_a=utils$1,hex=_a.hex,stringEscape=_a.stringEscape,regexpClassEscape=_a.regexpClassEscape,base64=_a.base64,expect$9=chai$9.expect;describe("utility functions",(function(){it("hex",(function(){expect$9(hex("0")).to.equal("30"),expect$9(hex("\0")).to.equal("0"),expect$9(hex("\n")).to.equal("A"),expect$9(hex("\ufeff")).to.equal("FEFF")})),it("stringEscape",(function(){expect$9(stringEscape("abc")).to.equal("abc"),expect$9(stringEscape('\\"\0\b\t\n\v\f\r')).to.equal('\\\\\\"\\0\\b\\t\\n\\v\\f\\r'),expect$9(stringEscape("")).to.equal("\\x01\\x0F"),expect$9(stringEscape("")).to.equal("\\x10\\x1F\\x7F"),expect$9(stringEscape("Ā࿿")).to.equal("\\u0100\\u0FFF"),expect$9(stringEscape("က￿")).to.equal("\\u1000\\uFFFF")})),it("regexpClassEscape",(function(){expect$9(regexpClassEscape("\\\0\b\t\n\v\f\r")).to.equal("\\\\\\0\\b\\t\\n\\v\\f\\r"),expect$9(regexpClassEscape("/]^-")).to.equal("\\/\\]\\^\\-"),expect$9(regexpClassEscape("")).to.equal("\\x01\\x0F"),expect$9(regexpClassEscape("")).to.equal("\\x10\\x1F\\x7F"),expect$9(regexpClassEscape("Ā࿿")).to.equal("\\u0100\\u0FFF"),expect$9(regexpClassEscape("က￿")).to.equal("\\u1000\\uFFFF")})),it("base64",(function(){expect$9(base64(new Uint8Array([]))).to.equal(""),expect$9(base64(new Uint8Array([97]))).to.equal("YQ=="),expect$9(base64(new Uint8Array([97,98]))).to.equal("YWI="),expect$9(base64(new Uint8Array([97,98,99]))).to.equal("YWJj"),expect$9(base64(new Uint8Array([97,98,99,100]))).to.equal("YWJjZA=="),expect$9(base64(new Uint8Array([97,98,99,100,101]))).to.equal("YWJjZGU="),expect$9(base64(new Uint8Array([97,98,99,100,101,102]))).to.equal("YWJjZGVm")}))}));var __spreadArray=commonjsGlobal&&commonjsGlobal.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var n,a=0,o=t.length;a start)",location:{source:void 0,start:{offset:0,line:1,column:1},end:{offset:5,line:1,column:6}}})})),it("reports indirect left recursion",(function(){expect$2(pass$2).to.reportError(["start = stop","stop = start"].join("\n"),{message:"Possible infinite loop when parsing (left recursion: start -> stop -> start)",location:{source:void 0,start:{offset:0,line:1,column:1},end:{offset:5,line:1,column:6}}})})),describe("in sequences",(function(){it("reports left recursion if all preceding elements match empty string",(function(){expect$2(pass$2).to.reportError("start = '' '' '' start")})),it("doesn't report left recursion if some preceding element doesn't match empty string",(function(){expect$2(pass$2).to.not.reportError("start = 'a' '' '' start"),expect$2(pass$2).to.not.reportError("start = '' 'a' '' start"),expect$2(pass$2).to.not.reportError("start = '' '' 'a' start")})),it("reports left recursion when rule reference is wrapped in an expression",(function(){expect$2(pass$2).to.reportError("start = '' start?")})),it("computes expressions that always consume input on success correctly",(function(){expect$2(pass$2).to.reportError(["start = a start","a 'a' = ''"].join("\n")),expect$2(pass$2).to.not.reportError(["start = a start","a 'a' = 'a'"].join("\n")),expect$2(pass$2).to.reportError("start = ('' / 'a' / 'b') start"),expect$2(pass$2).to.reportError("start = ('a' / '' / 'b') start"),expect$2(pass$2).to.reportError("start = ('a' / 'b' / '') start"),expect$2(pass$2).to.not.reportError("start = ('a' / 'b' / 'c') start"),expect$2(pass$2).to.reportError("start = ('' { }) start"),expect$2(pass$2).to.not.reportError("start = ('a' { }) start"),expect$2(pass$2).to.reportError("start = ('' '' '') start"),expect$2(pass$2).to.not.reportError("start = ('a' '' '') start"),expect$2(pass$2).to.not.reportError("start = ('' 'a' '') start"),expect$2(pass$2).to.not.reportError("start = ('' '' 'a') start"),expect$2(pass$2).to.reportError("start = a:'' start"),expect$2(pass$2).to.not.reportError("start = a:'a' start"),expect$2(pass$2).to.reportError("start = $'' start"),expect$2(pass$2).to.not.reportError("start = $'a' start"),expect$2(pass$2).to.reportError("start = &'' start"),expect$2(pass$2).to.reportError("start = &'a' start"),expect$2(pass$2).to.reportError("start = !'' start"),expect$2(pass$2).to.reportError("start = !'a' start"),expect$2(pass$2).to.reportError("start = ''? start"),expect$2(pass$2).to.reportError("start = 'a'? start"),expect$2(pass$2).to.reportError("start = ''* start"),expect$2(pass$2).to.reportError("start = 'a'* start"),expect$2(pass$2).to.reportError("start = ''+ start"),expect$2(pass$2).to.not.reportError("start = 'a'+ start"),expect$2(pass$2).to.reportError("start = ('') start"),expect$2(pass$2).to.not.reportError("start = ('a') start"),expect$2(pass$2).to.reportError("start = &{ } start"),expect$2(pass$2).to.reportError("start = !{ } start"),expect$2(pass$2).to.reportError(["start = a start","a = ''"].join("\n")),expect$2(pass$2).to.not.reportError(["start = a start","a = 'a'"].join("\n")),expect$2(pass$2).to.reportError("start = '' start"),expect$2(pass$2).to.not.reportError("start = 'a' start"),expect$2(pass$2).to.not.reportError("start = [a-d] start"),expect$2(pass$2).to.not.reportError("start = . start")}))}))}));var chai$1=require$$0__default.default,helpers$1=helpers$9,pass$1=reportUndefinedRules_1;chai$1.use(helpers$1);var expect$1=chai$1.expect;describe("compiler pass |reportUndefinedRules|",(function(){it("reports undefined rules",(function(){expect$1(pass$1).to.reportError("start = undefined",{message:'Rule "undefined" is not defined',location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:17,line:1,column:18}}})}))}));var chai=require$$0__default.default,helpers=helpers$9,pass=reportInfiniteRepetition_1;chai.use(helpers);var expect=chai.expect;describe("compiler pass |reportInfiniteRepetition|",(function(){it("reports infinite loops for zero_or_more",(function(){expect(pass).to.reportError("start = ('')*",{message:"Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:13,line:1,column:14}}})})),it("reports infinite loops for one_or_more",(function(){expect(pass).to.reportError("start = ('')+",{message:"Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:13,line:1,column:14}}})})),it("computes expressions that always consume input on success correctly",(function(){expect(pass).to.reportError(["start = a*","a 'a' = ''"].join("\n")),expect(pass).to.not.reportError(["start = a*","a 'a' = 'a'"].join("\n")),expect(pass).to.reportError("start = ('' / 'a' / 'b')*"),expect(pass).to.reportError("start = ('a' / '' / 'b')*"),expect(pass).to.reportError("start = ('a' / 'b' / '')*"),expect(pass).to.not.reportError("start = ('a' / 'b' / 'c')*"),expect(pass).to.reportError("start = ('' { })*"),expect(pass).to.not.reportError("start = ('a' { })*"),expect(pass).to.reportError("start = ('' '' '')*"),expect(pass).to.not.reportError("start = ('a' '' '')*"),expect(pass).to.not.reportError("start = ('' 'a' '')*"),expect(pass).to.not.reportError("start = ('' '' 'a')*"),expect(pass).to.reportError("start = (a:'')*"),expect(pass).to.not.reportError("start = (a:'a')*"),expect(pass).to.reportError("start = ($'')*"),expect(pass).to.not.reportError("start = ($'a')*"),expect(pass).to.reportError("start = (&'')*"),expect(pass).to.reportError("start = (&'a')*"),expect(pass).to.reportError("start = (!'')*"),expect(pass).to.reportError("start = (!'a')*"),expect(pass).to.reportError("start = (''?)*"),expect(pass).to.reportError("start = ('a'?)*"),expect(pass).to.reportError("start = (''*)*"),expect(pass).to.reportError("start = ('a'*)*"),expect(pass).to.reportError("start = (''+)*"),expect(pass).to.not.reportError("start = ('a'+)*"),expect(pass).to.reportError("start = ('')*"),expect(pass).to.not.reportError("start = ('a')*"),expect(pass).to.reportError("start = (&{ })*"),expect(pass).to.reportError("start = (!{ })*"),expect(pass).to.reportError(["start = a*","a = ''"].join("\n")),expect(pass).to.not.reportError(["start = a*","a = 'a'"].join("\n")),expect(pass).to.reportError("start = ''*"),expect(pass).to.not.reportError("start = 'a'*"),expect(pass).to.not.reportError("start = [a-d]*"),expect(pass).to.not.reportError("start = .*")}))})),exports.peggyVersion=peggyVersion,Object.defineProperty(exports,"__esModule",{value:!0})})); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("chai"),require("whatwg-url")):"function"==typeof define&&define.amd?define(["exports","chai","whatwg-url"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).browser={},e.chai,e.whatwgURL)}(this,(function(exports,require$$0,require$$0$1){function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var require$$0__default=_interopDefaultLegacy(require$$0),require$$0__default$1=_interopDefaultLegacy(require$$0$1),commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},__extends=commonjsGlobal&&commonjsGlobal.__extends||(extendStatics=function(e,t){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},extendStatics(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}extendStatics(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),extendStatics,setProtoOf=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},GrammarError$5=function(e){function t(r,n,a){var o=e.call(this,r)||this;return setProtoOf(o,t.prototype),o.name="GrammarError",o.location=n,void 0===a&&(a=[]),o.diagnostics=a,o.stage=null,o.problems=[["error",r,n,a]],o}return __extends(t,e),t.prototype.toString=function(){var t=e.prototype.toString.call(this);this.location&&(t+="\n at ",void 0!==this.location.source&&null!==this.location.source&&(t+="".concat(this.location.source,":")),t+="".concat(this.location.start.line,":").concat(this.location.start.column));for(var r=0,n=this.diagnostics;r0?NEVER_MATCH$1:SOMETIMES_MATCH$1}var o=visitor$9.build({rule:function(e){var t,r=0;if(void 0===e.match){e.match=SOMETIMES_MATCH$1;do{if(t=e.match,e.match=o(e.expression),++r>6)throw new GrammarError$4("Infinity cycle detected when trying to evaluate node match result",e.location)}while(t!==e.match)}return e.match},named:n,choice:function(e){return e.match=a(e.alternatives,!0)},action:n,sequence:function(e){return e.match=a(e.elements,!1)},labeled:n,text:n,simple_and:n,simple_not:function(e){return e.match=-o(e.expression)},optional:r,zero_or_more:r,one_or_more:n,group:n,semantic_and:t,semantic_not:t,rule_ref:function(t){var r=asts$6.findRule(e,t.name);return t.match=o(r)},literal:function(e){var t=0===e.value.length?ALWAYS_MATCH$1:SOMETIMES_MATCH$1;return e.match=t},class:function(e){var t=0===e.parts.length?NEVER_MATCH$1:SOMETIMES_MATCH$1;return e.match=t},any:t});o(e)}inferenceMatchResult$1.ALWAYS_MATCH=ALWAYS_MATCH$1,inferenceMatchResult$1.SOMETIMES_MATCH=SOMETIMES_MATCH$1,inferenceMatchResult$1.NEVER_MATCH=NEVER_MATCH$1;var inferenceMatchResult_1=inferenceMatchResult$1,__spreadArray$4=commonjsGlobal&&commonjsGlobal.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var n,a=0,o=t.length;a1?d(SOMETIMES_MATCH,[op$1.IF_ERROR],f([op$1.POP],e(t.slice(1),r)),[]):[])}(e.alternatives,t)},action:function(e,t){var r=p(t.env),n="sequence"!==e.expression.type||0===e.expression.elements.length,a=b(e.expression,{sp:t.sp+(n?1:0),env:r,action:e}),o=0|e.expression.match,s=n&&o!==NEVER_MATCH?c(!1,Object.keys(r),e):null;return n?f([op$1.PUSH_CURR_POS],a,d(o,[op$1.IF_NOT_ERROR],f([op$1.LOAD_SAVED_POS,1],h(s,1,r,t.sp+2)),[]),[op$1.NIP]):a},sequence:function(e,t){return f([op$1.PUSH_CURR_POS],function t(r,n){if(r.length>0){var a=e.elements.length-r.length+1;return f(b(r[0],{sp:n.sp,env:n.env,pluck:n.pluck,action:null}),d(0|r[0].match,[op$1.IF_NOT_ERROR],t(r.slice(1),{sp:n.sp+1,env:n.env,pluck:n.pluck,action:n.action}),f(a>1?[op$1.POP_N,a]:[op$1.POP],[op$1.POP_CURR_POS],[op$1.PUSH_FAILED])))}if(n.pluck.length>0)return f([op$1.PLUCK,e.elements.length+1,n.pluck.length],n.pluck.map((function(e){return n.sp-e})));if(n.action){var o=c(!1,Object.keys(n.env),n.action);return f([op$1.LOAD_SAVED_POS,e.elements.length],h(o,e.elements.length+1,n.env,n.sp))}return f([op$1.WRAP,e.elements.length],[op$1.NIP])}(e.elements,{sp:t.sp+1,env:t.env,pluck:[],action:t.action}))},labeled:function(e,r){var n=r.env,a=e.label,o=r.sp+1;a&&(n=p(r.env),r.env[e.label]=o),e.pick&&r.pluck.push(o);var s=b(e.expression,{sp:r.sp,env:n,action:null});return a&&e.labelLocation&&t&&"source-and-map"===t.output?f([op$1.SOURCE_MAP_LABEL_PUSH,o,u(a),l(e.labelLocation)],s,[op$1.SOURCE_MAP_LABEL_POP,o]):s},text:function(e,t){return f([op$1.PUSH_CURR_POS],b(e.expression,{sp:t.sp+1,env:p(t.env),action:null}),d(0|e.match,[op$1.IF_NOT_ERROR],f([op$1.POP],[op$1.TEXT]),[op$1.NIP]))},simple_and:function(e,t){return g(e.expression,!1,t)},simple_not:function(e,t){return g(e.expression,!0,t)},optional:function(e,t){return f(b(e.expression,{sp:t.sp,env:p(t.env),action:null}),d(-(0|e.expression.match),[op$1.IF_ERROR],f([op$1.POP],[op$1.PUSH_NULL]),[]))},zero_or_more:function(e,t){var r=b(e.expression,{sp:t.sp+1,env:p(t.env),action:null});return f([op$1.PUSH_EMPTY_ARRAY],r,$(r),[op$1.POP])},one_or_more:function(e,t){var r=b(e.expression,{sp:t.sp+1,env:p(t.env),action:null});return f([op$1.PUSH_EMPTY_ARRAY],r,d(0|e.expression.match,[op$1.IF_NOT_ERROR],f($(r),[op$1.POP]),f([op$1.POP],[op$1.POP],[op$1.PUSH_FAILED])))},group:function(e,t){return b(e.expression,{sp:t.sp,env:p(t.env),action:null})},semantic_and:function(e,t){return m(e,!1,t)},semantic_not:function(e,t){return m(e,!0,t)},rule_ref:function(t){return[op$1.RULE,asts$5.indexOfRule(e,t.name)]},literal:function(e){if(e.value.length>0){var t=0|e.match,r=t===SOMETIMES_MATCH||t===ALWAYS_MATCH&&!e.ignoreCase?u(e.ignoreCase?e.value.toLowerCase():e.value):null,n=t!==ALWAYS_MATCH?i({type:"literal",value:e.value,ignoreCase:e.ignoreCase}):null;return d(t,e.ignoreCase?[op$1.MATCH_STRING_IC,r]:[op$1.MATCH_STRING,r],e.ignoreCase?[op$1.ACCEPT_N,e.value.length]:[op$1.ACCEPT_STRING,r],[op$1.FAIL,n])}return[op$1.PUSH_EMPTY_STRING]},class:function(e){var t=0|e.match,r=t===SOMETIMES_MATCH?function(e){var t={value:e.parts,inverted:e.inverted,ignoreCase:e.ignoreCase},r=JSON.stringify(t),a=n.findIndex((function(e){return JSON.stringify(e)===r}));return-1===a?n.push(t)-1:a}(e):null,a=t!==ALWAYS_MATCH?i({type:"class",value:e.parts,inverted:e.inverted,ignoreCase:e.ignoreCase}):null;return d(t,[op$1.MATCH_CHAR_CLASS,r],[op$1.ACCEPT_N,1],[op$1.FAIL,a])},any:function(e){var t=0|e.match,r=t!==ALWAYS_MATCH?i({type:"any"}):null;return d(t,[op$1.MATCH_ANY],[op$1.ACCEPT_N,1],[op$1.FAIL,r])}},t&&"source-and-map"===t.output&&Object.entries(A).forEach((function(e){var t=e[0],r=e[1];A[t]=function(e){for(var t=[],n=1;n>>=VLQ_BASE_SHIFT$1,n>0&&(t|=VLQ_CONTINUATION_BIT$1),r+=base64$5.encode(t)}while(n>0);return r};var util$8={};function getArg$1(e,t,r){if(t in e)return e[t];if(3===arguments.length)return r;throw new Error('"'+t+'" is a required argument.')}util$8.getArg=getArg$1;const supportsNullProto$1=!("__proto__"in Object.create(null));function identity$1(e){return e}function toSetString$1(e){return isProtoString$1(e)?"$"+e:e}function fromSetString$1(e){return isProtoString$1(e)?e.slice(1):e}function isProtoString$1(e){if(!e)return!1;const t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(let r=t-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function strcmp$1(e,t){return e===t?0:null===e?1:null===t?-1:e>t?1:-1}function compareByGeneratedPositionsInflated$1(e,t){let r=e.generatedLine-t.generatedLine;return 0!==r?r:(r=e.generatedColumn-t.generatedColumn,0!==r?r:(r=strcmp$1(e.source,t.source),0!==r?r:(r=e.originalLine-t.originalLine,0!==r?r:(r=e.originalColumn-t.originalColumn,0!==r?r:strcmp$1(e.name,t.name)))))}util$8.toSetString=supportsNullProto$1?identity$1:toSetString$1,util$8.fromSetString=supportsNullProto$1?identity$1:fromSetString$1,util$8.compareByGeneratedPositionsInflated=compareByGeneratedPositionsInflated$1;const PROTOCOL$1="http:",PROTOCOL_AND_HOST$1=`${PROTOCOL$1}//host`;function createSafeHandler$1(e){return t=>{const r=getURLType$1(t),n=buildSafeBase$1(t),a=new URL(t,n);e(a);const o=a.toString();return"absolute"===r?o:"scheme-relative"===r?o.slice(PROTOCOL$1.length):"path-absolute"===r?o.slice(PROTOCOL_AND_HOST$1.length):computeRelativeURL$1(n,o)}}function withBase$1(e,t){return new URL(e,t).toString()}function buildUniqueSegment$1(e,t){let r=0;for(;;){const n=e+r++;if(-1===t.indexOf(n))return n}}function buildSafeBase$1(e){const t=e.split("..").length-1,r=buildUniqueSegment$1("p",e);let n=`${PROTOCOL_AND_HOST$1}/`;for(let e=0;e0&&!n[n.length-1]&&n.pop();r.length>0&&n.length>0&&r[0]===n[0];)r.shift(),n.shift();return n.map((()=>"..")).concat(r).join("/")+t.search+t.hash}const ensureDirectory$1=createSafeHandler$1((e=>{e.pathname=e.pathname.replace(/\/?$/,"/")})),normalize$1=createSafeHandler$1((e=>{}));function join$1(e,t){const r=getURLType$1(t),n=getURLType$1(e);if(e=ensureDirectory$1(e),"absolute"===r)return withBase$1(t,void 0);if("absolute"===n)return withBase$1(t,e);if("scheme-relative"===r)return normalize$1(t);if("scheme-relative"===n)return withBase$1(t,withBase$1(e,PROTOCOL_AND_HOST$1)).slice(PROTOCOL$1.length);if("path-absolute"===r)return normalize$1(t);if("path-absolute"===n)return withBase$1(t,withBase$1(e,PROTOCOL_AND_HOST$1)).slice(PROTOCOL_AND_HOST$1.length);const a=buildSafeBase$1(t+e);return computeRelativeURL$1(a,withBase$1(t,withBase$1(e,a)))}function relative$1(e,t){const r=relativeIfPossible$1(e,t);return"string"==typeof r?r:normalize$1(t)}function relativeIfPossible$1(e,t){if(getURLType$1(e)!==getURLType$1(t))return null;const r=buildSafeBase$1(e+t),n=new URL(e,r),a=new URL(t,r);try{new URL("",a.toString())}catch(e){return null}return a.protocol!==n.protocol||a.user!==n.user||a.password!==n.password||a.hostname!==n.hostname||a.port!==n.port?null:computeRelativeURL$1(n,a)}util$8.normalize=normalize$1,util$8.join=join$1,util$8.relative=relative$1;var arraySet$1={};class ArraySet$4{constructor(){this._array=[],this._set=new Map}static fromArray(e,t){const r=new ArraySet$4;for(let n=0,a=e.length;n=0)return t;throw new Error('"'+e+'" is not in the set.')}at(e){if(e>=0&&er||n==r&&o>=a||util$7.compareByGeneratedPositionsInflated(e,t)<=0}class MappingList$3{constructor(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}unsortedForEach(e,t){this._array.forEach(e,t)}add(e){generatedPositionAfter$1(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))}toArray(){return this._sorted||(this._array.sort(util$7.compareByGeneratedPositionsInflated),this._sorted=!0),this._array}}mappingList$1.MappingList=MappingList$3;const base64VLQ$1=base64Vlq$1,util$6=util$8,ArraySet$3=arraySet$1.ArraySet,MappingList$2=mappingList$1.MappingList;class SourceMapGenerator$3{constructor(e){e||(e={}),this._file=util$6.getArg(e,"file",null),this._sourceRoot=util$6.getArg(e,"sourceRoot",null),this._skipValidation=util$6.getArg(e,"skipValidation",!1),this._sources=new ArraySet$3,this._names=new ArraySet$3,this._mappings=new MappingList$2,this._sourcesContents=null}static fromSourceMap(e){const t=e.sourceRoot,r=new SourceMapGenerator$3({file:e.file,sourceRoot:t});return e.eachMapping((function(e){const n={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(n.source=e.source,null!=t&&(n.source=util$6.relative(t,n.source)),n.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(n.name=e.name)),r.addMapping(n)})),e.sources.forEach((function(n){let a=n;null!=t&&(a=util$6.relative(t,n)),r._sources.has(a)||r._sources.add(a);const o=e.sourceContentFor(n);null!=o&&r.setSourceContent(n,o)})),r}addMapping(e){const t=util$6.getArg(e,"generated"),r=util$6.getArg(e,"original",null);let n=util$6.getArg(e,"source",null),a=util$6.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,r,n,a),null!=n&&(n=String(n),this._sources.has(n)||this._sources.add(n)),null!=a&&(a=String(a),this._names.has(a)||this._names.add(a)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:r&&r.line,originalColumn:r&&r.column,source:n,name:a})}setSourceContent(e,t){let r=e;null!=this._sourceRoot&&(r=util$6.relative(this._sourceRoot,r)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[util$6.toSetString(r)]=t):this._sourcesContents&&(delete this._sourcesContents[util$6.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))}applySourceMap(e,t,r){let n=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');n=e.file}const a=this._sourceRoot;null!=a&&(n=util$6.relative(a,n));const o=this._mappings.toArray().length>0?new ArraySet$3:this._sources,s=new ArraySet$3;this._mappings.unsortedForEach((function(t){if(t.source===n&&null!=t.originalLine){const n=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=n.source&&(t.source=n.source,null!=r&&(t.source=util$6.join(r,t.source)),null!=a&&(t.source=util$6.relative(a,t.source)),t.originalLine=n.line,t.originalColumn=n.column,null!=n.name&&(t.name=n.name))}const u=t.source;null==u||o.has(u)||o.add(u);const i=t.name;null==i||s.has(i)||s.add(i)}),this),this._sources=o,this._names=s,e.sources.forEach((function(t){const n=e.sourceContentFor(t);null!=n&&(null!=r&&(t=util$6.join(r,t)),null!=a&&(t=util$6.relative(a,t)),this.setSourceContent(t,n))}),this)}_validateMapping(e,t,r,n){if(t&&"number"!=typeof t.line&&"number"!=typeof t.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0&&!t&&!r&&!n);else if(!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:t,name:n}))}_serializeMappings(){let e,t,r,n,a=0,o=1,s=0,u=0,i=0,c=0,l="";const p=this._mappings.toArray();for(let f=0,d=p.length;f0){if(!util$6.compareByGeneratedPositionsInflated(t,p[f-1]))continue;e+=","}e+=base64VLQ$1.encode(t.generatedColumn-a),a=t.generatedColumn,null!=t.source&&(n=this._sources.indexOf(t.source),e+=base64VLQ$1.encode(n-c),c=n,e+=base64VLQ$1.encode(t.originalLine-1-u),u=t.originalLine-1,e+=base64VLQ$1.encode(t.originalColumn-s),s=t.originalColumn,null!=t.name&&(r=this._names.indexOf(t.name),e+=base64VLQ$1.encode(r-i),i=r)),l+=e}return l}_generateSourcesContent(e,t){return e.map((function(e){if(!this._sourcesContents)return null;null!=t&&(e=util$6.relative(t,e));const r=util$6.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null}),this)}toJSON(){const e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e}toString(){return JSON.stringify(this.toJSON())}}SourceMapGenerator$3.prototype._version=3,sourceMapGenerator$1.SourceMapGenerator=SourceMapGenerator$3;var sourceNode$1={};const SourceMapGenerator$2=sourceMapGenerator$1.SourceMapGenerator,util$5=util$8,REGEX_NEWLINE$1=/(\r?\n)/,NEWLINE_CODE$1=10,isSourceNode$1="$$$isSourceNode$$$";class SourceNode$4{constructor(e,t,r,n,a){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==r?null:r,this.name=null==a?null:a,this[isSourceNode$1]=!0,null!=n&&this.add(n)}static fromStringWithSourceMap(e,t,r){const n=new SourceNode$4,a=e.split(REGEX_NEWLINE$1);let o=0;const s=function(){return e()+(e()||"");function e(){return o=0;t--)this.prepend(e[t]);else{if(!e[isSourceNode$1]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this}walk(e){let t;for(let r=0,n=this.children.length;r0){for(t=[],r=0;r' at an index ").concat(e,".\nBytecode: ").concat(this.bytecode));return this.varName+e},e.prototype.sourceNode=function(e,t,r){return new SourceNode$3(e.start.line,e.start.column?e.start.column-1:null,e.source,t,r)},e.prototype.push=function(e){++this.sp>this.maxSp&&(this.maxSp=this.sp);var t=this.labels[this.sp],r=[this.name(this.sp)," = ",e,";"];if(t){if(this.sourceMapStack.length){var n=this.sourceNode(t.location,r.splice(0,2),t.label),a=this.sourceMapPopInternal(),o=a.parts,s=a.location,u=s.start.offsett.end.offset&&(r[2]={start:t.end,end:r[2].end,source:r[2].source})}this.sourceMapStack.push([e,e.length,t])},e.prototype.sourceMapPopInternal=function(){var e=this.sourceMapStack.pop(),t=e[0],r=e[1],n=e[2],a=t.splice(r).map((function(e){return e instanceof SourceNode$3?e:e+"\n"}));return a.length&&t.push(new SourceNode$3(n.start.line,n.start.column-1,n.source,a)),{parts:t,location:n}},e.prototype.sourceMapPop=function(e){var t=this.sourceMapPopInternal().location;if(this.sourceMapStack.length&&t.end.offset>2],a+=t[(3&e[o])<<4|e[o+1]>>4],a+=t[(15&e[o+1])<<2|e[o+2]>>6],a+=t[63&e[o+2]];return 1===r?(a+=t[e[n]>>2],a+=t[(3&e[n])<<4],a+="=="):2===r&&(a+=t[e[n]>>2],a+=t[(3&e[n])<<4|e[n+1]>>4],a+=t[(15&e[n+1])<<2],a+="="),a}utils$1.hex=hex$1,utils$1.stringEscape=stringEscape$2,utils$1.regexpClassEscape=regexpClassEscape$2,utils$1.base64=base64$4;var __spreadArray$3=commonjsGlobal&&commonjsGlobal.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var n,a=0,o=t.length;a0&&(r.forEach((function(e){o.push("var "+e+' = require("'+stringEscape$1(t.dependencies[e])+'");')})),o.push("")),o.push(e,"","module.exports = "+a()+";"),o},es:function(){var r=Object.keys(t.dependencies),a=n();return a.push(""),r.length>0&&(r.forEach((function(e){a.push("import "+e+' from "'+stringEscape$1(t.dependencies[e])+'";')})),a.push("")),a.push(e,"","export {"," peg$SyntaxError as SyntaxError,",t.trace?" peg$DefaultTracer as DefaultTracer,":""," peg$parse as parse","};"),a},amd:function(){var o=Object.keys(t.dependencies),s="["+o.map((function(e){return t.dependencies[e]})).map((function(e){return'"'+stringEscape$1(e)+'"'})).join(", ")+"]",u=o.join(", ");return __spreadArray$3(__spreadArray$3([],n(),!0),["define("+s+", function("+u+") {",' "use strict";',"",e,"",r("return "+a()+";"),"});"],!1)},globals:function(){return __spreadArray$3(__spreadArray$3([],n(),!0),["(function(root) {",' "use strict";',"",e,"",r("root."+t.exportVar+" = "+a()+";"),"})(this);"],!1)},umd:function(){var o=Object.keys(t.dependencies),s=o.map((function(e){return t.dependencies[e]})),u="["+s.map((function(e){return'"'+stringEscape$1(e)+'"'})).join(", ")+"]",i=s.map((function(e){return'require("'+stringEscape$1(e)+'")'})).join(", "),c=o.join(", "),l=n();return l.push("(function(root, factory) {",' if (typeof define === "function" && define.amd) {'," define("+u+", factory);",' } else if (typeof module === "object" && module.exports) {'," module.exports = factory("+i+");"),null!==t.exportVar&&l.push(" } else {"," root."+t.exportVar+" = factory();"),l.push(" }","})(this, function("+c+") {",' "use strict";',"",e,"",r("return "+a()+";"),"});"),l}},s=o[t.format]();return new SourceNode$2(null,null,t.grammarSource,s.map((function(e){return e instanceof SourceNode$2?e:e+"\n"})))}(function(){var c=[];e.topLevelInitializer&&(c.push(i(e.topLevelInitializer)),c.push("")),c.push("function peg$subclass(child, parent) {"," function C() { this.constructor = child; }"," C.prototype = parent.prototype;"," child.prototype = new C();","}","","function peg$SyntaxError(message, expected, found, location) {"," var self = Error.call(this, message);"," // istanbul ignore next Check is a necessary evil to support older environments"," if (Object.setPrototypeOf) {"," Object.setPrototypeOf(self, peg$SyntaxError.prototype);"," }"," self.expected = expected;"," self.found = found;"," self.location = location;",' self.name = "SyntaxError";'," return self;","}","","peg$subclass(peg$SyntaxError, Error);","","function peg$padEnd(str, targetLength, padString) {",' padString = padString || " ";'," if (str.length > targetLength) { return str; }"," targetLength -= str.length;"," padString += padString.repeat(targetLength);"," return str + padString.slice(0, targetLength);","}","","peg$SyntaxError.prototype.format = function(sources) {",' var str = "Error: " + this.message;'," if (this.location) {"," var src = null;"," var k;"," for (k = 0; k < sources.length; k++) {"," if (sources[k].source === this.location.source) {"," src = sources[k].text.split(/\\r\\n|\\n|\\r/g);"," break;"," }"," }"," var s = this.location.start;",' var loc = this.location.source + ":" + s.line + ":" + s.column;'," if (src) {"," var e = this.location.end;"," var filler = peg$padEnd(\"\", s.line.toString().length, ' ');"," var line = src[s.line - 1];"," var last = s.line === e.line ? e.column : line.length + 1;"," var hatLen = (last - s.column) || 1;",' str += "\\n --\x3e " + loc + "\\n"',' + filler + " |\\n"',' + s.line + " | " + line + "\\n"',' + filler + " | " + peg$padEnd("", s.column - 1, \' \')',' + peg$padEnd("", hatLen, "^");'," } else {",' str += "\\n at " + loc;'," }"," }"," return str;","};","","peg$SyntaxError.buildMessage = function(expected, found) {"," var DESCRIBE_EXPECTATION_FNS = {"," literal: function(expectation) {",' return "\\"" + literalEscape(expectation.text) + "\\"";'," },",""," class: function(expectation) {"," var escapedParts = expectation.parts.map(function(part) {"," return Array.isArray(part)",' ? classEscape(part[0]) + "-" + classEscape(part[1])'," : classEscape(part);"," });","",' return "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]";'," },",""," any: function() {",' return "any character";'," },",""," end: function() {",' return "end of input";'," },",""," other: function(expectation) {"," return expectation.description;"," }"," };",""," function hex(ch) {"," return ch.charCodeAt(0).toString(16).toUpperCase();"," }",""," function literalEscape(s) {"," return s",' .replace(/\\\\/g, "\\\\\\\\")',' .replace(/"/g, "\\\\\\"")',' .replace(/\\0/g, "\\\\0")',' .replace(/\\t/g, "\\\\t")',' .replace(/\\n/g, "\\\\n")',' .replace(/\\r/g, "\\\\r")',' .replace(/[\\x00-\\x0F]/g, function(ch) { return "\\\\x0" + hex(ch); })',' .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return "\\\\x" + hex(ch); });'," }",""," function classEscape(s) {"," return s",' .replace(/\\\\/g, "\\\\\\\\")',' .replace(/\\]/g, "\\\\]")',' .replace(/\\^/g, "\\\\^")',' .replace(/-/g, "\\\\-")',' .replace(/\\0/g, "\\\\0")',' .replace(/\\t/g, "\\\\t")',' .replace(/\\n/g, "\\\\n")',' .replace(/\\r/g, "\\\\r")',' .replace(/[\\x00-\\x0F]/g, function(ch) { return "\\\\x0" + hex(ch); })',' .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return "\\\\x" + hex(ch); });'," }",""," function describeExpectation(expectation) {"," return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);"," }",""," function describeExpected(expected) {"," var descriptions = expected.map(describeExpectation);"," var i, j;",""," descriptions.sort();",""," if (descriptions.length > 0) {"," for (i = 1, j = 1; i < descriptions.length; i++) {"," if (descriptions[i - 1] !== descriptions[i]) {"," descriptions[j] = descriptions[i];"," j++;"," }"," }"," descriptions.length = j;"," }",""," switch (descriptions.length) {"," case 1:"," return descriptions[0];",""," case 2:",' return descriptions[0] + " or " + descriptions[1];',""," default:",' return descriptions.slice(0, -1).join(", ")',' + ", or "'," + descriptions[descriptions.length - 1];"," }"," }",""," function describeFound(found) {",' return found ? "\\"" + literalEscape(found) + "\\"" : "end of input";'," }","",' return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";',"};",""),t.trace&&c.push("function peg$DefaultTracer() {"," this.indentLevel = 0;","}","","peg$DefaultTracer.prototype.trace = function(event) {"," var that = this;",""," function log(event) {"," function repeat(string, n) {",' var result = "", i;',""," for (i = 0; i < n; i++) {"," result += string;"," }",""," return result;"," }",""," function pad(string, length) {",' return string + repeat(" ", length - string.length);'," }","",' if (typeof console === "object") {'," console.log(",' event.location.start.line + ":" + event.location.start.column + "-"',' + event.location.end.line + ":" + event.location.end.column + " "',' + pad(event.type, 10) + " "',' + repeat(" ", that.indentLevel) + event.rule'," );"," }"," }",""," switch (event.type) {",' case "rule.enter":'," log(event);"," this.indentLevel++;"," break;","",' case "rule.match":'," this.indentLevel--;"," log(event);"," break;","",' case "rule.fail":'," this.indentLevel--;"," log(event);"," break;",""," default:",' throw new Error("Invalid event type: " + event.type + ".");'," }","};","");var l="{ "+t.allowedStartRules.map((function(e){return e+": "+u(e)})).join(", ")+" }",p=u(t.allowedStartRules[0]);return c.push("function peg$parse(input, options) {"," options = options !== undefined ? options : {};",""," var peg$FAILED = {};"," var peg$source = options.grammarSource;",""," var peg$startRuleFunctions = "+l+";"," var peg$startRuleFunction = "+p+";","",new SourceNode$2(null,null,t.grammarSource,[e.literals.map((function(e,t){return" var "+n(t)+' = "'+stringEscape$1(e)+'";'})).concat("",e.classes.map((function(e,t){return" var "+a(t)+" = /^["+((r=e).inverted?"^":"")+r.value.map((function(e){return Array.isArray(e)?regexpClassEscape$1(e[0])+"-"+regexpClassEscape$1(e[1]):regexpClassEscape$1(e)})).join("")+"]/"+(r.ignoreCase?"i":"")+";";var r}))).concat("",e.expectations.map((function(e,t){return" var "+o(t)+" = "+function(e){switch(e.type){case"rule":return'peg$otherExpectation("'+stringEscape$1(e.value)+'")';case"literal":return'peg$literalExpectation("'+stringEscape$1(e.value)+'", '+e.ignoreCase+")";case"class":return"peg$classExpectation(["+e.value.map((function(e){return Array.isArray(e)?'["'+stringEscape$1(e[0])+'", "'+stringEscape$1(e[1])+'"]':'"'+stringEscape$1(e)+'"'})).join(", ")+"], "+e.inverted+", "+e.ignoreCase+")";case"any":return"peg$anyExpectation()";default:throw new Error("Unknown expectation type ("+JSON.stringify(e)+")")}}(e)+";"}))).concat("").join("\n"),e.functions.map((function(e,t){return wrapInSourceNode("\n var ".concat(s(t)," = function(").concat(e.params.join(", "),") {"),e.body,e.location,"};")}))]),""," var peg$currPos = 0;"," var peg$savedPos = 0;"," var peg$posDetailsCache = [{ line: 1, column: 1 }];"," var peg$maxFailPos = 0;"," var peg$maxFailExpected = [];"," var peg$silentFails = 0;",""),t.cache&&c.push(" var peg$resultsCache = {};",""),t.trace&&c.push(' var peg$tracer = "tracer" in options ? options.tracer : new peg$DefaultTracer();',""),c.push(" var peg$result;","",' if ("startRule" in options) {'," if (!(options.startRule in peg$startRuleFunctions)) {",' throw new Error("Can\'t start parsing from rule \\"" + options.startRule + "\\".");'," }",""," peg$startRuleFunction = peg$startRuleFunctions[options.startRule];"," }",""," function text() {"," return input.substring(peg$savedPos, peg$currPos);"," }",""," function offset() {"," return peg$savedPos;"," }",""," function range() {"," return {"," source: peg$source,"," start: peg$savedPos,"," end: peg$currPos"," };"," }",""," function location() {"," return peg$computeLocation(peg$savedPos, peg$currPos);"," }",""," function expected(description, location) {"," location = location !== undefined"," ? location"," : peg$computeLocation(peg$savedPos, peg$currPos);",""," throw peg$buildStructuredError("," [peg$otherExpectation(description)],"," input.substring(peg$savedPos, peg$currPos),"," location"," );"," }",""," function error(message, location) {"," location = location !== undefined"," ? location"," : peg$computeLocation(peg$savedPos, peg$currPos);",""," throw peg$buildSimpleError(message, location);"," }",""," function peg$literalExpectation(text, ignoreCase) {",' return { type: "literal", text: text, ignoreCase: ignoreCase };'," }",""," function peg$classExpectation(parts, inverted, ignoreCase) {",' return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase };'," }",""," function peg$anyExpectation() {",' return { type: "any" };'," }",""," function peg$endExpectation() {",' return { type: "end" };'," }",""," function peg$otherExpectation(description) {",' return { type: "other", description: description };'," }",""," function peg$computePosDetails(pos) {"," var details = peg$posDetailsCache[pos];"," var p;",""," if (details) {"," return details;"," } else {"," p = pos - 1;"," while (!peg$posDetailsCache[p]) {"," p--;"," }",""," details = peg$posDetailsCache[p];"," details = {"," line: details.line,"," column: details.column"," };",""," while (p < pos) {"," if (input.charCodeAt(p) === 10) {"," details.line++;"," details.column = 1;"," } else {"," details.column++;"," }",""," p++;"," }",""," peg$posDetailsCache[pos] = details;",""," return details;"," }"," }",""," function peg$computeLocation(startPos, endPos) {"," var startPosDetails = peg$computePosDetails(startPos);"," var endPosDetails = peg$computePosDetails(endPos);",""," return {"," source: peg$source,"," start: {"," offset: startPos,"," line: startPosDetails.line,"," column: startPosDetails.column"," },"," end: {"," offset: endPos,"," line: endPosDetails.line,"," column: endPosDetails.column"," }"," };"," }",""," function peg$fail(expected) {"," if (peg$currPos < peg$maxFailPos) { return; }",""," if (peg$currPos > peg$maxFailPos) {"," peg$maxFailPos = peg$currPos;"," peg$maxFailExpected = [];"," }",""," peg$maxFailExpected.push(expected);"," }",""," function peg$buildSimpleError(message, location) {"," return new peg$SyntaxError(message, null, null, location);"," }",""," function peg$buildStructuredError(expected, found, location) {"," return new peg$SyntaxError("," peg$SyntaxError.buildMessage(expected, found),"," expected,"," found,"," location"," );"," }",""),e.rules.forEach((function(i){c.push.apply(c,r(function(i){var c=[],l=new Stack$1(i.name,"s","var",i.bytecode),p=function t(c){var p,f=0,d=c.length,h=[];function g(e,n){var a,o,s=n+3,u=c[f+s-2],i=c[f+s-1];l.checkedIf(f,(function(){f+=s,a=t(c.slice(f,f+u)),f+=u}),i>0?function(){o=t(c.slice(f,f+i)),f+=i}:null),h.push("if ("+e+") {"),h.push.apply(h,r(a)),i>0&&(h.push("} else {"),h.push.apply(h,r(o))),h.push("}")}function m(e){var n,a=c[f+2-1];l.checkedLoop(f,(function(){f+=2,n=t(c.slice(f,f+a)),f+=a})),h.push("while ("+e+") {"),h.push.apply(h,r(n)),h.push("}")}function $(){var e=c[f+4-1],t=s(c[f+1])+"("+c.slice(f+4,f+4+e).map((function(e){return l.index(e)})).join(", ")+")";l.pop(c[f+2]),h.push(l.push(t)),f+=4+e}for(;f peg$currPos",0);break;case op.MATCH_STRING:g(e.literals[c[f+1]].length>1?"input.substr(peg$currPos, "+e.literals[c[f+1]].length+") === "+n(c[f+1]):"input.charCodeAt(peg$currPos) === "+e.literals[c[f+1]].charCodeAt(0),1);break;case op.MATCH_STRING_IC:g("input.substr(peg$currPos, "+e.literals[c[f+1]].length+").toLowerCase() === "+n(c[f+1]),1);break;case op.MATCH_CHAR_CLASS:g(a(c[f+1])+".test(input.charAt(peg$currPos))",1);break;case op.ACCEPT_N:h.push(l.push(c[f+1]>1?"input.substr(peg$currPos, "+c[f+1]+")":"input.charAt(peg$currPos)")),h.push(c[f+1]>1?"peg$currPos += "+c[f+1]+";":"peg$currPos++;"),f+=2;break;case op.ACCEPT_STRING:h.push(l.push(n(c[f+1]))),h.push(e.literals[c[f+1]].length>1?"peg$currPos += "+e.literals[c[f+1]].length+";":"peg$currPos++;"),f+=2;break;case op.FAIL:h.push(l.push("peg$FAILED")),h.push("if (peg$silentFails === 0) { peg$fail("+o(c[f+1])+"); }"),f+=2;break;case op.LOAD_SAVED_POS:h.push("peg$savedPos = "+l.index(c[f+1])+";"),f+=2;break;case op.UPDATE_SAVED_POS:h.push("peg$savedPos = peg$currPos;"),f++;break;case op.CALL:$();break;case op.RULE:h.push(l.push(u(e.rules[c[f+1]].name)+"()")),f+=2;break;case op.SILENT_FAILS_ON:h.push("peg$silentFails++;"),f++;break;case op.SILENT_FAILS_OFF:h.push("peg$silentFails--;"),f++;break;case op.SOURCE_MAP_PUSH:l.sourceMapPush(h,e.locations[c[f+1]]),f+=2;break;case op.SOURCE_MAP_POP:l.sourceMapPop(),f++;break;case op.SOURCE_MAP_LABEL_PUSH:l.labels[c[f+1]]={label:e.literals[c[f+2]],location:e.locations[c[f+3]]},f+=4;break;case op.SOURCE_MAP_LABEL_POP:delete l.labels[c[f+1]],f+=2;break;default:throw new Error("Invalid opcode: "+c[f]+".",{rule:i.name,bytecode:c})}return h}(i.bytecode);return c.push(wrapInSourceNode("function ",u(i.name),i.nameLocation,"() {\n",i.name)),t.trace&&c.push(" var startPos = peg$currPos;"),c.push(r(l.defines())),c.push.apply(c,r(function(r,n){var a=[];return a.push(""),t.trace&&a.push("peg$tracer.trace({",' type: "rule.enter",'," rule: "+r+","," location: peg$computeLocation(startPos, startPos)","});",""),t.cache&&(a.push("var key = peg$currPos * "+e.rules.length+" + "+n+";","var cached = peg$resultsCache[key];","","if (cached) {"," peg$currPos = cached.nextPos;",""),t.trace&&a.push("if (cached.result !== peg$FAILED) {"," peg$tracer.trace({",' type: "rule.match",'," rule: "+r+","," result: cached.result,"," location: peg$computeLocation(startPos, peg$currPos)"," });","} else {"," peg$tracer.trace({",' type: "rule.fail",'," rule: "+r+","," location: peg$computeLocation(startPos, startPos)"," });","}",""),a.push(" return cached.result;","}","")),a}('"'+stringEscape$1(i.name)+'"',asts$4.indexOfRule(e,i.name)))),c.push.apply(c,r(p)),c.push.apply(c,r(function(e,r){var n=[];return t.cache&&n.push("","peg$resultsCache[key] = { nextPos: peg$currPos, result: "+r+" };"),t.trace&&n.push("","if ("+r+" !== peg$FAILED) {"," peg$tracer.trace({",' type: "rule.match",'," rule: "+e+","," result: "+r+","," location: peg$computeLocation(startPos, peg$currPos)"," });","} else {"," peg$tracer.trace({",' type: "rule.fail",'," rule: "+e+","," location: peg$computeLocation(startPos, startPos)"," });","}"),n.push("","return "+r+";"),n}('"'+stringEscape$1(i.name)+'"',l.result()))),c.push("}"),c}(i))),c.push("")})),e.initializer&&(c.push(i(e.initializer)),c.push("")),c.push(" peg$result = peg$startRuleFunction();",""," if (peg$result !== peg$FAILED && peg$currPos === input.length) {"," return peg$result;"," } else {"," if (peg$result !== peg$FAILED && peg$currPos < input.length) {"," peg$fail(peg$endExpectation());"," }",""," throw peg$buildStructuredError("," peg$maxFailExpected,"," peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,"," peg$maxFailPos < input.length"," ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)"," : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)"," );"," }","}"),new SourceNode$2(null,null,t.grammarSource,c.map((function(e){return e instanceof SourceNode$2?e:e+"\n"})))}())}var generateJs=generateJS$1,asts$3=asts_1,visitor$7=visitor_1;function removeProxyRules$1(e,t,r){var n=[];e.rules.forEach((function(a,o){var s;"rule"===(s=a).type&&"rule_ref"===s.expression.type&&(function(e,t,n){visitor$7.build({rule_ref:function(a){a.name===t&&(a.name=n,r.info('Proxy rule "'.concat(t,'" replaced by the rule "').concat(n,'"'),a.location,[{message:"This rule will be used",location:asts$3.findRule(e,n).nameLocation}]))}})(e)}(e,a.name,a.expression.name),-1===t.allowedStartRules.indexOf(a.name)&&n.push(o))})),n.reverse(),n.forEach((function(t){e.rules.splice(t,1)}))}var removeProxyRules_1=removeProxyRules$1,visitor$6=visitor_1;function reportDuplicateLabels$1(e,t,r){function n(e){var t={};return Object.keys(e).forEach((function(r){t[r]=e[r]})),t}function a(e,t){o(e.expression,n(t))}var o=visitor$6.build({rule:function(e){o(e.expression,{})},choice:function(e,t){e.alternatives.forEach((function(e){o(e,n(t))}))},action:a,labeled:function(e,t){var n=e.label;n&&Object.prototype.hasOwnProperty.call(t,n)&&r.error('Label "'.concat(e.label,'" is already defined'),e.labelLocation,[{message:"Original label location",location:t[n]}]),o(e.expression,t),t[e.label]=e.labelLocation},text:a,simple_and:a,simple_not:a,optional:a,zero_or_more:a,one_or_more:a,group:a});o(e)}var reportDuplicateLabels_1=reportDuplicateLabels$1,visitor$5=visitor_1;function reportDuplicateRules$1(e,t,r){var n={};visitor$5.build({rule:function(e){Object.prototype.hasOwnProperty.call(n,e.name)?r.error('Rule "'.concat(e.name,'" is already defined'),e.nameLocation,[{message:"Original rule location",location:n[e.name]}]):n[e.name]=e.nameLocation}})(e)}var reportDuplicateRules_1=reportDuplicateRules$1,asts$2=asts_1,visitor$4=visitor_1;function reportInfiniteRecursion$1(e,t,r){var n=[],a=[],o=visitor$4.build({rule:function(e){n.push(e.name),o(e.expression),n.pop()},sequence:function(t){t.elements.every((function(t){return o(t),!asts$2.alwaysConsumesOnSuccess(e,t)}))},rule_ref:function(t){a.push(t);var s=asts$2.findRule(e,t.name);if(-1!==n.indexOf(t.name))return n.push(t.name),void r.error("Possible infinite loop when parsing (left recursion: "+n.join(" -> ")+")",s.nameLocation,a.map((function(e,t,r){return{message:t+1!==r.length?"Step ".concat(t+1,': call of the rule "').concat(e.name,'" without input consumption'):"Step ".concat(t+1,": call itself without input consumption - left recursion"),location:e.location}})));s&&o(s),a.pop()}});o(e)}var reportInfiniteRecursion_1=reportInfiniteRecursion$1,asts$1=asts_1,visitor$3=visitor_1;function reportInfiniteRepetition$1(e,t,r){visitor$3.build({zero_or_more:function(t){asts$1.alwaysConsumesOnSuccess(e,t.expression)||r.error("Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",t.location)},one_or_more:function(t){asts$1.alwaysConsumesOnSuccess(e,t.expression)||r.error("Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",t.location)}})(e)}var reportInfiniteRepetition_1=reportInfiniteRepetition$1,asts=asts_1,visitor$2=visitor_1;function reportUndefinedRules$1(e,t,r){visitor$2.build({rule_ref:function(t){asts.findRule(e,t.name)||r.error('Rule "'.concat(t.name,'" is not defined'),t.location)}})(e)}var reportUndefinedRules_1=reportUndefinedRules$1,visitor$1=visitor_1;function reportIncorrectPlucking$1(e,t,r){var n=visitor$1.build({action:function(e){n(e.expression,e)},labeled:function(e,t){e.pick&&t&&r.error('"@" cannot be used with an action block',e.labelLocation,[{message:"Action block location",location:t.codeLocation}]),n(e.expression)}});n(e)}var reportIncorrectPlucking_1=reportIncorrectPlucking$1,__spreadArray$2=commonjsGlobal&&commonjsGlobal.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var n,a=0,o=t.length;at?e:(t-=e.length,e+(r+=r.repeat(t)).slice(0,t))}function peg$parse(e,t){var r,n={},a=(t=void 0!==t?t:{}).grammarSource,o={Grammar:ct},s=ct,u="{",i="}",c="/*",l="*/",p="\\",f='"',d="'",h=/^[\n\r\u2028\u2029]/,g=/^[0-9]/,m=/^[0-9a-f]/i,$=/^[{}]/,A=/^[a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137-\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148-\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C-\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA-\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9-\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC-\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF-\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F-\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0-\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB-\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE-\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0561-\u0587\u13F8-\u13FD\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6-\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FC7\u1FD0-\u1FD3\u1FD6-\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6-\u1FF7\u210A\u210E-\u210F\u2113\u212F\u2134\u2139\u213C-\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65-\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73-\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3-\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7B5\uA7B7\uA7FA\uAB30-\uAB5A\uAB60-\uAB65\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A]/,b=/^[\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5-\u06E6\u07F4-\u07F5\u07FA\u081A\u0824\u0828\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C-\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D-\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA69C-\uA69D\uA717-\uA71F\uA770\uA788\uA7F8-\uA7F9\uA9CF\uA9E6\uAA70\uAADD\uAAF3-\uAAF4\uAB5C-\uAB5F\uFF70\uFF9E-\uFF9F]/,x=/^[\xAA\xBA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05F0-\u05F2\u0620-\u063F\u0641-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0-\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60-\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0CF1-\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u10D0-\u10FA\u10FD-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5-\u1CF6\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A-\uA62B\uA66E\uA6A0-\uA6E5\uA78F\uA7F7\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9E0-\uA9E4\uA9E7-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,E=/^[\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC]/,v=/^[A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178-\u0179\u017B\u017D\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018B\u018E-\u0191\u0193-\u0194\u0196-\u0198\u019C-\u019D\u019F-\u01A0\u01A2\u01A4\u01A6-\u01A7\u01A9\u01AC\u01AE-\u01AF\u01B1-\u01B3\u01B5\u01B7-\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A-\u023B\u023D-\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E-\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9-\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0-\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E-\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D-\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AD\uA7B0-\uA7B4\uA7B6\uFF21-\uFF3A]/,C=/^[\u0903\u093B\u093E-\u0940\u0949-\u094C\u094E-\u094F\u0982-\u0983\u09BE-\u09C0\u09C7-\u09C8\u09CB-\u09CC\u09D7\u0A03\u0A3E-\u0A40\u0A83\u0ABE-\u0AC0\u0AC9\u0ACB-\u0ACC\u0B02-\u0B03\u0B3E\u0B40\u0B47-\u0B48\u0B4B-\u0B4C\u0B57\u0BBE-\u0BBF\u0BC1-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD7\u0C01-\u0C03\u0C41-\u0C44\u0C82-\u0C83\u0CBE\u0CC0-\u0CC4\u0CC7-\u0CC8\u0CCA-\u0CCB\u0CD5-\u0CD6\u0D02-\u0D03\u0D3E-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D57\u0D82-\u0D83\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DF2-\u0DF3\u0F3E-\u0F3F\u0F7F\u102B-\u102C\u1031\u1038\u103B-\u103C\u1056-\u1057\u1062-\u1064\u1067-\u106D\u1083-\u1084\u1087-\u108C\u108F\u109A-\u109C\u17B6\u17BE-\u17C5\u17C7-\u17C8\u1923-\u1926\u1929-\u192B\u1930-\u1931\u1933-\u1938\u1A19-\u1A1A\u1A55\u1A57\u1A61\u1A63-\u1A64\u1A6D-\u1A72\u1B04\u1B35\u1B3B\u1B3D-\u1B41\u1B43-\u1B44\u1B82\u1BA1\u1BA6-\u1BA7\u1BAA\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2-\u1BF3\u1C24-\u1C2B\u1C34-\u1C35\u1CE1\u1CF2-\u1CF3\u302E-\u302F\uA823-\uA824\uA827\uA880-\uA881\uA8B4-\uA8C3\uA952-\uA953\uA983\uA9B4-\uA9B5\uA9BA-\uA9BB\uA9BD-\uA9C0\uAA2F-\uAA30\uAA33-\uAA34\uAA4D\uAA7B\uAA7D\uAAEB\uAAEE-\uAAEF\uAAF5\uABE3-\uABE4\uABE6-\uABE7\uABE9-\uABEA\uABEC]/,y=/^[\u0300-\u036F\u0483-\u0487\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962-\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2-\u09E3\u0A01-\u0A02\u0A3C\u0A41-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A51\u0A70-\u0A71\u0A75\u0A81-\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7-\u0AC8\u0ACD\u0AE2-\u0AE3\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62-\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C62-\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC-\u0CCD\u0CE2-\u0CE3\u0D01\u0D41-\u0D44\u0D4D\u0D62-\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB-\u0EBC\u0EC8-\u0ECD\u0F18-\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86-\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039-\u103A\u103D-\u103E\u1058-\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17B4-\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193B\u1A17-\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABD\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80-\u1B81\u1BA2-\u1BA5\u1BA8-\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8-\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8-\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099-\u309A\uA66F\uA674-\uA67D\uA69E-\uA69F\uA6F0-\uA6F1\uA802\uA806\uA80B\uA825-\uA826\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9E5\uAA29-\uAA2E\uAA31-\uAA32\uAA35-\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7-\uAAB8\uAABE-\uAABF\uAAC1\uAAEC-\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/,_=/^[0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]/,S=/^[\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF]/,F=/^[_\u203F-\u2040\u2054\uFE33-\uFE34\uFE4D-\uFE4F\uFF3F]/,w=/^[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000]/,B=nt("{",!1),D=nt("}",!1),P=nt("=",!1),T=nt("/",!1),R=nt("@",!1),L=nt(":",!1),O=nt("$",!1),M=nt("&",!1),k=nt("!",!1),I=nt("?",!1),j=nt("*",!1),N=nt("+",!1),U=nt("(",!1),q=nt(")",!1),G={type:"any"},H=ot("whitespace"),z=nt("\t",!1),W=nt("\v",!1),V=nt("\f",!1),Y=nt(" ",!1),Q=nt(" ",!1),J=nt("\ufeff",!1),X=at(["\n","\r","\u2028","\u2029"],!1,!1),Z=ot("end of line"),K=nt("\n",!1),ee=nt("\r\n",!1),te=nt("\r",!1),re=nt("\u2028",!1),ne=nt("\u2029",!1),ae=ot("comment"),oe=nt("/*",!1),se=nt("*/",!1),ue=nt("//",!1),ie=ot("identifier"),ce=nt("_",!1),le=nt("\\",!1),pe=nt("‌",!1),fe=nt("‍",!1),de=ot("literal"),he=nt("i",!1),ge=ot("string"),me=nt('"',!1),$e=nt("'",!1),Ae=ot("character class"),be=nt("[",!1),xe=nt("^",!1),Ee=nt("]",!1),ve=nt("-",!1),Ce=nt("0",!1),ye=nt("b",!1),_e=nt("f",!1),Se=nt("n",!1),Fe=nt("r",!1),we=nt("t",!1),Be=nt("v",!1),De=nt("x",!1),Pe=nt("u",!1),Te=at([["0","9"]],!1,!1),Re=at([["0","9"],["a","f"]],!1,!0),Le=nt(".",!1),Oe=ot("code block"),Me=at(["{","}"],!1,!1),ke=at([["a","z"],"µ",["ß","ö"],["ø","ÿ"],"ā","ă","ą","ć","ĉ","ċ","č","ď","đ","ē","ĕ","ė","ę","ě","ĝ","ğ","ġ","ģ","ĥ","ħ","ĩ","ī","ĭ","į","ı","ij","ĵ",["ķ","ĸ"],"ĺ","ļ","ľ","ŀ","ł","ń","ņ",["ň","ʼn"],"ŋ","ō","ŏ","ő","œ","ŕ","ŗ","ř","ś","ŝ","ş","š","ţ","ť","ŧ","ũ","ū","ŭ","ů","ű","ų","ŵ","ŷ","ź","ż",["ž","ƀ"],"ƃ","ƅ","ƈ",["ƌ","ƍ"],"ƒ","ƕ",["ƙ","ƛ"],"ƞ","ơ","ƣ","ƥ","ƨ",["ƪ","ƫ"],"ƭ","ư","ƴ","ƶ",["ƹ","ƺ"],["ƽ","ƿ"],"dž","lj","nj","ǎ","ǐ","ǒ","ǔ","ǖ","ǘ","ǚ",["ǜ","ǝ"],"ǟ","ǡ","ǣ","ǥ","ǧ","ǩ","ǫ","ǭ",["ǯ","ǰ"],"dz","ǵ","ǹ","ǻ","ǽ","ǿ","ȁ","ȃ","ȅ","ȇ","ȉ","ȋ","ȍ","ȏ","ȑ","ȓ","ȕ","ȗ","ș","ț","ȝ","ȟ","ȡ","ȣ","ȥ","ȧ","ȩ","ȫ","ȭ","ȯ","ȱ",["ȳ","ȹ"],"ȼ",["ȿ","ɀ"],"ɂ","ɇ","ɉ","ɋ","ɍ",["ɏ","ʓ"],["ʕ","ʯ"],"ͱ","ͳ","ͷ",["ͻ","ͽ"],"ΐ",["ά","ώ"],["ϐ","ϑ"],["ϕ","ϗ"],"ϙ","ϛ","ϝ","ϟ","ϡ","ϣ","ϥ","ϧ","ϩ","ϫ","ϭ",["ϯ","ϳ"],"ϵ","ϸ",["ϻ","ϼ"],["а","џ"],"ѡ","ѣ","ѥ","ѧ","ѩ","ѫ","ѭ","ѯ","ѱ","ѳ","ѵ","ѷ","ѹ","ѻ","ѽ","ѿ","ҁ","ҋ","ҍ","ҏ","ґ","ғ","ҕ","җ","ҙ","қ","ҝ","ҟ","ҡ","ң","ҥ","ҧ","ҩ","ҫ","ҭ","ү","ұ","ҳ","ҵ","ҷ","ҹ","һ","ҽ","ҿ","ӂ","ӄ","ӆ","ӈ","ӊ","ӌ",["ӎ","ӏ"],"ӑ","ӓ","ӕ","ӗ","ә","ӛ","ӝ","ӟ","ӡ","ӣ","ӥ","ӧ","ө","ӫ","ӭ","ӯ","ӱ","ӳ","ӵ","ӷ","ӹ","ӻ","ӽ","ӿ","ԁ","ԃ","ԅ","ԇ","ԉ","ԋ","ԍ","ԏ","ԑ","ԓ","ԕ","ԗ","ԙ","ԛ","ԝ","ԟ","ԡ","ԣ","ԥ","ԧ","ԩ","ԫ","ԭ","ԯ",["ա","և"],["ᏸ","ᏽ"],["ᴀ","ᴫ"],["ᵫ","ᵷ"],["ᵹ","ᶚ"],"ḁ","ḃ","ḅ","ḇ","ḉ","ḋ","ḍ","ḏ","ḑ","ḓ","ḕ","ḗ","ḙ","ḛ","ḝ","ḟ","ḡ","ḣ","ḥ","ḧ","ḩ","ḫ","ḭ","ḯ","ḱ","ḳ","ḵ","ḷ","ḹ","ḻ","ḽ","ḿ","ṁ","ṃ","ṅ","ṇ","ṉ","ṋ","ṍ","ṏ","ṑ","ṓ","ṕ","ṗ","ṙ","ṛ","ṝ","ṟ","ṡ","ṣ","ṥ","ṧ","ṩ","ṫ","ṭ","ṯ","ṱ","ṳ","ṵ","ṷ","ṹ","ṻ","ṽ","ṿ","ẁ","ẃ","ẅ","ẇ","ẉ","ẋ","ẍ","ẏ","ẑ","ẓ",["ẕ","ẝ"],"ẟ","ạ","ả","ấ","ầ","ẩ","ẫ","ậ","ắ","ằ","ẳ","ẵ","ặ","ẹ","ẻ","ẽ","ế","ề","ể","ễ","ệ","ỉ","ị","ọ","ỏ","ố","ồ","ổ","ỗ","ộ","ớ","ờ","ở","ỡ","ợ","ụ","ủ","ứ","ừ","ử","ữ","ự","ỳ","ỵ","ỷ","ỹ","ỻ","ỽ",["ỿ","ἇ"],["ἐ","ἕ"],["ἠ","ἧ"],["ἰ","ἷ"],["ὀ","ὅ"],["ὐ","ὗ"],["ὠ","ὧ"],["ὰ","ώ"],["ᾀ","ᾇ"],["ᾐ","ᾗ"],["ᾠ","ᾧ"],["ᾰ","ᾴ"],["ᾶ","ᾷ"],"ι",["ῂ","ῄ"],["ῆ","ῇ"],["ῐ","ΐ"],["ῖ","ῗ"],["ῠ","ῧ"],["ῲ","ῴ"],["ῶ","ῷ"],"ℊ",["ℎ","ℏ"],"ℓ","ℯ","ℴ","ℹ",["ℼ","ℽ"],["ⅆ","ⅉ"],"ⅎ","ↄ",["ⰰ","ⱞ"],"ⱡ",["ⱥ","ⱦ"],"ⱨ","ⱪ","ⱬ","ⱱ",["ⱳ","ⱴ"],["ⱶ","ⱻ"],"ⲁ","ⲃ","ⲅ","ⲇ","ⲉ","ⲋ","ⲍ","ⲏ","ⲑ","ⲓ","ⲕ","ⲗ","ⲙ","ⲛ","ⲝ","ⲟ","ⲡ","ⲣ","ⲥ","ⲧ","ⲩ","ⲫ","ⲭ","ⲯ","ⲱ","ⲳ","ⲵ","ⲷ","ⲹ","ⲻ","ⲽ","ⲿ","ⳁ","ⳃ","ⳅ","ⳇ","ⳉ","ⳋ","ⳍ","ⳏ","ⳑ","ⳓ","ⳕ","ⳗ","ⳙ","ⳛ","ⳝ","ⳟ","ⳡ",["ⳣ","ⳤ"],"ⳬ","ⳮ","ⳳ",["ⴀ","ⴥ"],"ⴧ","ⴭ","ꙁ","ꙃ","ꙅ","ꙇ","ꙉ","ꙋ","ꙍ","ꙏ","ꙑ","ꙓ","ꙕ","ꙗ","ꙙ","ꙛ","ꙝ","ꙟ","ꙡ","ꙣ","ꙥ","ꙧ","ꙩ","ꙫ","ꙭ","ꚁ","ꚃ","ꚅ","ꚇ","ꚉ","ꚋ","ꚍ","ꚏ","ꚑ","ꚓ","ꚕ","ꚗ","ꚙ","ꚛ","ꜣ","ꜥ","ꜧ","ꜩ","ꜫ","ꜭ",["ꜯ","ꜱ"],"ꜳ","ꜵ","ꜷ","ꜹ","ꜻ","ꜽ","ꜿ","ꝁ","ꝃ","ꝅ","ꝇ","ꝉ","ꝋ","ꝍ","ꝏ","ꝑ","ꝓ","ꝕ","ꝗ","ꝙ","ꝛ","ꝝ","ꝟ","ꝡ","ꝣ","ꝥ","ꝧ","ꝩ","ꝫ","ꝭ","ꝯ",["ꝱ","ꝸ"],"ꝺ","ꝼ","ꝿ","ꞁ","ꞃ","ꞅ","ꞇ","ꞌ","ꞎ","ꞑ",["ꞓ","ꞕ"],"ꞗ","ꞙ","ꞛ","ꞝ","ꞟ","ꞡ","ꞣ","ꞥ","ꞧ","ꞩ","ꞵ","ꞷ","ꟺ",["ꬰ","ꭚ"],["ꭠ","ꭥ"],["ꭰ","ꮿ"],["ff","st"],["ﬓ","ﬗ"],["a","z"]],!1,!1),Ie=at([["ʰ","ˁ"],["ˆ","ˑ"],["ˠ","ˤ"],"ˬ","ˮ","ʹ","ͺ","ՙ","ـ",["ۥ","ۦ"],["ߴ","ߵ"],"ߺ","ࠚ","ࠤ","ࠨ","ॱ","ๆ","ໆ","ჼ","ៗ","ᡃ","ᪧ",["ᱸ","ᱽ"],["ᴬ","ᵪ"],"ᵸ",["ᶛ","ᶿ"],"ⁱ","ⁿ",["ₐ","ₜ"],["ⱼ","ⱽ"],"ⵯ","ⸯ","々",["〱","〵"],"〻",["ゝ","ゞ"],["ー","ヾ"],"ꀕ",["ꓸ","ꓽ"],"ꘌ","ꙿ",["ꚜ","ꚝ"],["ꜗ","ꜟ"],"ꝰ","ꞈ",["ꟸ","ꟹ"],"ꧏ","ꧦ","ꩰ","ꫝ",["ꫳ","ꫴ"],["ꭜ","ꭟ"],"ー",["゙","゚"]],!1,!1),je=at(["ª","º","ƻ",["ǀ","ǃ"],"ʔ",["א","ת"],["װ","ײ"],["ؠ","ؿ"],["ف","ي"],["ٮ","ٯ"],["ٱ","ۓ"],"ە",["ۮ","ۯ"],["ۺ","ۼ"],"ۿ","ܐ",["ܒ","ܯ"],["ݍ","ޥ"],"ޱ",["ߊ","ߪ"],["ࠀ","ࠕ"],["ࡀ","ࡘ"],["ࢠ","ࢴ"],["ऄ","ह"],"ऽ","ॐ",["क़","ॡ"],["ॲ","ঀ"],["অ","ঌ"],["এ","ঐ"],["ও","ন"],["প","র"],"ল",["শ","হ"],"ঽ","ৎ",["ড়","ঢ়"],["য়","ৡ"],["ৰ","ৱ"],["ਅ","ਊ"],["ਏ","ਐ"],["ਓ","ਨ"],["ਪ","ਰ"],["ਲ","ਲ਼"],["ਵ","ਸ਼"],["ਸ","ਹ"],["ਖ਼","ੜ"],"ਫ਼",["ੲ","ੴ"],["અ","ઍ"],["એ","ઑ"],["ઓ","ન"],["પ","ર"],["લ","ળ"],["વ","હ"],"ઽ","ૐ",["ૠ","ૡ"],"ૹ",["ଅ","ଌ"],["ଏ","ଐ"],["ଓ","ନ"],["ପ","ର"],["ଲ","ଳ"],["ଵ","ହ"],"ଽ",["ଡ଼","ଢ଼"],["ୟ","ୡ"],"ୱ","ஃ",["அ","ஊ"],["எ","ஐ"],["ஒ","க"],["ங","ச"],"ஜ",["ஞ","ட"],["ண","த"],["ந","ப"],["ம","ஹ"],"ௐ",["అ","ఌ"],["ఎ","ఐ"],["ఒ","న"],["ప","హ"],"ఽ",["ౘ","ౚ"],["ౠ","ౡ"],["ಅ","ಌ"],["ಎ","ಐ"],["ಒ","ನ"],["ಪ","ಳ"],["ವ","ಹ"],"ಽ","ೞ",["ೠ","ೡ"],["ೱ","ೲ"],["അ","ഌ"],["എ","ഐ"],["ഒ","ഺ"],"ഽ","ൎ",["ൟ","ൡ"],["ൺ","ൿ"],["අ","ඖ"],["ක","න"],["ඳ","ර"],"ල",["ව","ෆ"],["ก","ะ"],["า","ำ"],["เ","ๅ"],["ກ","ຂ"],"ຄ",["ງ","ຈ"],"ຊ","ຍ",["ດ","ທ"],["ນ","ຟ"],["ມ","ຣ"],"ລ","ວ",["ສ","ຫ"],["ອ","ະ"],["າ","ຳ"],"ຽ",["ເ","ໄ"],["ໜ","ໟ"],"ༀ",["ཀ","ཇ"],["ཉ","ཬ"],["ྈ","ྌ"],["က","ဪ"],"ဿ",["ၐ","ၕ"],["ၚ","ၝ"],"ၡ",["ၥ","ၦ"],["ၮ","ၰ"],["ၵ","ႁ"],"ႎ",["ა","ჺ"],["ჽ","ቈ"],["ቊ","ቍ"],["ቐ","ቖ"],"ቘ",["ቚ","ቝ"],["በ","ኈ"],["ኊ","ኍ"],["ነ","ኰ"],["ኲ","ኵ"],["ኸ","ኾ"],"ዀ",["ዂ","ዅ"],["ወ","ዖ"],["ዘ","ጐ"],["ጒ","ጕ"],["ጘ","ፚ"],["ᎀ","ᎏ"],["ᐁ","ᙬ"],["ᙯ","ᙿ"],["ᚁ","ᚚ"],["ᚠ","ᛪ"],["ᛱ","ᛸ"],["ᜀ","ᜌ"],["ᜎ","ᜑ"],["ᜠ","ᜱ"],["ᝀ","ᝑ"],["ᝠ","ᝬ"],["ᝮ","ᝰ"],["ក","ឳ"],"ៜ",["ᠠ","ᡂ"],["ᡄ","ᡷ"],["ᢀ","ᢨ"],"ᢪ",["ᢰ","ᣵ"],["ᤀ","ᤞ"],["ᥐ","ᥭ"],["ᥰ","ᥴ"],["ᦀ","ᦫ"],["ᦰ","ᧉ"],["ᨀ","ᨖ"],["ᨠ","ᩔ"],["ᬅ","ᬳ"],["ᭅ","ᭋ"],["ᮃ","ᮠ"],["ᮮ","ᮯ"],["ᮺ","ᯥ"],["ᰀ","ᰣ"],["ᱍ","ᱏ"],["ᱚ","ᱷ"],["ᳩ","ᳬ"],["ᳮ","ᳱ"],["ᳵ","ᳶ"],["ℵ","ℸ"],["ⴰ","ⵧ"],["ⶀ","ⶖ"],["ⶠ","ⶦ"],["ⶨ","ⶮ"],["ⶰ","ⶶ"],["ⶸ","ⶾ"],["ⷀ","ⷆ"],["ⷈ","ⷎ"],["ⷐ","ⷖ"],["ⷘ","ⷞ"],"〆","〼",["ぁ","ゖ"],"ゟ",["ァ","ヺ"],"ヿ",["ㄅ","ㄭ"],["ㄱ","ㆎ"],["ㆠ","ㆺ"],["ㇰ","ㇿ"],["㐀","䶵"],["一","鿕"],["ꀀ","ꀔ"],["ꀖ","ꒌ"],["ꓐ","ꓷ"],["ꔀ","ꘋ"],["ꘐ","ꘟ"],["ꘪ","ꘫ"],"ꙮ",["ꚠ","ꛥ"],"ꞏ","ꟷ",["ꟻ","ꠁ"],["ꠃ","ꠅ"],["ꠇ","ꠊ"],["ꠌ","ꠢ"],["ꡀ","ꡳ"],["ꢂ","ꢳ"],["ꣲ","ꣷ"],"ꣻ","ꣽ",["ꤊ","ꤥ"],["ꤰ","ꥆ"],["ꥠ","ꥼ"],["ꦄ","ꦲ"],["ꧠ","ꧤ"],["ꧧ","ꧯ"],["ꧺ","ꧾ"],["ꨀ","ꨨ"],["ꩀ","ꩂ"],["ꩄ","ꩋ"],["ꩠ","ꩯ"],["ꩱ","ꩶ"],"ꩺ",["ꩾ","ꪯ"],"ꪱ",["ꪵ","ꪶ"],["ꪹ","ꪽ"],"ꫀ","ꫂ",["ꫛ","ꫜ"],["ꫠ","ꫪ"],"ꫲ",["ꬁ","ꬆ"],["ꬉ","ꬎ"],["ꬑ","ꬖ"],["ꬠ","ꬦ"],["ꬨ","ꬮ"],["ꯀ","ꯢ"],["가","힣"],["ힰ","ퟆ"],["ퟋ","ퟻ"],["豈","舘"],["並","龎"],"יִ",["ײַ","ﬨ"],["שׁ","זּ"],["טּ","לּ"],"מּ",["נּ","סּ"],["ףּ","פּ"],["צּ","ﮱ"],["ﯓ","ﴽ"],["ﵐ","ﶏ"],["ﶒ","ﷇ"],["ﷰ","ﷻ"],["ﹰ","ﹴ"],["ﹶ","ﻼ"],["ヲ","ッ"],["ア","ン"],["ᅠ","ᄒ"],["ᅡ","ᅦ"],["ᅧ","ᅬ"],["ᅭ","ᅲ"],["ᅳ","ᅵ"]],!1,!1),Ne=at(["Dž","Lj","Nj","Dz",["ᾈ","ᾏ"],["ᾘ","ᾟ"],["ᾨ","ᾯ"],"ᾼ","ῌ","ῼ"],!1,!1),Ue=at([["A","Z"],["À","Ö"],["Ø","Þ"],"Ā","Ă","Ą","Ć","Ĉ","Ċ","Č","Ď","Đ","Ē","Ĕ","Ė","Ę","Ě","Ĝ","Ğ","Ġ","Ģ","Ĥ","Ħ","Ĩ","Ī","Ĭ","Į","İ","IJ","Ĵ","Ķ","Ĺ","Ļ","Ľ","Ŀ","Ł","Ń","Ņ","Ň","Ŋ","Ō","Ŏ","Ő","Œ","Ŕ","Ŗ","Ř","Ś","Ŝ","Ş","Š","Ţ","Ť","Ŧ","Ũ","Ū","Ŭ","Ů","Ű","Ų","Ŵ","Ŷ",["Ÿ","Ź"],"Ż","Ž",["Ɓ","Ƃ"],"Ƅ",["Ɔ","Ƈ"],["Ɖ","Ƌ"],["Ǝ","Ƒ"],["Ɠ","Ɣ"],["Ɩ","Ƙ"],["Ɯ","Ɲ"],["Ɵ","Ơ"],"Ƣ","Ƥ",["Ʀ","Ƨ"],"Ʃ","Ƭ",["Ʈ","Ư"],["Ʊ","Ƴ"],"Ƶ",["Ʒ","Ƹ"],"Ƽ","DŽ","LJ","NJ","Ǎ","Ǐ","Ǒ","Ǔ","Ǖ","Ǘ","Ǚ","Ǜ","Ǟ","Ǡ","Ǣ","Ǥ","Ǧ","Ǩ","Ǫ","Ǭ","Ǯ","DZ","Ǵ",["Ƕ","Ǹ"],"Ǻ","Ǽ","Ǿ","Ȁ","Ȃ","Ȅ","Ȇ","Ȉ","Ȋ","Ȍ","Ȏ","Ȑ","Ȓ","Ȕ","Ȗ","Ș","Ț","Ȝ","Ȟ","Ƞ","Ȣ","Ȥ","Ȧ","Ȩ","Ȫ","Ȭ","Ȯ","Ȱ","Ȳ",["Ⱥ","Ȼ"],["Ƚ","Ⱦ"],"Ɂ",["Ƀ","Ɇ"],"Ɉ","Ɋ","Ɍ","Ɏ","Ͱ","Ͳ","Ͷ","Ϳ","Ά",["Έ","Ί"],"Ό",["Ύ","Ώ"],["Α","Ρ"],["Σ","Ϋ"],"Ϗ",["ϒ","ϔ"],"Ϙ","Ϛ","Ϝ","Ϟ","Ϡ","Ϣ","Ϥ","Ϧ","Ϩ","Ϫ","Ϭ","Ϯ","ϴ","Ϸ",["Ϲ","Ϻ"],["Ͻ","Я"],"Ѡ","Ѣ","Ѥ","Ѧ","Ѩ","Ѫ","Ѭ","Ѯ","Ѱ","Ѳ","Ѵ","Ѷ","Ѹ","Ѻ","Ѽ","Ѿ","Ҁ","Ҋ","Ҍ","Ҏ","Ґ","Ғ","Ҕ","Җ","Ҙ","Қ","Ҝ","Ҟ","Ҡ","Ң","Ҥ","Ҧ","Ҩ","Ҫ","Ҭ","Ү","Ұ","Ҳ","Ҵ","Ҷ","Ҹ","Һ","Ҽ","Ҿ",["Ӏ","Ӂ"],"Ӄ","Ӆ","Ӈ","Ӊ","Ӌ","Ӎ","Ӑ","Ӓ","Ӕ","Ӗ","Ә","Ӛ","Ӝ","Ӟ","Ӡ","Ӣ","Ӥ","Ӧ","Ө","Ӫ","Ӭ","Ӯ","Ӱ","Ӳ","Ӵ","Ӷ","Ӹ","Ӻ","Ӽ","Ӿ","Ԁ","Ԃ","Ԅ","Ԇ","Ԉ","Ԋ","Ԍ","Ԏ","Ԑ","Ԓ","Ԕ","Ԗ","Ԙ","Ԛ","Ԝ","Ԟ","Ԡ","Ԣ","Ԥ","Ԧ","Ԩ","Ԫ","Ԭ","Ԯ",["Ա","Ֆ"],["Ⴀ","Ⴥ"],"Ⴧ","Ⴭ",["Ꭰ","Ᏽ"],"Ḁ","Ḃ","Ḅ","Ḇ","Ḉ","Ḋ","Ḍ","Ḏ","Ḑ","Ḓ","Ḕ","Ḗ","Ḙ","Ḛ","Ḝ","Ḟ","Ḡ","Ḣ","Ḥ","Ḧ","Ḩ","Ḫ","Ḭ","Ḯ","Ḱ","Ḳ","Ḵ","Ḷ","Ḹ","Ḻ","Ḽ","Ḿ","Ṁ","Ṃ","Ṅ","Ṇ","Ṉ","Ṋ","Ṍ","Ṏ","Ṑ","Ṓ","Ṕ","Ṗ","Ṙ","Ṛ","Ṝ","Ṟ","Ṡ","Ṣ","Ṥ","Ṧ","Ṩ","Ṫ","Ṭ","Ṯ","Ṱ","Ṳ","Ṵ","Ṷ","Ṹ","Ṻ","Ṽ","Ṿ","Ẁ","Ẃ","Ẅ","Ẇ","Ẉ","Ẋ","Ẍ","Ẏ","Ẑ","Ẓ","Ẕ","ẞ","Ạ","Ả","Ấ","Ầ","Ẩ","Ẫ","Ậ","Ắ","Ằ","Ẳ","Ẵ","Ặ","Ẹ","Ẻ","Ẽ","Ế","Ề","Ể","Ễ","Ệ","Ỉ","Ị","Ọ","Ỏ","Ố","Ồ","Ổ","Ỗ","Ộ","Ớ","Ờ","Ở","Ỡ","Ợ","Ụ","Ủ","Ứ","Ừ","Ử","Ữ","Ự","Ỳ","Ỵ","Ỷ","Ỹ","Ỻ","Ỽ","Ỿ",["Ἀ","Ἇ"],["Ἐ","Ἕ"],["Ἠ","Ἧ"],["Ἰ","Ἷ"],["Ὀ","Ὅ"],"Ὑ","Ὓ","Ὕ","Ὗ",["Ὠ","Ὧ"],["Ᾰ","Ά"],["Ὲ","Ή"],["Ῐ","Ί"],["Ῠ","Ῥ"],["Ὸ","Ώ"],"ℂ","ℇ",["ℋ","ℍ"],["ℐ","ℒ"],"ℕ",["ℙ","ℝ"],"ℤ","Ω","ℨ",["K","ℭ"],["ℰ","ℳ"],["ℾ","ℿ"],"ⅅ","Ↄ",["Ⰰ","Ⱞ"],"Ⱡ",["Ɫ","Ɽ"],"Ⱨ","Ⱪ","Ⱬ",["Ɑ","Ɒ"],"Ⱳ","Ⱶ",["Ȿ","Ⲁ"],"Ⲃ","Ⲅ","Ⲇ","Ⲉ","Ⲋ","Ⲍ","Ⲏ","Ⲑ","Ⲓ","Ⲕ","Ⲗ","Ⲙ","Ⲛ","Ⲝ","Ⲟ","Ⲡ","Ⲣ","Ⲥ","Ⲧ","Ⲩ","Ⲫ","Ⲭ","Ⲯ","Ⲱ","Ⲳ","Ⲵ","Ⲷ","Ⲹ","Ⲻ","Ⲽ","Ⲿ","Ⳁ","Ⳃ","Ⳅ","Ⳇ","Ⳉ","Ⳋ","Ⳍ","Ⳏ","Ⳑ","Ⳓ","Ⳕ","Ⳗ","Ⳙ","Ⳛ","Ⳝ","Ⳟ","Ⳡ","Ⳣ","Ⳬ","Ⳮ","Ⳳ","Ꙁ","Ꙃ","Ꙅ","Ꙇ","Ꙉ","Ꙋ","Ꙍ","Ꙏ","Ꙑ","Ꙓ","Ꙕ","Ꙗ","Ꙙ","Ꙛ","Ꙝ","Ꙟ","Ꙡ","Ꙣ","Ꙥ","Ꙧ","Ꙩ","Ꙫ","Ꙭ","Ꚁ","Ꚃ","Ꚅ","Ꚇ","Ꚉ","Ꚋ","Ꚍ","Ꚏ","Ꚑ","Ꚓ","Ꚕ","Ꚗ","Ꚙ","Ꚛ","Ꜣ","Ꜥ","Ꜧ","Ꜩ","Ꜫ","Ꜭ","Ꜯ","Ꜳ","Ꜵ","Ꜷ","Ꜹ","Ꜻ","Ꜽ","Ꜿ","Ꝁ","Ꝃ","Ꝅ","Ꝇ","Ꝉ","Ꝋ","Ꝍ","Ꝏ","Ꝑ","Ꝓ","Ꝕ","Ꝗ","Ꝙ","Ꝛ","Ꝝ","Ꝟ","Ꝡ","Ꝣ","Ꝥ","Ꝧ","Ꝩ","Ꝫ","Ꝭ","Ꝯ","Ꝺ","Ꝼ",["Ᵹ","Ꝿ"],"Ꞁ","Ꞃ","Ꞅ","Ꞇ","Ꞌ","Ɥ","Ꞑ","Ꞓ","Ꞗ","Ꞙ","Ꞛ","Ꞝ","Ꞟ","Ꞡ","Ꞣ","Ꞥ","Ꞧ","Ꞩ",["Ɦ","Ɬ"],["Ʞ","Ꞵ"],"Ꞷ",["A","Z"]],!1,!1),qe=at(["ः","ऻ",["ा","ी"],["ॉ","ौ"],["ॎ","ॏ"],["ং","ঃ"],["া","ী"],["ে","ৈ"],["ো","ৌ"],"ৗ","ਃ",["ਾ","ੀ"],"ઃ",["ા","ી"],"ૉ",["ો","ૌ"],["ଂ","ଃ"],"ା","ୀ",["େ","ୈ"],["ୋ","ୌ"],"ୗ",["ா","ி"],["ு","ூ"],["ெ","ை"],["ொ","ௌ"],"ௗ",["ఁ","ః"],["ు","ౄ"],["ಂ","ಃ"],"ಾ",["ೀ","ೄ"],["ೇ","ೈ"],["ೊ","ೋ"],["ೕ","ೖ"],["ം","ഃ"],["ാ","ീ"],["െ","ൈ"],["ൊ","ൌ"],"ൗ",["ං","ඃ"],["ා","ෑ"],["ෘ","ෟ"],["ෲ","ෳ"],["༾","༿"],"ཿ",["ါ","ာ"],"ေ","း",["ျ","ြ"],["ၖ","ၗ"],["ၢ","ၤ"],["ၧ","ၭ"],["ႃ","ႄ"],["ႇ","ႌ"],"ႏ",["ႚ","ႜ"],"ា",["ើ","ៅ"],["ះ","ៈ"],["ᤣ","ᤦ"],["ᤩ","ᤫ"],["ᤰ","ᤱ"],["ᤳ","ᤸ"],["ᨙ","ᨚ"],"ᩕ","ᩗ","ᩡ",["ᩣ","ᩤ"],["ᩭ","ᩲ"],"ᬄ","ᬵ","ᬻ",["ᬽ","ᭁ"],["ᭃ","᭄"],"ᮂ","ᮡ",["ᮦ","ᮧ"],"᮪","ᯧ",["ᯪ","ᯬ"],"ᯮ",["᯲","᯳"],["ᰤ","ᰫ"],["ᰴ","ᰵ"],"᳡",["ᳲ","ᳳ"],["〮","〯"],["ꠣ","ꠤ"],"ꠧ",["ꢀ","ꢁ"],["ꢴ","ꣃ"],["ꥒ","꥓"],"ꦃ",["ꦴ","ꦵ"],["ꦺ","ꦻ"],["ꦽ","꧀"],["ꨯ","ꨰ"],["ꨳ","ꨴ"],"ꩍ","ꩻ","ꩽ","ꫫ",["ꫮ","ꫯ"],"ꫵ",["ꯣ","ꯤ"],["ꯦ","ꯧ"],["ꯩ","ꯪ"],"꯬"],!1,!1),Ge=at([["̀","ͯ"],["҃","҇"],["֑","ֽ"],"ֿ",["ׁ","ׂ"],["ׄ","ׅ"],"ׇ",["ؐ","ؚ"],["ً","ٟ"],"ٰ",["ۖ","ۜ"],["۟","ۤ"],["ۧ","ۨ"],["۪","ۭ"],"ܑ",["ܰ","݊"],["ަ","ް"],["߫","߳"],["ࠖ","࠙"],["ࠛ","ࠣ"],["ࠥ","ࠧ"],["ࠩ","࠭"],["࡙","࡛"],["ࣣ","ं"],"ऺ","़",["ु","ै"],"्",["॑","ॗ"],["ॢ","ॣ"],"ঁ","়",["ু","ৄ"],"্",["ৢ","ৣ"],["ਁ","ਂ"],"਼",["ੁ","ੂ"],["ੇ","ੈ"],["ੋ","੍"],"ੑ",["ੰ","ੱ"],"ੵ",["ઁ","ં"],"઼",["ુ","ૅ"],["ે","ૈ"],"્",["ૢ","ૣ"],"ଁ","଼","ି",["ୁ","ୄ"],"୍","ୖ",["ୢ","ୣ"],"ஂ","ீ","்","ఀ",["ా","ీ"],["ె","ై"],["ొ","్"],["ౕ","ౖ"],["ౢ","ౣ"],"ಁ","಼","ಿ","ೆ",["ೌ","್"],["ೢ","ೣ"],"ഁ",["ു","ൄ"],"്",["ൢ","ൣ"],"්",["ි","ු"],"ූ","ั",["ิ","ฺ"],["็","๎"],"ັ",["ິ","ູ"],["ົ","ຼ"],["່","ໍ"],["༘","༙"],"༵","༷","༹",["ཱ","ཾ"],["ྀ","྄"],["྆","྇"],["ྍ","ྗ"],["ྙ","ྼ"],"࿆",["ိ","ူ"],["ဲ","့"],["္","်"],["ွ","ှ"],["ၘ","ၙ"],["ၞ","ၠ"],["ၱ","ၴ"],"ႂ",["ႅ","ႆ"],"ႍ","ႝ",["፝","፟"],["ᜒ","᜔"],["ᜲ","᜴"],["ᝒ","ᝓ"],["ᝲ","ᝳ"],["឴","឵"],["ិ","ួ"],"ំ",["៉","៓"],"៝",["᠋","᠍"],"ᢩ",["ᤠ","ᤢ"],["ᤧ","ᤨ"],"ᤲ",["᤹","᤻"],["ᨗ","ᨘ"],"ᨛ","ᩖ",["ᩘ","ᩞ"],"᩠","ᩢ",["ᩥ","ᩬ"],["ᩳ","᩼"],"᩿",["᪰","᪽"],["ᬀ","ᬃ"],"᬴",["ᬶ","ᬺ"],"ᬼ","ᭂ",["᭫","᭳"],["ᮀ","ᮁ"],["ᮢ","ᮥ"],["ᮨ","ᮩ"],["᮫","ᮭ"],"᯦",["ᯨ","ᯩ"],"ᯭ",["ᯯ","ᯱ"],["ᰬ","ᰳ"],["ᰶ","᰷"],["᳐","᳒"],["᳔","᳠"],["᳢","᳨"],"᳭","᳴",["᳸","᳹"],["᷀","᷵"],["᷼","᷿"],["⃐","⃜"],"⃡",["⃥","⃰"],["⳯","⳱"],"⵿",["ⷠ","ⷿ"],["〪","〭"],["゙","゚"],"꙯",["ꙴ","꙽"],["ꚞ","ꚟ"],["꛰","꛱"],"ꠂ","꠆","ꠋ",["ꠥ","ꠦ"],"꣄",["꣠","꣱"],["ꤦ","꤭"],["ꥇ","ꥑ"],["ꦀ","ꦂ"],"꦳",["ꦶ","ꦹ"],"ꦼ","ꧥ",["ꨩ","ꨮ"],["ꨱ","ꨲ"],["ꨵ","ꨶ"],"ꩃ","ꩌ","ꩼ","ꪰ",["ꪲ","ꪴ"],["ꪷ","ꪸ"],["ꪾ","꪿"],"꫁",["ꫬ","ꫭ"],"꫶","ꯥ","ꯨ","꯭","ﬞ",["︀","️"],["︠","︯"]],!1,!1),He=at([["0","9"],["٠","٩"],["۰","۹"],["߀","߉"],["०","९"],["০","৯"],["੦","੯"],["૦","૯"],["୦","୯"],["௦","௯"],["౦","౯"],["೦","೯"],["൦","൯"],["෦","෯"],["๐","๙"],["໐","໙"],["༠","༩"],["၀","၉"],["႐","႙"],["០","៩"],["᠐","᠙"],["᥆","᥏"],["᧐","᧙"],["᪀","᪉"],["᪐","᪙"],["᭐","᭙"],["᮰","᮹"],["᱀","᱉"],["᱐","᱙"],["꘠","꘩"],["꣐","꣙"],["꤀","꤉"],["꧐","꧙"],["꧰","꧹"],["꩐","꩙"],["꯰","꯹"],["0","9"]],!1,!1),ze=at([["ᛮ","ᛰ"],["Ⅰ","ↂ"],["ↅ","ↈ"],"〇",["〡","〩"],["〸","〺"],["ꛦ","ꛯ"]],!1,!1),We=at(["_",["‿","⁀"],"⁔",["︳","︴"],["﹍","﹏"],"_"],!1,!1),Ve=at([" "," "," ",[" "," "]," "," "," "],!1,!1),Ye=nt(";",!1),Qe=0,Je=0,Xe=[{line:1,column:1}],Ze=0,Ke=[],et=0;if("startRule"in t){if(!(t.startRule in o))throw new Error("Can't start parsing from rule \""+t.startRule+'".');s=o[t.startRule]}function tt(){return ut(Je,Qe)}function rt(e,t){throw function(e,t){return new peg$SyntaxError(e,null,null,t)}(e,t=void 0!==t?t:ut(Je,Qe))}function nt(e,t){return{type:"literal",text:e,ignoreCase:t}}function at(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function ot(e){return{type:"other",description:e}}function st(t){var r,n=Xe[t];if(n)return n;for(r=t-1;!Xe[r];)r--;for(n={line:(n=Xe[r]).line,column:n.column};rZe&&(Ze=Qe,Ke=[]),Ke.push(e))}function ct(){var t,r,a,o,s,c;if(t=Qe,Ut(),r=Qe,a=function(){var t,r,a,o,s;return t=Qe,123===e.charCodeAt(Qe)?(r=u,Qe++):(r=n,0===et&&it(B)),r!==n&&(a=jt())!==n?(125===e.charCodeAt(Qe)?(o=i,Qe++):(o=n,0===et&&it(D)),o!==n&&qt()!==n?(Je=t,t={type:"top_level_initializer",code:(s=a)[0],codeLocation:s[1],location:tt()}):(Qe=t,t=n)):(Qe=t,t=n),t}(),a!==n?(o=Ut(),r=a):(Qe=r,r=n),r===n&&(r=null),a=Qe,o=function(){var e,t,r;return e=Qe,(t=jt())!==n&&qt()!==n?(Je=e,e={type:"initializer",code:(r=t)[0],codeLocation:r[1],location:tt()}):(Qe=e,e=n),e}(),o!==n?(s=Ut(),a=o):(Qe=a,a=n),a===n&&(a=null),o=[],s=Qe,(c=lt())!==n?(Ut(),s=c):(Qe=s,s=n),s!==n)for(;s!==n;)o.push(s),s=Qe,(c=lt())!==n?(Ut(),s=c):(Qe=s,s=n);else o=n;return o!==n?(Je=t,t={type:"grammar",topLevelInitializer:r,initializer:a,rules:o,location:tt()}):(Qe=t,t=n),t}function lt(){var t,r,a,o,s;return t=Qe,(r=_t())!==n?(Ut(),a=Qe,(o=wt())!==n?(Ut(),a=o):(Qe=a,a=n),a===n&&(a=null),61===e.charCodeAt(Qe)?(o="=",Qe++):(o=n,0===et&&it(P)),o!==n?(Ut(),(s=pt())!==n&&qt()!==n?(Je=t,t=function(e,t,r){return{type:"rule",name:e[0],nameLocation:e[1],expression:null!==t?{type:"named",name:t,expression:r,location:tt()}:r,location:tt()}}(r,a,s)):(Qe=t,t=n)):(Qe=t,t=n)):(Qe=t,t=n),t}function pt(){var t,r,a,o,s,u,i,c;if(t=Qe,(r=ft())!==n){for(a=[],o=Qe,Ut(),47===e.charCodeAt(Qe)?(s="/",Qe++):(s=n,0===et&&it(T)),s!==n?(Ut(),(u=ft())!==n?o=u:(Qe=o,o=n)):(Qe=o,o=n);o!==n;)a.push(o),o=Qe,Ut(),47===e.charCodeAt(Qe)?(s="/",Qe++):(s=n,0===et&&it(T)),s!==n?(Ut(),(u=ft())!==n?o=u:(Qe=o,o=n)):(Qe=o,o=n);Je=t,i=r,t=(c=a).length>0?{type:"choice",alternatives:[i].concat(c),location:tt()}:i}else Qe=t,t=n;return t}function ft(){var e,t,r,a,o,s;return e=Qe,t=function(){var e,t,r,a,o,s,u;if(e=Qe,(t=dt())!==n){for(r=[],a=Qe,Ut(),(o=dt())!==n?a=o:(Qe=a,a=n);a!==n;)r.push(a),a=Qe,Ut(),(o=dt())!==n?a=o:(Qe=a,a=n);Je=e,s=t,e=(u=r).length>0||"labeled"===s.type&&s.pick?{type:"sequence",elements:[s].concat(u),location:tt()}:s}else Qe=e,e=n;return e}(),t!==n?(r=Qe,Ut(),(a=jt())!==n?r=a:(Qe=r,r=n),r===n&&(r=null),Je=e,o=t,e=null!==(s=r)?{type:"action",expression:o,code:s[0],codeLocation:s[1],location:tt()}:o):(Qe=e,e=n),e}function dt(){var t,r,a,o,s,u,i;return t=Qe,r=function(){var t,r;return t=Qe,64===e.charCodeAt(Qe)?(r="@",Qe++):(r=n,0===et&&it(R)),r!==n&&(Je=t,r=tt()),r}(),r!==n?((a=ht())===n&&(a=null),(o=gt())!==n?(Je=t,s=r,u=a,(i=o).type.startsWith("semantic_")&&rt('"@" cannot be used on a semantic predicate',s),t={type:"labeled",label:null!==u?u[0]:null,labelLocation:null!==u?u[1]:s,pick:!0,expression:i,location:tt()}):(Qe=t,t=n)):(Qe=t,t=n),t===n&&(t=Qe,(r=ht())!==n?(a=Ut(),(o=gt())!==n?(Je=t,t=function(e,t){return{type:"labeled",label:e[0],labelLocation:e[1],expression:t,location:tt()}}(r,o)):(Qe=t,t=n)):(Qe=t,t=n),t===n&&(t=gt())),t}function ht(){var t,r,a,o;return t=Qe,(r=_t())!==n?(Ut(),58===e.charCodeAt(Qe)?(a=":",Qe++):(a=n,0===et&&it(L)),a!==n?(Je=t,o=r,Gt.indexOf(o[0])>=0&&rt("Label can't be a reserved word \"".concat(o[0],'"'),o[1]),t=o):(Qe=t,t=n)):(Qe=t,t=n),t}function gt(){var t,r,a,o;return t=Qe,r=function(){var t;return 36===e.charCodeAt(Qe)?(t="$",Qe++):(t=n,0===et&&it(O)),t===n&&(38===e.charCodeAt(Qe)?(t="&",Qe++):(t=n,0===et&&it(M)),t===n&&(33===e.charCodeAt(Qe)?(t="!",Qe++):(t=n,0===et&&it(k)))),t}(),r!==n?(Ut(),(a=mt())!==n?(Je=t,o=a,t={type:OPS_TO_PREFIXED_TYPES[r],expression:o,location:tt()}):(Qe=t,t=n)):(Qe=t,t=n),t===n&&(t=mt()),t}function mt(){var t,r,a,o;return t=Qe,(r=$t())!==n?(Ut(),a=function(){var t;return 63===e.charCodeAt(Qe)?(t="?",Qe++):(t=n,0===et&&it(I)),t===n&&(42===e.charCodeAt(Qe)?(t="*",Qe++):(t=n,0===et&&it(j)),t===n&&(43===e.charCodeAt(Qe)?(t="+",Qe++):(t=n,0===et&&it(N)))),t}(),a!==n?(Je=t,o=r,t={type:OPS_TO_SUFFIXED_TYPES[a],expression:o,location:tt()}):(Qe=t,t=n)):(Qe=t,t=n),t===n&&(t=$t()),t}function $t(){var t,r,a,o,s;return t=function(){var t,r,a;return et++,t=Qe,(r=wt())!==n?(105===e.charCodeAt(Qe)?(a="i",Qe++):(a=n,0===et&&it(he)),a===n&&(a=null),Je=t,t={type:"literal",value:r,ignoreCase:null!==a,location:tt()}):(Qe=t,t=n),et--,t===n&&(r=n,0===et&&it(de)),t}(),t===n&&(t=function(){var t,r,a,o,s,u,i,c;if(et++,t=Qe,91===e.charCodeAt(Qe)?(r="[",Qe++):(r=n,0===et&&it(be)),r!==n){for(94===e.charCodeAt(Qe)?(a="^",Qe++):(a=n,0===et&&it(xe)),a===n&&(a=null),o=[],(s=Pt())===n&&(s=Tt());s!==n;)o.push(s),(s=Pt())===n&&(s=Tt());93===e.charCodeAt(Qe)?(s="]",Qe++):(s=n,0===et&&it(Ee)),s!==n?(105===e.charCodeAt(Qe)?(u="i",Qe++):(u=n,0===et&&it(he)),u===n&&(u=null),Je=t,i=a,c=u,t={type:"class",parts:o.filter((function(e){return""!==e})),inverted:null!==i,ignoreCase:null!==c,location:tt()}):(Qe=t,t=n)}else Qe=t,t=n;return et--,t===n&&(r=n,0===et&&it(Ae)),t}(),t===n&&(t=function(){var t,r;return t=Qe,46===e.charCodeAt(Qe)?(r=".",Qe++):(r=n,0===et&&it(Le)),r!==n&&(Je=t,r={type:"any",location:tt()}),r}(),t===n&&(t=function(){var t,r,a,o,s,u,i;return t=Qe,(r=_t())!==n?(a=Qe,et++,o=Qe,s=Ut(),u=Qe,(i=wt())!==n?u=i=[i,Ut()]:(Qe=u,u=n),u===n&&(u=null),61===e.charCodeAt(Qe)?(i="=",Qe++):(i=n,0===et&&it(P)),i!==n?o=s=[s,u,i]:(Qe=o,o=n),et--,o===n?a=void 0:(Qe=a,a=n),a!==n?(Je=t,t=function(e){return{type:"rule_ref",name:e[0],location:tt()}}(r)):(Qe=t,t=n)):(Qe=t,t=n),t}(),t===n&&(t=function(){var t,r,a,o;return t=Qe,r=function(){var t;return 38===e.charCodeAt(Qe)?(t="&",Qe++):(t=n,0===et&&it(M)),t===n&&(33===e.charCodeAt(Qe)?(t="!",Qe++):(t=n,0===et&&it(k))),t}(),r!==n?(Ut(),(a=jt())!==n?(Je=t,o=a,t={type:OPS_TO_SEMANTIC_PREDICATE_TYPES[r],code:o[0],codeLocation:o[1],location:tt()}):(Qe=t,t=n)):(Qe=t,t=n),t}(),t===n&&(t=Qe,40===e.charCodeAt(Qe)?(r="(",Qe++):(r=n,0===et&&it(U)),r!==n?(Ut(),(a=pt())!==n?(Ut(),41===e.charCodeAt(Qe)?(o=")",Qe++):(o=n,0===et&&it(q)),o!==n?(Je=t,t="labeled"===(s=a).type||"sequence"===s.type?{type:"group",expression:s,location:tt()}:s):(Qe=t,t=n)):(Qe=t,t=n)):(Qe=t,t=n)))))),t}function At(){var t;return e.length>Qe?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(G)),t}function bt(){var t;return et++,9===e.charCodeAt(Qe)?(t="\t",Qe++):(t=n,0===et&&it(z)),t===n&&(11===e.charCodeAt(Qe)?(t="\v",Qe++):(t=n,0===et&&it(W)),t===n&&(12===e.charCodeAt(Qe)?(t="\f",Qe++):(t=n,0===et&&it(V)),t===n&&(32===e.charCodeAt(Qe)?(t=" ",Qe++):(t=n,0===et&&it(Y)),t===n&&(160===e.charCodeAt(Qe)?(t=" ",Qe++):(t=n,0===et&&it(Q)),t===n&&(65279===e.charCodeAt(Qe)?(t="\ufeff",Qe++):(t=n,0===et&&it(J)),t===n&&(t=function(){var t;return w.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(Ve)),t}())))))),et--,t===n&&0===et&&it(H),t}function xt(){var t;return h.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(X)),t}function Et(){var t;return et++,10===e.charCodeAt(Qe)?(t="\n",Qe++):(t=n,0===et&&it(K)),t===n&&("\r\n"===e.substr(Qe,2)?(t="\r\n",Qe+=2):(t=n,0===et&&it(ee)),t===n&&(13===e.charCodeAt(Qe)?(t="\r",Qe++):(t=n,0===et&&it(te)),t===n&&(8232===e.charCodeAt(Qe)?(t="\u2028",Qe++):(t=n,0===et&&it(re)),t===n&&(8233===e.charCodeAt(Qe)?(t="\u2029",Qe++):(t=n,0===et&&it(ne)))))),et--,t===n&&0===et&&it(Z),t}function vt(){var t;return et++,(t=function(){var t,r,a,o,s,u;if(t=Qe,e.substr(Qe,2)===c?(r=c,Qe+=2):(r=n,0===et&&it(oe)),r!==n){for(a=[],o=Qe,s=Qe,et++,e.substr(Qe,2)===l?(u=l,Qe+=2):(u=n,0===et&&it(se)),et--,u===n?s=void 0:(Qe=s,s=n),s!==n&&(u=At())!==n?o=s=[s,u]:(Qe=o,o=n);o!==n;)a.push(o),o=Qe,s=Qe,et++,e.substr(Qe,2)===l?(u=l,Qe+=2):(u=n,0===et&&it(se)),et--,u===n?s=void 0:(Qe=s,s=n),s!==n&&(u=At())!==n?o=s=[s,u]:(Qe=o,o=n);e.substr(Qe,2)===l?(o=l,Qe+=2):(o=n,0===et&&it(se)),o!==n?t=r=[r,a,o]:(Qe=t,t=n)}else Qe=t,t=n;return t}())===n&&(t=yt()),et--,t===n&&0===et&&it(ae),t}function Ct(){var t,r,a,o,s,u;if(t=Qe,e.substr(Qe,2)===c?(r=c,Qe+=2):(r=n,0===et&&it(oe)),r!==n){for(a=[],o=Qe,s=Qe,et++,e.substr(Qe,2)===l?(u=l,Qe+=2):(u=n,0===et&&it(se)),u===n&&(u=xt()),et--,u===n?s=void 0:(Qe=s,s=n),s!==n&&(u=At())!==n?o=s=[s,u]:(Qe=o,o=n);o!==n;)a.push(o),o=Qe,s=Qe,et++,e.substr(Qe,2)===l?(u=l,Qe+=2):(u=n,0===et&&it(se)),u===n&&(u=xt()),et--,u===n?s=void 0:(Qe=s,s=n),s!==n&&(u=At())!==n?o=s=[s,u]:(Qe=o,o=n);e.substr(Qe,2)===l?(o=l,Qe+=2):(o=n,0===et&&it(se)),o!==n?t=r=[r,a,o]:(Qe=t,t=n)}else Qe=t,t=n;return t}function yt(){var t,r,a,o,s,u;if(t=Qe,"//"===e.substr(Qe,2)?(r="//",Qe+=2):(r=n,0===et&&it(ue)),r!==n){for(a=[],o=Qe,s=Qe,et++,u=xt(),et--,u===n?s=void 0:(Qe=s,s=n),s!==n&&(u=At())!==n?o=s=[s,u]:(Qe=o,o=n);o!==n;)a.push(o),o=Qe,s=Qe,et++,u=xt(),et--,u===n?s=void 0:(Qe=s,s=n),s!==n&&(u=At())!==n?o=s=[s,u]:(Qe=o,o=n);t=r=[r,a]}else Qe=t,t=n;return t}function _t(){var e,t,r,a;if(et++,e=Qe,(t=St())!==n){for(r=[],a=Ft();a!==n;)r.push(a),a=Ft();Je=e,e=[t+r.join(""),tt()]}else Qe=e,e=n;return et--,e===n&&(t=n,0===et&&it(ie)),e}function St(){var t,r,a;return(t=function(){var t;return(t=function(){var t;return v.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(Ue)),t}())===n&&(t=function(){var t;return A.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(ke)),t}())===n&&(t=function(){var t;return E.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(Ne)),t}())===n&&(t=function(){var t;return b.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(Ie)),t}())===n&&(t=function(){var t;return x.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(je)),t}())===n&&(t=function(){var t;return S.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(ze)),t}()),t}())===n&&(36===e.charCodeAt(Qe)?(t="$",Qe++):(t=n,0===et&&it(O)),t===n&&(95===e.charCodeAt(Qe)?(t="_",Qe++):(t=n,0===et&&it(ce)),t===n&&(t=Qe,92===e.charCodeAt(Qe)?(r=p,Qe++):(r=n,0===et&&it(le)),r!==n&&(a=Mt())!==n?t=a:(Qe=t,t=n)))),t}function Ft(){var t;return(t=St())===n&&(t=function(){var t;return(t=function(){var t;return y.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(Ge)),t}())===n&&(t=function(){var t;return C.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(qe)),t}()),t}())===n&&(t=function(){var t;return _.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(He)),t}())===n&&(t=function(){var t;return F.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(We)),t}())===n&&(8204===e.charCodeAt(Qe)?(t="‌",Qe++):(t=n,0===et&&it(pe)),t===n&&(8205===e.charCodeAt(Qe)?(t="‍",Qe++):(t=n,0===et&&it(fe)))),t}function wt(){var t,r,a,o;if(et++,t=Qe,34===e.charCodeAt(Qe)?(r=f,Qe++):(r=n,0===et&&it(me)),r!==n){for(a=[],o=Bt();o!==n;)a.push(o),o=Bt();34===e.charCodeAt(Qe)?(o=f,Qe++):(o=n,0===et&&it(me)),o!==n?(Je=t,t=a.join("")):(Qe=t,t=n)}else Qe=t,t=n;if(t===n)if(t=Qe,39===e.charCodeAt(Qe)?(r=d,Qe++):(r=n,0===et&&it($e)),r!==n){for(a=[],o=Dt();o!==n;)a.push(o),o=Dt();39===e.charCodeAt(Qe)?(o=d,Qe++):(o=n,0===et&&it($e)),o!==n?(Je=t,t=a.join("")):(Qe=t,t=n)}else Qe=t,t=n;return et--,t===n&&(r=n,0===et&&it(ge)),t}function Bt(){var t,r,a,o;return t=Qe,r=Qe,a=Qe,et++,34===e.charCodeAt(Qe)?(o=f,Qe++):(o=n,0===et&&it(me)),o===n&&(92===e.charCodeAt(Qe)?(o=p,Qe++):(o=n,0===et&&it(le)),o===n&&(o=xt())),et--,o===n?a=void 0:(Qe=a,a=n),a!==n&&(o=At())!==n?r=a=[a,o]:(Qe=r,r=n),(t=r!==n?e.substring(t,Qe):r)===n&&(t=Qe,92===e.charCodeAt(Qe)?(r=p,Qe++):(r=n,0===et&&it(le)),r!==n&&(a=Lt())!==n?t=a:(Qe=t,t=n),t===n&&(t=Rt())),t}function Dt(){var t,r,a,o;return t=Qe,r=Qe,a=Qe,et++,39===e.charCodeAt(Qe)?(o=d,Qe++):(o=n,0===et&&it($e)),o===n&&(92===e.charCodeAt(Qe)?(o=p,Qe++):(o=n,0===et&&it(le)),o===n&&(o=xt())),et--,o===n?a=void 0:(Qe=a,a=n),a!==n&&(o=At())!==n?r=a=[a,o]:(Qe=r,r=n),(t=r!==n?e.substring(t,Qe):r)===n&&(t=Qe,92===e.charCodeAt(Qe)?(r=p,Qe++):(r=n,0===et&&it(le)),r!==n&&(a=Lt())!==n?t=a:(Qe=t,t=n),t===n&&(t=Rt())),t}function Pt(){var t,r,a,o,s,u;return t=Qe,(r=Tt())!==n?(45===e.charCodeAt(Qe)?(a="-",Qe++):(a=n,0===et&&it(ve)),a!==n&&(o=Tt())!==n?(Je=t,u=o,(s=r).charCodeAt(0)>u.charCodeAt(0)&&rt("Invalid character range: "+e.substring(Je,Qe)+"."),t=[s,u]):(Qe=t,t=n)):(Qe=t,t=n),t}function Tt(){var t,r,a,o;return t=Qe,r=Qe,a=Qe,et++,93===e.charCodeAt(Qe)?(o="]",Qe++):(o=n,0===et&&it(Ee)),o===n&&(92===e.charCodeAt(Qe)?(o=p,Qe++):(o=n,0===et&&it(le)),o===n&&(o=xt())),et--,o===n?a=void 0:(Qe=a,a=n),a!==n&&(o=At())!==n?r=a=[a,o]:(Qe=r,r=n),(t=r!==n?e.substring(t,Qe):r)===n&&(t=Qe,92===e.charCodeAt(Qe)?(r=p,Qe++):(r=n,0===et&&it(le)),r!==n&&(a=Lt())!==n?t=a:(Qe=t,t=n),t===n&&(t=Rt())),t}function Rt(){var t,r;return t=Qe,92===e.charCodeAt(Qe)?(r=p,Qe++):(r=n,0===et&&it(le)),r!==n&&Et()!==n?(Je=t,t=""):(Qe=t,t=n),t}function Lt(){var t,r,a,o;return t=function(){var t;return(t=Ot())===n&&(t=function(){var t,r,a,o;return t=Qe,r=Qe,a=Qe,et++,o=function(){var t;return(t=Ot())===n&&(t=kt())===n&&(120===e.charCodeAt(Qe)?(t="x",Qe++):(t=n,0===et&&it(De)),t===n&&(117===e.charCodeAt(Qe)?(t="u",Qe++):(t=n,0===et&&it(Pe)))),t}(),o===n&&(o=xt()),et--,o===n?a=void 0:(Qe=a,a=n),a!==n&&(o=At())!==n?r=a=[a,o]:(Qe=r,r=n),t=r!==n?e.substring(t,Qe):r}()),t}(),t===n&&(t=Qe,48===e.charCodeAt(Qe)?(r="0",Qe++):(r=n,0===et&&it(Ce)),r!==n?(a=Qe,et++,o=kt(),et--,o===n?a=void 0:(Qe=a,a=n),a!==n?(Je=t,t="\0"):(Qe=t,t=n)):(Qe=t,t=n),t===n&&(t=function(){var t,r,a,o,s,u,i;return t=Qe,120===e.charCodeAt(Qe)?(r="x",Qe++):(r=n,0===et&&it(De)),r!==n?(a=Qe,o=Qe,(s=It())!==n&&(u=It())!==n?o=s=[s,u]:(Qe=o,o=n),(a=o!==n?e.substring(a,Qe):o)!==n?(Je=t,i=a,t=String.fromCharCode(parseInt(i,16))):(Qe=t,t=n)):(Qe=t,t=n),t}(),t===n&&(t=Mt()))),t}function Ot(){var t,r;return 39===e.charCodeAt(Qe)?(t=d,Qe++):(t=n,0===et&&it($e)),t===n&&(34===e.charCodeAt(Qe)?(t=f,Qe++):(t=n,0===et&&it(me)),t===n&&(92===e.charCodeAt(Qe)?(t=p,Qe++):(t=n,0===et&&it(le)),t===n&&(t=Qe,98===e.charCodeAt(Qe)?(r="b",Qe++):(r=n,0===et&&it(ye)),r!==n&&(Je=t,r="\b"),(t=r)===n&&(t=Qe,102===e.charCodeAt(Qe)?(r="f",Qe++):(r=n,0===et&&it(_e)),r!==n&&(Je=t,r="\f"),(t=r)===n&&(t=Qe,110===e.charCodeAt(Qe)?(r="n",Qe++):(r=n,0===et&&it(Se)),r!==n&&(Je=t,r="\n"),(t=r)===n&&(t=Qe,114===e.charCodeAt(Qe)?(r="r",Qe++):(r=n,0===et&&it(Fe)),r!==n&&(Je=t,r="\r"),(t=r)===n&&(t=Qe,116===e.charCodeAt(Qe)?(r="t",Qe++):(r=n,0===et&&it(we)),r!==n&&(Je=t,r="\t"),(t=r)===n&&(t=Qe,118===e.charCodeAt(Qe)?(r="v",Qe++):(r=n,0===et&&it(Be)),r!==n&&(Je=t,r="\v"),t=r)))))))),t}function Mt(){var t,r,a,o,s,u,i,c,l;return t=Qe,117===e.charCodeAt(Qe)?(r="u",Qe++):(r=n,0===et&&it(Pe)),r!==n?(a=Qe,o=Qe,(s=It())!==n&&(u=It())!==n&&(i=It())!==n&&(c=It())!==n?o=s=[s,u,i,c]:(Qe=o,o=n),(a=o!==n?e.substring(a,Qe):o)!==n?(Je=t,l=a,t=String.fromCharCode(parseInt(l,16))):(Qe=t,t=n)):(Qe=t,t=n),t}function kt(){var t;return g.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(Te)),t}function It(){var t;return m.test(e.charAt(Qe))?(t=e.charAt(Qe),Qe++):(t=n,0===et&&it(Re)),t}function jt(){var t,r,a,o;return et++,t=Qe,123===e.charCodeAt(Qe)?(r=u,Qe++):(r=n,0===et&&it(B)),r!==n?(a=function(){var e,t;return e=Qe,t=Nt(),Je=e,t=[t,tt()]}(),125===e.charCodeAt(Qe)?(o=i,Qe++):(o=n,0===et&&it(D)),o!==n?t=a:(Qe=t,t=n)):(Qe=t,t=n),et--,t===n&&(r=n,0===et&&it(Oe)),t}function Nt(){var t,r,a,o,s,c;if(t=Qe,r=[],a=[],o=Qe,s=Qe,et++,$.test(e.charAt(Qe))?(c=e.charAt(Qe),Qe++):(c=n,0===et&&it(Me)),et--,c===n?s=void 0:(Qe=s,s=n),s!==n&&(c=At())!==n?o=s=[s,c]:(Qe=o,o=n),o!==n)for(;o!==n;)a.push(o),o=Qe,s=Qe,et++,$.test(e.charAt(Qe))?(c=e.charAt(Qe),Qe++):(c=n,0===et&&it(Me)),et--,c===n?s=void 0:(Qe=s,s=n),s!==n&&(c=At())!==n?o=s=[s,c]:(Qe=o,o=n);else a=n;for(a===n&&(a=Qe,123===e.charCodeAt(Qe)?(o=u,Qe++):(o=n,0===et&&it(B)),o!==n?(s=Nt(),125===e.charCodeAt(Qe)?(c=i,Qe++):(c=n,0===et&&it(D)),c!==n?a=o=[o,s,c]:(Qe=a,a=n)):(Qe=a,a=n));a!==n;){if(r.push(a),a=[],o=Qe,s=Qe,et++,$.test(e.charAt(Qe))?(c=e.charAt(Qe),Qe++):(c=n,0===et&&it(Me)),et--,c===n?s=void 0:(Qe=s,s=n),s!==n&&(c=At())!==n?o=s=[s,c]:(Qe=o,o=n),o!==n)for(;o!==n;)a.push(o),o=Qe,s=Qe,et++,$.test(e.charAt(Qe))?(c=e.charAt(Qe),Qe++):(c=n,0===et&&it(Me)),et--,c===n?s=void 0:(Qe=s,s=n),s!==n&&(c=At())!==n?o=s=[s,c]:(Qe=o,o=n);else a=n;a===n&&(a=Qe,123===e.charCodeAt(Qe)?(o=u,Qe++):(o=n,0===et&&it(B)),o!==n?(s=Nt(),125===e.charCodeAt(Qe)?(c=i,Qe++):(c=n,0===et&&it(D)),c!==n?a=o=[o,s,c]:(Qe=a,a=n)):(Qe=a,a=n))}return e.substring(t,Qe)}function Ut(){var e,t;for(e=[],(t=bt())===n&&(t=Et())===n&&(t=vt());t!==n;)e.push(t),(t=bt())===n&&(t=Et())===n&&(t=vt());return e}function qt(){var t,r,a,o;return t=Qe,r=Ut(),59===e.charCodeAt(Qe)?(a=";",Qe++):(a=n,0===et&&it(Ye)),a!==n?t=r=[r,a]:(Qe=t,t=n),t===n&&(t=Qe,r=function(){var e,t;for(e=[],(t=bt())===n&&(t=Ct());t!==n;)e.push(t),(t=bt())===n&&(t=Ct());return e}(),(a=yt())===n&&(a=null),(o=Et())!==n?t=r=[r,a,o]:(Qe=t,t=n),t===n&&(t=Qe,r=Ut(),a=function(){var t,r;return t=Qe,et++,e.length>Qe?(r=e.charAt(Qe),Qe++):(r=n,0===et&&it(G)),et--,r===n?t=void 0:(Qe=t,t=n),t}(),a!==n?t=r=[r,a]:(Qe=t,t=n))),t}var Gt=t.reservedWords||[];if((r=s())!==n&&Qe===e.length)return r;throw r!==n&&Qe0){for(t=1,r=1;t start -> leftRecursion -> duplicatedRule)"])}}))}))}));var chai$g=require$$0__default.default,peg$2=peg_1,_a$1=utils,spy$1=_a$1.spy,stub=_a$1.stub,expect$g=chai$g.expect;describe("generated parser API",(function(){describe("parse",(function(){it("parses input",(function(){var e=peg$2.generate("start = 'a'");expect$g(e.parse("a")).to.equal("a")})),it("throws an exception on syntax error",(function(){var e=peg$2.generate("start = 'a'");expect$g((function(){e.parse("b")})).to.throw()})),it("correctly describe character class in syntax error",(function(){var e=peg$2.generate("start = [123-5]");expect$g((function(){e.parse("0")})).to.throw("[123-5]")})),describe("start rule",(function(){var e=peg$2.generate(["a = 'x' { return 'a'; }","b = 'x' { return 'b'; }","c = 'x' { return 'c'; }"].join("\n"),{allowedStartRules:["b","c"]});describe("when |startRule| is not set",(function(){it("starts parsing from the first allowed rule",(function(){expect$g(e.parse("x")).to.equal("b")}))})),describe("when |startRule| is set to an allowed rule",(function(){it("starts parsing from specified rule",(function(){expect$g(e.parse("x",{startRule:"b"})).to.equal("b"),expect$g(e.parse("x",{startRule:"c"})).to.equal("c")}))})),describe("when |startRule| is set to a disallowed start rule",(function(){it("throws an exception",(function(){expect$g((function(){e.parse("x",{startRule:"a"})})).to.throw()}))}))})),describe("tracing",(function(){var e=peg$2.generate(["start = a / b","a = 'a'","b = 'b'"].join("\n"),{trace:!0});describe("default tracer",(function(){it("traces using console.log (if console is defined)",(function(){var t=["1:1-1:1 rule.enter start","1:1-1:1 rule.enter a","1:1-1:1 rule.fail a","1:1-1:1 rule.enter b","1:1-1:2 rule.match b","1:1-1:2 rule.match start"];"object"==typeof console&&stub(console,"log");try{e.parse("b"),"object"==typeof console&&(expect$g(console.log.callCount).to.equal(t.length),t.forEach((function(e,t){var r=console.log.getCall(t);expect$g(r.calledWithExactly(e)).to.equal(!0)})))}finally{"object"==typeof console&&console.log.restore()}}))})),describe("custom tracers",(function(){describe("trace",(function(){it("receives tracing events",(function(){var t=[{type:"rule.enter",rule:"start",location:{source:void 0,start:{offset:0,line:1,column:1},end:{offset:0,line:1,column:1}}},{type:"rule.enter",rule:"a",location:{source:void 0,start:{offset:0,line:1,column:1},end:{offset:0,line:1,column:1}}},{type:"rule.fail",rule:"a",location:{source:void 0,start:{offset:0,line:1,column:1},end:{offset:0,line:1,column:1}}},{type:"rule.enter",rule:"b",location:{source:void 0,start:{offset:0,line:1,column:1},end:{offset:0,line:1,column:1}}},{type:"rule.match",rule:"b",result:"b",location:{source:void 0,start:{offset:0,line:1,column:1},end:{offset:1,line:1,column:2}}},{type:"rule.match",rule:"start",result:"b",location:{source:void 0,start:{offset:0,line:1,column:1},end:{offset:1,line:1,column:2}}}],r={trace:spy$1()};e.parse("b",{tracer:r}),expect$g(r.trace.callCount).to.equal(t.length),t.forEach((function(e,t){var n=r.trace.getCall(t);expect$g(n.calledWithExactly(e)).to.equal(!0)}))}))}))}))})),it("accepts custom options",(function(){peg$2.generate("start = 'a'").parse("a",{foo:42})}))}))}));var name="peggy",version="2.0.1",description="Parser generator for JavaScript",keywords=["grammar","parser generator","PEG","PEG.js"],homepage="https://peggyjs.org/",repository="peggyjs/peggy",bugs="https://github.com/peggyjs/peggy/issues",license="MIT",author="David Majda (https://majda.cz/)",main="lib/peg.js",unpkg="browser/peggy.min.js",jsdelivr="browser/peggy.min.js",types="lib/peg.d.ts",bin={peggy:"bin/peggy.js"},scripts={clean:"rimraf build browser bin/*.map && mkdir browser",parser:"node bin/peggy.js -o lib/parser.js --format commonjs src/parser.pegjs",examples:"node bin/peggy.js -c docs/js/options.js docs/js/examples.peggy",set_version:"node ./tools/set_version",lint:"eslint . --ext js,ts,mjs",ts:"tsc --build tsconfig.json",test:"jest",benchmark:"node ./benchmark/run_bench.js",rollup:"copyfiles package.json build/ts && rollup -c",terser:"npm run terser:peggy && npm run terser:tests && npm run terser:bench","terser:peggy":"terser -c passes=2 -m --sequences 40 build/rollup/peggy.umd.js -o build/peggy.min.js","terser:tests":"terser -c passes=2 -m --sequences 40 --module build/rollup/test.umd.js -o build/test-bundle.min.js","terser:bench":"terser -c passes=2 -m --sequences 40 --module build/rollup/benchmark.umd.js -o build/benchmark-bundle.min.js",headers:"node ./tools/header.js build/peggy.min.js build/benchmark-bundle.min.js build/test-bundle.min.js",deploy:"npm run deploy:peggy && npm run deploy:tests && npm run deploy:bench",coverage:"npm run rollup && npm run parser -- -m inline && npm test","deploy:peggy":"copyfiles -f build/peggy.min.js docs/vendor/peggy/ && copyfiles -f build/peggy.min.js browser/","deploy:tests":"copyfiles -f build/test-bundle.min.js docs/js/","deploy:bench":"copyfiles -f build/benchmark-bundle.min.js docs/js/",build:"npm run build:notidy && npm run tidy","build:notidy":"npm run setup && npm run make && npm run headers && npm run lint && npm run deploy && npm run audit",setup:"npm run clean && npm run set_version",make:"npm run parser && npm run ts && npm run rollup && npm run terser && npm run examples",audit:"npm run test && npm run benchmark",tidy:"rimraf -f build",start:"browser-sync start -c .bs-config.js"},devDependencies={"@peggyjs/eslint-config":"^2.0.0","@rollup/plugin-commonjs":"^22.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-multi-entry":"^4.1.0","@rollup/plugin-node-resolve":"^13.3.0","@rollup/plugin-typescript":"^8.3.2","@types/chai":"^4.3.1","@types/jest":"^27.5.1","@types/node":"^17.0.38","@typescript-eslint/eslint-plugin":"^5.27.0","@typescript-eslint/parser":"^5.27.0","browser-sync":"^2.27.10",chai:"^4.3.6","chai-like":"^1.1.1",copyfiles:"^2.4.1",eslint:"^8.16.0",express:"4.18.1",jest:"^28.1.0",rimraf:"^3.0.2",rollup:"^2.75.4","rollup-plugin-ignore":"1.0.10","source-map":"^0.8.0-beta.0",terser:"^5.14.0","ts-jest":"^28.0.3",tsd:"^0.20.0",tslib:"^2.4.0",typescript:"^4.7.2"},dependencies={commander:"^9.3.0","source-map-generator":"0.8.0"},tsd={directory:"test/types"},engines={node:">=10"},require$$2={name:name,version:version,description:description,keywords:keywords,homepage:homepage,repository:repository,bugs:bugs,license:license,author:author,main:main,unpkg:unpkg,jsdelivr:jsdelivr,types:types,bin:bin,scripts:scripts,devDependencies:devDependencies,dependencies:dependencies,tsd:tsd,engines:engines},sourceMap={},sourceMapGenerator={},base64Vlq={},base64$2={};const intToCharMap="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");base64$2.encode=function(e){if(0<=e&&e>>=VLQ_BASE_SHIFT,n>0&&(t|=VLQ_CONTINUATION_BIT),r+=base64$1.encode(t)}while(n>0);return r};var util$4={},urlBrowser=require$$0__default$1.default.URL;const URL$1=urlBrowser;function getArg(e,t,r){if(t in e)return e[t];if(3===arguments.length)return r;throw new Error('"'+t+'" is a required argument.')}util$4.getArg=getArg;const supportsNullProto=!("__proto__"in Object.create(null));function identity(e){return e}function toSetString(e){return isProtoString(e)?"$"+e:e}function fromSetString(e){return isProtoString(e)?e.slice(1):e}function isProtoString(e){if(!e)return!1;const t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(let r=t-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function strcmp(e,t){return e===t?0:null===e?1:null===t?-1:e>t?1:-1}function compareByGeneratedPositionsInflated(e,t){let r=e.generatedLine-t.generatedLine;return 0!==r?r:(r=e.generatedColumn-t.generatedColumn,0!==r?r:(r=strcmp(e.source,t.source),0!==r?r:(r=e.originalLine-t.originalLine,0!==r?r:(r=e.originalColumn-t.originalColumn,0!==r?r:strcmp(e.name,t.name)))))}function parseSourceMapInput(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))}util$4.toSetString=supportsNullProto?identity:toSetString,util$4.fromSetString=supportsNullProto?identity:fromSetString,util$4.compareByGeneratedPositionsInflated=compareByGeneratedPositionsInflated,util$4.parseSourceMapInput=parseSourceMapInput;const PROTOCOL="http:",PROTOCOL_AND_HOST=`${PROTOCOL}//host`;function createSafeHandler(e){return t=>{const r=getURLType(t),n=buildSafeBase(t),a=new URL$1(t,n);e(a);const o=a.toString();return"absolute"===r?o:"scheme-relative"===r?o.slice(PROTOCOL.length):"path-absolute"===r?o.slice(PROTOCOL_AND_HOST.length):computeRelativeURL(n,o)}}function withBase(e,t){return new URL$1(e,t).toString()}function buildUniqueSegment(e,t){let r=0;for(;;){const n=e+r++;if(-1===t.indexOf(n))return n}}function buildSafeBase(e){const t=e.split("..").length-1,r=buildUniqueSegment("p",e);let n=`${PROTOCOL_AND_HOST}/`;for(let e=0;e0&&!n[n.length-1]&&n.pop();r.length>0&&n.length>0&&r[0]===n[0];)r.shift(),n.shift();return n.map((()=>"..")).concat(r).join("/")+t.search+t.hash}const ensureDirectory=createSafeHandler((e=>{e.pathname=e.pathname.replace(/\/?$/,"/")})),trimFilename=createSafeHandler((e=>{e.href=new URL$1(".",e.toString()).toString()})),normalize=createSafeHandler((e=>{}));function join(e,t){const r=getURLType(t),n=getURLType(e);if(e=ensureDirectory(e),"absolute"===r)return withBase(t,void 0);if("absolute"===n)return withBase(t,e);if("scheme-relative"===r)return normalize(t);if("scheme-relative"===n)return withBase(t,withBase(e,PROTOCOL_AND_HOST)).slice(PROTOCOL.length);if("path-absolute"===r)return normalize(t);if("path-absolute"===n)return withBase(t,withBase(e,PROTOCOL_AND_HOST)).slice(PROTOCOL_AND_HOST.length);const a=buildSafeBase(t+e);return computeRelativeURL(a,withBase(t,withBase(e,a)))}function relative(e,t){const r=relativeIfPossible(e,t);return"string"==typeof r?r:normalize(t)}function relativeIfPossible(e,t){if(getURLType(e)!==getURLType(t))return null;const r=buildSafeBase(e+t),n=new URL$1(e,r),a=new URL$1(t,r);try{new URL$1("",a.toString())}catch(e){return null}return a.protocol!==n.protocol||a.user!==n.user||a.password!==n.password||a.hostname!==n.hostname||a.port!==n.port?null:computeRelativeURL(n,a)}function computeSourceURL(e,t,r){e&&"path-absolute"===getURLType(t)&&(t=t.replace(/^\//,""));let n=normalize(t||"");return e&&(n=join(e,n)),r&&(n=join(trimFilename(r),n)),n}util$4.normalize=normalize,util$4.join=join,util$4.relative=relative,util$4.computeSourceURL=computeSourceURL;var arraySet={};class ArraySet$2{constructor(){this._array=[],this._set=new Map}static fromArray(e,t){const r=new ArraySet$2;for(let n=0,a=e.length;n=0)return t;throw new Error('"'+e+'" is not in the set.')}at(e){if(e>=0&&er||n==r&&o>=a||util$3.compareByGeneratedPositionsInflated(e,t)<=0}class MappingList$1{constructor(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}unsortedForEach(e,t){this._array.forEach(e,t)}add(e){generatedPositionAfter(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))}toArray(){return this._sorted||(this._array.sort(util$3.compareByGeneratedPositionsInflated),this._sorted=!0),this._array}}mappingList.MappingList=MappingList$1;const base64VLQ=base64Vlq,util$2=util$4,ArraySet$1=arraySet.ArraySet,MappingList=mappingList.MappingList;class SourceMapGenerator$1{constructor(e){e||(e={}),this._file=util$2.getArg(e,"file",null),this._sourceRoot=util$2.getArg(e,"sourceRoot",null),this._skipValidation=util$2.getArg(e,"skipValidation",!1),this._sources=new ArraySet$1,this._names=new ArraySet$1,this._mappings=new MappingList,this._sourcesContents=null}static fromSourceMap(e){const t=e.sourceRoot,r=new SourceMapGenerator$1({file:e.file,sourceRoot:t});return e.eachMapping((function(e){const n={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(n.source=e.source,null!=t&&(n.source=util$2.relative(t,n.source)),n.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(n.name=e.name)),r.addMapping(n)})),e.sources.forEach((function(n){let a=n;null!==t&&(a=util$2.relative(t,n)),r._sources.has(a)||r._sources.add(a);const o=e.sourceContentFor(n);null!=o&&r.setSourceContent(n,o)})),r}addMapping(e){const t=util$2.getArg(e,"generated"),r=util$2.getArg(e,"original",null);let n=util$2.getArg(e,"source",null),a=util$2.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,r,n,a),null!=n&&(n=String(n),this._sources.has(n)||this._sources.add(n)),null!=a&&(a=String(a),this._names.has(a)||this._names.add(a)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=r&&r.line,originalColumn:null!=r&&r.column,source:n,name:a})}setSourceContent(e,t){let r=e;null!=this._sourceRoot&&(r=util$2.relative(this._sourceRoot,r)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[util$2.toSetString(r)]=t):this._sourcesContents&&(delete this._sourcesContents[util$2.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))}applySourceMap(e,t,r){let n=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');n=e.file}const a=this._sourceRoot;null!=a&&(n=util$2.relative(a,n));const o=this._mappings.toArray().length>0?new ArraySet$1:this._sources,s=new ArraySet$1;this._mappings.unsortedForEach((function(t){if(t.source===n&&null!=t.originalLine){const n=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=n.source&&(t.source=n.source,null!=r&&(t.source=util$2.join(r,t.source)),null!=a&&(t.source=util$2.relative(a,t.source)),t.originalLine=n.line,t.originalColumn=n.column,null!=n.name&&(t.name=n.name))}const u=t.source;null==u||o.has(u)||o.add(u);const i=t.name;null==i||s.has(i)||s.add(i)}),this),this._sources=o,this._names=s,e.sources.forEach((function(t){const n=e.sourceContentFor(t);null!=n&&(null!=r&&(t=util$2.join(r,t)),null!=a&&(t=util$2.relative(a,t)),this.setSourceContent(t,n))}),this)}_validateMapping(e,t,r,n){if(t&&"number"!=typeof t.line&&"number"!=typeof t.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0&&!t&&!r&&!n);else if(!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:t,name:n}))}_serializeMappings(){let e,t,r,n,a=0,o=1,s=0,u=0,i=0,c=0,l="";const p=this._mappings.toArray();for(let f=0,d=p.length;f0){if(!util$2.compareByGeneratedPositionsInflated(t,p[f-1]))continue;e+=","}e+=base64VLQ.encode(t.generatedColumn-a),a=t.generatedColumn,null!=t.source&&(n=this._sources.indexOf(t.source),e+=base64VLQ.encode(n-c),c=n,e+=base64VLQ.encode(t.originalLine-1-u),u=t.originalLine-1,e+=base64VLQ.encode(t.originalColumn-s),s=t.originalColumn,null!=t.name&&(r=this._names.indexOf(t.name),e+=base64VLQ.encode(r-i),i=r)),l+=e}return l}_generateSourcesContent(e,t){return e.map((function(e){if(!this._sourcesContents)return null;null!=t&&(e=util$2.relative(t,e));const r=util$2.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null}),this)}toJSON(){const e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e}toString(){return JSON.stringify(this.toJSON())}}SourceMapGenerator$1.prototype._version=3,sourceMapGenerator.SourceMapGenerator=SourceMapGenerator$1;var sourceMapConsumer={},binarySearch$1={};!function(e){function t(r,n,a,o,s,u){const i=Math.floor((n-r)/2)+r,c=s(a,o[i],!0);return 0===c?i:c>0?n-i>1?t(i,n,a,o,s,u):u==e.LEAST_UPPER_BOUND?n1?t(r,i,a,o,s,u):u==e.LEAST_UPPER_BOUND?i:r<0?-1:r}e.GREATEST_LOWER_BOUND=1,e.LEAST_UPPER_BOUND=2,e.search=function(r,n,a,o){if(0===n.length)return-1;let s=t(-1,n.length,r,n,a,o||e.GREATEST_LOWER_BOUND);if(s<0)return-1;for(;s-1>=0&&0===a(n[s],n[s-1],!0);)--s;return s}}(binarySearch$1);var readWasmBrowser={exports:{}};let mappingsWasm=null;readWasmBrowser.exports=function(){if("string"==typeof mappingsWasm)return fetch(mappingsWasm).then((e=>e.arrayBuffer()));if(mappingsWasm instanceof ArrayBuffer)return Promise.resolve(mappingsWasm);throw new Error("You must provide the string URL or ArrayBuffer contents of lib/mappings.wasm by calling SourceMapConsumer.initialize({ 'lib/mappings.wasm': ... }) before using SourceMapConsumer")},readWasmBrowser.exports.initialize=e=>{mappingsWasm=e};const readWasm$1=readWasmBrowser.exports;function Mapping(){this.generatedLine=0,this.generatedColumn=0,this.lastGeneratedColumn=null,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}let cachedWasm=null;var wasm$1=function(){if(cachedWasm)return cachedWasm;const e=[];return cachedWasm=readWasm$1().then((t=>WebAssembly.instantiate(t,{env:{mapping_callback(t,r,n,a,o,s,u,i,c,l){const p=new Mapping;p.generatedLine=t+1,p.generatedColumn=r,n&&(p.lastGeneratedColumn=a-1),o&&(p.source=s,p.originalLine=u+1,p.originalColumn=i,c&&(p.name=l)),e[e.length-1](p)},start_all_generated_locations_for(){console.time("all_generated_locations_for")},end_all_generated_locations_for(){console.timeEnd("all_generated_locations_for")},start_compute_column_spans(){console.time("compute_column_spans")},end_compute_column_spans(){console.timeEnd("compute_column_spans")},start_generated_location_for(){console.time("generated_location_for")},end_generated_location_for(){console.timeEnd("generated_location_for")},start_original_location_for(){console.time("original_location_for")},end_original_location_for(){console.timeEnd("original_location_for")},start_parse_mappings(){console.time("parse_mappings")},end_parse_mappings(){console.timeEnd("parse_mappings")},start_sort_by_generated_location(){console.time("sort_by_generated_location")},end_sort_by_generated_location(){console.timeEnd("sort_by_generated_location")},start_sort_by_original_location(){console.time("sort_by_original_location")},end_sort_by_original_location(){console.timeEnd("sort_by_original_location")}}}))).then((t=>({exports:t.instance.exports,withMappingCallback:(t,r)=>{e.push(t);try{r()}finally{e.pop()}}}))).then(null,(e=>{throw cachedWasm=null,e})),cachedWasm};const util$1=util$4,binarySearch=binarySearch$1,ArraySet=arraySet.ArraySet,readWasm=readWasmBrowser.exports,wasm=wasm$1,INTERNAL=Symbol("smcInternal");class SourceMapConsumer$1{constructor(e,t){return e==INTERNAL?Promise.resolve(this):_factory(e,t)}static initialize(e){readWasm.initialize(e["lib/mappings.wasm"])}static fromSourceMap(e,t){return _factoryBSM(e,t)}static async with(e,t,r){const n=await new SourceMapConsumer$1(e,t);try{return await r(n)}finally{n.destroy()}}eachMapping(e,t,r){throw new Error("Subclasses must implement eachMapping")}allGeneratedPositionsFor(e){throw new Error("Subclasses must implement allGeneratedPositionsFor")}destroy(){throw new Error("Subclasses must implement destroy")}}SourceMapConsumer$1.prototype._version=3,SourceMapConsumer$1.GENERATED_ORDER=1,SourceMapConsumer$1.ORIGINAL_ORDER=2,SourceMapConsumer$1.GREATEST_LOWER_BOUND=1,SourceMapConsumer$1.LEAST_UPPER_BOUND=2,sourceMapConsumer.SourceMapConsumer=SourceMapConsumer$1;class BasicSourceMapConsumer extends SourceMapConsumer$1{constructor(e,t){return super(INTERNAL).then((r=>{let n=e;"string"==typeof e&&(n=util$1.parseSourceMapInput(e));const a=util$1.getArg(n,"version"),o=util$1.getArg(n,"sources").map(String),s=util$1.getArg(n,"names",[]),u=util$1.getArg(n,"sourceRoot",null),i=util$1.getArg(n,"sourcesContent",null),c=util$1.getArg(n,"mappings"),l=util$1.getArg(n,"file",null);if(a!=r._version)throw new Error("Unsupported version: "+a);return r._sourceLookupCache=new Map,r._names=ArraySet.fromArray(s.map(String),!0),r._sources=ArraySet.fromArray(o,!0),r._absoluteSources=ArraySet.fromArray(r._sources.toArray().map((function(e){return util$1.computeSourceURL(u,e,t)})),!0),r.sourceRoot=u,r.sourcesContent=i,r._mappings=c,r._sourceMapURL=t,r.file=l,r._computedColumnSpans=!1,r._mappingsPtr=0,r._wasm=null,wasm().then((e=>(r._wasm=e,r)))}))}_findSourceIndex(e){const t=this._sourceLookupCache.get(e);if("number"==typeof t)return t;const r=util$1.computeSourceURL(null,e,this._sourceMapURL);if(this._absoluteSources.has(r)){const t=this._absoluteSources.indexOf(r);return this._sourceLookupCache.set(e,t),t}const n=util$1.computeSourceURL(this.sourceRoot,e,this._sourceMapURL);if(this._absoluteSources.has(n)){const t=this._absoluteSources.indexOf(n);return this._sourceLookupCache.set(e,t),t}return-1}static fromSourceMap(e,t){return new BasicSourceMapConsumer(e.toString())}get sources(){return this._absoluteSources.toArray()}_getMappingsPtr(){return 0===this._mappingsPtr&&this._parseMappings(),this._mappingsPtr}_parseMappings(){const e=this._mappings,t=e.length,r=this._wasm.exports.allocate_mappings(t),n=new Uint8Array(this._wasm.exports.memory.buffer,r,t);for(let r=0;r{null!==t.source&&(t.source=this._absoluteSources.at(t.source),null!==t.name&&(t.name=this._names.at(t.name))),this._computedColumnSpans&&null===t.lastGeneratedColumn&&(t.lastGeneratedColumn=1/0),e.call(n,t)}),(()=>{switch(a){case SourceMapConsumer$1.GENERATED_ORDER:this._wasm.exports.by_generated_location(this._getMappingsPtr());break;case SourceMapConsumer$1.ORIGINAL_ORDER:this._wasm.exports.by_original_location(this._getMappingsPtr());break;default:throw new Error("Unknown order of iteration.")}}))}allGeneratedPositionsFor(e){let t=util$1.getArg(e,"source");const r=util$1.getArg(e,"line"),n=e.column||0;if(t=this._findSourceIndex(t),t<0)return[];if(r<1)throw new Error("Line numbers must be >= 1");if(n<0)throw new Error("Column numbers must be >= 0");const a=[];return this._wasm.withMappingCallback((e=>{let t=e.lastGeneratedColumn;this._computedColumnSpans&&null===t&&(t=1/0),a.push({line:e.generatedLine,column:e.generatedColumn,lastColumn:t})}),(()=>{this._wasm.exports.all_generated_locations_for(this._getMappingsPtr(),t,r-1,"column"in e,n)})),a}destroy(){0!==this._mappingsPtr&&(this._wasm.exports.free_mappings(this._mappingsPtr),this._mappingsPtr=0)}computeColumnSpans(){this._computedColumnSpans||(this._wasm.exports.compute_column_spans(this._getMappingsPtr()),this._computedColumnSpans=!0)}originalPositionFor(e){const t={generatedLine:util$1.getArg(e,"line"),generatedColumn:util$1.getArg(e,"column")};if(t.generatedLine<1)throw new Error("Line numbers must be >= 1");if(t.generatedColumn<0)throw new Error("Column numbers must be >= 0");let r,n=util$1.getArg(e,"bias",SourceMapConsumer$1.GREATEST_LOWER_BOUND);if(null==n&&(n=SourceMapConsumer$1.GREATEST_LOWER_BOUND),this._wasm.withMappingCallback((e=>r=e),(()=>{this._wasm.exports.original_location_for(this._getMappingsPtr(),t.generatedLine-1,t.generatedColumn,n)})),r&&r.generatedLine===t.generatedLine){let e=util$1.getArg(r,"source",null);null!==e&&(e=this._absoluteSources.at(e));let t=util$1.getArg(r,"name",null);return null!==t&&(t=this._names.at(t)),{source:e,line:util$1.getArg(r,"originalLine",null),column:util$1.getArg(r,"originalColumn",null),name:t}}return{source:null,line:null,column:null,name:null}}hasContentsOfAllSources(){return!!this.sourcesContent&&this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some((function(e){return null==e}))}sourceContentFor(e,t){if(!this.sourcesContent)return null;const r=this._findSourceIndex(e);if(r>=0)return this.sourcesContent[r];if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')}generatedPositionFor(e){let t=util$1.getArg(e,"source");if(t=this._findSourceIndex(t),t<0)return{line:null,column:null,lastColumn:null};const r={source:t,originalLine:util$1.getArg(e,"line"),originalColumn:util$1.getArg(e,"column")};if(r.originalLine<1)throw new Error("Line numbers must be >= 1");if(r.originalColumn<0)throw new Error("Column numbers must be >= 0");let n,a=util$1.getArg(e,"bias",SourceMapConsumer$1.GREATEST_LOWER_BOUND);if(null==a&&(a=SourceMapConsumer$1.GREATEST_LOWER_BOUND),this._wasm.withMappingCallback((e=>n=e),(()=>{this._wasm.exports.generated_location_for(this._getMappingsPtr(),r.source,r.originalLine-1,r.originalColumn,a)})),n&&n.source===r.source){let e=n.lastGeneratedColumn;return this._computedColumnSpans&&null===e&&(e=1/0),{line:util$1.getArg(n,"generatedLine",null),column:util$1.getArg(n,"generatedColumn",null),lastColumn:e}}return{line:null,column:null,lastColumn:null}}}BasicSourceMapConsumer.prototype.consumer=SourceMapConsumer$1,sourceMapConsumer.BasicSourceMapConsumer=BasicSourceMapConsumer;class IndexedSourceMapConsumer extends SourceMapConsumer$1{constructor(e,t){return super(INTERNAL).then((r=>{let n=e;"string"==typeof e&&(n=util$1.parseSourceMapInput(e));const a=util$1.getArg(n,"version"),o=util$1.getArg(n,"sections");if(a!=r._version)throw new Error("Unsupported version: "+a);let s={line:-1,column:0};return Promise.all(o.map((e=>{if(e.url)throw new Error("Support for url field in sections not implemented.");const r=util$1.getArg(e,"offset"),n=util$1.getArg(r,"line"),a=util$1.getArg(r,"column");if(n({generatedOffset:{generatedLine:n+1,generatedColumn:a+1},consumer:e})))}))).then((e=>(r._sections=e,r)))}))}get sources(){const e=[];for(let t=0;t=0?this._sections[t]:null,n=t>=0&&t+1=0?this._sections[t]:null,n=t>=0&&t+1{const t=r.generatedOffset.generatedLine-1,a=r.generatedOffset.generatedColumn-1;return 1===e.line&&(e.column+=a,"number"==typeof e.lastColumn&&(e.lastColumn+=a)),e.lastColumn===1/0&&n&&e.line===n.generatedOffset.generatedLine&&(e.lastColumn=n.generatedOffset.generatedColumn-2),e.line+=t,e})):[]}eachMapping(e,t,r){this._sections.forEach(((n,a)=>{const o=a+1=0;t--)this.prepend(e[t]);else{if(!e[isSourceNode]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this}walk(e){let t;for(let r=0,n=this.children.length;r0){for(t=[],r=0;r' at an index -1.\nBytecode: 42")})),it("`top`",(function(){expect$a((function(){return e.top()})).to.throw(RangeError,"Rule 'rule': The variable stack underflow: attempt to use a variable 'v' at an index -1.\nBytecode: 42")})),it("`result`",(function(){expect$a((function(){return e.result()})).to.throw(RangeError,"Rule 'rule': The variable stack is empty, can't get the result")})),it("`index`",(function(){expect$a((function(){return e.index(-2)})).to.throw(RangeError,"Rule 'rule': The variable stack overflow: attempt to get a variable at a negative index -2.\nBytecode: 42"),expect$a((function(){return e.index(0)})).to.throw(RangeError,"Rule 'rule': The variable stack underflow: attempt to use a variable 'v' at an index -1.\nBytecode: 42"),expect$a((function(){return e.index(2)})).to.throw(RangeError,"Rule 'rule': The variable stack underflow: attempt to use a variable 'v' at an index -3.\nBytecode: 42")}))})),it("`defines` returns an empty string",(function(){expect$a(e.defines()).to.equal("")}))})),it("throws an error when attempting `pop` more than `push`",(function(){var e=new Stack("rule","v","let",[42]);e.push("1"),expect$a((function(){return e.pop(3)})).to.throw(RangeError,"Rule 'rule': The variable stack underflow: attempt to use a variable 'v' at an index -2.\nBytecode: 42")})),it("returns a variable with an index 0 for `result`",(function(){var e=new Stack("rule","v","let",[]);e.push("1"),expect$a(e.result()).to.equal("v0")})),it("`defines` returns a define expression for all used variables",(function(){var e=new Stack("rule","v","let",[]);e.push("1"),e.push("2"),e.pop(),e.push("3"),expect$a(e.defines()).to.equal("let v0, v1;")})),describe("`checkedIf` method",(function(){var e;beforeEach((function(){(e=new Stack("rule","v","let",[42])).push("1")})),describe("does not throws an error",(function(){it("without the else brach",(function(){expect$a((function(){return e.checkedIf(0,(function(){}))})).to.not.throw(),expect$a((function(){return e.checkedIf(0,(function(){return e.pop()}))})).to.not.throw(),expect$a((function(){return e.checkedIf(0,(function(){return e.push("2")}))})).to.not.throw()})),describe("when the stack pointer",(function(){it("was not moving in both the arms",(function(){function t(){}function r(){e.push("1"),e.pop()}function n(){e.push("1"),e.push("2"),e.pop(2)}function a(){e.push("1"),e.pop(),e.push("2"),e.pop()}expect$a((function(){return e.checkedIf(0,t,t)})).to.not.throw(),expect$a((function(){return e.checkedIf(0,r,r)})).to.not.throw(),expect$a((function(){return e.checkedIf(0,n,n)})).to.not.throw(),expect$a((function(){return e.checkedIf(0,a,a)})).to.not.throw()})),it("increases on the same value in both the arms",(function(){expect$a((function(){return e.checkedIf(0,(function(){return e.push("1")}),(function(){return e.push("2")}))})).to.not.throw()})),it("decreases on the same value in both the arms",(function(){e.push("2"),expect$a((function(){return e.checkedIf(0,(function(){return e.pop(2)}),(function(){e.pop(),e.pop()}))})).to.not.throw()}))}))})),describe("throws an error when the stack pointer",(function(){it("was not moving in `if` and decreases in `then`",(function(){expect$a((function(){e.checkedIf(0,(function(){}),(function(){return e.pop()}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: 0, after else: -1). Bytecode: 42")})),it("decreases in `if` and was not moving in `then`",(function(){expect$a((function(){e.checkedIf(0,(function(){return e.pop()}),(function(){}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: -1, after else: 0). Bytecode: 42")})),it("was not moving in `if` and increases in `then`",(function(){expect$a((function(){e.checkedIf(0,(function(){}),(function(){return e.push("2")}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: 0, after else: 1). Bytecode: 42")})),it("increases in `if` and was not moving in `then`",(function(){expect$a((function(){e.checkedIf(0,(function(){return e.push("2")}),(function(){}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: 1, after else: 0). Bytecode: 42")})),it("decreases in `if` and increases in `then`",(function(){expect$a((function(){e.checkedIf(0,(function(){return e.pop()}),(function(){return e.push("2")}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: -1, after else: 1). Bytecode: 42")})),it("increases in `if` and decreases in `then`",(function(){expect$a((function(){e.checkedIf(0,(function(){return e.push("2")}),(function(){return e.pop()}))})).to.throw(Error,"Rule 'rule', position 0: Branches of a condition can't move the stack pointer differently (before: 0, after then: 1, after else: -1). Bytecode: 42")}))}))})),describe("`checkedLoop` method",(function(){var e;beforeEach((function(){(e=new Stack("rule","v","let",[42])).push("1")})),it("does not throws an error when the stack pointer was not moving",(function(){function t(){}function r(){e.push("1"),e.pop()}function n(){e.push("1"),e.push("2"),e.pop(2)}function a(){e.push("1"),e.pop(),e.push("2"),e.pop()}expect$a((function(){return e.checkedLoop(0,t)})).to.not.throw(),expect$a((function(){return e.checkedLoop(0,r)})).to.not.throw(),expect$a((function(){return e.checkedLoop(0,n)})).to.not.throw(),expect$a((function(){return e.checkedLoop(0,a)})).to.not.throw()})),it("throws an error when the stack pointer increases",(function(){expect$a((function(){return e.checkedLoop(0,(function(){return e.push("1")}))})).to.throw(Error,"Rule 'rule', position 0: Body of a loop can't move the stack pointer (before: 0, after: 1). Bytecode: 42")})),it("throws an error when the stack pointer decreases",(function(){expect$a((function(){return e.checkedLoop(0,(function(){return e.pop()}))})).to.throw(Error,"Rule 'rule', position 0: Body of a loop can't move the stack pointer (before: 0, after: -1). Bytecode: 42")}))}))}));var chai$9=require$$0__default.default,_a=utils$1,hex=_a.hex,stringEscape=_a.stringEscape,regexpClassEscape=_a.regexpClassEscape,base64=_a.base64,expect$9=chai$9.expect;describe("utility functions",(function(){it("hex",(function(){expect$9(hex("0")).to.equal("30"),expect$9(hex("\0")).to.equal("0"),expect$9(hex("\n")).to.equal("A"),expect$9(hex("\ufeff")).to.equal("FEFF")})),it("stringEscape",(function(){expect$9(stringEscape("abc")).to.equal("abc"),expect$9(stringEscape('\\"\0\b\t\n\v\f\r')).to.equal('\\\\\\"\\0\\b\\t\\n\\v\\f\\r'),expect$9(stringEscape("")).to.equal("\\x01\\x0F"),expect$9(stringEscape("")).to.equal("\\x10\\x1F\\x7F"),expect$9(stringEscape("Ā࿿")).to.equal("\\u0100\\u0FFF"),expect$9(stringEscape("က￿")).to.equal("\\u1000\\uFFFF")})),it("regexpClassEscape",(function(){expect$9(regexpClassEscape("\\\0\b\t\n\v\f\r")).to.equal("\\\\\\0\\b\\t\\n\\v\\f\\r"),expect$9(regexpClassEscape("/]^-")).to.equal("\\/\\]\\^\\-"),expect$9(regexpClassEscape("")).to.equal("\\x01\\x0F"),expect$9(regexpClassEscape("")).to.equal("\\x10\\x1F\\x7F"),expect$9(regexpClassEscape("Ā࿿")).to.equal("\\u0100\\u0FFF"),expect$9(regexpClassEscape("က￿")).to.equal("\\u1000\\uFFFF")})),it("base64",(function(){expect$9(base64(new Uint8Array([]))).to.equal(""),expect$9(base64(new Uint8Array([97]))).to.equal("YQ=="),expect$9(base64(new Uint8Array([97,98]))).to.equal("YWI="),expect$9(base64(new Uint8Array([97,98,99]))).to.equal("YWJj"),expect$9(base64(new Uint8Array([97,98,99,100]))).to.equal("YWJjZA=="),expect$9(base64(new Uint8Array([97,98,99,100,101]))).to.equal("YWJjZGU="),expect$9(base64(new Uint8Array([97,98,99,100,101,102]))).to.equal("YWJjZGVm")}))}));var __spreadArray=commonjsGlobal&&commonjsGlobal.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var n,a=0,o=t.length;a start)",location:{source:void 0,start:{offset:0,line:1,column:1},end:{offset:5,line:1,column:6}}})})),it("reports indirect left recursion",(function(){expect$2(pass$2).to.reportError(["start = stop","stop = start"].join("\n"),{message:"Possible infinite loop when parsing (left recursion: start -> stop -> start)",location:{source:void 0,start:{offset:0,line:1,column:1},end:{offset:5,line:1,column:6}}})})),describe("in sequences",(function(){it("reports left recursion if all preceding elements match empty string",(function(){expect$2(pass$2).to.reportError("start = '' '' '' start")})),it("doesn't report left recursion if some preceding element doesn't match empty string",(function(){expect$2(pass$2).to.not.reportError("start = 'a' '' '' start"),expect$2(pass$2).to.not.reportError("start = '' 'a' '' start"),expect$2(pass$2).to.not.reportError("start = '' '' 'a' start")})),it("reports left recursion when rule reference is wrapped in an expression",(function(){expect$2(pass$2).to.reportError("start = '' start?")})),it("computes expressions that always consume input on success correctly",(function(){expect$2(pass$2).to.reportError(["start = a start","a 'a' = ''"].join("\n")),expect$2(pass$2).to.not.reportError(["start = a start","a 'a' = 'a'"].join("\n")),expect$2(pass$2).to.reportError("start = ('' / 'a' / 'b') start"),expect$2(pass$2).to.reportError("start = ('a' / '' / 'b') start"),expect$2(pass$2).to.reportError("start = ('a' / 'b' / '') start"),expect$2(pass$2).to.not.reportError("start = ('a' / 'b' / 'c') start"),expect$2(pass$2).to.reportError("start = ('' { }) start"),expect$2(pass$2).to.not.reportError("start = ('a' { }) start"),expect$2(pass$2).to.reportError("start = ('' '' '') start"),expect$2(pass$2).to.not.reportError("start = ('a' '' '') start"),expect$2(pass$2).to.not.reportError("start = ('' 'a' '') start"),expect$2(pass$2).to.not.reportError("start = ('' '' 'a') start"),expect$2(pass$2).to.reportError("start = a:'' start"),expect$2(pass$2).to.not.reportError("start = a:'a' start"),expect$2(pass$2).to.reportError("start = $'' start"),expect$2(pass$2).to.not.reportError("start = $'a' start"),expect$2(pass$2).to.reportError("start = &'' start"),expect$2(pass$2).to.reportError("start = &'a' start"),expect$2(pass$2).to.reportError("start = !'' start"),expect$2(pass$2).to.reportError("start = !'a' start"),expect$2(pass$2).to.reportError("start = ''? start"),expect$2(pass$2).to.reportError("start = 'a'? start"),expect$2(pass$2).to.reportError("start = ''* start"),expect$2(pass$2).to.reportError("start = 'a'* start"),expect$2(pass$2).to.reportError("start = ''+ start"),expect$2(pass$2).to.not.reportError("start = 'a'+ start"),expect$2(pass$2).to.reportError("start = ('') start"),expect$2(pass$2).to.not.reportError("start = ('a') start"),expect$2(pass$2).to.reportError("start = &{ } start"),expect$2(pass$2).to.reportError("start = !{ } start"),expect$2(pass$2).to.reportError(["start = a start","a = ''"].join("\n")),expect$2(pass$2).to.not.reportError(["start = a start","a = 'a'"].join("\n")),expect$2(pass$2).to.reportError("start = '' start"),expect$2(pass$2).to.not.reportError("start = 'a' start"),expect$2(pass$2).to.not.reportError("start = [a-d] start"),expect$2(pass$2).to.not.reportError("start = . start")}))}))}));var chai$1=require$$0__default.default,helpers$1=helpers$9,pass$1=reportUndefinedRules_1;chai$1.use(helpers$1);var expect$1=chai$1.expect;describe("compiler pass |reportUndefinedRules|",(function(){it("reports undefined rules",(function(){expect$1(pass$1).to.reportError("start = undefined",{message:'Rule "undefined" is not defined',location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:17,line:1,column:18}}})}))}));var chai=require$$0__default.default,helpers=helpers$9,pass=reportInfiniteRepetition_1;chai.use(helpers);var expect=chai.expect;describe("compiler pass |reportInfiniteRepetition|",(function(){it("reports infinite loops for zero_or_more",(function(){expect(pass).to.reportError("start = ('')*",{message:"Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:13,line:1,column:14}}})})),it("reports infinite loops for one_or_more",(function(){expect(pass).to.reportError("start = ('')+",{message:"Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",location:{source:void 0,start:{offset:8,line:1,column:9},end:{offset:13,line:1,column:14}}})})),it("computes expressions that always consume input on success correctly",(function(){expect(pass).to.reportError(["start = a*","a 'a' = ''"].join("\n")),expect(pass).to.not.reportError(["start = a*","a 'a' = 'a'"].join("\n")),expect(pass).to.reportError("start = ('' / 'a' / 'b')*"),expect(pass).to.reportError("start = ('a' / '' / 'b')*"),expect(pass).to.reportError("start = ('a' / 'b' / '')*"),expect(pass).to.not.reportError("start = ('a' / 'b' / 'c')*"),expect(pass).to.reportError("start = ('' { })*"),expect(pass).to.not.reportError("start = ('a' { })*"),expect(pass).to.reportError("start = ('' '' '')*"),expect(pass).to.not.reportError("start = ('a' '' '')*"),expect(pass).to.not.reportError("start = ('' 'a' '')*"),expect(pass).to.not.reportError("start = ('' '' 'a')*"),expect(pass).to.reportError("start = (a:'')*"),expect(pass).to.not.reportError("start = (a:'a')*"),expect(pass).to.reportError("start = ($'')*"),expect(pass).to.not.reportError("start = ($'a')*"),expect(pass).to.reportError("start = (&'')*"),expect(pass).to.reportError("start = (&'a')*"),expect(pass).to.reportError("start = (!'')*"),expect(pass).to.reportError("start = (!'a')*"),expect(pass).to.reportError("start = (''?)*"),expect(pass).to.reportError("start = ('a'?)*"),expect(pass).to.reportError("start = (''*)*"),expect(pass).to.reportError("start = ('a'*)*"),expect(pass).to.reportError("start = (''+)*"),expect(pass).to.not.reportError("start = ('a'+)*"),expect(pass).to.reportError("start = ('')*"),expect(pass).to.not.reportError("start = ('a')*"),expect(pass).to.reportError("start = (&{ })*"),expect(pass).to.reportError("start = (!{ })*"),expect(pass).to.reportError(["start = a*","a = ''"].join("\n")),expect(pass).to.not.reportError(["start = a*","a = 'a'"].join("\n")),expect(pass).to.reportError("start = ''*"),expect(pass).to.not.reportError("start = 'a'*"),expect(pass).to.not.reportError("start = [a-d]*"),expect(pass).to.not.reportError("start = .*")}))})),exports.peggyVersion=peggyVersion,Object.defineProperty(exports,"__esModule",{value:!0})})); \ No newline at end of file diff --git a/docs/vendor/peggy/peggy.min.js b/docs/vendor/peggy/peggy.min.js index 0d702b2f..03efee1c 100644 --- a/docs/vendor/peggy/peggy.min.js +++ b/docs/vendor/peggy/peggy.min.js @@ -5,4 +5,4 @@ // Copyright (c) 2022- the Peggy authors // Licensed under the MIT License. -!function(u,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(u="undefined"!=typeof globalThis?globalThis:u||self).peggy=e()}(this,(function(){"use strict";var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},__extends=commonjsGlobal&&commonjsGlobal.__extends||(extendStatics=function(u,e){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(u,e){u.__proto__=e}||function(u,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(u[t]=e[t])},extendStatics(u,e)},function(u,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function t(){this.constructor=u}extendStatics(u,e),u.prototype=null===e?Object.create(e):(t.prototype=e.prototype,new t)}),extendStatics,setProtoOf=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(u,e){u.__proto__=e}||function(u,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(u[t]=e[t])},GrammarError$3=function(u){function e(t,r,n){var o=u.call(this,t)||this;return setProtoOf(o,e.prototype),o.name="GrammarError",o.location=r,void 0===n&&(n=[]),o.diagnostics=n,o.stage=null,o.problems=[["error",t,r,n]],o}return __extends(e,u),e.prototype.toString=function(){var e=u.prototype.toString.call(this);this.location&&(e+="\n at ",void 0!==this.location.source&&null!==this.location.source&&(e+="".concat(this.location.source,":")),e+="".concat(this.location.start.line,":").concat(this.location.start.column));for(var t=0,r=this.diagnostics;t0?NEVER_MATCH$1:SOMETIMES_MATCH$1}var o=visitor$9.build({rule:function(u){var e,t=0;if(void 0===u.match){u.match=SOMETIMES_MATCH$1;do{if(e=u.match,u.match=o(u.expression),++t>6)throw new GrammarError$2("Infinity cycle detected when trying to evaluate node match result",u.location)}while(e!==u.match)}return u.match},named:r,choice:function(u){return u.match=n(u.alternatives,!0)},action:r,sequence:function(u){return u.match=n(u.elements,!1)},labeled:r,text:r,simple_and:r,simple_not:function(u){return u.match=-o(u.expression)},optional:t,zero_or_more:t,one_or_more:r,group:r,semantic_and:e,semantic_not:e,rule_ref:function(e){var t=asts$6.findRule(u,e.name);return e.match=o(t)},literal:function(u){var e=0===u.value.length?ALWAYS_MATCH$1:SOMETIMES_MATCH$1;return u.match=e},class:function(u){var e=0===u.parts.length?NEVER_MATCH$1:SOMETIMES_MATCH$1;return u.match=e},any:e});o(u)}inferenceMatchResult$1.ALWAYS_MATCH=ALWAYS_MATCH$1,inferenceMatchResult$1.SOMETIMES_MATCH=SOMETIMES_MATCH$1,inferenceMatchResult$1.NEVER_MATCH=NEVER_MATCH$1;var inferenceMatchResult_1=inferenceMatchResult$1,asts$5=asts_1,op$1=opcodes_1,visitor$8=visitor_1,_a$1=inferenceMatchResult_1,ALWAYS_MATCH=_a$1.ALWAYS_MATCH,SOMETIMES_MATCH=_a$1.SOMETIMES_MATCH,NEVER_MATCH=_a$1.NEVER_MATCH;function generateBytecode$1(u){var e=[],t=[],r=[],n=[];function o(u){var e=JSON.stringify(u),t=r.findIndex((function(u){return JSON.stringify(u)===e}));return-1===t?r.push(u)-1:t}function a(u,e,t){var r={predicate:u,params:e,body:t.code,location:t.codeLocation},o=JSON.stringify(r),a=n.findIndex((function(u){return JSON.stringify(u)===o}));return-1===a?n.push(r)-1:a}function i(u){var e={};return Object.keys(u).forEach((function(t){e[t]=u[t]})),e}function s(u){for(var e=[],t=1;t1?c(SOMETIMES_MATCH,[op$1.IF_ERROR],s([op$1.POP],u(e.slice(1),t)),[]):[])}(u.alternatives,e)},action:function(u,e){var t=i(e.env),r="sequence"!==u.expression.type||0===u.expression.elements.length,n=f(u.expression,{sp:e.sp+(r?1:0),env:t,action:u}),o=0|u.expression.match,p=r&&o!==NEVER_MATCH?a(!1,Object.keys(t),u):null;return r?s([op$1.PUSH_CURR_POS],n,c(o,[op$1.IF_NOT_ERROR],s([op$1.LOAD_SAVED_POS,1],l(p,1,t,e.sp+2)),[]),[op$1.NIP]):n},sequence:function(u,e){return s([op$1.PUSH_CURR_POS],function e(t,r){if(t.length>0){var n=u.elements.length-t.length+1;return s(f(t[0],{sp:r.sp,env:r.env,pluck:r.pluck,action:null}),c(0|t[0].match,[op$1.IF_NOT_ERROR],e(t.slice(1),{sp:r.sp+1,env:r.env,pluck:r.pluck,action:r.action}),s(n>1?[op$1.POP_N,n]:[op$1.POP],[op$1.POP_CURR_POS],[op$1.PUSH_FAILED])))}if(r.pluck.length>0)return s([op$1.PLUCK,u.elements.length+1,r.pluck.length],r.pluck.map((function(u){return r.sp-u})));if(r.action){var o=a(!1,Object.keys(r.env),r.action);return s([op$1.LOAD_SAVED_POS,u.elements.length],l(o,u.elements.length+1,r.env,r.sp))}return s([op$1.WRAP,u.elements.length],[op$1.NIP])}(u.elements,{sp:e.sp+1,env:e.env,pluck:[],action:e.action}))},labeled:function(u,e){var t=e.env,r=u.label,n=e.sp+1;return r&&(t=i(e.env),e.env[u.label]=n),u.pick&&e.pluck.push(n),f(u.expression,{sp:e.sp,env:t,action:null})},text:function(u,e){return s([op$1.PUSH_CURR_POS],f(u.expression,{sp:e.sp+1,env:i(e.env),action:null}),c(0|u.match,[op$1.IF_NOT_ERROR],s([op$1.POP],[op$1.TEXT]),[op$1.NIP]))},simple_and:function(u,e){return p(u.expression,!1,e)},simple_not:function(u,e){return p(u.expression,!0,e)},optional:function(u,e){return s(f(u.expression,{sp:e.sp,env:i(e.env),action:null}),c(-(0|u.expression.match),[op$1.IF_ERROR],s([op$1.POP],[op$1.PUSH_NULL]),[]))},zero_or_more:function(u,e){var t=f(u.expression,{sp:e.sp+1,env:i(e.env),action:null});return s([op$1.PUSH_EMPTY_ARRAY],t,E(t),[op$1.POP])},one_or_more:function(u,e){var t=f(u.expression,{sp:e.sp+1,env:i(e.env),action:null});return s([op$1.PUSH_EMPTY_ARRAY],t,c(0|u.expression.match,[op$1.IF_NOT_ERROR],s(E(t),[op$1.POP]),s([op$1.POP],[op$1.POP],[op$1.PUSH_FAILED])))},group:function(u,e){return f(u.expression,{sp:e.sp,env:i(e.env),action:null})},semantic_and:function(u,e){return A(u,!1,e)},semantic_not:function(u,e){return A(u,!0,e)},rule_ref:function(e){return[op$1.RULE,asts$5.indexOfRule(u,e.name)]},literal:function(u){if(u.value.length>0){var t=0|u.match,r=t===SOMETIMES_MATCH||t===ALWAYS_MATCH&&!u.ignoreCase?(a=u.ignoreCase?u.value.toLowerCase():u.value,-1===(i=e.indexOf(a))?e.push(a)-1:i):null,n=t!==ALWAYS_MATCH?o({type:"literal",value:u.value,ignoreCase:u.ignoreCase}):null;return c(t,u.ignoreCase?[op$1.MATCH_STRING_IC,r]:[op$1.MATCH_STRING,r],u.ignoreCase?[op$1.ACCEPT_N,u.value.length]:[op$1.ACCEPT_STRING,r],[op$1.FAIL,n])}var a,i;return[op$1.PUSH_EMPTY_STRING]},class:function(u){var e=0|u.match,r=e===SOMETIMES_MATCH?function(u){var e={value:u.parts,inverted:u.inverted,ignoreCase:u.ignoreCase},r=JSON.stringify(e),n=t.findIndex((function(u){return JSON.stringify(u)===r}));return-1===n?t.push(e)-1:n}(u):null,n=e!==ALWAYS_MATCH?o({type:"class",value:u.parts,inverted:u.inverted,ignoreCase:u.ignoreCase}):null;return c(e,[op$1.MATCH_CHAR_CLASS,r],[op$1.ACCEPT_N,1],[op$1.FAIL,n])},any:function(u){var e=0|u.match,t=e!==ALWAYS_MATCH?o({type:"any"}):null;return c(e,[op$1.MATCH_ANY],[op$1.ACCEPT_N,1],[op$1.FAIL,t])}});f(u)}var generateBytecode_1=generateBytecode$1,Stack$1=function(){function u(u,e,t){this.sp=-1,this.maxSp=-1,this.varName=e,this.ruleName=u,this.type=t}return u.prototype.name=function(u){if(u<0)throw new RangeError("Rule '".concat(this.ruleName,"': The variable stack underflow: attempt to use a variable '").concat(this.varName,"' at an index ").concat(u));return this.varName+u},u.prototype.push=function(u){var e=this.name(++this.sp)+" = "+u+";";return this.sp>this.maxSp&&(this.maxSp=this.sp),e},u.prototype.pop=function(u){var e=this;return void 0!==u?(this.sp-=u,Array.from({length:u},(function(u,t){return e.name(e.sp+1+t)}))):this.name(this.sp--)},u.prototype.top=function(){return this.name(this.sp)},u.prototype.index=function(u){if(u<0)throw new RangeError("Rule '".concat(this.ruleName,"': The variable stack overflow: attempt to get a variable at a negative index ").concat(u));return this.name(this.sp-u)},u.prototype.result=function(){if(this.maxSp<0)throw new RangeError("Rule '".concat(this.ruleName,"': The variable stack is empty, can't get the result'"));return this.name(0)},u.prototype.defines=function(){var u=this;return this.maxSp<0?"":this.type+" "+Array.from({length:this.maxSp+1},(function(e,t){return u.name(t)})).join(", ")+";"},u.prototype.checkedIf=function(u,e,t){var r=this.sp;if(e(),t){var n=this.sp;if(this.sp=r,t(),n!==this.sp)throw new Error("Rule '"+this.ruleName+"', position "+u+": Branches of a condition can't move the stack pointer differently (before: "+r+", after then: "+n+", after else: "+this.sp+").")}},u.prototype.checkedLoop=function(u,e){var t=this.sp;if(e(),t!==this.sp)throw new Error("Rule '"+this.ruleName+"', position "+u+": Body of a loop can't move the stack pointer (before: "+t+", after: "+this.sp+").")},u}(),stack=Stack$1,version="2.0.1",utils={};function hex(u){return u.charCodeAt(0).toString(16).toUpperCase()}function stringEscape$1(u){return u.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\v/g,"\\v").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(u){return"\\x0"+hex(u)})).replace(/[\x10-\x1F\x7F-\xFF]/g,(function(u){return"\\x"+hex(u)})).replace(/[\u0100-\u0FFF]/g,(function(u){return"\\u0"+hex(u)})).replace(/[\u1000-\uFFFF]/g,(function(u){return"\\u"+hex(u)}))}function regexpClassEscape$1(u){return u.replace(/\\/g,"\\\\").replace(/\//g,"\\/").replace(/]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\v/g,"\\v").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(u){return"\\x0"+hex(u)})).replace(/[\x10-\x1F\x7F-\xFF]/g,(function(u){return"\\x"+hex(u)})).replace(/[\u0100-\u0FFF]/g,(function(u){return"\\u0"+hex(u)})).replace(/[\u1000-\uFFFF]/g,(function(u){return"\\u"+hex(u)}))}function base64$3(u){for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=u.length%3,r=u.length-t,n="",o=0;o>2],n+=e[(3&u[o])<<4|u[o+1]>>4],n+=e[(15&u[o+1])<<2|u[o+2]>>6],n+=e[63&u[o+2]];return 1===t?(n+=e[u[r]>>2],n+=e[(3&u[r])<<4],n+="=="):2===t&&(n+=e[u[r]>>2],n+=e[(3&u[r])<<4|u[r+1]>>4],n+=e[(15&u[r+1])<<2],n+="="),n}utils.hex=hex,utils.stringEscape=stringEscape$1,utils.regexpClassEscape=regexpClassEscape$1,utils.base64=base64$3;var sourceMap={},sourceMapGenerator={},base64Vlq={},base64$2={};const intToCharMap="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");base64$2.encode=function(u){if(0<=u&&u>>=VLQ_BASE_SHIFT,r>0&&(e|=VLQ_CONTINUATION_BIT),t+=base64$1.encode(e)}while(r>0);return t};var util$3={};function getArg(u,e,t){if(e in u)return u[e];if(3===arguments.length)return t;throw new Error('"'+e+'" is a required argument.')}util$3.getArg=getArg;const supportsNullProto=!("__proto__"in Object.create(null));function identity(u){return u}function toSetString(u){return isProtoString(u)?"$"+u:u}function fromSetString(u){return isProtoString(u)?u.slice(1):u}function isProtoString(u){if(!u)return!1;const e=u.length;if(e<9)return!1;if(95!==u.charCodeAt(e-1)||95!==u.charCodeAt(e-2)||111!==u.charCodeAt(e-3)||116!==u.charCodeAt(e-4)||111!==u.charCodeAt(e-5)||114!==u.charCodeAt(e-6)||112!==u.charCodeAt(e-7)||95!==u.charCodeAt(e-8)||95!==u.charCodeAt(e-9))return!1;for(let t=e-10;t>=0;t--)if(36!==u.charCodeAt(t))return!1;return!0}function strcmp(u,e){return u===e?0:null===u?1:null===e?-1:u>e?1:-1}function compareByGeneratedPositionsInflated(u,e){let t=u.generatedLine-e.generatedLine;return 0!==t?t:(t=u.generatedColumn-e.generatedColumn,0!==t?t:(t=strcmp(u.source,e.source),0!==t?t:(t=u.originalLine-e.originalLine,0!==t?t:(t=u.originalColumn-e.originalColumn,0!==t?t:strcmp(u.name,e.name)))))}util$3.toSetString=supportsNullProto?identity:toSetString,util$3.fromSetString=supportsNullProto?identity:fromSetString,util$3.compareByGeneratedPositionsInflated=compareByGeneratedPositionsInflated;const PROTOCOL="http:",PROTOCOL_AND_HOST=`${PROTOCOL}//host`;function createSafeHandler(u){return e=>{const t=getURLType(e),r=buildSafeBase(e),n=new URL(e,r);u(n);const o=n.toString();return"absolute"===t?o:"scheme-relative"===t?o.slice(PROTOCOL.length):"path-absolute"===t?o.slice(PROTOCOL_AND_HOST.length):computeRelativeURL(r,o)}}function withBase(u,e){return new URL(u,e).toString()}function buildUniqueSegment(u,e){let t=0;for(;;){const r=u+t++;if(-1===e.indexOf(r))return r}}function buildSafeBase(u){const e=u.split("..").length-1,t=buildUniqueSegment("p",u);let r=`${PROTOCOL_AND_HOST}/`;for(let u=0;u0&&!r[r.length-1]&&r.pop();t.length>0&&r.length>0&&t[0]===r[0];)t.shift(),r.shift();return r.map((()=>"..")).concat(t).join("/")+e.search+e.hash}const ensureDirectory=createSafeHandler((u=>{u.pathname=u.pathname.replace(/\/?$/,"/")})),normalize=createSafeHandler((u=>{}));function join(u,e){const t=getURLType(e),r=getURLType(u);if(u=ensureDirectory(u),"absolute"===t)return withBase(e,void 0);if("absolute"===r)return withBase(e,u);if("scheme-relative"===t)return normalize(e);if("scheme-relative"===r)return withBase(e,withBase(u,PROTOCOL_AND_HOST)).slice(PROTOCOL.length);if("path-absolute"===t)return normalize(e);if("path-absolute"===r)return withBase(e,withBase(u,PROTOCOL_AND_HOST)).slice(PROTOCOL_AND_HOST.length);const n=buildSafeBase(e+u);return computeRelativeURL(n,withBase(e,withBase(u,n)))}function relative(u,e){const t=relativeIfPossible(u,e);return"string"==typeof t?t:normalize(e)}function relativeIfPossible(u,e){if(getURLType(u)!==getURLType(e))return null;const t=buildSafeBase(u+e),r=new URL(u,t),n=new URL(e,t);try{new URL("",n.toString())}catch(u){return null}return n.protocol!==r.protocol||n.user!==r.user||n.password!==r.password||n.hostname!==r.hostname||n.port!==r.port?null:computeRelativeURL(r,n)}util$3.normalize=normalize,util$3.join=join,util$3.relative=relative;var arraySet={};class ArraySet$1{constructor(){this._array=[],this._set=new Map}static fromArray(u,e){const t=new ArraySet$1;for(let r=0,n=u.length;r=0)return e;throw new Error('"'+u+'" is not in the set.')}at(u){if(u>=0&&ut||r==t&&o>=n||util$2.compareByGeneratedPositionsInflated(u,e)<=0}class MappingList$1{constructor(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}unsortedForEach(u,e){this._array.forEach(u,e)}add(u){generatedPositionAfter(this._last,u)?(this._last=u,this._array.push(u)):(this._sorted=!1,this._array.push(u))}toArray(){return this._sorted||(this._array.sort(util$2.compareByGeneratedPositionsInflated),this._sorted=!0),this._array}}mappingList.MappingList=MappingList$1;const base64VLQ=base64Vlq,util$1=util$3,ArraySet=arraySet.ArraySet,MappingList=mappingList.MappingList;class SourceMapGenerator$1{constructor(u){u||(u={}),this._file=util$1.getArg(u,"file",null),this._sourceRoot=util$1.getArg(u,"sourceRoot",null),this._skipValidation=util$1.getArg(u,"skipValidation",!1),this._sources=new ArraySet,this._names=new ArraySet,this._mappings=new MappingList,this._sourcesContents=null}static fromSourceMap(u){const e=u.sourceRoot,t=new SourceMapGenerator$1({file:u.file,sourceRoot:e});return u.eachMapping((function(u){const r={generated:{line:u.generatedLine,column:u.generatedColumn}};null!=u.source&&(r.source=u.source,null!=e&&(r.source=util$1.relative(e,r.source)),r.original={line:u.originalLine,column:u.originalColumn},null!=u.name&&(r.name=u.name)),t.addMapping(r)})),u.sources.forEach((function(r){let n=r;null!=e&&(n=util$1.relative(e,r)),t._sources.has(n)||t._sources.add(n);const o=u.sourceContentFor(r);null!=o&&t.setSourceContent(r,o)})),t}addMapping(u){const e=util$1.getArg(u,"generated"),t=util$1.getArg(u,"original",null);let r=util$1.getArg(u,"source",null),n=util$1.getArg(u,"name",null);this._skipValidation||this._validateMapping(e,t,r,n),null!=r&&(r=String(r),this._sources.has(r)||this._sources.add(r)),null!=n&&(n=String(n),this._names.has(n)||this._names.add(n)),this._mappings.add({generatedLine:e.line,generatedColumn:e.column,originalLine:t&&t.line,originalColumn:t&&t.column,source:r,name:n})}setSourceContent(u,e){let t=u;null!=this._sourceRoot&&(t=util$1.relative(this._sourceRoot,t)),null!=e?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[util$1.toSetString(t)]=e):this._sourcesContents&&(delete this._sourcesContents[util$1.toSetString(t)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))}applySourceMap(u,e,t){let r=e;if(null==e){if(null==u.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');r=u.file}const n=this._sourceRoot;null!=n&&(r=util$1.relative(n,r));const o=this._mappings.toArray().length>0?new ArraySet:this._sources,a=new ArraySet;this._mappings.unsortedForEach((function(e){if(e.source===r&&null!=e.originalLine){const r=u.originalPositionFor({line:e.originalLine,column:e.originalColumn});null!=r.source&&(e.source=r.source,null!=t&&(e.source=util$1.join(t,e.source)),null!=n&&(e.source=util$1.relative(n,e.source)),e.originalLine=r.line,e.originalColumn=r.column,null!=r.name&&(e.name=r.name))}const i=e.source;null==i||o.has(i)||o.add(i);const s=e.name;null==s||a.has(s)||a.add(s)}),this),this._sources=o,this._names=a,u.sources.forEach((function(e){const r=u.sourceContentFor(e);null!=r&&(null!=t&&(e=util$1.join(t,e)),null!=n&&(e=util$1.relative(n,e)),this.setSourceContent(e,r))}),this)}_validateMapping(u,e,t,r){if(e&&"number"!=typeof e.line&&"number"!=typeof e.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(u&&"line"in u&&"column"in u&&u.line>0&&u.column>=0&&!e&&!t&&!r);else if(!(u&&"line"in u&&"column"in u&&e&&"line"in e&&"column"in e&&u.line>0&&u.column>=0&&e.line>0&&e.column>=0&&t))throw new Error("Invalid mapping: "+JSON.stringify({generated:u,source:t,original:e,name:r}))}_serializeMappings(){let u,e,t,r,n=0,o=1,a=0,i=0,s=0,c=0,l="";const p=this._mappings.toArray();for(let A=0,E=p.length;A0){if(!util$1.compareByGeneratedPositionsInflated(e,p[A-1]))continue;u+=","}u+=base64VLQ.encode(e.generatedColumn-n),n=e.generatedColumn,null!=e.source&&(r=this._sources.indexOf(e.source),u+=base64VLQ.encode(r-c),c=r,u+=base64VLQ.encode(e.originalLine-1-i),i=e.originalLine-1,u+=base64VLQ.encode(e.originalColumn-a),a=e.originalColumn,null!=e.name&&(t=this._names.indexOf(e.name),u+=base64VLQ.encode(t-s),s=t)),l+=u}return l}_generateSourcesContent(u,e){return u.map((function(u){if(!this._sourcesContents)return null;null!=e&&(u=util$1.relative(e,u));const t=util$1.toSetString(u);return Object.prototype.hasOwnProperty.call(this._sourcesContents,t)?this._sourcesContents[t]:null}),this)}toJSON(){const u={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(u.file=this._file),null!=this._sourceRoot&&(u.sourceRoot=this._sourceRoot),this._sourcesContents&&(u.sourcesContent=this._generateSourcesContent(u.sources,u.sourceRoot)),u}toString(){return JSON.stringify(this.toJSON())}}SourceMapGenerator$1.prototype._version=3,sourceMapGenerator.SourceMapGenerator=SourceMapGenerator$1;var sourceNode={};const SourceMapGenerator=sourceMapGenerator.SourceMapGenerator,util=util$3,REGEX_NEWLINE=/(\r?\n)/,NEWLINE_CODE=10,isSourceNode="$$$isSourceNode$$$";class SourceNode$1{constructor(u,e,t,r,n){this.children=[],this.sourceContents={},this.line=null==u?null:u,this.column=null==e?null:e,this.source=null==t?null:t,this.name=null==n?null:n,this[isSourceNode]=!0,null!=r&&this.add(r)}static fromStringWithSourceMap(u,e,t){const r=new SourceNode$1,n=u.split(REGEX_NEWLINE);let o=0;const a=function(){return u()+(u()||"");function u(){return o=0;e--)this.prepend(u[e]);else{if(!u[isSourceNode]&&"string"!=typeof u)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+u);this.children.unshift(u)}return this}walk(u){let e;for(let t=0,r=this.children.length;t0){for(e=[],t=0;t0&&(t.forEach((function(u){o.push("var "+u+' = require("'+stringEscape(e.dependencies[u])+'");')})),o.push("")),o.push(u,"","module.exports = "+n()+";"),o},es:function(){var t=Object.keys(e.dependencies),n=r();return n.push(""),t.length>0&&(t.forEach((function(u){n.push("import "+u+' from "'+stringEscape(e.dependencies[u])+'";')})),n.push("")),n.push(u,"","export {"," peg$SyntaxError as SyntaxError,",e.trace?" peg$DefaultTracer as DefaultTracer,":""," peg$parse as parse","};"),n},amd:function(){var o=Object.keys(e.dependencies),a="["+o.map((function(u){return e.dependencies[u]})).map((function(u){return'"'+stringEscape(u)+'"'})).join(", ")+"]",i=o.join(", ");return __spreadArray$1(__spreadArray$1([],r(),!0),["define("+a+", function("+i+") {",' "use strict";',"",u,"",t("return "+n()+";"),"});"],!1)},globals:function(){return __spreadArray$1(__spreadArray$1([],r(),!0),["(function(root) {",' "use strict";',"",u,"",t("root."+e.exportVar+" = "+n()+";"),"})(this);"],!1)},umd:function(){var o=Object.keys(e.dependencies),a=o.map((function(u){return e.dependencies[u]})),i="["+a.map((function(u){return'"'+stringEscape(u)+'"'})).join(", ")+"]",s=a.map((function(u){return'require("'+stringEscape(u)+'")'})).join(", "),c=o.join(", "),l=r();return l.push("(function(root, factory) {",' if (typeof define === "function" && define.amd) {'," define("+i+", factory);",' } else if (typeof module === "object" && module.exports) {'," module.exports = factory("+s+");"),null!==e.exportVar&&l.push(" } else {"," root."+e.exportVar+" = factory();"),l.push(" }","})(this, function("+c+") {",' "use strict";',"",u,"",t("return "+n()+";"),"});"),l}},a=o[e.format]();return new SourceNode(null,null,e.grammarSource,a.map((function(u){return u instanceof SourceNode?u:u+"\n"})))}(function(){var c=[];u.topLevelInitializer&&(c.push(s(u.topLevelInitializer)),c.push("")),c.push("function peg$subclass(child, parent) {"," function C() { this.constructor = child; }"," C.prototype = parent.prototype;"," child.prototype = new C();","}","","function peg$SyntaxError(message, expected, found, location) {"," var self = Error.call(this, message);"," // istanbul ignore next Check is a necessary evil to support older environments"," if (Object.setPrototypeOf) {"," Object.setPrototypeOf(self, peg$SyntaxError.prototype);"," }"," self.expected = expected;"," self.found = found;"," self.location = location;",' self.name = "SyntaxError";'," return self;","}","","peg$subclass(peg$SyntaxError, Error);","","function peg$padEnd(str, targetLength, padString) {",' padString = padString || " ";'," if (str.length > targetLength) { return str; }"," targetLength -= str.length;"," padString += padString.repeat(targetLength);"," return str + padString.slice(0, targetLength);","}","","peg$SyntaxError.prototype.format = function(sources) {",' var str = "Error: " + this.message;'," if (this.location) {"," var src = null;"," var k;"," for (k = 0; k < sources.length; k++) {"," if (sources[k].source === this.location.source) {"," src = sources[k].text.split(/\\r\\n|\\n|\\r/g);"," break;"," }"," }"," var s = this.location.start;",' var loc = this.location.source + ":" + s.line + ":" + s.column;'," if (src) {"," var e = this.location.end;"," var filler = peg$padEnd(\"\", s.line.toString().length, ' ');"," var line = src[s.line - 1];"," var last = s.line === e.line ? e.column : line.length + 1;"," var hatLen = (last - s.column) || 1;",' str += "\\n --\x3e " + loc + "\\n"',' + filler + " |\\n"',' + s.line + " | " + line + "\\n"',' + filler + " | " + peg$padEnd("", s.column - 1, \' \')',' + peg$padEnd("", hatLen, "^");'," } else {",' str += "\\n at " + loc;'," }"," }"," return str;","};","","peg$SyntaxError.buildMessage = function(expected, found) {"," var DESCRIBE_EXPECTATION_FNS = {"," literal: function(expectation) {",' return "\\"" + literalEscape(expectation.text) + "\\"";'," },",""," class: function(expectation) {"," var escapedParts = expectation.parts.map(function(part) {"," return Array.isArray(part)",' ? classEscape(part[0]) + "-" + classEscape(part[1])'," : classEscape(part);"," });","",' return "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]";'," },",""," any: function() {",' return "any character";'," },",""," end: function() {",' return "end of input";'," },",""," other: function(expectation) {"," return expectation.description;"," }"," };",""," function hex(ch) {"," return ch.charCodeAt(0).toString(16).toUpperCase();"," }",""," function literalEscape(s) {"," return s",' .replace(/\\\\/g, "\\\\\\\\")',' .replace(/"/g, "\\\\\\"")',' .replace(/\\0/g, "\\\\0")',' .replace(/\\t/g, "\\\\t")',' .replace(/\\n/g, "\\\\n")',' .replace(/\\r/g, "\\\\r")',' .replace(/[\\x00-\\x0F]/g, function(ch) { return "\\\\x0" + hex(ch); })',' .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return "\\\\x" + hex(ch); });'," }",""," function classEscape(s) {"," return s",' .replace(/\\\\/g, "\\\\\\\\")',' .replace(/\\]/g, "\\\\]")',' .replace(/\\^/g, "\\\\^")',' .replace(/-/g, "\\\\-")',' .replace(/\\0/g, "\\\\0")',' .replace(/\\t/g, "\\\\t")',' .replace(/\\n/g, "\\\\n")',' .replace(/\\r/g, "\\\\r")',' .replace(/[\\x00-\\x0F]/g, function(ch) { return "\\\\x0" + hex(ch); })',' .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return "\\\\x" + hex(ch); });'," }",""," function describeExpectation(expectation) {"," return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);"," }",""," function describeExpected(expected) {"," var descriptions = expected.map(describeExpectation);"," var i, j;",""," descriptions.sort();",""," if (descriptions.length > 0) {"," for (i = 1, j = 1; i < descriptions.length; i++) {"," if (descriptions[i - 1] !== descriptions[i]) {"," descriptions[j] = descriptions[i];"," j++;"," }"," }"," descriptions.length = j;"," }",""," switch (descriptions.length) {"," case 1:"," return descriptions[0];",""," case 2:",' return descriptions[0] + " or " + descriptions[1];',""," default:",' return descriptions.slice(0, -1).join(", ")',' + ", or "'," + descriptions[descriptions.length - 1];"," }"," }",""," function describeFound(found) {",' return found ? "\\"" + literalEscape(found) + "\\"" : "end of input";'," }","",' return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";',"};",""),e.trace&&c.push("function peg$DefaultTracer() {"," this.indentLevel = 0;","}","","peg$DefaultTracer.prototype.trace = function(event) {"," var that = this;",""," function log(event) {"," function repeat(string, n) {",' var result = "", i;',""," for (i = 0; i < n; i++) {"," result += string;"," }",""," return result;"," }",""," function pad(string, length) {",' return string + repeat(" ", length - string.length);'," }","",' if (typeof console === "object") {'," console.log(",' event.location.start.line + ":" + event.location.start.column + "-"',' + event.location.end.line + ":" + event.location.end.column + " "',' + pad(event.type, 10) + " "',' + repeat(" ", that.indentLevel) + event.rule'," );"," }"," }",""," switch (event.type) {",' case "rule.enter":'," log(event);"," this.indentLevel++;"," break;","",' case "rule.match":'," this.indentLevel--;"," log(event);"," break;","",' case "rule.fail":'," this.indentLevel--;"," log(event);"," break;",""," default:",' throw new Error("Invalid event type: " + event.type + ".");'," }","};","");var l="{ "+e.allowedStartRules.map((function(u){return u+": "+i(u)})).join(", ")+" }",p=i(e.allowedStartRules[0]);return c.push("function peg$parse(input, options) {"," options = options !== undefined ? options : {};",""," var peg$FAILED = {};"," var peg$source = options.grammarSource;",""," var peg$startRuleFunctions = "+l+";"," var peg$startRuleFunction = "+p+";","",new SourceNode(null,null,e.grammarSource,[u.literals.map((function(u,e){return" var "+r(e)+' = "'+stringEscape(u)+'";'})).concat("",u.classes.map((function(u,e){return" var "+n(e)+" = /^["+((t=u).inverted?"^":"")+t.value.map((function(u){return Array.isArray(u)?regexpClassEscape(u[0])+"-"+regexpClassEscape(u[1]):regexpClassEscape(u)})).join("")+"]/"+(t.ignoreCase?"i":"")+";";var t}))).concat("",u.expectations.map((function(u,e){return" var "+o(e)+" = "+function(u){switch(u.type){case"rule":return'peg$otherExpectation("'+stringEscape(u.value)+'")';case"literal":return'peg$literalExpectation("'+stringEscape(u.value)+'", '+u.ignoreCase+")";case"class":return"peg$classExpectation(["+u.value.map((function(u){return Array.isArray(u)?'["'+stringEscape(u[0])+'", "'+stringEscape(u[1])+'"]':'"'+stringEscape(u)+'"'})).join(", ")+"], "+u.inverted+", "+u.ignoreCase+")";case"any":return"peg$anyExpectation()";default:throw new Error("Unknown expectation type ("+JSON.stringify(u)+")")}}(u)+";"}))).concat("").join("\n"),u.functions.map((function(u,e){return wrapInSourceNode("\n var ".concat(a(e)," = function(").concat(u.params.join(", "),") {"),u.body,u.location,"};")}))]),""," var peg$currPos = 0;"," var peg$savedPos = 0;"," var peg$posDetailsCache = [{ line: 1, column: 1 }];"," var peg$maxFailPos = 0;"," var peg$maxFailExpected = [];"," var peg$silentFails = 0;",""),e.cache&&c.push(" var peg$resultsCache = {};",""),e.trace&&c.push(' var peg$tracer = "tracer" in options ? options.tracer : new peg$DefaultTracer();',""),c.push(" var peg$result;","",' if ("startRule" in options) {'," if (!(options.startRule in peg$startRuleFunctions)) {",' throw new Error("Can\'t start parsing from rule \\"" + options.startRule + "\\".");'," }",""," peg$startRuleFunction = peg$startRuleFunctions[options.startRule];"," }",""," function text() {"," return input.substring(peg$savedPos, peg$currPos);"," }",""," function offset() {"," return peg$savedPos;"," }",""," function range() {"," return {"," source: peg$source,"," start: peg$savedPos,"," end: peg$currPos"," };"," }",""," function location() {"," return peg$computeLocation(peg$savedPos, peg$currPos);"," }",""," function expected(description, location) {"," location = location !== undefined"," ? location"," : peg$computeLocation(peg$savedPos, peg$currPos);",""," throw peg$buildStructuredError("," [peg$otherExpectation(description)],"," input.substring(peg$savedPos, peg$currPos),"," location"," );"," }",""," function error(message, location) {"," location = location !== undefined"," ? location"," : peg$computeLocation(peg$savedPos, peg$currPos);",""," throw peg$buildSimpleError(message, location);"," }",""," function peg$literalExpectation(text, ignoreCase) {",' return { type: "literal", text: text, ignoreCase: ignoreCase };'," }",""," function peg$classExpectation(parts, inverted, ignoreCase) {",' return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase };'," }",""," function peg$anyExpectation() {",' return { type: "any" };'," }",""," function peg$endExpectation() {",' return { type: "end" };'," }",""," function peg$otherExpectation(description) {",' return { type: "other", description: description };'," }",""," function peg$computePosDetails(pos) {"," var details = peg$posDetailsCache[pos];"," var p;",""," if (details) {"," return details;"," } else {"," p = pos - 1;"," while (!peg$posDetailsCache[p]) {"," p--;"," }",""," details = peg$posDetailsCache[p];"," details = {"," line: details.line,"," column: details.column"," };",""," while (p < pos) {"," if (input.charCodeAt(p) === 10) {"," details.line++;"," details.column = 1;"," } else {"," details.column++;"," }",""," p++;"," }",""," peg$posDetailsCache[pos] = details;",""," return details;"," }"," }",""," function peg$computeLocation(startPos, endPos) {"," var startPosDetails = peg$computePosDetails(startPos);"," var endPosDetails = peg$computePosDetails(endPos);",""," return {"," source: peg$source,"," start: {"," offset: startPos,"," line: startPosDetails.line,"," column: startPosDetails.column"," },"," end: {"," offset: endPos,"," line: endPosDetails.line,"," column: endPosDetails.column"," }"," };"," }",""," function peg$fail(expected) {"," if (peg$currPos < peg$maxFailPos) { return; }",""," if (peg$currPos > peg$maxFailPos) {"," peg$maxFailPos = peg$currPos;"," peg$maxFailExpected = [];"," }",""," peg$maxFailExpected.push(expected);"," }",""," function peg$buildSimpleError(message, location) {"," return new peg$SyntaxError(message, null, null, location);"," }",""," function peg$buildStructuredError(expected, found, location) {"," return new peg$SyntaxError("," peg$SyntaxError.buildMessage(expected, found),"," expected,"," found,"," location"," );"," }",""),u.rules.forEach((function(s){c.push.apply(c,function(s){var c=[],l=new Stack(s.name,"s","var"),p=function e(s){var c,p=0,A=s.length,E=[];function f(u,r){var n,o,a=r+3,i=s[p+a-2],c=s[p+a-1];l.checkedIf(p,(function(){p+=a,n=e(s.slice(p,p+i)),p+=i}),c>0?function(){o=e(s.slice(p,p+c)),p+=c}:null),E.push("if ("+u+") {"),E.push.apply(E,n.map(t)),c>0&&(E.push("} else {"),E.push.apply(E,o.map(t))),E.push("}")}function h(u){var r,n=s[p+2-1];l.checkedLoop(p,(function(){p+=2,r=e(s.slice(p,p+n)),p+=n})),E.push("while ("+u+") {"),E.push.apply(E,r.map(t)),E.push("}")}function C(){var u=s[p+4-1],e=a(s[p+1])+"("+s.slice(p+4,p+4+u).map((function(u){return l.index(u)})).join(", ")+")";l.pop(s[p+2]),E.push(l.push(e)),p+=4+u}for(;p peg$currPos",0);break;case op.MATCH_STRING:f(u.literals[s[p+1]].length>1?"input.substr(peg$currPos, "+u.literals[s[p+1]].length+") === "+r(s[p+1]):"input.charCodeAt(peg$currPos) === "+u.literals[s[p+1]].charCodeAt(0),1);break;case op.MATCH_STRING_IC:f("input.substr(peg$currPos, "+u.literals[s[p+1]].length+").toLowerCase() === "+r(s[p+1]),1);break;case op.MATCH_CHAR_CLASS:f(n(s[p+1])+".test(input.charAt(peg$currPos))",1);break;case op.ACCEPT_N:E.push(l.push(s[p+1]>1?"input.substr(peg$currPos, "+s[p+1]+")":"input.charAt(peg$currPos)")),E.push(s[p+1]>1?"peg$currPos += "+s[p+1]+";":"peg$currPos++;"),p+=2;break;case op.ACCEPT_STRING:E.push(l.push(r(s[p+1]))),E.push(u.literals[s[p+1]].length>1?"peg$currPos += "+u.literals[s[p+1]].length+";":"peg$currPos++;"),p+=2;break;case op.FAIL:E.push(l.push("peg$FAILED")),E.push("if (peg$silentFails === 0) { peg$fail("+o(s[p+1])+"); }"),p+=2;break;case op.LOAD_SAVED_POS:E.push("peg$savedPos = "+l.index(s[p+1])+";"),p+=2;break;case op.UPDATE_SAVED_POS:E.push("peg$savedPos = peg$currPos;"),p++;break;case op.CALL:C();break;case op.RULE:E.push(l.push(i(u.rules[s[p+1]].name)+"()")),p+=2;break;case op.SILENT_FAILS_ON:E.push("peg$silentFails++;"),p++;break;case op.SILENT_FAILS_OFF:E.push("peg$silentFails--;"),p++;break;default:throw new Error("Invalid opcode: "+s[p]+".")}return E}(s.bytecode);return c.push(wrapInSourceNode(" function ",i(s.name),s.nameLocation,"() {\n",s.name)),e.trace&&c.push(" var startPos = peg$currPos;"),c.push(t(l.defines())),c.push.apply(c,function(t,r){var n=[];return n.push(""),e.trace&&n.push("peg$tracer.trace({",' type: "rule.enter",'," rule: "+t+","," location: peg$computeLocation(startPos, startPos)","});",""),e.cache&&(n.push("var key = peg$currPos * "+u.rules.length+" + "+r+";","var cached = peg$resultsCache[key];","","if (cached) {"," peg$currPos = cached.nextPos;",""),e.trace&&n.push("if (cached.result !== peg$FAILED) {"," peg$tracer.trace({",' type: "rule.match",'," rule: "+t+","," result: cached.result,"," location: peg$computeLocation(startPos, peg$currPos)"," });","} else {"," peg$tracer.trace({",' type: "rule.fail",'," rule: "+t+","," location: peg$computeLocation(startPos, startPos)"," });","}",""),n.push(" return cached.result;","}","")),n}('"'+stringEscape(s.name)+'"',asts$4.indexOfRule(u,s.name)).map(t)),c.push.apply(c,p.map(t)),c.push.apply(c,function(u,t){var r=[];return e.cache&&r.push("","peg$resultsCache[key] = { nextPos: peg$currPos, result: "+t+" };"),e.trace&&r.push("","if ("+t+" !== peg$FAILED) {"," peg$tracer.trace({",' type: "rule.match",'," rule: "+u+","," result: "+t+","," location: peg$computeLocation(startPos, peg$currPos)"," });","} else {"," peg$tracer.trace({",' type: "rule.fail",'," rule: "+u+","," location: peg$computeLocation(startPos, startPos)"," });","}"),r.push("","return "+t+";"),r}('"'+stringEscape(s.name)+'"',l.result()).map(t)),c.push("}"),c}(s).map(t)),c.push("")})),u.initializer&&(c.push(s(u.initializer)),c.push("")),c.push(" peg$result = peg$startRuleFunction();",""," if (peg$result !== peg$FAILED && peg$currPos === input.length) {"," return peg$result;"," } else {"," if (peg$result !== peg$FAILED && peg$currPos < input.length) {"," peg$fail(peg$endExpectation());"," }",""," throw peg$buildStructuredError("," peg$maxFailExpected,"," peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,"," peg$maxFailPos < input.length"," ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)"," : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)"," );"," }","}"),new SourceNode(null,null,e.grammarSource,c.map((function(u){return u instanceof SourceNode?u:u+"\n"})))}())}var generateJs=generateJS$1,asts$3=asts_1,visitor$7=visitor_1;function removeProxyRules$1(u,e,t){var r=[];u.rules.forEach((function(n,o){var a;"rule"===(a=n).type&&"rule_ref"===a.expression.type&&(function(u,e,r){visitor$7.build({rule_ref:function(n){n.name===e&&(n.name=r,t.info('Proxy rule "'.concat(e,'" replaced by the rule "').concat(r,'"'),n.location,[{message:"This rule will be used",location:asts$3.findRule(u,r).nameLocation}]))}})(u)}(u,n.name,n.expression.name),-1===e.allowedStartRules.indexOf(n.name)&&r.push(o))})),r.reverse(),r.forEach((function(e){u.rules.splice(e,1)}))}var removeProxyRules_1=removeProxyRules$1,visitor$6=visitor_1;function reportDuplicateLabels$1(u,e,t){function r(u){var e={};return Object.keys(u).forEach((function(t){e[t]=u[t]})),e}function n(u,e){o(u.expression,r(e))}var o=visitor$6.build({rule:function(u){o(u.expression,{})},choice:function(u,e){u.alternatives.forEach((function(u){o(u,r(e))}))},action:n,labeled:function(u,e){var r=u.label;r&&Object.prototype.hasOwnProperty.call(e,r)&&t.error('Label "'.concat(u.label,'" is already defined'),u.labelLocation,[{message:"Original label location",location:e[r]}]),o(u.expression,e),e[u.label]=u.labelLocation},text:n,simple_and:n,simple_not:n,optional:n,zero_or_more:n,one_or_more:n,group:n});o(u)}var reportDuplicateLabels_1=reportDuplicateLabels$1,visitor$5=visitor_1;function reportDuplicateRules$1(u,e,t){var r={};visitor$5.build({rule:function(u){Object.prototype.hasOwnProperty.call(r,u.name)?t.error('Rule "'.concat(u.name,'" is already defined'),u.nameLocation,[{message:"Original rule location",location:r[u.name]}]):r[u.name]=u.nameLocation}})(u)}var reportDuplicateRules_1=reportDuplicateRules$1,asts$2=asts_1,visitor$4=visitor_1;function reportInfiniteRecursion$1(u,e,t){var r=[],n=[],o=visitor$4.build({rule:function(u){r.push(u.name),o(u.expression),r.pop()},sequence:function(e){e.elements.every((function(e){return o(e),!asts$2.alwaysConsumesOnSuccess(u,e)}))},rule_ref:function(e){n.push(e);var a=asts$2.findRule(u,e.name);if(-1!==r.indexOf(e.name))return r.push(e.name),void t.error("Possible infinite loop when parsing (left recursion: "+r.join(" -> ")+")",a.nameLocation,n.map((function(u,e,t){return{message:e+1!==t.length?"Step ".concat(e+1,': call of the rule "').concat(u.name,'" without input consumption'):"Step ".concat(e+1,": call itself without input consumption - left recursion"),location:u.location}})));a&&o(a),n.pop()}});o(u)}var reportInfiniteRecursion_1=reportInfiniteRecursion$1,asts$1=asts_1,visitor$3=visitor_1;function reportInfiniteRepetition$1(u,e,t){visitor$3.build({zero_or_more:function(e){asts$1.alwaysConsumesOnSuccess(u,e.expression)||t.error("Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",e.location)},one_or_more:function(e){asts$1.alwaysConsumesOnSuccess(u,e.expression)||t.error("Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",e.location)}})(u)}var reportInfiniteRepetition_1=reportInfiniteRepetition$1,asts=asts_1,visitor$2=visitor_1;function reportUndefinedRules$1(u,e,t){visitor$2.build({rule_ref:function(e){asts.findRule(u,e.name)||t.error('Rule "'.concat(e.name,'" is not defined'),e.location)}})(u)}var reportUndefinedRules_1=reportUndefinedRules$1,visitor$1=visitor_1;function reportIncorrectPlucking$1(u,e,t){var r=visitor$1.build({action:function(u){r(u.expression,u)},labeled:function(u,e){u.pick&&e&&t.error('"@" cannot be used with an action block',u.labelLocation,[{message:"Action block location",location:e.codeLocation}]),r(u.expression)}});r(u)}var reportIncorrectPlucking_1=reportIncorrectPlucking$1,__spreadArray=commonjsGlobal&&commonjsGlobal.__spreadArray||function(u,e,t){if(t||2===arguments.length)for(var r,n=0,o=e.length;ne?u:(e-=u.length,u+(t+=t.repeat(e)).slice(0,e))}function peg$parse(u,e){var t,r={},n=(e=void 0!==e?e:{}).grammarSource,o={Grammar:ce},a=ce,i="{",s="}",c="/*",l="*/",p="\\",A='"',E="'",f=/^[\n\r\u2028\u2029]/,h=/^[0-9]/,C=/^[0-9a-f]/i,d=/^[{}]/,g=/^[a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137-\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148-\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C-\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA-\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9-\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC-\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF-\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F-\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0-\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB-\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE-\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0561-\u0587\u13F8-\u13FD\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6-\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FC7\u1FD0-\u1FD3\u1FD6-\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6-\u1FF7\u210A\u210E-\u210F\u2113\u212F\u2134\u2139\u213C-\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65-\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73-\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3-\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7B5\uA7B7\uA7FA\uAB30-\uAB5A\uAB60-\uAB65\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A]/,F=/^[\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5-\u06E6\u07F4-\u07F5\u07FA\u081A\u0824\u0828\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C-\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D-\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA69C-\uA69D\uA717-\uA71F\uA770\uA788\uA7F8-\uA7F9\uA9CF\uA9E6\uAA70\uAADD\uAAF3-\uAAF4\uAB5C-\uAB5F\uFF70\uFF9E-\uFF9F]/,m=/^[\xAA\xBA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05F0-\u05F2\u0620-\u063F\u0641-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0-\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60-\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0CF1-\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u10D0-\u10FA\u10FD-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5-\u1CF6\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A-\uA62B\uA66E\uA6A0-\uA6E5\uA78F\uA7F7\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9E0-\uA9E4\uA9E7-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,_=/^[\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC]/,B=/^[A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178-\u0179\u017B\u017D\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018B\u018E-\u0191\u0193-\u0194\u0196-\u0198\u019C-\u019D\u019F-\u01A0\u01A2\u01A4\u01A6-\u01A7\u01A9\u01AC\u01AE-\u01AF\u01B1-\u01B3\u01B5\u01B7-\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A-\u023B\u023D-\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E-\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9-\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0-\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E-\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D-\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AD\uA7B0-\uA7B4\uA7B6\uFF21-\uFF3A]/,D=/^[\u0903\u093B\u093E-\u0940\u0949-\u094C\u094E-\u094F\u0982-\u0983\u09BE-\u09C0\u09C7-\u09C8\u09CB-\u09CC\u09D7\u0A03\u0A3E-\u0A40\u0A83\u0ABE-\u0AC0\u0AC9\u0ACB-\u0ACC\u0B02-\u0B03\u0B3E\u0B40\u0B47-\u0B48\u0B4B-\u0B4C\u0B57\u0BBE-\u0BBF\u0BC1-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD7\u0C01-\u0C03\u0C41-\u0C44\u0C82-\u0C83\u0CBE\u0CC0-\u0CC4\u0CC7-\u0CC8\u0CCA-\u0CCB\u0CD5-\u0CD6\u0D02-\u0D03\u0D3E-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D57\u0D82-\u0D83\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DF2-\u0DF3\u0F3E-\u0F3F\u0F7F\u102B-\u102C\u1031\u1038\u103B-\u103C\u1056-\u1057\u1062-\u1064\u1067-\u106D\u1083-\u1084\u1087-\u108C\u108F\u109A-\u109C\u17B6\u17BE-\u17C5\u17C7-\u17C8\u1923-\u1926\u1929-\u192B\u1930-\u1931\u1933-\u1938\u1A19-\u1A1A\u1A55\u1A57\u1A61\u1A63-\u1A64\u1A6D-\u1A72\u1B04\u1B35\u1B3B\u1B3D-\u1B41\u1B43-\u1B44\u1B82\u1BA1\u1BA6-\u1BA7\u1BAA\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2-\u1BF3\u1C24-\u1C2B\u1C34-\u1C35\u1CE1\u1CF2-\u1CF3\u302E-\u302F\uA823-\uA824\uA827\uA880-\uA881\uA8B4-\uA8C3\uA952-\uA953\uA983\uA9B4-\uA9B5\uA9BA-\uA9BB\uA9BD-\uA9C0\uAA2F-\uAA30\uAA33-\uAA34\uAA4D\uAA7B\uAA7D\uAAEB\uAAEE-\uAAEF\uAAF5\uABE3-\uABE4\uABE6-\uABE7\uABE9-\uABEA\uABEC]/,v=/^[\u0300-\u036F\u0483-\u0487\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962-\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2-\u09E3\u0A01-\u0A02\u0A3C\u0A41-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A51\u0A70-\u0A71\u0A75\u0A81-\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7-\u0AC8\u0ACD\u0AE2-\u0AE3\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62-\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C62-\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC-\u0CCD\u0CE2-\u0CE3\u0D01\u0D41-\u0D44\u0D4D\u0D62-\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB-\u0EBC\u0EC8-\u0ECD\u0F18-\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86-\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039-\u103A\u103D-\u103E\u1058-\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17B4-\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193B\u1A17-\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABD\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80-\u1B81\u1BA2-\u1BA5\u1BA8-\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8-\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8-\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099-\u309A\uA66F\uA674-\uA67D\uA69E-\uA69F\uA6F0-\uA6F1\uA802\uA806\uA80B\uA825-\uA826\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9E5\uAA29-\uAA2E\uAA31-\uAA32\uAA35-\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7-\uAAB8\uAABE-\uAABF\uAAC1\uAAEC-\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/,$=/^[0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]/,S=/^[\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF]/,y=/^[_\u203F-\u2040\u2054\uFE33-\uFE34\uFE4D-\uFE4F\uFF3F]/,x=/^[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000]/,P=re("{",!1),b=re("}",!1),R=re("=",!1),O=re("/",!1),L=re("@",!1),T=re(":",!1),w=re("$",!1),N=re("&",!1),I=re("!",!1),M=re("?",!1),k=re("*",!1),H=re("+",!1),U=re("(",!1),j=re(")",!1),G={type:"any"},V=oe("whitespace"),W=re("\t",!1),Y=re("\v",!1),z=re("\f",!1),J=re(" ",!1),Q=re(" ",!1),q=re("\ufeff",!1),X=ne(["\n","\r","\u2028","\u2029"],!1,!1),K=oe("end of line"),Z=re("\n",!1),uu=re("\r\n",!1),eu=re("\r",!1),tu=re("\u2028",!1),ru=re("\u2029",!1),nu=oe("comment"),ou=re("/*",!1),au=re("*/",!1),iu=re("//",!1),su=oe("identifier"),cu=re("_",!1),lu=re("\\",!1),pu=re("‌",!1),Au=re("‍",!1),Eu=oe("literal"),fu=re("i",!1),hu=oe("string"),Cu=re('"',!1),du=re("'",!1),gu=oe("character class"),Fu=re("[",!1),mu=re("^",!1),_u=re("]",!1),Bu=re("-",!1),Du=re("0",!1),vu=re("b",!1),$u=re("f",!1),Su=re("n",!1),yu=re("r",!1),xu=re("t",!1),Pu=re("v",!1),bu=re("x",!1),Ru=re("u",!1),Ou=ne([["0","9"]],!1,!1),Lu=ne([["0","9"],["a","f"]],!1,!0),Tu=re(".",!1),wu=oe("code block"),Nu=ne(["{","}"],!1,!1),Iu=ne([["a","z"],"µ",["ß","ö"],["ø","ÿ"],"ā","ă","ą","ć","ĉ","ċ","č","ď","đ","ē","ĕ","ė","ę","ě","ĝ","ğ","ġ","ģ","ĥ","ħ","ĩ","ī","ĭ","į","ı","ij","ĵ",["ķ","ĸ"],"ĺ","ļ","ľ","ŀ","ł","ń","ņ",["ň","ʼn"],"ŋ","ō","ŏ","ő","œ","ŕ","ŗ","ř","ś","ŝ","ş","š","ţ","ť","ŧ","ũ","ū","ŭ","ů","ű","ų","ŵ","ŷ","ź","ż",["ž","ƀ"],"ƃ","ƅ","ƈ",["ƌ","ƍ"],"ƒ","ƕ",["ƙ","ƛ"],"ƞ","ơ","ƣ","ƥ","ƨ",["ƪ","ƫ"],"ƭ","ư","ƴ","ƶ",["ƹ","ƺ"],["ƽ","ƿ"],"dž","lj","nj","ǎ","ǐ","ǒ","ǔ","ǖ","ǘ","ǚ",["ǜ","ǝ"],"ǟ","ǡ","ǣ","ǥ","ǧ","ǩ","ǫ","ǭ",["ǯ","ǰ"],"dz","ǵ","ǹ","ǻ","ǽ","ǿ","ȁ","ȃ","ȅ","ȇ","ȉ","ȋ","ȍ","ȏ","ȑ","ȓ","ȕ","ȗ","ș","ț","ȝ","ȟ","ȡ","ȣ","ȥ","ȧ","ȩ","ȫ","ȭ","ȯ","ȱ",["ȳ","ȹ"],"ȼ",["ȿ","ɀ"],"ɂ","ɇ","ɉ","ɋ","ɍ",["ɏ","ʓ"],["ʕ","ʯ"],"ͱ","ͳ","ͷ",["ͻ","ͽ"],"ΐ",["ά","ώ"],["ϐ","ϑ"],["ϕ","ϗ"],"ϙ","ϛ","ϝ","ϟ","ϡ","ϣ","ϥ","ϧ","ϩ","ϫ","ϭ",["ϯ","ϳ"],"ϵ","ϸ",["ϻ","ϼ"],["а","џ"],"ѡ","ѣ","ѥ","ѧ","ѩ","ѫ","ѭ","ѯ","ѱ","ѳ","ѵ","ѷ","ѹ","ѻ","ѽ","ѿ","ҁ","ҋ","ҍ","ҏ","ґ","ғ","ҕ","җ","ҙ","қ","ҝ","ҟ","ҡ","ң","ҥ","ҧ","ҩ","ҫ","ҭ","ү","ұ","ҳ","ҵ","ҷ","ҹ","һ","ҽ","ҿ","ӂ","ӄ","ӆ","ӈ","ӊ","ӌ",["ӎ","ӏ"],"ӑ","ӓ","ӕ","ӗ","ә","ӛ","ӝ","ӟ","ӡ","ӣ","ӥ","ӧ","ө","ӫ","ӭ","ӯ","ӱ","ӳ","ӵ","ӷ","ӹ","ӻ","ӽ","ӿ","ԁ","ԃ","ԅ","ԇ","ԉ","ԋ","ԍ","ԏ","ԑ","ԓ","ԕ","ԗ","ԙ","ԛ","ԝ","ԟ","ԡ","ԣ","ԥ","ԧ","ԩ","ԫ","ԭ","ԯ",["ա","և"],["ᏸ","ᏽ"],["ᴀ","ᴫ"],["ᵫ","ᵷ"],["ᵹ","ᶚ"],"ḁ","ḃ","ḅ","ḇ","ḉ","ḋ","ḍ","ḏ","ḑ","ḓ","ḕ","ḗ","ḙ","ḛ","ḝ","ḟ","ḡ","ḣ","ḥ","ḧ","ḩ","ḫ","ḭ","ḯ","ḱ","ḳ","ḵ","ḷ","ḹ","ḻ","ḽ","ḿ","ṁ","ṃ","ṅ","ṇ","ṉ","ṋ","ṍ","ṏ","ṑ","ṓ","ṕ","ṗ","ṙ","ṛ","ṝ","ṟ","ṡ","ṣ","ṥ","ṧ","ṩ","ṫ","ṭ","ṯ","ṱ","ṳ","ṵ","ṷ","ṹ","ṻ","ṽ","ṿ","ẁ","ẃ","ẅ","ẇ","ẉ","ẋ","ẍ","ẏ","ẑ","ẓ",["ẕ","ẝ"],"ẟ","ạ","ả","ấ","ầ","ẩ","ẫ","ậ","ắ","ằ","ẳ","ẵ","ặ","ẹ","ẻ","ẽ","ế","ề","ể","ễ","ệ","ỉ","ị","ọ","ỏ","ố","ồ","ổ","ỗ","ộ","ớ","ờ","ở","ỡ","ợ","ụ","ủ","ứ","ừ","ử","ữ","ự","ỳ","ỵ","ỷ","ỹ","ỻ","ỽ",["ỿ","ἇ"],["ἐ","ἕ"],["ἠ","ἧ"],["ἰ","ἷ"],["ὀ","ὅ"],["ὐ","ὗ"],["ὠ","ὧ"],["ὰ","ώ"],["ᾀ","ᾇ"],["ᾐ","ᾗ"],["ᾠ","ᾧ"],["ᾰ","ᾴ"],["ᾶ","ᾷ"],"ι",["ῂ","ῄ"],["ῆ","ῇ"],["ῐ","ΐ"],["ῖ","ῗ"],["ῠ","ῧ"],["ῲ","ῴ"],["ῶ","ῷ"],"ℊ",["ℎ","ℏ"],"ℓ","ℯ","ℴ","ℹ",["ℼ","ℽ"],["ⅆ","ⅉ"],"ⅎ","ↄ",["ⰰ","ⱞ"],"ⱡ",["ⱥ","ⱦ"],"ⱨ","ⱪ","ⱬ","ⱱ",["ⱳ","ⱴ"],["ⱶ","ⱻ"],"ⲁ","ⲃ","ⲅ","ⲇ","ⲉ","ⲋ","ⲍ","ⲏ","ⲑ","ⲓ","ⲕ","ⲗ","ⲙ","ⲛ","ⲝ","ⲟ","ⲡ","ⲣ","ⲥ","ⲧ","ⲩ","ⲫ","ⲭ","ⲯ","ⲱ","ⲳ","ⲵ","ⲷ","ⲹ","ⲻ","ⲽ","ⲿ","ⳁ","ⳃ","ⳅ","ⳇ","ⳉ","ⳋ","ⳍ","ⳏ","ⳑ","ⳓ","ⳕ","ⳗ","ⳙ","ⳛ","ⳝ","ⳟ","ⳡ",["ⳣ","ⳤ"],"ⳬ","ⳮ","ⳳ",["ⴀ","ⴥ"],"ⴧ","ⴭ","ꙁ","ꙃ","ꙅ","ꙇ","ꙉ","ꙋ","ꙍ","ꙏ","ꙑ","ꙓ","ꙕ","ꙗ","ꙙ","ꙛ","ꙝ","ꙟ","ꙡ","ꙣ","ꙥ","ꙧ","ꙩ","ꙫ","ꙭ","ꚁ","ꚃ","ꚅ","ꚇ","ꚉ","ꚋ","ꚍ","ꚏ","ꚑ","ꚓ","ꚕ","ꚗ","ꚙ","ꚛ","ꜣ","ꜥ","ꜧ","ꜩ","ꜫ","ꜭ",["ꜯ","ꜱ"],"ꜳ","ꜵ","ꜷ","ꜹ","ꜻ","ꜽ","ꜿ","ꝁ","ꝃ","ꝅ","ꝇ","ꝉ","ꝋ","ꝍ","ꝏ","ꝑ","ꝓ","ꝕ","ꝗ","ꝙ","ꝛ","ꝝ","ꝟ","ꝡ","ꝣ","ꝥ","ꝧ","ꝩ","ꝫ","ꝭ","ꝯ",["ꝱ","ꝸ"],"ꝺ","ꝼ","ꝿ","ꞁ","ꞃ","ꞅ","ꞇ","ꞌ","ꞎ","ꞑ",["ꞓ","ꞕ"],"ꞗ","ꞙ","ꞛ","ꞝ","ꞟ","ꞡ","ꞣ","ꞥ","ꞧ","ꞩ","ꞵ","ꞷ","ꟺ",["ꬰ","ꭚ"],["ꭠ","ꭥ"],["ꭰ","ꮿ"],["ff","st"],["ﬓ","ﬗ"],["a","z"]],!1,!1),Mu=ne([["ʰ","ˁ"],["ˆ","ˑ"],["ˠ","ˤ"],"ˬ","ˮ","ʹ","ͺ","ՙ","ـ",["ۥ","ۦ"],["ߴ","ߵ"],"ߺ","ࠚ","ࠤ","ࠨ","ॱ","ๆ","ໆ","ჼ","ៗ","ᡃ","ᪧ",["ᱸ","ᱽ"],["ᴬ","ᵪ"],"ᵸ",["ᶛ","ᶿ"],"ⁱ","ⁿ",["ₐ","ₜ"],["ⱼ","ⱽ"],"ⵯ","ⸯ","々",["〱","〵"],"〻",["ゝ","ゞ"],["ー","ヾ"],"ꀕ",["ꓸ","ꓽ"],"ꘌ","ꙿ",["ꚜ","ꚝ"],["ꜗ","ꜟ"],"ꝰ","ꞈ",["ꟸ","ꟹ"],"ꧏ","ꧦ","ꩰ","ꫝ",["ꫳ","ꫴ"],["ꭜ","ꭟ"],"ー",["゙","゚"]],!1,!1),ku=ne(["ª","º","ƻ",["ǀ","ǃ"],"ʔ",["א","ת"],["װ","ײ"],["ؠ","ؿ"],["ف","ي"],["ٮ","ٯ"],["ٱ","ۓ"],"ە",["ۮ","ۯ"],["ۺ","ۼ"],"ۿ","ܐ",["ܒ","ܯ"],["ݍ","ޥ"],"ޱ",["ߊ","ߪ"],["ࠀ","ࠕ"],["ࡀ","ࡘ"],["ࢠ","ࢴ"],["ऄ","ह"],"ऽ","ॐ",["क़","ॡ"],["ॲ","ঀ"],["অ","ঌ"],["এ","ঐ"],["ও","ন"],["প","র"],"ল",["শ","হ"],"ঽ","ৎ",["ড়","ঢ়"],["য়","ৡ"],["ৰ","ৱ"],["ਅ","ਊ"],["ਏ","ਐ"],["ਓ","ਨ"],["ਪ","ਰ"],["ਲ","ਲ਼"],["ਵ","ਸ਼"],["ਸ","ਹ"],["ਖ਼","ੜ"],"ਫ਼",["ੲ","ੴ"],["અ","ઍ"],["એ","ઑ"],["ઓ","ન"],["પ","ર"],["લ","ળ"],["વ","હ"],"ઽ","ૐ",["ૠ","ૡ"],"ૹ",["ଅ","ଌ"],["ଏ","ଐ"],["ଓ","ନ"],["ପ","ର"],["ଲ","ଳ"],["ଵ","ହ"],"ଽ",["ଡ଼","ଢ଼"],["ୟ","ୡ"],"ୱ","ஃ",["அ","ஊ"],["எ","ஐ"],["ஒ","க"],["ங","ச"],"ஜ",["ஞ","ட"],["ண","த"],["ந","ப"],["ம","ஹ"],"ௐ",["అ","ఌ"],["ఎ","ఐ"],["ఒ","న"],["ప","హ"],"ఽ",["ౘ","ౚ"],["ౠ","ౡ"],["ಅ","ಌ"],["ಎ","ಐ"],["ಒ","ನ"],["ಪ","ಳ"],["ವ","ಹ"],"ಽ","ೞ",["ೠ","ೡ"],["ೱ","ೲ"],["അ","ഌ"],["എ","ഐ"],["ഒ","ഺ"],"ഽ","ൎ",["ൟ","ൡ"],["ൺ","ൿ"],["අ","ඖ"],["ක","න"],["ඳ","ර"],"ල",["ව","ෆ"],["ก","ะ"],["า","ำ"],["เ","ๅ"],["ກ","ຂ"],"ຄ",["ງ","ຈ"],"ຊ","ຍ",["ດ","ທ"],["ນ","ຟ"],["ມ","ຣ"],"ລ","ວ",["ສ","ຫ"],["ອ","ະ"],["າ","ຳ"],"ຽ",["ເ","ໄ"],["ໜ","ໟ"],"ༀ",["ཀ","ཇ"],["ཉ","ཬ"],["ྈ","ྌ"],["က","ဪ"],"ဿ",["ၐ","ၕ"],["ၚ","ၝ"],"ၡ",["ၥ","ၦ"],["ၮ","ၰ"],["ၵ","ႁ"],"ႎ",["ა","ჺ"],["ჽ","ቈ"],["ቊ","ቍ"],["ቐ","ቖ"],"ቘ",["ቚ","ቝ"],["በ","ኈ"],["ኊ","ኍ"],["ነ","ኰ"],["ኲ","ኵ"],["ኸ","ኾ"],"ዀ",["ዂ","ዅ"],["ወ","ዖ"],["ዘ","ጐ"],["ጒ","ጕ"],["ጘ","ፚ"],["ᎀ","ᎏ"],["ᐁ","ᙬ"],["ᙯ","ᙿ"],["ᚁ","ᚚ"],["ᚠ","ᛪ"],["ᛱ","ᛸ"],["ᜀ","ᜌ"],["ᜎ","ᜑ"],["ᜠ","ᜱ"],["ᝀ","ᝑ"],["ᝠ","ᝬ"],["ᝮ","ᝰ"],["ក","ឳ"],"ៜ",["ᠠ","ᡂ"],["ᡄ","ᡷ"],["ᢀ","ᢨ"],"ᢪ",["ᢰ","ᣵ"],["ᤀ","ᤞ"],["ᥐ","ᥭ"],["ᥰ","ᥴ"],["ᦀ","ᦫ"],["ᦰ","ᧉ"],["ᨀ","ᨖ"],["ᨠ","ᩔ"],["ᬅ","ᬳ"],["ᭅ","ᭋ"],["ᮃ","ᮠ"],["ᮮ","ᮯ"],["ᮺ","ᯥ"],["ᰀ","ᰣ"],["ᱍ","ᱏ"],["ᱚ","ᱷ"],["ᳩ","ᳬ"],["ᳮ","ᳱ"],["ᳵ","ᳶ"],["ℵ","ℸ"],["ⴰ","ⵧ"],["ⶀ","ⶖ"],["ⶠ","ⶦ"],["ⶨ","ⶮ"],["ⶰ","ⶶ"],["ⶸ","ⶾ"],["ⷀ","ⷆ"],["ⷈ","ⷎ"],["ⷐ","ⷖ"],["ⷘ","ⷞ"],"〆","〼",["ぁ","ゖ"],"ゟ",["ァ","ヺ"],"ヿ",["ㄅ","ㄭ"],["ㄱ","ㆎ"],["ㆠ","ㆺ"],["ㇰ","ㇿ"],["㐀","䶵"],["一","鿕"],["ꀀ","ꀔ"],["ꀖ","ꒌ"],["ꓐ","ꓷ"],["ꔀ","ꘋ"],["ꘐ","ꘟ"],["ꘪ","ꘫ"],"ꙮ",["ꚠ","ꛥ"],"ꞏ","ꟷ",["ꟻ","ꠁ"],["ꠃ","ꠅ"],["ꠇ","ꠊ"],["ꠌ","ꠢ"],["ꡀ","ꡳ"],["ꢂ","ꢳ"],["ꣲ","ꣷ"],"ꣻ","ꣽ",["ꤊ","ꤥ"],["ꤰ","ꥆ"],["ꥠ","ꥼ"],["ꦄ","ꦲ"],["ꧠ","ꧤ"],["ꧧ","ꧯ"],["ꧺ","ꧾ"],["ꨀ","ꨨ"],["ꩀ","ꩂ"],["ꩄ","ꩋ"],["ꩠ","ꩯ"],["ꩱ","ꩶ"],"ꩺ",["ꩾ","ꪯ"],"ꪱ",["ꪵ","ꪶ"],["ꪹ","ꪽ"],"ꫀ","ꫂ",["ꫛ","ꫜ"],["ꫠ","ꫪ"],"ꫲ",["ꬁ","ꬆ"],["ꬉ","ꬎ"],["ꬑ","ꬖ"],["ꬠ","ꬦ"],["ꬨ","ꬮ"],["ꯀ","ꯢ"],["가","힣"],["ힰ","ퟆ"],["ퟋ","ퟻ"],["豈","舘"],["並","龎"],"יִ",["ײַ","ﬨ"],["שׁ","זּ"],["טּ","לּ"],"מּ",["נּ","סּ"],["ףּ","פּ"],["צּ","ﮱ"],["ﯓ","ﴽ"],["ﵐ","ﶏ"],["ﶒ","ﷇ"],["ﷰ","ﷻ"],["ﹰ","ﹴ"],["ﹶ","ﻼ"],["ヲ","ッ"],["ア","ン"],["ᅠ","ᄒ"],["ᅡ","ᅦ"],["ᅧ","ᅬ"],["ᅭ","ᅲ"],["ᅳ","ᅵ"]],!1,!1),Hu=ne(["Dž","Lj","Nj","Dz",["ᾈ","ᾏ"],["ᾘ","ᾟ"],["ᾨ","ᾯ"],"ᾼ","ῌ","ῼ"],!1,!1),Uu=ne([["A","Z"],["À","Ö"],["Ø","Þ"],"Ā","Ă","Ą","Ć","Ĉ","Ċ","Č","Ď","Đ","Ē","Ĕ","Ė","Ę","Ě","Ĝ","Ğ","Ġ","Ģ","Ĥ","Ħ","Ĩ","Ī","Ĭ","Į","İ","IJ","Ĵ","Ķ","Ĺ","Ļ","Ľ","Ŀ","Ł","Ń","Ņ","Ň","Ŋ","Ō","Ŏ","Ő","Œ","Ŕ","Ŗ","Ř","Ś","Ŝ","Ş","Š","Ţ","Ť","Ŧ","Ũ","Ū","Ŭ","Ů","Ű","Ų","Ŵ","Ŷ",["Ÿ","Ź"],"Ż","Ž",["Ɓ","Ƃ"],"Ƅ",["Ɔ","Ƈ"],["Ɖ","Ƌ"],["Ǝ","Ƒ"],["Ɠ","Ɣ"],["Ɩ","Ƙ"],["Ɯ","Ɲ"],["Ɵ","Ơ"],"Ƣ","Ƥ",["Ʀ","Ƨ"],"Ʃ","Ƭ",["Ʈ","Ư"],["Ʊ","Ƴ"],"Ƶ",["Ʒ","Ƹ"],"Ƽ","DŽ","LJ","NJ","Ǎ","Ǐ","Ǒ","Ǔ","Ǖ","Ǘ","Ǚ","Ǜ","Ǟ","Ǡ","Ǣ","Ǥ","Ǧ","Ǩ","Ǫ","Ǭ","Ǯ","DZ","Ǵ",["Ƕ","Ǹ"],"Ǻ","Ǽ","Ǿ","Ȁ","Ȃ","Ȅ","Ȇ","Ȉ","Ȋ","Ȍ","Ȏ","Ȑ","Ȓ","Ȕ","Ȗ","Ș","Ț","Ȝ","Ȟ","Ƞ","Ȣ","Ȥ","Ȧ","Ȩ","Ȫ","Ȭ","Ȯ","Ȱ","Ȳ",["Ⱥ","Ȼ"],["Ƚ","Ⱦ"],"Ɂ",["Ƀ","Ɇ"],"Ɉ","Ɋ","Ɍ","Ɏ","Ͱ","Ͳ","Ͷ","Ϳ","Ά",["Έ","Ί"],"Ό",["Ύ","Ώ"],["Α","Ρ"],["Σ","Ϋ"],"Ϗ",["ϒ","ϔ"],"Ϙ","Ϛ","Ϝ","Ϟ","Ϡ","Ϣ","Ϥ","Ϧ","Ϩ","Ϫ","Ϭ","Ϯ","ϴ","Ϸ",["Ϲ","Ϻ"],["Ͻ","Я"],"Ѡ","Ѣ","Ѥ","Ѧ","Ѩ","Ѫ","Ѭ","Ѯ","Ѱ","Ѳ","Ѵ","Ѷ","Ѹ","Ѻ","Ѽ","Ѿ","Ҁ","Ҋ","Ҍ","Ҏ","Ґ","Ғ","Ҕ","Җ","Ҙ","Қ","Ҝ","Ҟ","Ҡ","Ң","Ҥ","Ҧ","Ҩ","Ҫ","Ҭ","Ү","Ұ","Ҳ","Ҵ","Ҷ","Ҹ","Һ","Ҽ","Ҿ",["Ӏ","Ӂ"],"Ӄ","Ӆ","Ӈ","Ӊ","Ӌ","Ӎ","Ӑ","Ӓ","Ӕ","Ӗ","Ә","Ӛ","Ӝ","Ӟ","Ӡ","Ӣ","Ӥ","Ӧ","Ө","Ӫ","Ӭ","Ӯ","Ӱ","Ӳ","Ӵ","Ӷ","Ӹ","Ӻ","Ӽ","Ӿ","Ԁ","Ԃ","Ԅ","Ԇ","Ԉ","Ԋ","Ԍ","Ԏ","Ԑ","Ԓ","Ԕ","Ԗ","Ԙ","Ԛ","Ԝ","Ԟ","Ԡ","Ԣ","Ԥ","Ԧ","Ԩ","Ԫ","Ԭ","Ԯ",["Ա","Ֆ"],["Ⴀ","Ⴥ"],"Ⴧ","Ⴭ",["Ꭰ","Ᏽ"],"Ḁ","Ḃ","Ḅ","Ḇ","Ḉ","Ḋ","Ḍ","Ḏ","Ḑ","Ḓ","Ḕ","Ḗ","Ḙ","Ḛ","Ḝ","Ḟ","Ḡ","Ḣ","Ḥ","Ḧ","Ḩ","Ḫ","Ḭ","Ḯ","Ḱ","Ḳ","Ḵ","Ḷ","Ḹ","Ḻ","Ḽ","Ḿ","Ṁ","Ṃ","Ṅ","Ṇ","Ṉ","Ṋ","Ṍ","Ṏ","Ṑ","Ṓ","Ṕ","Ṗ","Ṙ","Ṛ","Ṝ","Ṟ","Ṡ","Ṣ","Ṥ","Ṧ","Ṩ","Ṫ","Ṭ","Ṯ","Ṱ","Ṳ","Ṵ","Ṷ","Ṹ","Ṻ","Ṽ","Ṿ","Ẁ","Ẃ","Ẅ","Ẇ","Ẉ","Ẋ","Ẍ","Ẏ","Ẑ","Ẓ","Ẕ","ẞ","Ạ","Ả","Ấ","Ầ","Ẩ","Ẫ","Ậ","Ắ","Ằ","Ẳ","Ẵ","Ặ","Ẹ","Ẻ","Ẽ","Ế","Ề","Ể","Ễ","Ệ","Ỉ","Ị","Ọ","Ỏ","Ố","Ồ","Ổ","Ỗ","Ộ","Ớ","Ờ","Ở","Ỡ","Ợ","Ụ","Ủ","Ứ","Ừ","Ử","Ữ","Ự","Ỳ","Ỵ","Ỷ","Ỹ","Ỻ","Ỽ","Ỿ",["Ἀ","Ἇ"],["Ἐ","Ἕ"],["Ἠ","Ἧ"],["Ἰ","Ἷ"],["Ὀ","Ὅ"],"Ὑ","Ὓ","Ὕ","Ὗ",["Ὠ","Ὧ"],["Ᾰ","Ά"],["Ὲ","Ή"],["Ῐ","Ί"],["Ῠ","Ῥ"],["Ὸ","Ώ"],"ℂ","ℇ",["ℋ","ℍ"],["ℐ","ℒ"],"ℕ",["ℙ","ℝ"],"ℤ","Ω","ℨ",["K","ℭ"],["ℰ","ℳ"],["ℾ","ℿ"],"ⅅ","Ↄ",["Ⰰ","Ⱞ"],"Ⱡ",["Ɫ","Ɽ"],"Ⱨ","Ⱪ","Ⱬ",["Ɑ","Ɒ"],"Ⱳ","Ⱶ",["Ȿ","Ⲁ"],"Ⲃ","Ⲅ","Ⲇ","Ⲉ","Ⲋ","Ⲍ","Ⲏ","Ⲑ","Ⲓ","Ⲕ","Ⲗ","Ⲙ","Ⲛ","Ⲝ","Ⲟ","Ⲡ","Ⲣ","Ⲥ","Ⲧ","Ⲩ","Ⲫ","Ⲭ","Ⲯ","Ⲱ","Ⲳ","Ⲵ","Ⲷ","Ⲹ","Ⲻ","Ⲽ","Ⲿ","Ⳁ","Ⳃ","Ⳅ","Ⳇ","Ⳉ","Ⳋ","Ⳍ","Ⳏ","Ⳑ","Ⳓ","Ⳕ","Ⳗ","Ⳙ","Ⳛ","Ⳝ","Ⳟ","Ⳡ","Ⳣ","Ⳬ","Ⳮ","Ⳳ","Ꙁ","Ꙃ","Ꙅ","Ꙇ","Ꙉ","Ꙋ","Ꙍ","Ꙏ","Ꙑ","Ꙓ","Ꙕ","Ꙗ","Ꙙ","Ꙛ","Ꙝ","Ꙟ","Ꙡ","Ꙣ","Ꙥ","Ꙧ","Ꙩ","Ꙫ","Ꙭ","Ꚁ","Ꚃ","Ꚅ","Ꚇ","Ꚉ","Ꚋ","Ꚍ","Ꚏ","Ꚑ","Ꚓ","Ꚕ","Ꚗ","Ꚙ","Ꚛ","Ꜣ","Ꜥ","Ꜧ","Ꜩ","Ꜫ","Ꜭ","Ꜯ","Ꜳ","Ꜵ","Ꜷ","Ꜹ","Ꜻ","Ꜽ","Ꜿ","Ꝁ","Ꝃ","Ꝅ","Ꝇ","Ꝉ","Ꝋ","Ꝍ","Ꝏ","Ꝑ","Ꝓ","Ꝕ","Ꝗ","Ꝙ","Ꝛ","Ꝝ","Ꝟ","Ꝡ","Ꝣ","Ꝥ","Ꝧ","Ꝩ","Ꝫ","Ꝭ","Ꝯ","Ꝺ","Ꝼ",["Ᵹ","Ꝿ"],"Ꞁ","Ꞃ","Ꞅ","Ꞇ","Ꞌ","Ɥ","Ꞑ","Ꞓ","Ꞗ","Ꞙ","Ꞛ","Ꞝ","Ꞟ","Ꞡ","Ꞣ","Ꞥ","Ꞧ","Ꞩ",["Ɦ","Ɬ"],["Ʞ","Ꞵ"],"Ꞷ",["A","Z"]],!1,!1),ju=ne(["ः","ऻ",["ा","ी"],["ॉ","ौ"],["ॎ","ॏ"],["ং","ঃ"],["া","ী"],["ে","ৈ"],["ো","ৌ"],"ৗ","ਃ",["ਾ","ੀ"],"ઃ",["ા","ી"],"ૉ",["ો","ૌ"],["ଂ","ଃ"],"ା","ୀ",["େ","ୈ"],["ୋ","ୌ"],"ୗ",["ா","ி"],["ு","ூ"],["ெ","ை"],["ொ","ௌ"],"ௗ",["ఁ","ః"],["ు","ౄ"],["ಂ","ಃ"],"ಾ",["ೀ","ೄ"],["ೇ","ೈ"],["ೊ","ೋ"],["ೕ","ೖ"],["ം","ഃ"],["ാ","ീ"],["െ","ൈ"],["ൊ","ൌ"],"ൗ",["ං","ඃ"],["ා","ෑ"],["ෘ","ෟ"],["ෲ","ෳ"],["༾","༿"],"ཿ",["ါ","ာ"],"ေ","း",["ျ","ြ"],["ၖ","ၗ"],["ၢ","ၤ"],["ၧ","ၭ"],["ႃ","ႄ"],["ႇ","ႌ"],"ႏ",["ႚ","ႜ"],"ា",["ើ","ៅ"],["ះ","ៈ"],["ᤣ","ᤦ"],["ᤩ","ᤫ"],["ᤰ","ᤱ"],["ᤳ","ᤸ"],["ᨙ","ᨚ"],"ᩕ","ᩗ","ᩡ",["ᩣ","ᩤ"],["ᩭ","ᩲ"],"ᬄ","ᬵ","ᬻ",["ᬽ","ᭁ"],["ᭃ","᭄"],"ᮂ","ᮡ",["ᮦ","ᮧ"],"᮪","ᯧ",["ᯪ","ᯬ"],"ᯮ",["᯲","᯳"],["ᰤ","ᰫ"],["ᰴ","ᰵ"],"᳡",["ᳲ","ᳳ"],["〮","〯"],["ꠣ","ꠤ"],"ꠧ",["ꢀ","ꢁ"],["ꢴ","ꣃ"],["ꥒ","꥓"],"ꦃ",["ꦴ","ꦵ"],["ꦺ","ꦻ"],["ꦽ","꧀"],["ꨯ","ꨰ"],["ꨳ","ꨴ"],"ꩍ","ꩻ","ꩽ","ꫫ",["ꫮ","ꫯ"],"ꫵ",["ꯣ","ꯤ"],["ꯦ","ꯧ"],["ꯩ","ꯪ"],"꯬"],!1,!1),Gu=ne([["̀","ͯ"],["҃","҇"],["֑","ֽ"],"ֿ",["ׁ","ׂ"],["ׄ","ׅ"],"ׇ",["ؐ","ؚ"],["ً","ٟ"],"ٰ",["ۖ","ۜ"],["۟","ۤ"],["ۧ","ۨ"],["۪","ۭ"],"ܑ",["ܰ","݊"],["ަ","ް"],["߫","߳"],["ࠖ","࠙"],["ࠛ","ࠣ"],["ࠥ","ࠧ"],["ࠩ","࠭"],["࡙","࡛"],["ࣣ","ं"],"ऺ","़",["ु","ै"],"्",["॑","ॗ"],["ॢ","ॣ"],"ঁ","়",["ু","ৄ"],"্",["ৢ","ৣ"],["ਁ","ਂ"],"਼",["ੁ","ੂ"],["ੇ","ੈ"],["ੋ","੍"],"ੑ",["ੰ","ੱ"],"ੵ",["ઁ","ં"],"઼",["ુ","ૅ"],["ે","ૈ"],"્",["ૢ","ૣ"],"ଁ","଼","ି",["ୁ","ୄ"],"୍","ୖ",["ୢ","ୣ"],"ஂ","ீ","்","ఀ",["ా","ీ"],["ె","ై"],["ొ","్"],["ౕ","ౖ"],["ౢ","ౣ"],"ಁ","಼","ಿ","ೆ",["ೌ","್"],["ೢ","ೣ"],"ഁ",["ു","ൄ"],"്",["ൢ","ൣ"],"්",["ි","ු"],"ූ","ั",["ิ","ฺ"],["็","๎"],"ັ",["ິ","ູ"],["ົ","ຼ"],["່","ໍ"],["༘","༙"],"༵","༷","༹",["ཱ","ཾ"],["ྀ","྄"],["྆","྇"],["ྍ","ྗ"],["ྙ","ྼ"],"࿆",["ိ","ူ"],["ဲ","့"],["္","်"],["ွ","ှ"],["ၘ","ၙ"],["ၞ","ၠ"],["ၱ","ၴ"],"ႂ",["ႅ","ႆ"],"ႍ","ႝ",["፝","፟"],["ᜒ","᜔"],["ᜲ","᜴"],["ᝒ","ᝓ"],["ᝲ","ᝳ"],["឴","឵"],["ិ","ួ"],"ំ",["៉","៓"],"៝",["᠋","᠍"],"ᢩ",["ᤠ","ᤢ"],["ᤧ","ᤨ"],"ᤲ",["᤹","᤻"],["ᨗ","ᨘ"],"ᨛ","ᩖ",["ᩘ","ᩞ"],"᩠","ᩢ",["ᩥ","ᩬ"],["ᩳ","᩼"],"᩿",["᪰","᪽"],["ᬀ","ᬃ"],"᬴",["ᬶ","ᬺ"],"ᬼ","ᭂ",["᭫","᭳"],["ᮀ","ᮁ"],["ᮢ","ᮥ"],["ᮨ","ᮩ"],["᮫","ᮭ"],"᯦",["ᯨ","ᯩ"],"ᯭ",["ᯯ","ᯱ"],["ᰬ","ᰳ"],["ᰶ","᰷"],["᳐","᳒"],["᳔","᳠"],["᳢","᳨"],"᳭","᳴",["᳸","᳹"],["᷀","᷵"],["᷼","᷿"],["⃐","⃜"],"⃡",["⃥","⃰"],["⳯","⳱"],"⵿",["ⷠ","ⷿ"],["〪","〭"],["゙","゚"],"꙯",["ꙴ","꙽"],["ꚞ","ꚟ"],["꛰","꛱"],"ꠂ","꠆","ꠋ",["ꠥ","ꠦ"],"꣄",["꣠","꣱"],["ꤦ","꤭"],["ꥇ","ꥑ"],["ꦀ","ꦂ"],"꦳",["ꦶ","ꦹ"],"ꦼ","ꧥ",["ꨩ","ꨮ"],["ꨱ","ꨲ"],["ꨵ","ꨶ"],"ꩃ","ꩌ","ꩼ","ꪰ",["ꪲ","ꪴ"],["ꪷ","ꪸ"],["ꪾ","꪿"],"꫁",["ꫬ","ꫭ"],"꫶","ꯥ","ꯨ","꯭","ﬞ",["︀","️"],["︠","︯"]],!1,!1),Vu=ne([["0","9"],["٠","٩"],["۰","۹"],["߀","߉"],["०","९"],["০","৯"],["੦","੯"],["૦","૯"],["୦","୯"],["௦","௯"],["౦","౯"],["೦","೯"],["൦","൯"],["෦","෯"],["๐","๙"],["໐","໙"],["༠","༩"],["၀","၉"],["႐","႙"],["០","៩"],["᠐","᠙"],["᥆","᥏"],["᧐","᧙"],["᪀","᪉"],["᪐","᪙"],["᭐","᭙"],["᮰","᮹"],["᱀","᱉"],["᱐","᱙"],["꘠","꘩"],["꣐","꣙"],["꤀","꤉"],["꧐","꧙"],["꧰","꧹"],["꩐","꩙"],["꯰","꯹"],["0","9"]],!1,!1),Wu=ne([["ᛮ","ᛰ"],["Ⅰ","ↂ"],["ↅ","ↈ"],"〇",["〡","〩"],["〸","〺"],["ꛦ","ꛯ"]],!1,!1),Yu=ne(["_",["‿","⁀"],"⁔",["︳","︴"],["﹍","﹏"],"_"],!1,!1),zu=ne([" "," "," ",[" "," "]," "," "," "],!1,!1),Ju=re(";",!1),Qu=0,qu=0,Xu=[{line:1,column:1}],Ku=0,Zu=[],ue=0;if("startRule"in e){if(!(e.startRule in o))throw new Error("Can't start parsing from rule \""+e.startRule+'".');a=o[e.startRule]}function ee(){return ie(qu,Qu)}function te(u,e){throw function(u,e){return new peg$SyntaxError(u,null,null,e)}(u,e=void 0!==e?e:ie(qu,Qu))}function re(u,e){return{type:"literal",text:u,ignoreCase:e}}function ne(u,e,t){return{type:"class",parts:u,inverted:e,ignoreCase:t}}function oe(u){return{type:"other",description:u}}function ae(e){var t,r=Xu[e];if(r)return r;for(t=e-1;!Xu[t];)t--;for(r={line:(r=Xu[t]).line,column:r.column};tKu&&(Ku=Qu,Zu=[]),Zu.push(u))}function ce(){var e,t,n,o,a,c;if(e=Qu,Ue(),t=Qu,n=function(){var e,t,n,o,a;return e=Qu,123===u.charCodeAt(Qu)?(t=i,Qu++):(t=r,0===ue&&se(P)),t!==r&&(n=ke())!==r?(125===u.charCodeAt(Qu)?(o=s,Qu++):(o=r,0===ue&&se(b)),o!==r&&je()!==r?(qu=e,e={type:"top_level_initializer",code:(a=n)[0],codeLocation:a[1],location:ee()}):(Qu=e,e=r)):(Qu=e,e=r),e}(),n!==r?(o=Ue(),t=n):(Qu=t,t=r),t===r&&(t=null),n=Qu,o=function(){var u,e,t;return u=Qu,(e=ke())!==r&&je()!==r?(qu=u,u={type:"initializer",code:(t=e)[0],codeLocation:t[1],location:ee()}):(Qu=u,u=r),u}(),o!==r?(a=Ue(),n=o):(Qu=n,n=r),n===r&&(n=null),o=[],a=Qu,(c=le())!==r?(Ue(),a=c):(Qu=a,a=r),a!==r)for(;a!==r;)o.push(a),a=Qu,(c=le())!==r?(Ue(),a=c):(Qu=a,a=r);else o=r;return o!==r?(qu=e,e={type:"grammar",topLevelInitializer:t,initializer:n,rules:o,location:ee()}):(Qu=e,e=r),e}function le(){var e,t,n,o,a,i,s,c;return e=Qu,(t=$e())!==r?(Ue(),n=Qu,(o=xe())!==r?(Ue(),n=o):(Qu=n,n=r),n===r&&(n=null),61===u.charCodeAt(Qu)?(o="=",Qu++):(o=r,0===ue&&se(R)),o!==r?(Ue(),(a=pe())!==r&&je()!==r?(qu=e,s=n,c=a,e={type:"rule",name:(i=t)[0],nameLocation:i[1],expression:null!==s?{type:"named",name:s,expression:c,location:ee()}:c,location:ee()}):(Qu=e,e=r)):(Qu=e,e=r)):(Qu=e,e=r),e}function pe(){var e,t,n,o,a,i,s,c;if(e=Qu,(t=Ae())!==r){for(n=[],o=Qu,Ue(),47===u.charCodeAt(Qu)?(a="/",Qu++):(a=r,0===ue&&se(O)),a!==r?(Ue(),(i=Ae())!==r?o=i:(Qu=o,o=r)):(Qu=o,o=r);o!==r;)n.push(o),o=Qu,Ue(),47===u.charCodeAt(Qu)?(a="/",Qu++):(a=r,0===ue&&se(O)),a!==r?(Ue(),(i=Ae())!==r?o=i:(Qu=o,o=r)):(Qu=o,o=r);qu=e,s=t,e=(c=n).length>0?{type:"choice",alternatives:[s].concat(c),location:ee()}:s}else Qu=e,e=r;return e}function Ae(){var u,e,t,n,o,a;return u=Qu,e=function(){var u,e,t,n,o,a,i;if(u=Qu,(e=Ee())!==r){for(t=[],n=Qu,Ue(),(o=Ee())!==r?n=o:(Qu=n,n=r);n!==r;)t.push(n),n=Qu,Ue(),(o=Ee())!==r?n=o:(Qu=n,n=r);qu=u,a=e,u=(i=t).length>0||"labeled"===a.type&&a.pick?{type:"sequence",elements:[a].concat(i),location:ee()}:a}else Qu=u,u=r;return u}(),e!==r?(t=Qu,Ue(),(n=ke())!==r?t=n:(Qu=t,t=r),t===r&&(t=null),qu=u,o=e,u=null!==(a=t)?{type:"action",expression:o,code:a[0],codeLocation:a[1],location:ee()}:o):(Qu=u,u=r),u}function Ee(){var e,t,n,o,a,i,s;return e=Qu,t=function(){var e,t;return e=Qu,64===u.charCodeAt(Qu)?(t="@",Qu++):(t=r,0===ue&&se(L)),t!==r&&(qu=e,t=ee()),t}(),t!==r?((n=fe())===r&&(n=null),(o=he())!==r?(qu=e,a=t,i=n,(s=o).type.startsWith("semantic_")&&te('"@" cannot be used on a semantic predicate',a),e={type:"labeled",label:null!==i?i[0]:null,labelLocation:null!==i?i[1]:a,pick:!0,expression:s,location:ee()}):(Qu=e,e=r)):(Qu=e,e=r),e===r&&(e=Qu,(t=fe())!==r?(n=Ue(),(o=he())!==r?(qu=e,e=function(u,e){return{type:"labeled",label:u[0],labelLocation:u[1],expression:e,location:ee()}}(t,o)):(Qu=e,e=r)):(Qu=e,e=r),e===r&&(e=he())),e}function fe(){var e,t,n,o;return e=Qu,(t=$e())!==r?(Ue(),58===u.charCodeAt(Qu)?(n=":",Qu++):(n=r,0===ue&&se(T)),n!==r?(qu=e,o=t,Ge.indexOf(o[0])>=0&&te("Label can't be a reserved word \"".concat(o[0],'"'),o[1]),e=o):(Qu=e,e=r)):(Qu=e,e=r),e}function he(){var e,t,n,o;return e=Qu,t=function(){var e;return 36===u.charCodeAt(Qu)?(e="$",Qu++):(e=r,0===ue&&se(w)),e===r&&(38===u.charCodeAt(Qu)?(e="&",Qu++):(e=r,0===ue&&se(N)),e===r&&(33===u.charCodeAt(Qu)?(e="!",Qu++):(e=r,0===ue&&se(I)))),e}(),t!==r?(Ue(),(n=Ce())!==r?(qu=e,o=n,e={type:OPS_TO_PREFIXED_TYPES[t],expression:o,location:ee()}):(Qu=e,e=r)):(Qu=e,e=r),e===r&&(e=Ce()),e}function Ce(){var e,t,n,o;return e=Qu,(t=de())!==r?(Ue(),n=function(){var e;return 63===u.charCodeAt(Qu)?(e="?",Qu++):(e=r,0===ue&&se(M)),e===r&&(42===u.charCodeAt(Qu)?(e="*",Qu++):(e=r,0===ue&&se(k)),e===r&&(43===u.charCodeAt(Qu)?(e="+",Qu++):(e=r,0===ue&&se(H)))),e}(),n!==r?(qu=e,o=t,e={type:OPS_TO_SUFFIXED_TYPES[n],expression:o,location:ee()}):(Qu=e,e=r)):(Qu=e,e=r),e===r&&(e=de()),e}function de(){var e,t,n,o,a;return e=function(){var e,t,n;return ue++,e=Qu,(t=xe())!==r?(105===u.charCodeAt(Qu)?(n="i",Qu++):(n=r,0===ue&&se(fu)),n===r&&(n=null),qu=e,e={type:"literal",value:t,ignoreCase:null!==n,location:ee()}):(Qu=e,e=r),ue--,e===r&&(t=r,0===ue&&se(Eu)),e}(),e===r&&(e=function(){var e,t,n,o,a,i,s,c;if(ue++,e=Qu,91===u.charCodeAt(Qu)?(t="[",Qu++):(t=r,0===ue&&se(Fu)),t!==r){for(94===u.charCodeAt(Qu)?(n="^",Qu++):(n=r,0===ue&&se(mu)),n===r&&(n=null),o=[],(a=Re())===r&&(a=Oe());a!==r;)o.push(a),(a=Re())===r&&(a=Oe());93===u.charCodeAt(Qu)?(a="]",Qu++):(a=r,0===ue&&se(_u)),a!==r?(105===u.charCodeAt(Qu)?(i="i",Qu++):(i=r,0===ue&&se(fu)),i===r&&(i=null),qu=e,s=n,c=i,e={type:"class",parts:o.filter((function(u){return""!==u})),inverted:null!==s,ignoreCase:null!==c,location:ee()}):(Qu=e,e=r)}else Qu=e,e=r;return ue--,e===r&&(t=r,0===ue&&se(gu)),e}(),e===r&&(e=function(){var e,t;return e=Qu,46===u.charCodeAt(Qu)?(t=".",Qu++):(t=r,0===ue&&se(Tu)),t!==r&&(qu=e,t={type:"any",location:ee()}),t}(),e===r&&(e=function(){var e,t,n,o,a,i,s;return e=Qu,(t=$e())!==r?(n=Qu,ue++,o=Qu,a=Ue(),i=Qu,(s=xe())!==r?i=s=[s,Ue()]:(Qu=i,i=r),i===r&&(i=null),61===u.charCodeAt(Qu)?(s="=",Qu++):(s=r,0===ue&&se(R)),s!==r?o=a=[a,i,s]:(Qu=o,o=r),ue--,o===r?n=void 0:(Qu=n,n=r),n!==r?(qu=e,e={type:"rule_ref",name:t[0],location:ee()}):(Qu=e,e=r)):(Qu=e,e=r),e}(),e===r&&(e=function(){var e,t,n,o;return e=Qu,t=function(){var e;return 38===u.charCodeAt(Qu)?(e="&",Qu++):(e=r,0===ue&&se(N)),e===r&&(33===u.charCodeAt(Qu)?(e="!",Qu++):(e=r,0===ue&&se(I))),e}(),t!==r?(Ue(),(n=ke())!==r?(qu=e,o=n,e={type:OPS_TO_SEMANTIC_PREDICATE_TYPES[t],code:o[0],codeLocation:o[1],location:ee()}):(Qu=e,e=r)):(Qu=e,e=r),e}(),e===r&&(e=Qu,40===u.charCodeAt(Qu)?(t="(",Qu++):(t=r,0===ue&&se(U)),t!==r?(Ue(),(n=pe())!==r?(Ue(),41===u.charCodeAt(Qu)?(o=")",Qu++):(o=r,0===ue&&se(j)),o!==r?(qu=e,e="labeled"===(a=n).type||"sequence"===a.type?{type:"group",expression:a,location:ee()}:a):(Qu=e,e=r)):(Qu=e,e=r)):(Qu=e,e=r)))))),e}function ge(){var e;return u.length>Qu?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(G)),e}function Fe(){var e;return ue++,9===u.charCodeAt(Qu)?(e="\t",Qu++):(e=r,0===ue&&se(W)),e===r&&(11===u.charCodeAt(Qu)?(e="\v",Qu++):(e=r,0===ue&&se(Y)),e===r&&(12===u.charCodeAt(Qu)?(e="\f",Qu++):(e=r,0===ue&&se(z)),e===r&&(32===u.charCodeAt(Qu)?(e=" ",Qu++):(e=r,0===ue&&se(J)),e===r&&(160===u.charCodeAt(Qu)?(e=" ",Qu++):(e=r,0===ue&&se(Q)),e===r&&(65279===u.charCodeAt(Qu)?(e="\ufeff",Qu++):(e=r,0===ue&&se(q)),e===r&&(e=function(){var e;return x.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(zu)),e}())))))),ue--,e===r&&0===ue&&se(V),e}function me(){var e;return f.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(X)),e}function _e(){var e;return ue++,10===u.charCodeAt(Qu)?(e="\n",Qu++):(e=r,0===ue&&se(Z)),e===r&&("\r\n"===u.substr(Qu,2)?(e="\r\n",Qu+=2):(e=r,0===ue&&se(uu)),e===r&&(13===u.charCodeAt(Qu)?(e="\r",Qu++):(e=r,0===ue&&se(eu)),e===r&&(8232===u.charCodeAt(Qu)?(e="\u2028",Qu++):(e=r,0===ue&&se(tu)),e===r&&(8233===u.charCodeAt(Qu)?(e="\u2029",Qu++):(e=r,0===ue&&se(ru)))))),ue--,e===r&&0===ue&&se(K),e}function Be(){var e;return ue++,(e=function(){var e,t,n,o,a,i;if(e=Qu,u.substr(Qu,2)===c?(t=c,Qu+=2):(t=r,0===ue&&se(ou)),t!==r){for(n=[],o=Qu,a=Qu,ue++,u.substr(Qu,2)===l?(i=l,Qu+=2):(i=r,0===ue&&se(au)),ue--,i===r?a=void 0:(Qu=a,a=r),a!==r&&(i=ge())!==r?o=a=[a,i]:(Qu=o,o=r);o!==r;)n.push(o),o=Qu,a=Qu,ue++,u.substr(Qu,2)===l?(i=l,Qu+=2):(i=r,0===ue&&se(au)),ue--,i===r?a=void 0:(Qu=a,a=r),a!==r&&(i=ge())!==r?o=a=[a,i]:(Qu=o,o=r);u.substr(Qu,2)===l?(o=l,Qu+=2):(o=r,0===ue&&se(au)),o!==r?e=t=[t,n,o]:(Qu=e,e=r)}else Qu=e,e=r;return e}())===r&&(e=ve()),ue--,e===r&&0===ue&&se(nu),e}function De(){var e,t,n,o,a,i;if(e=Qu,u.substr(Qu,2)===c?(t=c,Qu+=2):(t=r,0===ue&&se(ou)),t!==r){for(n=[],o=Qu,a=Qu,ue++,u.substr(Qu,2)===l?(i=l,Qu+=2):(i=r,0===ue&&se(au)),i===r&&(i=me()),ue--,i===r?a=void 0:(Qu=a,a=r),a!==r&&(i=ge())!==r?o=a=[a,i]:(Qu=o,o=r);o!==r;)n.push(o),o=Qu,a=Qu,ue++,u.substr(Qu,2)===l?(i=l,Qu+=2):(i=r,0===ue&&se(au)),i===r&&(i=me()),ue--,i===r?a=void 0:(Qu=a,a=r),a!==r&&(i=ge())!==r?o=a=[a,i]:(Qu=o,o=r);u.substr(Qu,2)===l?(o=l,Qu+=2):(o=r,0===ue&&se(au)),o!==r?e=t=[t,n,o]:(Qu=e,e=r)}else Qu=e,e=r;return e}function ve(){var e,t,n,o,a,i;if(e=Qu,"//"===u.substr(Qu,2)?(t="//",Qu+=2):(t=r,0===ue&&se(iu)),t!==r){for(n=[],o=Qu,a=Qu,ue++,i=me(),ue--,i===r?a=void 0:(Qu=a,a=r),a!==r&&(i=ge())!==r?o=a=[a,i]:(Qu=o,o=r);o!==r;)n.push(o),o=Qu,a=Qu,ue++,i=me(),ue--,i===r?a=void 0:(Qu=a,a=r),a!==r&&(i=ge())!==r?o=a=[a,i]:(Qu=o,o=r);e=t=[t,n]}else Qu=e,e=r;return e}function $e(){var u,e,t,n;if(ue++,u=Qu,(e=Se())!==r){for(t=[],n=ye();n!==r;)t.push(n),n=ye();qu=u,u=[e+t.join(""),ee()]}else Qu=u,u=r;return ue--,u===r&&(e=r,0===ue&&se(su)),u}function Se(){var e,t,n;return(e=function(){var e;return(e=function(){var e;return B.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Uu)),e}())===r&&(e=function(){var e;return g.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Iu)),e}())===r&&(e=function(){var e;return _.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Hu)),e}())===r&&(e=function(){var e;return F.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Mu)),e}())===r&&(e=function(){var e;return m.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(ku)),e}())===r&&(e=function(){var e;return S.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Wu)),e}()),e}())===r&&(36===u.charCodeAt(Qu)?(e="$",Qu++):(e=r,0===ue&&se(w)),e===r&&(95===u.charCodeAt(Qu)?(e="_",Qu++):(e=r,0===ue&&se(cu)),e===r&&(e=Qu,92===u.charCodeAt(Qu)?(t=p,Qu++):(t=r,0===ue&&se(lu)),t!==r&&(n=Ne())!==r?e=n:(Qu=e,e=r)))),e}function ye(){var e;return(e=Se())===r&&(e=function(){var e;return(e=function(){var e;return v.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Gu)),e}())===r&&(e=function(){var e;return D.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(ju)),e}()),e}())===r&&(e=function(){var e;return $.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Vu)),e}())===r&&(e=function(){var e;return y.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Yu)),e}())===r&&(8204===u.charCodeAt(Qu)?(e="‌",Qu++):(e=r,0===ue&&se(pu)),e===r&&(8205===u.charCodeAt(Qu)?(e="‍",Qu++):(e=r,0===ue&&se(Au)))),e}function xe(){var e,t,n,o;if(ue++,e=Qu,34===u.charCodeAt(Qu)?(t=A,Qu++):(t=r,0===ue&&se(Cu)),t!==r){for(n=[],o=Pe();o!==r;)n.push(o),o=Pe();34===u.charCodeAt(Qu)?(o=A,Qu++):(o=r,0===ue&&se(Cu)),o!==r?(qu=e,e=n.join("")):(Qu=e,e=r)}else Qu=e,e=r;if(e===r)if(e=Qu,39===u.charCodeAt(Qu)?(t=E,Qu++):(t=r,0===ue&&se(du)),t!==r){for(n=[],o=be();o!==r;)n.push(o),o=be();39===u.charCodeAt(Qu)?(o=E,Qu++):(o=r,0===ue&&se(du)),o!==r?(qu=e,e=n.join("")):(Qu=e,e=r)}else Qu=e,e=r;return ue--,e===r&&(t=r,0===ue&&se(hu)),e}function Pe(){var e,t,n,o;return e=Qu,t=Qu,n=Qu,ue++,34===u.charCodeAt(Qu)?(o=A,Qu++):(o=r,0===ue&&se(Cu)),o===r&&(92===u.charCodeAt(Qu)?(o=p,Qu++):(o=r,0===ue&&se(lu)),o===r&&(o=me())),ue--,o===r?n=void 0:(Qu=n,n=r),n!==r&&(o=ge())!==r?t=n=[n,o]:(Qu=t,t=r),(e=t!==r?u.substring(e,Qu):t)===r&&(e=Qu,92===u.charCodeAt(Qu)?(t=p,Qu++):(t=r,0===ue&&se(lu)),t!==r&&(n=Te())!==r?e=n:(Qu=e,e=r),e===r&&(e=Le())),e}function be(){var e,t,n,o;return e=Qu,t=Qu,n=Qu,ue++,39===u.charCodeAt(Qu)?(o=E,Qu++):(o=r,0===ue&&se(du)),o===r&&(92===u.charCodeAt(Qu)?(o=p,Qu++):(o=r,0===ue&&se(lu)),o===r&&(o=me())),ue--,o===r?n=void 0:(Qu=n,n=r),n!==r&&(o=ge())!==r?t=n=[n,o]:(Qu=t,t=r),(e=t!==r?u.substring(e,Qu):t)===r&&(e=Qu,92===u.charCodeAt(Qu)?(t=p,Qu++):(t=r,0===ue&&se(lu)),t!==r&&(n=Te())!==r?e=n:(Qu=e,e=r),e===r&&(e=Le())),e}function Re(){var e,t,n,o,a,i;return e=Qu,(t=Oe())!==r?(45===u.charCodeAt(Qu)?(n="-",Qu++):(n=r,0===ue&&se(Bu)),n!==r&&(o=Oe())!==r?(qu=e,i=o,(a=t).charCodeAt(0)>i.charCodeAt(0)&&te("Invalid character range: "+u.substring(qu,Qu)+"."),e=[a,i]):(Qu=e,e=r)):(Qu=e,e=r),e}function Oe(){var e,t,n,o;return e=Qu,t=Qu,n=Qu,ue++,93===u.charCodeAt(Qu)?(o="]",Qu++):(o=r,0===ue&&se(_u)),o===r&&(92===u.charCodeAt(Qu)?(o=p,Qu++):(o=r,0===ue&&se(lu)),o===r&&(o=me())),ue--,o===r?n=void 0:(Qu=n,n=r),n!==r&&(o=ge())!==r?t=n=[n,o]:(Qu=t,t=r),(e=t!==r?u.substring(e,Qu):t)===r&&(e=Qu,92===u.charCodeAt(Qu)?(t=p,Qu++):(t=r,0===ue&&se(lu)),t!==r&&(n=Te())!==r?e=n:(Qu=e,e=r),e===r&&(e=Le())),e}function Le(){var e,t;return e=Qu,92===u.charCodeAt(Qu)?(t=p,Qu++):(t=r,0===ue&&se(lu)),t!==r&&_e()!==r?(qu=e,e=""):(Qu=e,e=r),e}function Te(){var e,t,n,o;return e=function(){var e;return(e=we())===r&&(e=function(){var e,t,n,o;return e=Qu,t=Qu,n=Qu,ue++,o=function(){var e;return(e=we())===r&&(e=Ie())===r&&(120===u.charCodeAt(Qu)?(e="x",Qu++):(e=r,0===ue&&se(bu)),e===r&&(117===u.charCodeAt(Qu)?(e="u",Qu++):(e=r,0===ue&&se(Ru)))),e}(),o===r&&(o=me()),ue--,o===r?n=void 0:(Qu=n,n=r),n!==r&&(o=ge())!==r?t=n=[n,o]:(Qu=t,t=r),e=t!==r?u.substring(e,Qu):t}()),e}(),e===r&&(e=Qu,48===u.charCodeAt(Qu)?(t="0",Qu++):(t=r,0===ue&&se(Du)),t!==r?(n=Qu,ue++,o=Ie(),ue--,o===r?n=void 0:(Qu=n,n=r),n!==r?(qu=e,e="\0"):(Qu=e,e=r)):(Qu=e,e=r),e===r&&(e=function(){var e,t,n,o,a,i,s;return e=Qu,120===u.charCodeAt(Qu)?(t="x",Qu++):(t=r,0===ue&&se(bu)),t!==r?(n=Qu,o=Qu,(a=Me())!==r&&(i=Me())!==r?o=a=[a,i]:(Qu=o,o=r),(n=o!==r?u.substring(n,Qu):o)!==r?(qu=e,s=n,e=String.fromCharCode(parseInt(s,16))):(Qu=e,e=r)):(Qu=e,e=r),e}(),e===r&&(e=Ne()))),e}function we(){var e,t;return 39===u.charCodeAt(Qu)?(e=E,Qu++):(e=r,0===ue&&se(du)),e===r&&(34===u.charCodeAt(Qu)?(e=A,Qu++):(e=r,0===ue&&se(Cu)),e===r&&(92===u.charCodeAt(Qu)?(e=p,Qu++):(e=r,0===ue&&se(lu)),e===r&&(e=Qu,98===u.charCodeAt(Qu)?(t="b",Qu++):(t=r,0===ue&&se(vu)),t!==r&&(qu=e,t="\b"),(e=t)===r&&(e=Qu,102===u.charCodeAt(Qu)?(t="f",Qu++):(t=r,0===ue&&se($u)),t!==r&&(qu=e,t="\f"),(e=t)===r&&(e=Qu,110===u.charCodeAt(Qu)?(t="n",Qu++):(t=r,0===ue&&se(Su)),t!==r&&(qu=e,t="\n"),(e=t)===r&&(e=Qu,114===u.charCodeAt(Qu)?(t="r",Qu++):(t=r,0===ue&&se(yu)),t!==r&&(qu=e,t="\r"),(e=t)===r&&(e=Qu,116===u.charCodeAt(Qu)?(t="t",Qu++):(t=r,0===ue&&se(xu)),t!==r&&(qu=e,t="\t"),(e=t)===r&&(e=Qu,118===u.charCodeAt(Qu)?(t="v",Qu++):(t=r,0===ue&&se(Pu)),t!==r&&(qu=e,t="\v"),e=t)))))))),e}function Ne(){var e,t,n,o,a,i,s,c,l;return e=Qu,117===u.charCodeAt(Qu)?(t="u",Qu++):(t=r,0===ue&&se(Ru)),t!==r?(n=Qu,o=Qu,(a=Me())!==r&&(i=Me())!==r&&(s=Me())!==r&&(c=Me())!==r?o=a=[a,i,s,c]:(Qu=o,o=r),(n=o!==r?u.substring(n,Qu):o)!==r?(qu=e,l=n,e=String.fromCharCode(parseInt(l,16))):(Qu=e,e=r)):(Qu=e,e=r),e}function Ie(){var e;return h.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Ou)),e}function Me(){var e;return C.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Lu)),e}function ke(){var e,t,n,o;return ue++,e=Qu,123===u.charCodeAt(Qu)?(t=i,Qu++):(t=r,0===ue&&se(P)),t!==r?(n=function(){var u,e;return u=Qu,e=He(),qu=u,e=[e,ee()]}(),125===u.charCodeAt(Qu)?(o=s,Qu++):(o=r,0===ue&&se(b)),o!==r?e=n:(Qu=e,e=r)):(Qu=e,e=r),ue--,e===r&&(t=r,0===ue&&se(wu)),e}function He(){var e,t,n,o,a,c;if(e=Qu,t=[],n=[],o=Qu,a=Qu,ue++,d.test(u.charAt(Qu))?(c=u.charAt(Qu),Qu++):(c=r,0===ue&&se(Nu)),ue--,c===r?a=void 0:(Qu=a,a=r),a!==r&&(c=ge())!==r?o=a=[a,c]:(Qu=o,o=r),o!==r)for(;o!==r;)n.push(o),o=Qu,a=Qu,ue++,d.test(u.charAt(Qu))?(c=u.charAt(Qu),Qu++):(c=r,0===ue&&se(Nu)),ue--,c===r?a=void 0:(Qu=a,a=r),a!==r&&(c=ge())!==r?o=a=[a,c]:(Qu=o,o=r);else n=r;for(n===r&&(n=Qu,123===u.charCodeAt(Qu)?(o=i,Qu++):(o=r,0===ue&&se(P)),o!==r?(a=He(),125===u.charCodeAt(Qu)?(c=s,Qu++):(c=r,0===ue&&se(b)),c!==r?n=o=[o,a,c]:(Qu=n,n=r)):(Qu=n,n=r));n!==r;){if(t.push(n),n=[],o=Qu,a=Qu,ue++,d.test(u.charAt(Qu))?(c=u.charAt(Qu),Qu++):(c=r,0===ue&&se(Nu)),ue--,c===r?a=void 0:(Qu=a,a=r),a!==r&&(c=ge())!==r?o=a=[a,c]:(Qu=o,o=r),o!==r)for(;o!==r;)n.push(o),o=Qu,a=Qu,ue++,d.test(u.charAt(Qu))?(c=u.charAt(Qu),Qu++):(c=r,0===ue&&se(Nu)),ue--,c===r?a=void 0:(Qu=a,a=r),a!==r&&(c=ge())!==r?o=a=[a,c]:(Qu=o,o=r);else n=r;n===r&&(n=Qu,123===u.charCodeAt(Qu)?(o=i,Qu++):(o=r,0===ue&&se(P)),o!==r?(a=He(),125===u.charCodeAt(Qu)?(c=s,Qu++):(c=r,0===ue&&se(b)),c!==r?n=o=[o,a,c]:(Qu=n,n=r)):(Qu=n,n=r))}return u.substring(e,Qu)}function Ue(){var u,e;for(u=[],(e=Fe())===r&&(e=_e())===r&&(e=Be());e!==r;)u.push(e),(e=Fe())===r&&(e=_e())===r&&(e=Be());return u}function je(){var e,t,n,o;return e=Qu,t=Ue(),59===u.charCodeAt(Qu)?(n=";",Qu++):(n=r,0===ue&&se(Ju)),n!==r?e=t=[t,n]:(Qu=e,e=r),e===r&&(e=Qu,t=function(){var u,e;for(u=[],(e=Fe())===r&&(e=De());e!==r;)u.push(e),(e=Fe())===r&&(e=De());return u}(),(n=ve())===r&&(n=null),(o=_e())!==r?e=t=[t,n,o]:(Qu=e,e=r),e===r&&(e=Qu,t=Ue(),n=function(){var e,t;return e=Qu,ue++,u.length>Qu?(t=u.charAt(Qu),Qu++):(t=r,0===ue&&se(G)),ue--,t===r?e=void 0:(Qu=e,e=r),e}(),n!==r?e=t=[t,n]:(Qu=e,e=r))),e}var Ge=e.reservedWords||[];if((t=a())!==r&&Qu===u.length)return t;throw t!==r&&Qu0){for(e=1,t=1;e0?NEVER_MATCH$1:SOMETIMES_MATCH$1}var o=visitor$9.build({rule:function(u){var e,t=0;if(void 0===u.match){u.match=SOMETIMES_MATCH$1;do{if(e=u.match,u.match=o(u.expression),++t>6)throw new GrammarError$2("Infinity cycle detected when trying to evaluate node match result",u.location)}while(e!==u.match)}return u.match},named:r,choice:function(u){return u.match=n(u.alternatives,!0)},action:r,sequence:function(u){return u.match=n(u.elements,!1)},labeled:r,text:r,simple_and:r,simple_not:function(u){return u.match=-o(u.expression)},optional:t,zero_or_more:t,one_or_more:r,group:r,semantic_and:e,semantic_not:e,rule_ref:function(e){var t=asts$6.findRule(u,e.name);return e.match=o(t)},literal:function(u){var e=0===u.value.length?ALWAYS_MATCH$1:SOMETIMES_MATCH$1;return u.match=e},class:function(u){var e=0===u.parts.length?NEVER_MATCH$1:SOMETIMES_MATCH$1;return u.match=e},any:e});o(u)}inferenceMatchResult$1.ALWAYS_MATCH=ALWAYS_MATCH$1,inferenceMatchResult$1.SOMETIMES_MATCH=SOMETIMES_MATCH$1,inferenceMatchResult$1.NEVER_MATCH=NEVER_MATCH$1;var inferenceMatchResult_1=inferenceMatchResult$1,__spreadArray$2=commonjsGlobal&&commonjsGlobal.__spreadArray||function(u,e,t){if(t||2===arguments.length)for(var r,n=0,o=e.length;n1?E(SOMETIMES_MATCH,[op$1.IF_ERROR],A([op$1.POP],u(e.slice(1),t)),[]):[])}(u.alternatives,e)},action:function(u,e){var t=p(e.env),r="sequence"!==u.expression.type||0===u.expression.elements.length,n=F(u.expression,{sp:e.sp+(r?1:0),env:t,action:u}),o=0|u.expression.match,a=r&&o!==NEVER_MATCH?c(!1,Object.keys(t),u):null;return r?A([op$1.PUSH_CURR_POS],n,E(o,[op$1.IF_NOT_ERROR],A([op$1.LOAD_SAVED_POS,1],h(a,1,t,e.sp+2)),[]),[op$1.NIP]):n},sequence:function(u,e){return A([op$1.PUSH_CURR_POS],function e(t,r){if(t.length>0){var n=u.elements.length-t.length+1;return A(F(t[0],{sp:r.sp,env:r.env,pluck:r.pluck,action:null}),E(0|t[0].match,[op$1.IF_NOT_ERROR],e(t.slice(1),{sp:r.sp+1,env:r.env,pluck:r.pluck,action:r.action}),A(n>1?[op$1.POP_N,n]:[op$1.POP],[op$1.POP_CURR_POS],[op$1.PUSH_FAILED])))}if(r.pluck.length>0)return A([op$1.PLUCK,u.elements.length+1,r.pluck.length],r.pluck.map((function(u){return r.sp-u})));if(r.action){var o=c(!1,Object.keys(r.env),r.action);return A([op$1.LOAD_SAVED_POS,u.elements.length],h(o,u.elements.length+1,r.env,r.sp))}return A([op$1.WRAP,u.elements.length],[op$1.NIP])}(u.elements,{sp:e.sp+1,env:e.env,pluck:[],action:e.action}))},labeled:function(u,t){var r=t.env,n=u.label,o=t.sp+1;n&&(r=p(t.env),t.env[u.label]=o),u.pick&&t.pluck.push(o);var a=F(u.expression,{sp:t.sp,env:r,action:null});return n&&u.labelLocation&&e&&"source-and-map"===e.output?A([op$1.SOURCE_MAP_LABEL_PUSH,o,i(n),l(u.labelLocation)],a,[op$1.SOURCE_MAP_LABEL_POP,o]):a},text:function(u,e){return A([op$1.PUSH_CURR_POS],F(u.expression,{sp:e.sp+1,env:p(e.env),action:null}),E(0|u.match,[op$1.IF_NOT_ERROR],A([op$1.POP],[op$1.TEXT]),[op$1.NIP]))},simple_and:function(u,e){return f(u.expression,!1,e)},simple_not:function(u,e){return f(u.expression,!0,e)},optional:function(u,e){return A(F(u.expression,{sp:e.sp,env:p(e.env),action:null}),E(-(0|u.expression.match),[op$1.IF_ERROR],A([op$1.POP],[op$1.PUSH_NULL]),[]))},zero_or_more:function(u,e){var t=F(u.expression,{sp:e.sp+1,env:p(e.env),action:null});return A([op$1.PUSH_EMPTY_ARRAY],t,d(t),[op$1.POP])},one_or_more:function(u,e){var t=F(u.expression,{sp:e.sp+1,env:p(e.env),action:null});return A([op$1.PUSH_EMPTY_ARRAY],t,E(0|u.expression.match,[op$1.IF_NOT_ERROR],A(d(t),[op$1.POP]),A([op$1.POP],[op$1.POP],[op$1.PUSH_FAILED])))},group:function(u,e){return F(u.expression,{sp:e.sp,env:p(e.env),action:null})},semantic_and:function(u,e){return C(u,!1,e)},semantic_not:function(u,e){return C(u,!0,e)},rule_ref:function(e){return[op$1.RULE,asts$5.indexOfRule(u,e.name)]},literal:function(u){if(u.value.length>0){var e=0|u.match,t=e===SOMETIMES_MATCH||e===ALWAYS_MATCH&&!u.ignoreCase?i(u.ignoreCase?u.value.toLowerCase():u.value):null,r=e!==ALWAYS_MATCH?s({type:"literal",value:u.value,ignoreCase:u.ignoreCase}):null;return E(e,u.ignoreCase?[op$1.MATCH_STRING_IC,t]:[op$1.MATCH_STRING,t],u.ignoreCase?[op$1.ACCEPT_N,u.value.length]:[op$1.ACCEPT_STRING,t],[op$1.FAIL,r])}return[op$1.PUSH_EMPTY_STRING]},class:function(u){var e=0|u.match,t=e===SOMETIMES_MATCH?function(u){var e={value:u.parts,inverted:u.inverted,ignoreCase:u.ignoreCase},t=JSON.stringify(e),n=r.findIndex((function(u){return JSON.stringify(u)===t}));return-1===n?r.push(e)-1:n}(u):null,n=e!==ALWAYS_MATCH?s({type:"class",value:u.parts,inverted:u.inverted,ignoreCase:u.ignoreCase}):null;return E(e,[op$1.MATCH_CHAR_CLASS,t],[op$1.ACCEPT_N,1],[op$1.FAIL,n])},any:function(u){var e=0|u.match,t=e!==ALWAYS_MATCH?s({type:"any"}):null;return E(e,[op$1.MATCH_ANY],[op$1.ACCEPT_N,1],[op$1.FAIL,t])}},e&&"source-and-map"===e.output&&Object.entries(g).forEach((function(u){var e=u[0],t=u[1];g[e]=function(u){for(var e=[],r=1;r>>=VLQ_BASE_SHIFT,r>0&&(e|=VLQ_CONTINUATION_BIT),t+=base64$2.encode(e)}while(r>0);return t};var util$3={};function getArg(u,e,t){if(e in u)return u[e];if(3===arguments.length)return t;throw new Error('"'+e+'" is a required argument.')}util$3.getArg=getArg;const supportsNullProto=!("__proto__"in Object.create(null));function identity(u){return u}function toSetString(u){return isProtoString(u)?"$"+u:u}function fromSetString(u){return isProtoString(u)?u.slice(1):u}function isProtoString(u){if(!u)return!1;const e=u.length;if(e<9)return!1;if(95!==u.charCodeAt(e-1)||95!==u.charCodeAt(e-2)||111!==u.charCodeAt(e-3)||116!==u.charCodeAt(e-4)||111!==u.charCodeAt(e-5)||114!==u.charCodeAt(e-6)||112!==u.charCodeAt(e-7)||95!==u.charCodeAt(e-8)||95!==u.charCodeAt(e-9))return!1;for(let t=e-10;t>=0;t--)if(36!==u.charCodeAt(t))return!1;return!0}function strcmp(u,e){return u===e?0:null===u?1:null===e?-1:u>e?1:-1}function compareByGeneratedPositionsInflated(u,e){let t=u.generatedLine-e.generatedLine;return 0!==t?t:(t=u.generatedColumn-e.generatedColumn,0!==t?t:(t=strcmp(u.source,e.source),0!==t?t:(t=u.originalLine-e.originalLine,0!==t?t:(t=u.originalColumn-e.originalColumn,0!==t?t:strcmp(u.name,e.name)))))}util$3.toSetString=supportsNullProto?identity:toSetString,util$3.fromSetString=supportsNullProto?identity:fromSetString,util$3.compareByGeneratedPositionsInflated=compareByGeneratedPositionsInflated;const PROTOCOL="http:",PROTOCOL_AND_HOST=`${PROTOCOL}//host`;function createSafeHandler(u){return e=>{const t=getURLType(e),r=buildSafeBase(e),n=new URL(e,r);u(n);const o=n.toString();return"absolute"===t?o:"scheme-relative"===t?o.slice(PROTOCOL.length):"path-absolute"===t?o.slice(PROTOCOL_AND_HOST.length):computeRelativeURL(r,o)}}function withBase(u,e){return new URL(u,e).toString()}function buildUniqueSegment(u,e){let t=0;for(;;){const r=u+t++;if(-1===e.indexOf(r))return r}}function buildSafeBase(u){const e=u.split("..").length-1,t=buildUniqueSegment("p",u);let r=`${PROTOCOL_AND_HOST}/`;for(let u=0;u0&&!r[r.length-1]&&r.pop();t.length>0&&r.length>0&&t[0]===r[0];)t.shift(),r.shift();return r.map((()=>"..")).concat(t).join("/")+e.search+e.hash}const ensureDirectory=createSafeHandler((u=>{u.pathname=u.pathname.replace(/\/?$/,"/")})),normalize=createSafeHandler((u=>{}));function join(u,e){const t=getURLType(e),r=getURLType(u);if(u=ensureDirectory(u),"absolute"===t)return withBase(e,void 0);if("absolute"===r)return withBase(e,u);if("scheme-relative"===t)return normalize(e);if("scheme-relative"===r)return withBase(e,withBase(u,PROTOCOL_AND_HOST)).slice(PROTOCOL.length);if("path-absolute"===t)return normalize(e);if("path-absolute"===r)return withBase(e,withBase(u,PROTOCOL_AND_HOST)).slice(PROTOCOL_AND_HOST.length);const n=buildSafeBase(e+u);return computeRelativeURL(n,withBase(e,withBase(u,n)))}function relative(u,e){const t=relativeIfPossible(u,e);return"string"==typeof t?t:normalize(e)}function relativeIfPossible(u,e){if(getURLType(u)!==getURLType(e))return null;const t=buildSafeBase(u+e),r=new URL(u,t),n=new URL(e,t);try{new URL("",n.toString())}catch(u){return null}return n.protocol!==r.protocol||n.user!==r.user||n.password!==r.password||n.hostname!==r.hostname||n.port!==r.port?null:computeRelativeURL(r,n)}util$3.normalize=normalize,util$3.join=join,util$3.relative=relative;var arraySet={};class ArraySet$1{constructor(){this._array=[],this._set=new Map}static fromArray(u,e){const t=new ArraySet$1;for(let r=0,n=u.length;r=0)return e;throw new Error('"'+u+'" is not in the set.')}at(u){if(u>=0&&ut||r==t&&o>=n||util$2.compareByGeneratedPositionsInflated(u,e)<=0}class MappingList$1{constructor(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}unsortedForEach(u,e){this._array.forEach(u,e)}add(u){generatedPositionAfter(this._last,u)?(this._last=u,this._array.push(u)):(this._sorted=!1,this._array.push(u))}toArray(){return this._sorted||(this._array.sort(util$2.compareByGeneratedPositionsInflated),this._sorted=!0),this._array}}mappingList.MappingList=MappingList$1;const base64VLQ=base64Vlq,util$1=util$3,ArraySet=arraySet.ArraySet,MappingList=mappingList.MappingList;class SourceMapGenerator$1{constructor(u){u||(u={}),this._file=util$1.getArg(u,"file",null),this._sourceRoot=util$1.getArg(u,"sourceRoot",null),this._skipValidation=util$1.getArg(u,"skipValidation",!1),this._sources=new ArraySet,this._names=new ArraySet,this._mappings=new MappingList,this._sourcesContents=null}static fromSourceMap(u){const e=u.sourceRoot,t=new SourceMapGenerator$1({file:u.file,sourceRoot:e});return u.eachMapping((function(u){const r={generated:{line:u.generatedLine,column:u.generatedColumn}};null!=u.source&&(r.source=u.source,null!=e&&(r.source=util$1.relative(e,r.source)),r.original={line:u.originalLine,column:u.originalColumn},null!=u.name&&(r.name=u.name)),t.addMapping(r)})),u.sources.forEach((function(r){let n=r;null!=e&&(n=util$1.relative(e,r)),t._sources.has(n)||t._sources.add(n);const o=u.sourceContentFor(r);null!=o&&t.setSourceContent(r,o)})),t}addMapping(u){const e=util$1.getArg(u,"generated"),t=util$1.getArg(u,"original",null);let r=util$1.getArg(u,"source",null),n=util$1.getArg(u,"name",null);this._skipValidation||this._validateMapping(e,t,r,n),null!=r&&(r=String(r),this._sources.has(r)||this._sources.add(r)),null!=n&&(n=String(n),this._names.has(n)||this._names.add(n)),this._mappings.add({generatedLine:e.line,generatedColumn:e.column,originalLine:t&&t.line,originalColumn:t&&t.column,source:r,name:n})}setSourceContent(u,e){let t=u;null!=this._sourceRoot&&(t=util$1.relative(this._sourceRoot,t)),null!=e?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[util$1.toSetString(t)]=e):this._sourcesContents&&(delete this._sourcesContents[util$1.toSetString(t)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))}applySourceMap(u,e,t){let r=e;if(null==e){if(null==u.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');r=u.file}const n=this._sourceRoot;null!=n&&(r=util$1.relative(n,r));const o=this._mappings.toArray().length>0?new ArraySet:this._sources,a=new ArraySet;this._mappings.unsortedForEach((function(e){if(e.source===r&&null!=e.originalLine){const r=u.originalPositionFor({line:e.originalLine,column:e.originalColumn});null!=r.source&&(e.source=r.source,null!=t&&(e.source=util$1.join(t,e.source)),null!=n&&(e.source=util$1.relative(n,e.source)),e.originalLine=r.line,e.originalColumn=r.column,null!=r.name&&(e.name=r.name))}const i=e.source;null==i||o.has(i)||o.add(i);const s=e.name;null==s||a.has(s)||a.add(s)}),this),this._sources=o,this._names=a,u.sources.forEach((function(e){const r=u.sourceContentFor(e);null!=r&&(null!=t&&(e=util$1.join(t,e)),null!=n&&(e=util$1.relative(n,e)),this.setSourceContent(e,r))}),this)}_validateMapping(u,e,t,r){if(e&&"number"!=typeof e.line&&"number"!=typeof e.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(u&&"line"in u&&"column"in u&&u.line>0&&u.column>=0&&!e&&!t&&!r);else if(!(u&&"line"in u&&"column"in u&&e&&"line"in e&&"column"in e&&u.line>0&&u.column>=0&&e.line>0&&e.column>=0&&t))throw new Error("Invalid mapping: "+JSON.stringify({generated:u,source:t,original:e,name:r}))}_serializeMappings(){let u,e,t,r,n=0,o=1,a=0,i=0,s=0,c=0,l="";const p=this._mappings.toArray();for(let A=0,E=p.length;A0){if(!util$1.compareByGeneratedPositionsInflated(e,p[A-1]))continue;u+=","}u+=base64VLQ.encode(e.generatedColumn-n),n=e.generatedColumn,null!=e.source&&(r=this._sources.indexOf(e.source),u+=base64VLQ.encode(r-c),c=r,u+=base64VLQ.encode(e.originalLine-1-i),i=e.originalLine-1,u+=base64VLQ.encode(e.originalColumn-a),a=e.originalColumn,null!=e.name&&(t=this._names.indexOf(e.name),u+=base64VLQ.encode(t-s),s=t)),l+=u}return l}_generateSourcesContent(u,e){return u.map((function(u){if(!this._sourcesContents)return null;null!=e&&(u=util$1.relative(e,u));const t=util$1.toSetString(u);return Object.prototype.hasOwnProperty.call(this._sourcesContents,t)?this._sourcesContents[t]:null}),this)}toJSON(){const u={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(u.file=this._file),null!=this._sourceRoot&&(u.sourceRoot=this._sourceRoot),this._sourcesContents&&(u.sourcesContent=this._generateSourcesContent(u.sources,u.sourceRoot)),u}toString(){return JSON.stringify(this.toJSON())}}SourceMapGenerator$1.prototype._version=3,sourceMapGenerator.SourceMapGenerator=SourceMapGenerator$1;var sourceNode={};const SourceMapGenerator=sourceMapGenerator.SourceMapGenerator,util=util$3,REGEX_NEWLINE=/(\r?\n)/,NEWLINE_CODE=10,isSourceNode="$$$isSourceNode$$$";class SourceNode$2{constructor(u,e,t,r,n){this.children=[],this.sourceContents={},this.line=null==u?null:u,this.column=null==e?null:e,this.source=null==t?null:t,this.name=null==n?null:n,this[isSourceNode]=!0,null!=r&&this.add(r)}static fromStringWithSourceMap(u,e,t){const r=new SourceNode$2,n=u.split(REGEX_NEWLINE);let o=0;const a=function(){return u()+(u()||"");function u(){return o=0;e--)this.prepend(u[e]);else{if(!u[isSourceNode]&&"string"!=typeof u)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+u);this.children.unshift(u)}return this}walk(u){let e;for(let t=0,r=this.children.length;t0){for(e=[],t=0;t' at an index ").concat(u,".\nBytecode: ").concat(this.bytecode));return this.varName+u},u.prototype.sourceNode=function(u,e,t){return new SourceNode$1(u.start.line,u.start.column?u.start.column-1:null,u.source,e,t)},u.prototype.push=function(u){++this.sp>this.maxSp&&(this.maxSp=this.sp);var e=this.labels[this.sp],t=[this.name(this.sp)," = ",u,";"];if(e){if(this.sourceMapStack.length){var r=this.sourceNode(e.location,t.splice(0,2),e.label),n=this.sourceMapPopInternal(),o=n.parts,a=n.location,i=a.start.offsete.end.offset&&(t[2]={start:e.end,end:t[2].end,source:t[2].source})}this.sourceMapStack.push([u,u.length,e])},u.prototype.sourceMapPopInternal=function(){var u=this.sourceMapStack.pop(),e=u[0],t=u[1],r=u[2],n=e.splice(t).map((function(u){return u instanceof SourceNode$1?u:u+"\n"}));return n.length&&e.push(new SourceNode$1(r.start.line,r.start.column-1,r.source,n)),{parts:e,location:r}},u.prototype.sourceMapPop=function(u){var e=this.sourceMapPopInternal().location;if(this.sourceMapStack.length&&e.end.offset>2],n+=e[(3&u[o])<<4|u[o+1]>>4],n+=e[(15&u[o+1])<<2|u[o+2]>>6],n+=e[63&u[o+2]];return 1===t?(n+=e[u[r]>>2],n+=e[(3&u[r])<<4],n+="=="):2===t&&(n+=e[u[r]>>2],n+=e[(3&u[r])<<4|u[r+1]>>4],n+=e[(15&u[r+1])<<2],n+="="),n}utils.hex=hex,utils.stringEscape=stringEscape$1,utils.regexpClassEscape=regexpClassEscape$1,utils.base64=base64$1;var __spreadArray$1=commonjsGlobal&&commonjsGlobal.__spreadArray||function(u,e,t){if(t||2===arguments.length)for(var r,n=0,o=e.length;n0&&(t.forEach((function(u){o.push("var "+u+' = require("'+stringEscape(e.dependencies[u])+'");')})),o.push("")),o.push(u,"","module.exports = "+n()+";"),o},es:function(){var t=Object.keys(e.dependencies),n=r();return n.push(""),t.length>0&&(t.forEach((function(u){n.push("import "+u+' from "'+stringEscape(e.dependencies[u])+'";')})),n.push("")),n.push(u,"","export {"," peg$SyntaxError as SyntaxError,",e.trace?" peg$DefaultTracer as DefaultTracer,":""," peg$parse as parse","};"),n},amd:function(){var o=Object.keys(e.dependencies),a="["+o.map((function(u){return e.dependencies[u]})).map((function(u){return'"'+stringEscape(u)+'"'})).join(", ")+"]",i=o.join(", ");return __spreadArray$1(__spreadArray$1([],r(),!0),["define("+a+", function("+i+") {",' "use strict";',"",u,"",t("return "+n()+";"),"});"],!1)},globals:function(){return __spreadArray$1(__spreadArray$1([],r(),!0),["(function(root) {",' "use strict";',"",u,"",t("root."+e.exportVar+" = "+n()+";"),"})(this);"],!1)},umd:function(){var o=Object.keys(e.dependencies),a=o.map((function(u){return e.dependencies[u]})),i="["+a.map((function(u){return'"'+stringEscape(u)+'"'})).join(", ")+"]",s=a.map((function(u){return'require("'+stringEscape(u)+'")'})).join(", "),c=o.join(", "),l=r();return l.push("(function(root, factory) {",' if (typeof define === "function" && define.amd) {'," define("+i+", factory);",' } else if (typeof module === "object" && module.exports) {'," module.exports = factory("+s+");"),null!==e.exportVar&&l.push(" } else {"," root."+e.exportVar+" = factory();"),l.push(" }","})(this, function("+c+") {",' "use strict";',"",u,"",t("return "+n()+";"),"});"),l}},a=o[e.format]();return new SourceNode(null,null,e.grammarSource,a.map((function(u){return u instanceof SourceNode?u:u+"\n"})))}(function(){var c=[];u.topLevelInitializer&&(c.push(s(u.topLevelInitializer)),c.push("")),c.push("function peg$subclass(child, parent) {"," function C() { this.constructor = child; }"," C.prototype = parent.prototype;"," child.prototype = new C();","}","","function peg$SyntaxError(message, expected, found, location) {"," var self = Error.call(this, message);"," // istanbul ignore next Check is a necessary evil to support older environments"," if (Object.setPrototypeOf) {"," Object.setPrototypeOf(self, peg$SyntaxError.prototype);"," }"," self.expected = expected;"," self.found = found;"," self.location = location;",' self.name = "SyntaxError";'," return self;","}","","peg$subclass(peg$SyntaxError, Error);","","function peg$padEnd(str, targetLength, padString) {",' padString = padString || " ";'," if (str.length > targetLength) { return str; }"," targetLength -= str.length;"," padString += padString.repeat(targetLength);"," return str + padString.slice(0, targetLength);","}","","peg$SyntaxError.prototype.format = function(sources) {",' var str = "Error: " + this.message;'," if (this.location) {"," var src = null;"," var k;"," for (k = 0; k < sources.length; k++) {"," if (sources[k].source === this.location.source) {"," src = sources[k].text.split(/\\r\\n|\\n|\\r/g);"," break;"," }"," }"," var s = this.location.start;",' var loc = this.location.source + ":" + s.line + ":" + s.column;'," if (src) {"," var e = this.location.end;"," var filler = peg$padEnd(\"\", s.line.toString().length, ' ');"," var line = src[s.line - 1];"," var last = s.line === e.line ? e.column : line.length + 1;"," var hatLen = (last - s.column) || 1;",' str += "\\n --\x3e " + loc + "\\n"',' + filler + " |\\n"',' + s.line + " | " + line + "\\n"',' + filler + " | " + peg$padEnd("", s.column - 1, \' \')',' + peg$padEnd("", hatLen, "^");'," } else {",' str += "\\n at " + loc;'," }"," }"," return str;","};","","peg$SyntaxError.buildMessage = function(expected, found) {"," var DESCRIBE_EXPECTATION_FNS = {"," literal: function(expectation) {",' return "\\"" + literalEscape(expectation.text) + "\\"";'," },",""," class: function(expectation) {"," var escapedParts = expectation.parts.map(function(part) {"," return Array.isArray(part)",' ? classEscape(part[0]) + "-" + classEscape(part[1])'," : classEscape(part);"," });","",' return "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]";'," },",""," any: function() {",' return "any character";'," },",""," end: function() {",' return "end of input";'," },",""," other: function(expectation) {"," return expectation.description;"," }"," };",""," function hex(ch) {"," return ch.charCodeAt(0).toString(16).toUpperCase();"," }",""," function literalEscape(s) {"," return s",' .replace(/\\\\/g, "\\\\\\\\")',' .replace(/"/g, "\\\\\\"")',' .replace(/\\0/g, "\\\\0")',' .replace(/\\t/g, "\\\\t")',' .replace(/\\n/g, "\\\\n")',' .replace(/\\r/g, "\\\\r")',' .replace(/[\\x00-\\x0F]/g, function(ch) { return "\\\\x0" + hex(ch); })',' .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return "\\\\x" + hex(ch); });'," }",""," function classEscape(s) {"," return s",' .replace(/\\\\/g, "\\\\\\\\")',' .replace(/\\]/g, "\\\\]")',' .replace(/\\^/g, "\\\\^")',' .replace(/-/g, "\\\\-")',' .replace(/\\0/g, "\\\\0")',' .replace(/\\t/g, "\\\\t")',' .replace(/\\n/g, "\\\\n")',' .replace(/\\r/g, "\\\\r")',' .replace(/[\\x00-\\x0F]/g, function(ch) { return "\\\\x0" + hex(ch); })',' .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return "\\\\x" + hex(ch); });'," }",""," function describeExpectation(expectation) {"," return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);"," }",""," function describeExpected(expected) {"," var descriptions = expected.map(describeExpectation);"," var i, j;",""," descriptions.sort();",""," if (descriptions.length > 0) {"," for (i = 1, j = 1; i < descriptions.length; i++) {"," if (descriptions[i - 1] !== descriptions[i]) {"," descriptions[j] = descriptions[i];"," j++;"," }"," }"," descriptions.length = j;"," }",""," switch (descriptions.length) {"," case 1:"," return descriptions[0];",""," case 2:",' return descriptions[0] + " or " + descriptions[1];',""," default:",' return descriptions.slice(0, -1).join(", ")',' + ", or "'," + descriptions[descriptions.length - 1];"," }"," }",""," function describeFound(found) {",' return found ? "\\"" + literalEscape(found) + "\\"" : "end of input";'," }","",' return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";',"};",""),e.trace&&c.push("function peg$DefaultTracer() {"," this.indentLevel = 0;","}","","peg$DefaultTracer.prototype.trace = function(event) {"," var that = this;",""," function log(event) {"," function repeat(string, n) {",' var result = "", i;',""," for (i = 0; i < n; i++) {"," result += string;"," }",""," return result;"," }",""," function pad(string, length) {",' return string + repeat(" ", length - string.length);'," }","",' if (typeof console === "object") {'," console.log(",' event.location.start.line + ":" + event.location.start.column + "-"',' + event.location.end.line + ":" + event.location.end.column + " "',' + pad(event.type, 10) + " "',' + repeat(" ", that.indentLevel) + event.rule'," );"," }"," }",""," switch (event.type) {",' case "rule.enter":'," log(event);"," this.indentLevel++;"," break;","",' case "rule.match":'," this.indentLevel--;"," log(event);"," break;","",' case "rule.fail":'," this.indentLevel--;"," log(event);"," break;",""," default:",' throw new Error("Invalid event type: " + event.type + ".");'," }","};","");var l="{ "+e.allowedStartRules.map((function(u){return u+": "+i(u)})).join(", ")+" }",p=i(e.allowedStartRules[0]);return c.push("function peg$parse(input, options) {"," options = options !== undefined ? options : {};",""," var peg$FAILED = {};"," var peg$source = options.grammarSource;",""," var peg$startRuleFunctions = "+l+";"," var peg$startRuleFunction = "+p+";","",new SourceNode(null,null,e.grammarSource,[u.literals.map((function(u,e){return" var "+r(e)+' = "'+stringEscape(u)+'";'})).concat("",u.classes.map((function(u,e){return" var "+n(e)+" = /^["+((t=u).inverted?"^":"")+t.value.map((function(u){return Array.isArray(u)?regexpClassEscape(u[0])+"-"+regexpClassEscape(u[1]):regexpClassEscape(u)})).join("")+"]/"+(t.ignoreCase?"i":"")+";";var t}))).concat("",u.expectations.map((function(u,e){return" var "+o(e)+" = "+function(u){switch(u.type){case"rule":return'peg$otherExpectation("'+stringEscape(u.value)+'")';case"literal":return'peg$literalExpectation("'+stringEscape(u.value)+'", '+u.ignoreCase+")";case"class":return"peg$classExpectation(["+u.value.map((function(u){return Array.isArray(u)?'["'+stringEscape(u[0])+'", "'+stringEscape(u[1])+'"]':'"'+stringEscape(u)+'"'})).join(", ")+"], "+u.inverted+", "+u.ignoreCase+")";case"any":return"peg$anyExpectation()";default:throw new Error("Unknown expectation type ("+JSON.stringify(u)+")")}}(u)+";"}))).concat("").join("\n"),u.functions.map((function(u,e){return wrapInSourceNode("\n var ".concat(a(e)," = function(").concat(u.params.join(", "),") {"),u.body,u.location,"};")}))]),""," var peg$currPos = 0;"," var peg$savedPos = 0;"," var peg$posDetailsCache = [{ line: 1, column: 1 }];"," var peg$maxFailPos = 0;"," var peg$maxFailExpected = [];"," var peg$silentFails = 0;",""),e.cache&&c.push(" var peg$resultsCache = {};",""),e.trace&&c.push(' var peg$tracer = "tracer" in options ? options.tracer : new peg$DefaultTracer();',""),c.push(" var peg$result;","",' if ("startRule" in options) {'," if (!(options.startRule in peg$startRuleFunctions)) {",' throw new Error("Can\'t start parsing from rule \\"" + options.startRule + "\\".");'," }",""," peg$startRuleFunction = peg$startRuleFunctions[options.startRule];"," }",""," function text() {"," return input.substring(peg$savedPos, peg$currPos);"," }",""," function offset() {"," return peg$savedPos;"," }",""," function range() {"," return {"," source: peg$source,"," start: peg$savedPos,"," end: peg$currPos"," };"," }",""," function location() {"," return peg$computeLocation(peg$savedPos, peg$currPos);"," }",""," function expected(description, location) {"," location = location !== undefined"," ? location"," : peg$computeLocation(peg$savedPos, peg$currPos);",""," throw peg$buildStructuredError("," [peg$otherExpectation(description)],"," input.substring(peg$savedPos, peg$currPos),"," location"," );"," }",""," function error(message, location) {"," location = location !== undefined"," ? location"," : peg$computeLocation(peg$savedPos, peg$currPos);",""," throw peg$buildSimpleError(message, location);"," }",""," function peg$literalExpectation(text, ignoreCase) {",' return { type: "literal", text: text, ignoreCase: ignoreCase };'," }",""," function peg$classExpectation(parts, inverted, ignoreCase) {",' return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase };'," }",""," function peg$anyExpectation() {",' return { type: "any" };'," }",""," function peg$endExpectation() {",' return { type: "end" };'," }",""," function peg$otherExpectation(description) {",' return { type: "other", description: description };'," }",""," function peg$computePosDetails(pos) {"," var details = peg$posDetailsCache[pos];"," var p;",""," if (details) {"," return details;"," } else {"," p = pos - 1;"," while (!peg$posDetailsCache[p]) {"," p--;"," }",""," details = peg$posDetailsCache[p];"," details = {"," line: details.line,"," column: details.column"," };",""," while (p < pos) {"," if (input.charCodeAt(p) === 10) {"," details.line++;"," details.column = 1;"," } else {"," details.column++;"," }",""," p++;"," }",""," peg$posDetailsCache[pos] = details;",""," return details;"," }"," }",""," function peg$computeLocation(startPos, endPos) {"," var startPosDetails = peg$computePosDetails(startPos);"," var endPosDetails = peg$computePosDetails(endPos);",""," return {"," source: peg$source,"," start: {"," offset: startPos,"," line: startPosDetails.line,"," column: startPosDetails.column"," },"," end: {"," offset: endPos,"," line: endPosDetails.line,"," column: endPosDetails.column"," }"," };"," }",""," function peg$fail(expected) {"," if (peg$currPos < peg$maxFailPos) { return; }",""," if (peg$currPos > peg$maxFailPos) {"," peg$maxFailPos = peg$currPos;"," peg$maxFailExpected = [];"," }",""," peg$maxFailExpected.push(expected);"," }",""," function peg$buildSimpleError(message, location) {"," return new peg$SyntaxError(message, null, null, location);"," }",""," function peg$buildStructuredError(expected, found, location) {"," return new peg$SyntaxError("," peg$SyntaxError.buildMessage(expected, found),"," expected,"," found,"," location"," );"," }",""),u.rules.forEach((function(s){c.push.apply(c,t(function(s){var c=[],l=new Stack(s.name,"s","var",s.bytecode),p=function e(c){var p,A=0,E=c.length,h=[];function f(u,r){var n,o,a=r+3,i=c[A+a-2],s=c[A+a-1];l.checkedIf(A,(function(){A+=a,n=e(c.slice(A,A+i)),A+=i}),s>0?function(){o=e(c.slice(A,A+s)),A+=s}:null),h.push("if ("+u+") {"),h.push.apply(h,t(n)),s>0&&(h.push("} else {"),h.push.apply(h,t(o))),h.push("}")}function C(u){var r,n=c[A+2-1];l.checkedLoop(A,(function(){A+=2,r=e(c.slice(A,A+n)),A+=n})),h.push("while ("+u+") {"),h.push.apply(h,t(r)),h.push("}")}function d(){var u=c[A+4-1],e=a(c[A+1])+"("+c.slice(A+4,A+4+u).map((function(u){return l.index(u)})).join(", ")+")";l.pop(c[A+2]),h.push(l.push(e)),A+=4+u}for(;A peg$currPos",0);break;case op.MATCH_STRING:f(u.literals[c[A+1]].length>1?"input.substr(peg$currPos, "+u.literals[c[A+1]].length+") === "+r(c[A+1]):"input.charCodeAt(peg$currPos) === "+u.literals[c[A+1]].charCodeAt(0),1);break;case op.MATCH_STRING_IC:f("input.substr(peg$currPos, "+u.literals[c[A+1]].length+").toLowerCase() === "+r(c[A+1]),1);break;case op.MATCH_CHAR_CLASS:f(n(c[A+1])+".test(input.charAt(peg$currPos))",1);break;case op.ACCEPT_N:h.push(l.push(c[A+1]>1?"input.substr(peg$currPos, "+c[A+1]+")":"input.charAt(peg$currPos)")),h.push(c[A+1]>1?"peg$currPos += "+c[A+1]+";":"peg$currPos++;"),A+=2;break;case op.ACCEPT_STRING:h.push(l.push(r(c[A+1]))),h.push(u.literals[c[A+1]].length>1?"peg$currPos += "+u.literals[c[A+1]].length+";":"peg$currPos++;"),A+=2;break;case op.FAIL:h.push(l.push("peg$FAILED")),h.push("if (peg$silentFails === 0) { peg$fail("+o(c[A+1])+"); }"),A+=2;break;case op.LOAD_SAVED_POS:h.push("peg$savedPos = "+l.index(c[A+1])+";"),A+=2;break;case op.UPDATE_SAVED_POS:h.push("peg$savedPos = peg$currPos;"),A++;break;case op.CALL:d();break;case op.RULE:h.push(l.push(i(u.rules[c[A+1]].name)+"()")),A+=2;break;case op.SILENT_FAILS_ON:h.push("peg$silentFails++;"),A++;break;case op.SILENT_FAILS_OFF:h.push("peg$silentFails--;"),A++;break;case op.SOURCE_MAP_PUSH:l.sourceMapPush(h,u.locations[c[A+1]]),A+=2;break;case op.SOURCE_MAP_POP:l.sourceMapPop(),A++;break;case op.SOURCE_MAP_LABEL_PUSH:l.labels[c[A+1]]={label:u.literals[c[A+2]],location:u.locations[c[A+3]]},A+=4;break;case op.SOURCE_MAP_LABEL_POP:delete l.labels[c[A+1]],A+=2;break;default:throw new Error("Invalid opcode: "+c[A]+".",{rule:s.name,bytecode:c})}return h}(s.bytecode);return c.push(wrapInSourceNode("function ",i(s.name),s.nameLocation,"() {\n",s.name)),e.trace&&c.push(" var startPos = peg$currPos;"),c.push(t(l.defines())),c.push.apply(c,t(function(t,r){var n=[];return n.push(""),e.trace&&n.push("peg$tracer.trace({",' type: "rule.enter",'," rule: "+t+","," location: peg$computeLocation(startPos, startPos)","});",""),e.cache&&(n.push("var key = peg$currPos * "+u.rules.length+" + "+r+";","var cached = peg$resultsCache[key];","","if (cached) {"," peg$currPos = cached.nextPos;",""),e.trace&&n.push("if (cached.result !== peg$FAILED) {"," peg$tracer.trace({",' type: "rule.match",'," rule: "+t+","," result: cached.result,"," location: peg$computeLocation(startPos, peg$currPos)"," });","} else {"," peg$tracer.trace({",' type: "rule.fail",'," rule: "+t+","," location: peg$computeLocation(startPos, startPos)"," });","}",""),n.push(" return cached.result;","}","")),n}('"'+stringEscape(s.name)+'"',asts$4.indexOfRule(u,s.name)))),c.push.apply(c,t(p)),c.push.apply(c,t(function(u,t){var r=[];return e.cache&&r.push("","peg$resultsCache[key] = { nextPos: peg$currPos, result: "+t+" };"),e.trace&&r.push("","if ("+t+" !== peg$FAILED) {"," peg$tracer.trace({",' type: "rule.match",'," rule: "+u+","," result: "+t+","," location: peg$computeLocation(startPos, peg$currPos)"," });","} else {"," peg$tracer.trace({",' type: "rule.fail",'," rule: "+u+","," location: peg$computeLocation(startPos, startPos)"," });","}"),r.push("","return "+t+";"),r}('"'+stringEscape(s.name)+'"',l.result()))),c.push("}"),c}(s))),c.push("")})),u.initializer&&(c.push(s(u.initializer)),c.push("")),c.push(" peg$result = peg$startRuleFunction();",""," if (peg$result !== peg$FAILED && peg$currPos === input.length) {"," return peg$result;"," } else {"," if (peg$result !== peg$FAILED && peg$currPos < input.length) {"," peg$fail(peg$endExpectation());"," }",""," throw peg$buildStructuredError("," peg$maxFailExpected,"," peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,"," peg$maxFailPos < input.length"," ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)"," : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)"," );"," }","}"),new SourceNode(null,null,e.grammarSource,c.map((function(u){return u instanceof SourceNode?u:u+"\n"})))}())}var generateJs=generateJS$1,asts$3=asts_1,visitor$7=visitor_1;function removeProxyRules$1(u,e,t){var r=[];u.rules.forEach((function(n,o){var a;"rule"===(a=n).type&&"rule_ref"===a.expression.type&&(function(u,e,r){visitor$7.build({rule_ref:function(n){n.name===e&&(n.name=r,t.info('Proxy rule "'.concat(e,'" replaced by the rule "').concat(r,'"'),n.location,[{message:"This rule will be used",location:asts$3.findRule(u,r).nameLocation}]))}})(u)}(u,n.name,n.expression.name),-1===e.allowedStartRules.indexOf(n.name)&&r.push(o))})),r.reverse(),r.forEach((function(e){u.rules.splice(e,1)}))}var removeProxyRules_1=removeProxyRules$1,visitor$6=visitor_1;function reportDuplicateLabels$1(u,e,t){function r(u){var e={};return Object.keys(u).forEach((function(t){e[t]=u[t]})),e}function n(u,e){o(u.expression,r(e))}var o=visitor$6.build({rule:function(u){o(u.expression,{})},choice:function(u,e){u.alternatives.forEach((function(u){o(u,r(e))}))},action:n,labeled:function(u,e){var r=u.label;r&&Object.prototype.hasOwnProperty.call(e,r)&&t.error('Label "'.concat(u.label,'" is already defined'),u.labelLocation,[{message:"Original label location",location:e[r]}]),o(u.expression,e),e[u.label]=u.labelLocation},text:n,simple_and:n,simple_not:n,optional:n,zero_or_more:n,one_or_more:n,group:n});o(u)}var reportDuplicateLabels_1=reportDuplicateLabels$1,visitor$5=visitor_1;function reportDuplicateRules$1(u,e,t){var r={};visitor$5.build({rule:function(u){Object.prototype.hasOwnProperty.call(r,u.name)?t.error('Rule "'.concat(u.name,'" is already defined'),u.nameLocation,[{message:"Original rule location",location:r[u.name]}]):r[u.name]=u.nameLocation}})(u)}var reportDuplicateRules_1=reportDuplicateRules$1,asts$2=asts_1,visitor$4=visitor_1;function reportInfiniteRecursion$1(u,e,t){var r=[],n=[],o=visitor$4.build({rule:function(u){r.push(u.name),o(u.expression),r.pop()},sequence:function(e){e.elements.every((function(e){return o(e),!asts$2.alwaysConsumesOnSuccess(u,e)}))},rule_ref:function(e){n.push(e);var a=asts$2.findRule(u,e.name);if(-1!==r.indexOf(e.name))return r.push(e.name),void t.error("Possible infinite loop when parsing (left recursion: "+r.join(" -> ")+")",a.nameLocation,n.map((function(u,e,t){return{message:e+1!==t.length?"Step ".concat(e+1,': call of the rule "').concat(u.name,'" without input consumption'):"Step ".concat(e+1,": call itself without input consumption - left recursion"),location:u.location}})));a&&o(a),n.pop()}});o(u)}var reportInfiniteRecursion_1=reportInfiniteRecursion$1,asts$1=asts_1,visitor$3=visitor_1;function reportInfiniteRepetition$1(u,e,t){visitor$3.build({zero_or_more:function(e){asts$1.alwaysConsumesOnSuccess(u,e.expression)||t.error("Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",e.location)},one_or_more:function(e){asts$1.alwaysConsumesOnSuccess(u,e.expression)||t.error("Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",e.location)}})(u)}var reportInfiniteRepetition_1=reportInfiniteRepetition$1,asts=asts_1,visitor$2=visitor_1;function reportUndefinedRules$1(u,e,t){visitor$2.build({rule_ref:function(e){asts.findRule(u,e.name)||t.error('Rule "'.concat(e.name,'" is not defined'),e.location)}})(u)}var reportUndefinedRules_1=reportUndefinedRules$1,visitor$1=visitor_1;function reportIncorrectPlucking$1(u,e,t){var r=visitor$1.build({action:function(u){r(u.expression,u)},labeled:function(u,e){u.pick&&e&&t.error('"@" cannot be used with an action block',u.labelLocation,[{message:"Action block location",location:e.codeLocation}]),r(u.expression)}});r(u)}var reportIncorrectPlucking_1=reportIncorrectPlucking$1,__spreadArray=commonjsGlobal&&commonjsGlobal.__spreadArray||function(u,e,t){if(t||2===arguments.length)for(var r,n=0,o=e.length;ne?u:(e-=u.length,u+(t+=t.repeat(e)).slice(0,e))}function peg$parse(u,e){var t,r={},n=(e=void 0!==e?e:{}).grammarSource,o={Grammar:ce},a=ce,i="{",s="}",c="/*",l="*/",p="\\",A='"',E="'",h=/^[\n\r\u2028\u2029]/,f=/^[0-9]/,C=/^[0-9a-f]/i,d=/^[{}]/,g=/^[a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137-\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148-\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C-\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA-\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9-\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC-\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF-\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F-\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0-\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB-\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE-\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0561-\u0587\u13F8-\u13FD\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6-\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FC7\u1FD0-\u1FD3\u1FD6-\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6-\u1FF7\u210A\u210E-\u210F\u2113\u212F\u2134\u2139\u213C-\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65-\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73-\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3-\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7B5\uA7B7\uA7FA\uAB30-\uAB5A\uAB60-\uAB65\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A]/,F=/^[\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5-\u06E6\u07F4-\u07F5\u07FA\u081A\u0824\u0828\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C-\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D-\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA69C-\uA69D\uA717-\uA71F\uA770\uA788\uA7F8-\uA7F9\uA9CF\uA9E6\uAA70\uAADD\uAAF3-\uAAF4\uAB5C-\uAB5F\uFF70\uFF9E-\uFF9F]/,m=/^[\xAA\xBA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05F0-\u05F2\u0620-\u063F\u0641-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0-\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60-\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0CF1-\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u10D0-\u10FA\u10FD-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5-\u1CF6\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A-\uA62B\uA66E\uA6A0-\uA6E5\uA78F\uA7F7\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9E0-\uA9E4\uA9E7-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,_=/^[\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC]/,B=/^[A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178-\u0179\u017B\u017D\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018B\u018E-\u0191\u0193-\u0194\u0196-\u0198\u019C-\u019D\u019F-\u01A0\u01A2\u01A4\u01A6-\u01A7\u01A9\u01AC\u01AE-\u01AF\u01B1-\u01B3\u01B5\u01B7-\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A-\u023B\u023D-\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E-\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9-\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0-\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E-\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D-\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AD\uA7B0-\uA7B4\uA7B6\uFF21-\uFF3A]/,D=/^[\u0903\u093B\u093E-\u0940\u0949-\u094C\u094E-\u094F\u0982-\u0983\u09BE-\u09C0\u09C7-\u09C8\u09CB-\u09CC\u09D7\u0A03\u0A3E-\u0A40\u0A83\u0ABE-\u0AC0\u0AC9\u0ACB-\u0ACC\u0B02-\u0B03\u0B3E\u0B40\u0B47-\u0B48\u0B4B-\u0B4C\u0B57\u0BBE-\u0BBF\u0BC1-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD7\u0C01-\u0C03\u0C41-\u0C44\u0C82-\u0C83\u0CBE\u0CC0-\u0CC4\u0CC7-\u0CC8\u0CCA-\u0CCB\u0CD5-\u0CD6\u0D02-\u0D03\u0D3E-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D57\u0D82-\u0D83\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DF2-\u0DF3\u0F3E-\u0F3F\u0F7F\u102B-\u102C\u1031\u1038\u103B-\u103C\u1056-\u1057\u1062-\u1064\u1067-\u106D\u1083-\u1084\u1087-\u108C\u108F\u109A-\u109C\u17B6\u17BE-\u17C5\u17C7-\u17C8\u1923-\u1926\u1929-\u192B\u1930-\u1931\u1933-\u1938\u1A19-\u1A1A\u1A55\u1A57\u1A61\u1A63-\u1A64\u1A6D-\u1A72\u1B04\u1B35\u1B3B\u1B3D-\u1B41\u1B43-\u1B44\u1B82\u1BA1\u1BA6-\u1BA7\u1BAA\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2-\u1BF3\u1C24-\u1C2B\u1C34-\u1C35\u1CE1\u1CF2-\u1CF3\u302E-\u302F\uA823-\uA824\uA827\uA880-\uA881\uA8B4-\uA8C3\uA952-\uA953\uA983\uA9B4-\uA9B5\uA9BA-\uA9BB\uA9BD-\uA9C0\uAA2F-\uAA30\uAA33-\uAA34\uAA4D\uAA7B\uAA7D\uAAEB\uAAEE-\uAAEF\uAAF5\uABE3-\uABE4\uABE6-\uABE7\uABE9-\uABEA\uABEC]/,v=/^[\u0300-\u036F\u0483-\u0487\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962-\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2-\u09E3\u0A01-\u0A02\u0A3C\u0A41-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A51\u0A70-\u0A71\u0A75\u0A81-\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7-\u0AC8\u0ACD\u0AE2-\u0AE3\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62-\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C62-\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC-\u0CCD\u0CE2-\u0CE3\u0D01\u0D41-\u0D44\u0D4D\u0D62-\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB-\u0EBC\u0EC8-\u0ECD\u0F18-\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86-\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039-\u103A\u103D-\u103E\u1058-\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17B4-\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193B\u1A17-\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABD\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80-\u1B81\u1BA2-\u1BA5\u1BA8-\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8-\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8-\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099-\u309A\uA66F\uA674-\uA67D\uA69E-\uA69F\uA6F0-\uA6F1\uA802\uA806\uA80B\uA825-\uA826\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9E5\uAA29-\uAA2E\uAA31-\uAA32\uAA35-\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7-\uAAB8\uAABE-\uAABF\uAAC1\uAAEC-\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/,S=/^[0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]/,$=/^[\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF]/,y=/^[_\u203F-\u2040\u2054\uFE33-\uFE34\uFE4D-\uFE4F\uFF3F]/,P=/^[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000]/,x=re("{",!1),b=re("}",!1),R=re("=",!1),O=re("/",!1),L=re("@",!1),T=re(":",!1),M=re("$",!1),w=re("&",!1),N=re("!",!1),I=re("?",!1),k=re("*",!1),U=re("+",!1),H=re("(",!1),j=re(")",!1),G={type:"any"},V=oe("whitespace"),W=re("\t",!1),Y=re("\v",!1),z=re("\f",!1),J=re(" ",!1),Q=re(" ",!1),q=re("\ufeff",!1),X=ne(["\n","\r","\u2028","\u2029"],!1,!1),K=oe("end of line"),Z=re("\n",!1),uu=re("\r\n",!1),eu=re("\r",!1),tu=re("\u2028",!1),ru=re("\u2029",!1),nu=oe("comment"),ou=re("/*",!1),au=re("*/",!1),iu=re("//",!1),su=oe("identifier"),cu=re("_",!1),lu=re("\\",!1),pu=re("‌",!1),Au=re("‍",!1),Eu=oe("literal"),hu=re("i",!1),fu=oe("string"),Cu=re('"',!1),du=re("'",!1),gu=oe("character class"),Fu=re("[",!1),mu=re("^",!1),_u=re("]",!1),Bu=re("-",!1),Du=re("0",!1),vu=re("b",!1),Su=re("f",!1),$u=re("n",!1),yu=re("r",!1),Pu=re("t",!1),xu=re("v",!1),bu=re("x",!1),Ru=re("u",!1),Ou=ne([["0","9"]],!1,!1),Lu=ne([["0","9"],["a","f"]],!1,!0),Tu=re(".",!1),Mu=oe("code block"),wu=ne(["{","}"],!1,!1),Nu=ne([["a","z"],"µ",["ß","ö"],["ø","ÿ"],"ā","ă","ą","ć","ĉ","ċ","č","ď","đ","ē","ĕ","ė","ę","ě","ĝ","ğ","ġ","ģ","ĥ","ħ","ĩ","ī","ĭ","į","ı","ij","ĵ",["ķ","ĸ"],"ĺ","ļ","ľ","ŀ","ł","ń","ņ",["ň","ʼn"],"ŋ","ō","ŏ","ő","œ","ŕ","ŗ","ř","ś","ŝ","ş","š","ţ","ť","ŧ","ũ","ū","ŭ","ů","ű","ų","ŵ","ŷ","ź","ż",["ž","ƀ"],"ƃ","ƅ","ƈ",["ƌ","ƍ"],"ƒ","ƕ",["ƙ","ƛ"],"ƞ","ơ","ƣ","ƥ","ƨ",["ƪ","ƫ"],"ƭ","ư","ƴ","ƶ",["ƹ","ƺ"],["ƽ","ƿ"],"dž","lj","nj","ǎ","ǐ","ǒ","ǔ","ǖ","ǘ","ǚ",["ǜ","ǝ"],"ǟ","ǡ","ǣ","ǥ","ǧ","ǩ","ǫ","ǭ",["ǯ","ǰ"],"dz","ǵ","ǹ","ǻ","ǽ","ǿ","ȁ","ȃ","ȅ","ȇ","ȉ","ȋ","ȍ","ȏ","ȑ","ȓ","ȕ","ȗ","ș","ț","ȝ","ȟ","ȡ","ȣ","ȥ","ȧ","ȩ","ȫ","ȭ","ȯ","ȱ",["ȳ","ȹ"],"ȼ",["ȿ","ɀ"],"ɂ","ɇ","ɉ","ɋ","ɍ",["ɏ","ʓ"],["ʕ","ʯ"],"ͱ","ͳ","ͷ",["ͻ","ͽ"],"ΐ",["ά","ώ"],["ϐ","ϑ"],["ϕ","ϗ"],"ϙ","ϛ","ϝ","ϟ","ϡ","ϣ","ϥ","ϧ","ϩ","ϫ","ϭ",["ϯ","ϳ"],"ϵ","ϸ",["ϻ","ϼ"],["а","џ"],"ѡ","ѣ","ѥ","ѧ","ѩ","ѫ","ѭ","ѯ","ѱ","ѳ","ѵ","ѷ","ѹ","ѻ","ѽ","ѿ","ҁ","ҋ","ҍ","ҏ","ґ","ғ","ҕ","җ","ҙ","қ","ҝ","ҟ","ҡ","ң","ҥ","ҧ","ҩ","ҫ","ҭ","ү","ұ","ҳ","ҵ","ҷ","ҹ","һ","ҽ","ҿ","ӂ","ӄ","ӆ","ӈ","ӊ","ӌ",["ӎ","ӏ"],"ӑ","ӓ","ӕ","ӗ","ә","ӛ","ӝ","ӟ","ӡ","ӣ","ӥ","ӧ","ө","ӫ","ӭ","ӯ","ӱ","ӳ","ӵ","ӷ","ӹ","ӻ","ӽ","ӿ","ԁ","ԃ","ԅ","ԇ","ԉ","ԋ","ԍ","ԏ","ԑ","ԓ","ԕ","ԗ","ԙ","ԛ","ԝ","ԟ","ԡ","ԣ","ԥ","ԧ","ԩ","ԫ","ԭ","ԯ",["ա","և"],["ᏸ","ᏽ"],["ᴀ","ᴫ"],["ᵫ","ᵷ"],["ᵹ","ᶚ"],"ḁ","ḃ","ḅ","ḇ","ḉ","ḋ","ḍ","ḏ","ḑ","ḓ","ḕ","ḗ","ḙ","ḛ","ḝ","ḟ","ḡ","ḣ","ḥ","ḧ","ḩ","ḫ","ḭ","ḯ","ḱ","ḳ","ḵ","ḷ","ḹ","ḻ","ḽ","ḿ","ṁ","ṃ","ṅ","ṇ","ṉ","ṋ","ṍ","ṏ","ṑ","ṓ","ṕ","ṗ","ṙ","ṛ","ṝ","ṟ","ṡ","ṣ","ṥ","ṧ","ṩ","ṫ","ṭ","ṯ","ṱ","ṳ","ṵ","ṷ","ṹ","ṻ","ṽ","ṿ","ẁ","ẃ","ẅ","ẇ","ẉ","ẋ","ẍ","ẏ","ẑ","ẓ",["ẕ","ẝ"],"ẟ","ạ","ả","ấ","ầ","ẩ","ẫ","ậ","ắ","ằ","ẳ","ẵ","ặ","ẹ","ẻ","ẽ","ế","ề","ể","ễ","ệ","ỉ","ị","ọ","ỏ","ố","ồ","ổ","ỗ","ộ","ớ","ờ","ở","ỡ","ợ","ụ","ủ","ứ","ừ","ử","ữ","ự","ỳ","ỵ","ỷ","ỹ","ỻ","ỽ",["ỿ","ἇ"],["ἐ","ἕ"],["ἠ","ἧ"],["ἰ","ἷ"],["ὀ","ὅ"],["ὐ","ὗ"],["ὠ","ὧ"],["ὰ","ώ"],["ᾀ","ᾇ"],["ᾐ","ᾗ"],["ᾠ","ᾧ"],["ᾰ","ᾴ"],["ᾶ","ᾷ"],"ι",["ῂ","ῄ"],["ῆ","ῇ"],["ῐ","ΐ"],["ῖ","ῗ"],["ῠ","ῧ"],["ῲ","ῴ"],["ῶ","ῷ"],"ℊ",["ℎ","ℏ"],"ℓ","ℯ","ℴ","ℹ",["ℼ","ℽ"],["ⅆ","ⅉ"],"ⅎ","ↄ",["ⰰ","ⱞ"],"ⱡ",["ⱥ","ⱦ"],"ⱨ","ⱪ","ⱬ","ⱱ",["ⱳ","ⱴ"],["ⱶ","ⱻ"],"ⲁ","ⲃ","ⲅ","ⲇ","ⲉ","ⲋ","ⲍ","ⲏ","ⲑ","ⲓ","ⲕ","ⲗ","ⲙ","ⲛ","ⲝ","ⲟ","ⲡ","ⲣ","ⲥ","ⲧ","ⲩ","ⲫ","ⲭ","ⲯ","ⲱ","ⲳ","ⲵ","ⲷ","ⲹ","ⲻ","ⲽ","ⲿ","ⳁ","ⳃ","ⳅ","ⳇ","ⳉ","ⳋ","ⳍ","ⳏ","ⳑ","ⳓ","ⳕ","ⳗ","ⳙ","ⳛ","ⳝ","ⳟ","ⳡ",["ⳣ","ⳤ"],"ⳬ","ⳮ","ⳳ",["ⴀ","ⴥ"],"ⴧ","ⴭ","ꙁ","ꙃ","ꙅ","ꙇ","ꙉ","ꙋ","ꙍ","ꙏ","ꙑ","ꙓ","ꙕ","ꙗ","ꙙ","ꙛ","ꙝ","ꙟ","ꙡ","ꙣ","ꙥ","ꙧ","ꙩ","ꙫ","ꙭ","ꚁ","ꚃ","ꚅ","ꚇ","ꚉ","ꚋ","ꚍ","ꚏ","ꚑ","ꚓ","ꚕ","ꚗ","ꚙ","ꚛ","ꜣ","ꜥ","ꜧ","ꜩ","ꜫ","ꜭ",["ꜯ","ꜱ"],"ꜳ","ꜵ","ꜷ","ꜹ","ꜻ","ꜽ","ꜿ","ꝁ","ꝃ","ꝅ","ꝇ","ꝉ","ꝋ","ꝍ","ꝏ","ꝑ","ꝓ","ꝕ","ꝗ","ꝙ","ꝛ","ꝝ","ꝟ","ꝡ","ꝣ","ꝥ","ꝧ","ꝩ","ꝫ","ꝭ","ꝯ",["ꝱ","ꝸ"],"ꝺ","ꝼ","ꝿ","ꞁ","ꞃ","ꞅ","ꞇ","ꞌ","ꞎ","ꞑ",["ꞓ","ꞕ"],"ꞗ","ꞙ","ꞛ","ꞝ","ꞟ","ꞡ","ꞣ","ꞥ","ꞧ","ꞩ","ꞵ","ꞷ","ꟺ",["ꬰ","ꭚ"],["ꭠ","ꭥ"],["ꭰ","ꮿ"],["ff","st"],["ﬓ","ﬗ"],["a","z"]],!1,!1),Iu=ne([["ʰ","ˁ"],["ˆ","ˑ"],["ˠ","ˤ"],"ˬ","ˮ","ʹ","ͺ","ՙ","ـ",["ۥ","ۦ"],["ߴ","ߵ"],"ߺ","ࠚ","ࠤ","ࠨ","ॱ","ๆ","ໆ","ჼ","ៗ","ᡃ","ᪧ",["ᱸ","ᱽ"],["ᴬ","ᵪ"],"ᵸ",["ᶛ","ᶿ"],"ⁱ","ⁿ",["ₐ","ₜ"],["ⱼ","ⱽ"],"ⵯ","ⸯ","々",["〱","〵"],"〻",["ゝ","ゞ"],["ー","ヾ"],"ꀕ",["ꓸ","ꓽ"],"ꘌ","ꙿ",["ꚜ","ꚝ"],["ꜗ","ꜟ"],"ꝰ","ꞈ",["ꟸ","ꟹ"],"ꧏ","ꧦ","ꩰ","ꫝ",["ꫳ","ꫴ"],["ꭜ","ꭟ"],"ー",["゙","゚"]],!1,!1),ku=ne(["ª","º","ƻ",["ǀ","ǃ"],"ʔ",["א","ת"],["װ","ײ"],["ؠ","ؿ"],["ف","ي"],["ٮ","ٯ"],["ٱ","ۓ"],"ە",["ۮ","ۯ"],["ۺ","ۼ"],"ۿ","ܐ",["ܒ","ܯ"],["ݍ","ޥ"],"ޱ",["ߊ","ߪ"],["ࠀ","ࠕ"],["ࡀ","ࡘ"],["ࢠ","ࢴ"],["ऄ","ह"],"ऽ","ॐ",["क़","ॡ"],["ॲ","ঀ"],["অ","ঌ"],["এ","ঐ"],["ও","ন"],["প","র"],"ল",["শ","হ"],"ঽ","ৎ",["ড়","ঢ়"],["য়","ৡ"],["ৰ","ৱ"],["ਅ","ਊ"],["ਏ","ਐ"],["ਓ","ਨ"],["ਪ","ਰ"],["ਲ","ਲ਼"],["ਵ","ਸ਼"],["ਸ","ਹ"],["ਖ਼","ੜ"],"ਫ਼",["ੲ","ੴ"],["અ","ઍ"],["એ","ઑ"],["ઓ","ન"],["પ","ર"],["લ","ળ"],["વ","હ"],"ઽ","ૐ",["ૠ","ૡ"],"ૹ",["ଅ","ଌ"],["ଏ","ଐ"],["ଓ","ନ"],["ପ","ର"],["ଲ","ଳ"],["ଵ","ହ"],"ଽ",["ଡ଼","ଢ଼"],["ୟ","ୡ"],"ୱ","ஃ",["அ","ஊ"],["எ","ஐ"],["ஒ","க"],["ங","ச"],"ஜ",["ஞ","ட"],["ண","த"],["ந","ப"],["ம","ஹ"],"ௐ",["అ","ఌ"],["ఎ","ఐ"],["ఒ","న"],["ప","హ"],"ఽ",["ౘ","ౚ"],["ౠ","ౡ"],["ಅ","ಌ"],["ಎ","ಐ"],["ಒ","ನ"],["ಪ","ಳ"],["ವ","ಹ"],"ಽ","ೞ",["ೠ","ೡ"],["ೱ","ೲ"],["അ","ഌ"],["എ","ഐ"],["ഒ","ഺ"],"ഽ","ൎ",["ൟ","ൡ"],["ൺ","ൿ"],["අ","ඖ"],["ක","න"],["ඳ","ර"],"ල",["ව","ෆ"],["ก","ะ"],["า","ำ"],["เ","ๅ"],["ກ","ຂ"],"ຄ",["ງ","ຈ"],"ຊ","ຍ",["ດ","ທ"],["ນ","ຟ"],["ມ","ຣ"],"ລ","ວ",["ສ","ຫ"],["ອ","ະ"],["າ","ຳ"],"ຽ",["ເ","ໄ"],["ໜ","ໟ"],"ༀ",["ཀ","ཇ"],["ཉ","ཬ"],["ྈ","ྌ"],["က","ဪ"],"ဿ",["ၐ","ၕ"],["ၚ","ၝ"],"ၡ",["ၥ","ၦ"],["ၮ","ၰ"],["ၵ","ႁ"],"ႎ",["ა","ჺ"],["ჽ","ቈ"],["ቊ","ቍ"],["ቐ","ቖ"],"ቘ",["ቚ","ቝ"],["በ","ኈ"],["ኊ","ኍ"],["ነ","ኰ"],["ኲ","ኵ"],["ኸ","ኾ"],"ዀ",["ዂ","ዅ"],["ወ","ዖ"],["ዘ","ጐ"],["ጒ","ጕ"],["ጘ","ፚ"],["ᎀ","ᎏ"],["ᐁ","ᙬ"],["ᙯ","ᙿ"],["ᚁ","ᚚ"],["ᚠ","ᛪ"],["ᛱ","ᛸ"],["ᜀ","ᜌ"],["ᜎ","ᜑ"],["ᜠ","ᜱ"],["ᝀ","ᝑ"],["ᝠ","ᝬ"],["ᝮ","ᝰ"],["ក","ឳ"],"ៜ",["ᠠ","ᡂ"],["ᡄ","ᡷ"],["ᢀ","ᢨ"],"ᢪ",["ᢰ","ᣵ"],["ᤀ","ᤞ"],["ᥐ","ᥭ"],["ᥰ","ᥴ"],["ᦀ","ᦫ"],["ᦰ","ᧉ"],["ᨀ","ᨖ"],["ᨠ","ᩔ"],["ᬅ","ᬳ"],["ᭅ","ᭋ"],["ᮃ","ᮠ"],["ᮮ","ᮯ"],["ᮺ","ᯥ"],["ᰀ","ᰣ"],["ᱍ","ᱏ"],["ᱚ","ᱷ"],["ᳩ","ᳬ"],["ᳮ","ᳱ"],["ᳵ","ᳶ"],["ℵ","ℸ"],["ⴰ","ⵧ"],["ⶀ","ⶖ"],["ⶠ","ⶦ"],["ⶨ","ⶮ"],["ⶰ","ⶶ"],["ⶸ","ⶾ"],["ⷀ","ⷆ"],["ⷈ","ⷎ"],["ⷐ","ⷖ"],["ⷘ","ⷞ"],"〆","〼",["ぁ","ゖ"],"ゟ",["ァ","ヺ"],"ヿ",["ㄅ","ㄭ"],["ㄱ","ㆎ"],["ㆠ","ㆺ"],["ㇰ","ㇿ"],["㐀","䶵"],["一","鿕"],["ꀀ","ꀔ"],["ꀖ","ꒌ"],["ꓐ","ꓷ"],["ꔀ","ꘋ"],["ꘐ","ꘟ"],["ꘪ","ꘫ"],"ꙮ",["ꚠ","ꛥ"],"ꞏ","ꟷ",["ꟻ","ꠁ"],["ꠃ","ꠅ"],["ꠇ","ꠊ"],["ꠌ","ꠢ"],["ꡀ","ꡳ"],["ꢂ","ꢳ"],["ꣲ","ꣷ"],"ꣻ","ꣽ",["ꤊ","ꤥ"],["ꤰ","ꥆ"],["ꥠ","ꥼ"],["ꦄ","ꦲ"],["ꧠ","ꧤ"],["ꧧ","ꧯ"],["ꧺ","ꧾ"],["ꨀ","ꨨ"],["ꩀ","ꩂ"],["ꩄ","ꩋ"],["ꩠ","ꩯ"],["ꩱ","ꩶ"],"ꩺ",["ꩾ","ꪯ"],"ꪱ",["ꪵ","ꪶ"],["ꪹ","ꪽ"],"ꫀ","ꫂ",["ꫛ","ꫜ"],["ꫠ","ꫪ"],"ꫲ",["ꬁ","ꬆ"],["ꬉ","ꬎ"],["ꬑ","ꬖ"],["ꬠ","ꬦ"],["ꬨ","ꬮ"],["ꯀ","ꯢ"],["가","힣"],["ힰ","ퟆ"],["ퟋ","ퟻ"],["豈","舘"],["並","龎"],"יִ",["ײַ","ﬨ"],["שׁ","זּ"],["טּ","לּ"],"מּ",["נּ","סּ"],["ףּ","פּ"],["צּ","ﮱ"],["ﯓ","ﴽ"],["ﵐ","ﶏ"],["ﶒ","ﷇ"],["ﷰ","ﷻ"],["ﹰ","ﹴ"],["ﹶ","ﻼ"],["ヲ","ッ"],["ア","ン"],["ᅠ","ᄒ"],["ᅡ","ᅦ"],["ᅧ","ᅬ"],["ᅭ","ᅲ"],["ᅳ","ᅵ"]],!1,!1),Uu=ne(["Dž","Lj","Nj","Dz",["ᾈ","ᾏ"],["ᾘ","ᾟ"],["ᾨ","ᾯ"],"ᾼ","ῌ","ῼ"],!1,!1),Hu=ne([["A","Z"],["À","Ö"],["Ø","Þ"],"Ā","Ă","Ą","Ć","Ĉ","Ċ","Č","Ď","Đ","Ē","Ĕ","Ė","Ę","Ě","Ĝ","Ğ","Ġ","Ģ","Ĥ","Ħ","Ĩ","Ī","Ĭ","Į","İ","IJ","Ĵ","Ķ","Ĺ","Ļ","Ľ","Ŀ","Ł","Ń","Ņ","Ň","Ŋ","Ō","Ŏ","Ő","Œ","Ŕ","Ŗ","Ř","Ś","Ŝ","Ş","Š","Ţ","Ť","Ŧ","Ũ","Ū","Ŭ","Ů","Ű","Ų","Ŵ","Ŷ",["Ÿ","Ź"],"Ż","Ž",["Ɓ","Ƃ"],"Ƅ",["Ɔ","Ƈ"],["Ɖ","Ƌ"],["Ǝ","Ƒ"],["Ɠ","Ɣ"],["Ɩ","Ƙ"],["Ɯ","Ɲ"],["Ɵ","Ơ"],"Ƣ","Ƥ",["Ʀ","Ƨ"],"Ʃ","Ƭ",["Ʈ","Ư"],["Ʊ","Ƴ"],"Ƶ",["Ʒ","Ƹ"],"Ƽ","DŽ","LJ","NJ","Ǎ","Ǐ","Ǒ","Ǔ","Ǖ","Ǘ","Ǚ","Ǜ","Ǟ","Ǡ","Ǣ","Ǥ","Ǧ","Ǩ","Ǫ","Ǭ","Ǯ","DZ","Ǵ",["Ƕ","Ǹ"],"Ǻ","Ǽ","Ǿ","Ȁ","Ȃ","Ȅ","Ȇ","Ȉ","Ȋ","Ȍ","Ȏ","Ȑ","Ȓ","Ȕ","Ȗ","Ș","Ț","Ȝ","Ȟ","Ƞ","Ȣ","Ȥ","Ȧ","Ȩ","Ȫ","Ȭ","Ȯ","Ȱ","Ȳ",["Ⱥ","Ȼ"],["Ƚ","Ⱦ"],"Ɂ",["Ƀ","Ɇ"],"Ɉ","Ɋ","Ɍ","Ɏ","Ͱ","Ͳ","Ͷ","Ϳ","Ά",["Έ","Ί"],"Ό",["Ύ","Ώ"],["Α","Ρ"],["Σ","Ϋ"],"Ϗ",["ϒ","ϔ"],"Ϙ","Ϛ","Ϝ","Ϟ","Ϡ","Ϣ","Ϥ","Ϧ","Ϩ","Ϫ","Ϭ","Ϯ","ϴ","Ϸ",["Ϲ","Ϻ"],["Ͻ","Я"],"Ѡ","Ѣ","Ѥ","Ѧ","Ѩ","Ѫ","Ѭ","Ѯ","Ѱ","Ѳ","Ѵ","Ѷ","Ѹ","Ѻ","Ѽ","Ѿ","Ҁ","Ҋ","Ҍ","Ҏ","Ґ","Ғ","Ҕ","Җ","Ҙ","Қ","Ҝ","Ҟ","Ҡ","Ң","Ҥ","Ҧ","Ҩ","Ҫ","Ҭ","Ү","Ұ","Ҳ","Ҵ","Ҷ","Ҹ","Һ","Ҽ","Ҿ",["Ӏ","Ӂ"],"Ӄ","Ӆ","Ӈ","Ӊ","Ӌ","Ӎ","Ӑ","Ӓ","Ӕ","Ӗ","Ә","Ӛ","Ӝ","Ӟ","Ӡ","Ӣ","Ӥ","Ӧ","Ө","Ӫ","Ӭ","Ӯ","Ӱ","Ӳ","Ӵ","Ӷ","Ӹ","Ӻ","Ӽ","Ӿ","Ԁ","Ԃ","Ԅ","Ԇ","Ԉ","Ԋ","Ԍ","Ԏ","Ԑ","Ԓ","Ԕ","Ԗ","Ԙ","Ԛ","Ԝ","Ԟ","Ԡ","Ԣ","Ԥ","Ԧ","Ԩ","Ԫ","Ԭ","Ԯ",["Ա","Ֆ"],["Ⴀ","Ⴥ"],"Ⴧ","Ⴭ",["Ꭰ","Ᏽ"],"Ḁ","Ḃ","Ḅ","Ḇ","Ḉ","Ḋ","Ḍ","Ḏ","Ḑ","Ḓ","Ḕ","Ḗ","Ḙ","Ḛ","Ḝ","Ḟ","Ḡ","Ḣ","Ḥ","Ḧ","Ḩ","Ḫ","Ḭ","Ḯ","Ḱ","Ḳ","Ḵ","Ḷ","Ḹ","Ḻ","Ḽ","Ḿ","Ṁ","Ṃ","Ṅ","Ṇ","Ṉ","Ṋ","Ṍ","Ṏ","Ṑ","Ṓ","Ṕ","Ṗ","Ṙ","Ṛ","Ṝ","Ṟ","Ṡ","Ṣ","Ṥ","Ṧ","Ṩ","Ṫ","Ṭ","Ṯ","Ṱ","Ṳ","Ṵ","Ṷ","Ṹ","Ṻ","Ṽ","Ṿ","Ẁ","Ẃ","Ẅ","Ẇ","Ẉ","Ẋ","Ẍ","Ẏ","Ẑ","Ẓ","Ẕ","ẞ","Ạ","Ả","Ấ","Ầ","Ẩ","Ẫ","Ậ","Ắ","Ằ","Ẳ","Ẵ","Ặ","Ẹ","Ẻ","Ẽ","Ế","Ề","Ể","Ễ","Ệ","Ỉ","Ị","Ọ","Ỏ","Ố","Ồ","Ổ","Ỗ","Ộ","Ớ","Ờ","Ở","Ỡ","Ợ","Ụ","Ủ","Ứ","Ừ","Ử","Ữ","Ự","Ỳ","Ỵ","Ỷ","Ỹ","Ỻ","Ỽ","Ỿ",["Ἀ","Ἇ"],["Ἐ","Ἕ"],["Ἠ","Ἧ"],["Ἰ","Ἷ"],["Ὀ","Ὅ"],"Ὑ","Ὓ","Ὕ","Ὗ",["Ὠ","Ὧ"],["Ᾰ","Ά"],["Ὲ","Ή"],["Ῐ","Ί"],["Ῠ","Ῥ"],["Ὸ","Ώ"],"ℂ","ℇ",["ℋ","ℍ"],["ℐ","ℒ"],"ℕ",["ℙ","ℝ"],"ℤ","Ω","ℨ",["K","ℭ"],["ℰ","ℳ"],["ℾ","ℿ"],"ⅅ","Ↄ",["Ⰰ","Ⱞ"],"Ⱡ",["Ɫ","Ɽ"],"Ⱨ","Ⱪ","Ⱬ",["Ɑ","Ɒ"],"Ⱳ","Ⱶ",["Ȿ","Ⲁ"],"Ⲃ","Ⲅ","Ⲇ","Ⲉ","Ⲋ","Ⲍ","Ⲏ","Ⲑ","Ⲓ","Ⲕ","Ⲗ","Ⲙ","Ⲛ","Ⲝ","Ⲟ","Ⲡ","Ⲣ","Ⲥ","Ⲧ","Ⲩ","Ⲫ","Ⲭ","Ⲯ","Ⲱ","Ⲳ","Ⲵ","Ⲷ","Ⲹ","Ⲻ","Ⲽ","Ⲿ","Ⳁ","Ⳃ","Ⳅ","Ⳇ","Ⳉ","Ⳋ","Ⳍ","Ⳏ","Ⳑ","Ⳓ","Ⳕ","Ⳗ","Ⳙ","Ⳛ","Ⳝ","Ⳟ","Ⳡ","Ⳣ","Ⳬ","Ⳮ","Ⳳ","Ꙁ","Ꙃ","Ꙅ","Ꙇ","Ꙉ","Ꙋ","Ꙍ","Ꙏ","Ꙑ","Ꙓ","Ꙕ","Ꙗ","Ꙙ","Ꙛ","Ꙝ","Ꙟ","Ꙡ","Ꙣ","Ꙥ","Ꙧ","Ꙩ","Ꙫ","Ꙭ","Ꚁ","Ꚃ","Ꚅ","Ꚇ","Ꚉ","Ꚋ","Ꚍ","Ꚏ","Ꚑ","Ꚓ","Ꚕ","Ꚗ","Ꚙ","Ꚛ","Ꜣ","Ꜥ","Ꜧ","Ꜩ","Ꜫ","Ꜭ","Ꜯ","Ꜳ","Ꜵ","Ꜷ","Ꜹ","Ꜻ","Ꜽ","Ꜿ","Ꝁ","Ꝃ","Ꝅ","Ꝇ","Ꝉ","Ꝋ","Ꝍ","Ꝏ","Ꝑ","Ꝓ","Ꝕ","Ꝗ","Ꝙ","Ꝛ","Ꝝ","Ꝟ","Ꝡ","Ꝣ","Ꝥ","Ꝧ","Ꝩ","Ꝫ","Ꝭ","Ꝯ","Ꝺ","Ꝼ",["Ᵹ","Ꝿ"],"Ꞁ","Ꞃ","Ꞅ","Ꞇ","Ꞌ","Ɥ","Ꞑ","Ꞓ","Ꞗ","Ꞙ","Ꞛ","Ꞝ","Ꞟ","Ꞡ","Ꞣ","Ꞥ","Ꞧ","Ꞩ",["Ɦ","Ɬ"],["Ʞ","Ꞵ"],"Ꞷ",["A","Z"]],!1,!1),ju=ne(["ः","ऻ",["ा","ी"],["ॉ","ौ"],["ॎ","ॏ"],["ং","ঃ"],["া","ী"],["ে","ৈ"],["ো","ৌ"],"ৗ","ਃ",["ਾ","ੀ"],"ઃ",["ા","ી"],"ૉ",["ો","ૌ"],["ଂ","ଃ"],"ା","ୀ",["େ","ୈ"],["ୋ","ୌ"],"ୗ",["ா","ி"],["ு","ூ"],["ெ","ை"],["ொ","ௌ"],"ௗ",["ఁ","ః"],["ు","ౄ"],["ಂ","ಃ"],"ಾ",["ೀ","ೄ"],["ೇ","ೈ"],["ೊ","ೋ"],["ೕ","ೖ"],["ം","ഃ"],["ാ","ീ"],["െ","ൈ"],["ൊ","ൌ"],"ൗ",["ං","ඃ"],["ා","ෑ"],["ෘ","ෟ"],["ෲ","ෳ"],["༾","༿"],"ཿ",["ါ","ာ"],"ေ","း",["ျ","ြ"],["ၖ","ၗ"],["ၢ","ၤ"],["ၧ","ၭ"],["ႃ","ႄ"],["ႇ","ႌ"],"ႏ",["ႚ","ႜ"],"ា",["ើ","ៅ"],["ះ","ៈ"],["ᤣ","ᤦ"],["ᤩ","ᤫ"],["ᤰ","ᤱ"],["ᤳ","ᤸ"],["ᨙ","ᨚ"],"ᩕ","ᩗ","ᩡ",["ᩣ","ᩤ"],["ᩭ","ᩲ"],"ᬄ","ᬵ","ᬻ",["ᬽ","ᭁ"],["ᭃ","᭄"],"ᮂ","ᮡ",["ᮦ","ᮧ"],"᮪","ᯧ",["ᯪ","ᯬ"],"ᯮ",["᯲","᯳"],["ᰤ","ᰫ"],["ᰴ","ᰵ"],"᳡",["ᳲ","ᳳ"],["〮","〯"],["ꠣ","ꠤ"],"ꠧ",["ꢀ","ꢁ"],["ꢴ","ꣃ"],["ꥒ","꥓"],"ꦃ",["ꦴ","ꦵ"],["ꦺ","ꦻ"],["ꦽ","꧀"],["ꨯ","ꨰ"],["ꨳ","ꨴ"],"ꩍ","ꩻ","ꩽ","ꫫ",["ꫮ","ꫯ"],"ꫵ",["ꯣ","ꯤ"],["ꯦ","ꯧ"],["ꯩ","ꯪ"],"꯬"],!1,!1),Gu=ne([["̀","ͯ"],["҃","҇"],["֑","ֽ"],"ֿ",["ׁ","ׂ"],["ׄ","ׅ"],"ׇ",["ؐ","ؚ"],["ً","ٟ"],"ٰ",["ۖ","ۜ"],["۟","ۤ"],["ۧ","ۨ"],["۪","ۭ"],"ܑ",["ܰ","݊"],["ަ","ް"],["߫","߳"],["ࠖ","࠙"],["ࠛ","ࠣ"],["ࠥ","ࠧ"],["ࠩ","࠭"],["࡙","࡛"],["ࣣ","ं"],"ऺ","़",["ु","ै"],"्",["॑","ॗ"],["ॢ","ॣ"],"ঁ","়",["ু","ৄ"],"্",["ৢ","ৣ"],["ਁ","ਂ"],"਼",["ੁ","ੂ"],["ੇ","ੈ"],["ੋ","੍"],"ੑ",["ੰ","ੱ"],"ੵ",["ઁ","ં"],"઼",["ુ","ૅ"],["ે","ૈ"],"્",["ૢ","ૣ"],"ଁ","଼","ି",["ୁ","ୄ"],"୍","ୖ",["ୢ","ୣ"],"ஂ","ீ","்","ఀ",["ా","ీ"],["ె","ై"],["ొ","్"],["ౕ","ౖ"],["ౢ","ౣ"],"ಁ","಼","ಿ","ೆ",["ೌ","್"],["ೢ","ೣ"],"ഁ",["ു","ൄ"],"്",["ൢ","ൣ"],"්",["ි","ු"],"ූ","ั",["ิ","ฺ"],["็","๎"],"ັ",["ິ","ູ"],["ົ","ຼ"],["່","ໍ"],["༘","༙"],"༵","༷","༹",["ཱ","ཾ"],["ྀ","྄"],["྆","྇"],["ྍ","ྗ"],["ྙ","ྼ"],"࿆",["ိ","ူ"],["ဲ","့"],["္","်"],["ွ","ှ"],["ၘ","ၙ"],["ၞ","ၠ"],["ၱ","ၴ"],"ႂ",["ႅ","ႆ"],"ႍ","ႝ",["፝","፟"],["ᜒ","᜔"],["ᜲ","᜴"],["ᝒ","ᝓ"],["ᝲ","ᝳ"],["឴","឵"],["ិ","ួ"],"ំ",["៉","៓"],"៝",["᠋","᠍"],"ᢩ",["ᤠ","ᤢ"],["ᤧ","ᤨ"],"ᤲ",["᤹","᤻"],["ᨗ","ᨘ"],"ᨛ","ᩖ",["ᩘ","ᩞ"],"᩠","ᩢ",["ᩥ","ᩬ"],["ᩳ","᩼"],"᩿",["᪰","᪽"],["ᬀ","ᬃ"],"᬴",["ᬶ","ᬺ"],"ᬼ","ᭂ",["᭫","᭳"],["ᮀ","ᮁ"],["ᮢ","ᮥ"],["ᮨ","ᮩ"],["᮫","ᮭ"],"᯦",["ᯨ","ᯩ"],"ᯭ",["ᯯ","ᯱ"],["ᰬ","ᰳ"],["ᰶ","᰷"],["᳐","᳒"],["᳔","᳠"],["᳢","᳨"],"᳭","᳴",["᳸","᳹"],["᷀","᷵"],["᷼","᷿"],["⃐","⃜"],"⃡",["⃥","⃰"],["⳯","⳱"],"⵿",["ⷠ","ⷿ"],["〪","〭"],["゙","゚"],"꙯",["ꙴ","꙽"],["ꚞ","ꚟ"],["꛰","꛱"],"ꠂ","꠆","ꠋ",["ꠥ","ꠦ"],"꣄",["꣠","꣱"],["ꤦ","꤭"],["ꥇ","ꥑ"],["ꦀ","ꦂ"],"꦳",["ꦶ","ꦹ"],"ꦼ","ꧥ",["ꨩ","ꨮ"],["ꨱ","ꨲ"],["ꨵ","ꨶ"],"ꩃ","ꩌ","ꩼ","ꪰ",["ꪲ","ꪴ"],["ꪷ","ꪸ"],["ꪾ","꪿"],"꫁",["ꫬ","ꫭ"],"꫶","ꯥ","ꯨ","꯭","ﬞ",["︀","️"],["︠","︯"]],!1,!1),Vu=ne([["0","9"],["٠","٩"],["۰","۹"],["߀","߉"],["०","९"],["০","৯"],["੦","੯"],["૦","૯"],["୦","୯"],["௦","௯"],["౦","౯"],["೦","೯"],["൦","൯"],["෦","෯"],["๐","๙"],["໐","໙"],["༠","༩"],["၀","၉"],["႐","႙"],["០","៩"],["᠐","᠙"],["᥆","᥏"],["᧐","᧙"],["᪀","᪉"],["᪐","᪙"],["᭐","᭙"],["᮰","᮹"],["᱀","᱉"],["᱐","᱙"],["꘠","꘩"],["꣐","꣙"],["꤀","꤉"],["꧐","꧙"],["꧰","꧹"],["꩐","꩙"],["꯰","꯹"],["0","9"]],!1,!1),Wu=ne([["ᛮ","ᛰ"],["Ⅰ","ↂ"],["ↅ","ↈ"],"〇",["〡","〩"],["〸","〺"],["ꛦ","ꛯ"]],!1,!1),Yu=ne(["_",["‿","⁀"],"⁔",["︳","︴"],["﹍","﹏"],"_"],!1,!1),zu=ne([" "," "," ",[" "," "]," "," "," "],!1,!1),Ju=re(";",!1),Qu=0,qu=0,Xu=[{line:1,column:1}],Ku=0,Zu=[],ue=0;if("startRule"in e){if(!(e.startRule in o))throw new Error("Can't start parsing from rule \""+e.startRule+'".');a=o[e.startRule]}function ee(){return ie(qu,Qu)}function te(u,e){throw function(u,e){return new peg$SyntaxError(u,null,null,e)}(u,e=void 0!==e?e:ie(qu,Qu))}function re(u,e){return{type:"literal",text:u,ignoreCase:e}}function ne(u,e,t){return{type:"class",parts:u,inverted:e,ignoreCase:t}}function oe(u){return{type:"other",description:u}}function ae(e){var t,r=Xu[e];if(r)return r;for(t=e-1;!Xu[t];)t--;for(r={line:(r=Xu[t]).line,column:r.column};tKu&&(Ku=Qu,Zu=[]),Zu.push(u))}function ce(){var e,t,n,o,a,c;if(e=Qu,He(),t=Qu,n=function(){var e,t,n,o,a;return e=Qu,123===u.charCodeAt(Qu)?(t=i,Qu++):(t=r,0===ue&&se(x)),t!==r&&(n=ke())!==r?(125===u.charCodeAt(Qu)?(o=s,Qu++):(o=r,0===ue&&se(b)),o!==r&&je()!==r?(qu=e,e={type:"top_level_initializer",code:(a=n)[0],codeLocation:a[1],location:ee()}):(Qu=e,e=r)):(Qu=e,e=r),e}(),n!==r?(o=He(),t=n):(Qu=t,t=r),t===r&&(t=null),n=Qu,o=function(){var u,e,t;return u=Qu,(e=ke())!==r&&je()!==r?(qu=u,u={type:"initializer",code:(t=e)[0],codeLocation:t[1],location:ee()}):(Qu=u,u=r),u}(),o!==r?(a=He(),n=o):(Qu=n,n=r),n===r&&(n=null),o=[],a=Qu,(c=le())!==r?(He(),a=c):(Qu=a,a=r),a!==r)for(;a!==r;)o.push(a),a=Qu,(c=le())!==r?(He(),a=c):(Qu=a,a=r);else o=r;return o!==r?(qu=e,e={type:"grammar",topLevelInitializer:t,initializer:n,rules:o,location:ee()}):(Qu=e,e=r),e}function le(){var e,t,n,o,a,i,s,c;return e=Qu,(t=Se())!==r?(He(),n=Qu,(o=Pe())!==r?(He(),n=o):(Qu=n,n=r),n===r&&(n=null),61===u.charCodeAt(Qu)?(o="=",Qu++):(o=r,0===ue&&se(R)),o!==r?(He(),(a=pe())!==r&&je()!==r?(qu=e,s=n,c=a,e={type:"rule",name:(i=t)[0],nameLocation:i[1],expression:null!==s?{type:"named",name:s,expression:c,location:ee()}:c,location:ee()}):(Qu=e,e=r)):(Qu=e,e=r)):(Qu=e,e=r),e}function pe(){var e,t,n,o,a,i,s,c;if(e=Qu,(t=Ae())!==r){for(n=[],o=Qu,He(),47===u.charCodeAt(Qu)?(a="/",Qu++):(a=r,0===ue&&se(O)),a!==r?(He(),(i=Ae())!==r?o=i:(Qu=o,o=r)):(Qu=o,o=r);o!==r;)n.push(o),o=Qu,He(),47===u.charCodeAt(Qu)?(a="/",Qu++):(a=r,0===ue&&se(O)),a!==r?(He(),(i=Ae())!==r?o=i:(Qu=o,o=r)):(Qu=o,o=r);qu=e,s=t,e=(c=n).length>0?{type:"choice",alternatives:[s].concat(c),location:ee()}:s}else Qu=e,e=r;return e}function Ae(){var u,e,t,n,o,a;return u=Qu,e=function(){var u,e,t,n,o,a,i;if(u=Qu,(e=Ee())!==r){for(t=[],n=Qu,He(),(o=Ee())!==r?n=o:(Qu=n,n=r);n!==r;)t.push(n),n=Qu,He(),(o=Ee())!==r?n=o:(Qu=n,n=r);qu=u,a=e,u=(i=t).length>0||"labeled"===a.type&&a.pick?{type:"sequence",elements:[a].concat(i),location:ee()}:a}else Qu=u,u=r;return u}(),e!==r?(t=Qu,He(),(n=ke())!==r?t=n:(Qu=t,t=r),t===r&&(t=null),qu=u,o=e,u=null!==(a=t)?{type:"action",expression:o,code:a[0],codeLocation:a[1],location:ee()}:o):(Qu=u,u=r),u}function Ee(){var e,t,n,o,a,i,s;return e=Qu,t=function(){var e,t;return e=Qu,64===u.charCodeAt(Qu)?(t="@",Qu++):(t=r,0===ue&&se(L)),t!==r&&(qu=e,t=ee()),t}(),t!==r?((n=he())===r&&(n=null),(o=fe())!==r?(qu=e,a=t,i=n,(s=o).type.startsWith("semantic_")&&te('"@" cannot be used on a semantic predicate',a),e={type:"labeled",label:null!==i?i[0]:null,labelLocation:null!==i?i[1]:a,pick:!0,expression:s,location:ee()}):(Qu=e,e=r)):(Qu=e,e=r),e===r&&(e=Qu,(t=he())!==r?(n=He(),(o=fe())!==r?(qu=e,e=function(u,e){return{type:"labeled",label:u[0],labelLocation:u[1],expression:e,location:ee()}}(t,o)):(Qu=e,e=r)):(Qu=e,e=r),e===r&&(e=fe())),e}function he(){var e,t,n,o;return e=Qu,(t=Se())!==r?(He(),58===u.charCodeAt(Qu)?(n=":",Qu++):(n=r,0===ue&&se(T)),n!==r?(qu=e,o=t,Ge.indexOf(o[0])>=0&&te("Label can't be a reserved word \"".concat(o[0],'"'),o[1]),e=o):(Qu=e,e=r)):(Qu=e,e=r),e}function fe(){var e,t,n,o;return e=Qu,t=function(){var e;return 36===u.charCodeAt(Qu)?(e="$",Qu++):(e=r,0===ue&&se(M)),e===r&&(38===u.charCodeAt(Qu)?(e="&",Qu++):(e=r,0===ue&&se(w)),e===r&&(33===u.charCodeAt(Qu)?(e="!",Qu++):(e=r,0===ue&&se(N)))),e}(),t!==r?(He(),(n=Ce())!==r?(qu=e,o=n,e={type:OPS_TO_PREFIXED_TYPES[t],expression:o,location:ee()}):(Qu=e,e=r)):(Qu=e,e=r),e===r&&(e=Ce()),e}function Ce(){var e,t,n,o;return e=Qu,(t=de())!==r?(He(),n=function(){var e;return 63===u.charCodeAt(Qu)?(e="?",Qu++):(e=r,0===ue&&se(I)),e===r&&(42===u.charCodeAt(Qu)?(e="*",Qu++):(e=r,0===ue&&se(k)),e===r&&(43===u.charCodeAt(Qu)?(e="+",Qu++):(e=r,0===ue&&se(U)))),e}(),n!==r?(qu=e,o=t,e={type:OPS_TO_SUFFIXED_TYPES[n],expression:o,location:ee()}):(Qu=e,e=r)):(Qu=e,e=r),e===r&&(e=de()),e}function de(){var e,t,n,o,a;return e=function(){var e,t,n;return ue++,e=Qu,(t=Pe())!==r?(105===u.charCodeAt(Qu)?(n="i",Qu++):(n=r,0===ue&&se(hu)),n===r&&(n=null),qu=e,e={type:"literal",value:t,ignoreCase:null!==n,location:ee()}):(Qu=e,e=r),ue--,e===r&&(t=r,0===ue&&se(Eu)),e}(),e===r&&(e=function(){var e,t,n,o,a,i,s,c;if(ue++,e=Qu,91===u.charCodeAt(Qu)?(t="[",Qu++):(t=r,0===ue&&se(Fu)),t!==r){for(94===u.charCodeAt(Qu)?(n="^",Qu++):(n=r,0===ue&&se(mu)),n===r&&(n=null),o=[],(a=Re())===r&&(a=Oe());a!==r;)o.push(a),(a=Re())===r&&(a=Oe());93===u.charCodeAt(Qu)?(a="]",Qu++):(a=r,0===ue&&se(_u)),a!==r?(105===u.charCodeAt(Qu)?(i="i",Qu++):(i=r,0===ue&&se(hu)),i===r&&(i=null),qu=e,s=n,c=i,e={type:"class",parts:o.filter((function(u){return""!==u})),inverted:null!==s,ignoreCase:null!==c,location:ee()}):(Qu=e,e=r)}else Qu=e,e=r;return ue--,e===r&&(t=r,0===ue&&se(gu)),e}(),e===r&&(e=function(){var e,t;return e=Qu,46===u.charCodeAt(Qu)?(t=".",Qu++):(t=r,0===ue&&se(Tu)),t!==r&&(qu=e,t={type:"any",location:ee()}),t}(),e===r&&(e=function(){var e,t,n,o,a,i,s;return e=Qu,(t=Se())!==r?(n=Qu,ue++,o=Qu,a=He(),i=Qu,(s=Pe())!==r?i=s=[s,He()]:(Qu=i,i=r),i===r&&(i=null),61===u.charCodeAt(Qu)?(s="=",Qu++):(s=r,0===ue&&se(R)),s!==r?o=a=[a,i,s]:(Qu=o,o=r),ue--,o===r?n=void 0:(Qu=n,n=r),n!==r?(qu=e,e={type:"rule_ref",name:t[0],location:ee()}):(Qu=e,e=r)):(Qu=e,e=r),e}(),e===r&&(e=function(){var e,t,n,o;return e=Qu,t=function(){var e;return 38===u.charCodeAt(Qu)?(e="&",Qu++):(e=r,0===ue&&se(w)),e===r&&(33===u.charCodeAt(Qu)?(e="!",Qu++):(e=r,0===ue&&se(N))),e}(),t!==r?(He(),(n=ke())!==r?(qu=e,o=n,e={type:OPS_TO_SEMANTIC_PREDICATE_TYPES[t],code:o[0],codeLocation:o[1],location:ee()}):(Qu=e,e=r)):(Qu=e,e=r),e}(),e===r&&(e=Qu,40===u.charCodeAt(Qu)?(t="(",Qu++):(t=r,0===ue&&se(H)),t!==r?(He(),(n=pe())!==r?(He(),41===u.charCodeAt(Qu)?(o=")",Qu++):(o=r,0===ue&&se(j)),o!==r?(qu=e,e="labeled"===(a=n).type||"sequence"===a.type?{type:"group",expression:a,location:ee()}:a):(Qu=e,e=r)):(Qu=e,e=r)):(Qu=e,e=r)))))),e}function ge(){var e;return u.length>Qu?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(G)),e}function Fe(){var e;return ue++,9===u.charCodeAt(Qu)?(e="\t",Qu++):(e=r,0===ue&&se(W)),e===r&&(11===u.charCodeAt(Qu)?(e="\v",Qu++):(e=r,0===ue&&se(Y)),e===r&&(12===u.charCodeAt(Qu)?(e="\f",Qu++):(e=r,0===ue&&se(z)),e===r&&(32===u.charCodeAt(Qu)?(e=" ",Qu++):(e=r,0===ue&&se(J)),e===r&&(160===u.charCodeAt(Qu)?(e=" ",Qu++):(e=r,0===ue&&se(Q)),e===r&&(65279===u.charCodeAt(Qu)?(e="\ufeff",Qu++):(e=r,0===ue&&se(q)),e===r&&(e=function(){var e;return P.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(zu)),e}())))))),ue--,e===r&&0===ue&&se(V),e}function me(){var e;return h.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(X)),e}function _e(){var e;return ue++,10===u.charCodeAt(Qu)?(e="\n",Qu++):(e=r,0===ue&&se(Z)),e===r&&("\r\n"===u.substr(Qu,2)?(e="\r\n",Qu+=2):(e=r,0===ue&&se(uu)),e===r&&(13===u.charCodeAt(Qu)?(e="\r",Qu++):(e=r,0===ue&&se(eu)),e===r&&(8232===u.charCodeAt(Qu)?(e="\u2028",Qu++):(e=r,0===ue&&se(tu)),e===r&&(8233===u.charCodeAt(Qu)?(e="\u2029",Qu++):(e=r,0===ue&&se(ru)))))),ue--,e===r&&0===ue&&se(K),e}function Be(){var e;return ue++,(e=function(){var e,t,n,o,a,i;if(e=Qu,u.substr(Qu,2)===c?(t=c,Qu+=2):(t=r,0===ue&&se(ou)),t!==r){for(n=[],o=Qu,a=Qu,ue++,u.substr(Qu,2)===l?(i=l,Qu+=2):(i=r,0===ue&&se(au)),ue--,i===r?a=void 0:(Qu=a,a=r),a!==r&&(i=ge())!==r?o=a=[a,i]:(Qu=o,o=r);o!==r;)n.push(o),o=Qu,a=Qu,ue++,u.substr(Qu,2)===l?(i=l,Qu+=2):(i=r,0===ue&&se(au)),ue--,i===r?a=void 0:(Qu=a,a=r),a!==r&&(i=ge())!==r?o=a=[a,i]:(Qu=o,o=r);u.substr(Qu,2)===l?(o=l,Qu+=2):(o=r,0===ue&&se(au)),o!==r?e=t=[t,n,o]:(Qu=e,e=r)}else Qu=e,e=r;return e}())===r&&(e=ve()),ue--,e===r&&0===ue&&se(nu),e}function De(){var e,t,n,o,a,i;if(e=Qu,u.substr(Qu,2)===c?(t=c,Qu+=2):(t=r,0===ue&&se(ou)),t!==r){for(n=[],o=Qu,a=Qu,ue++,u.substr(Qu,2)===l?(i=l,Qu+=2):(i=r,0===ue&&se(au)),i===r&&(i=me()),ue--,i===r?a=void 0:(Qu=a,a=r),a!==r&&(i=ge())!==r?o=a=[a,i]:(Qu=o,o=r);o!==r;)n.push(o),o=Qu,a=Qu,ue++,u.substr(Qu,2)===l?(i=l,Qu+=2):(i=r,0===ue&&se(au)),i===r&&(i=me()),ue--,i===r?a=void 0:(Qu=a,a=r),a!==r&&(i=ge())!==r?o=a=[a,i]:(Qu=o,o=r);u.substr(Qu,2)===l?(o=l,Qu+=2):(o=r,0===ue&&se(au)),o!==r?e=t=[t,n,o]:(Qu=e,e=r)}else Qu=e,e=r;return e}function ve(){var e,t,n,o,a,i;if(e=Qu,"//"===u.substr(Qu,2)?(t="//",Qu+=2):(t=r,0===ue&&se(iu)),t!==r){for(n=[],o=Qu,a=Qu,ue++,i=me(),ue--,i===r?a=void 0:(Qu=a,a=r),a!==r&&(i=ge())!==r?o=a=[a,i]:(Qu=o,o=r);o!==r;)n.push(o),o=Qu,a=Qu,ue++,i=me(),ue--,i===r?a=void 0:(Qu=a,a=r),a!==r&&(i=ge())!==r?o=a=[a,i]:(Qu=o,o=r);e=t=[t,n]}else Qu=e,e=r;return e}function Se(){var u,e,t,n;if(ue++,u=Qu,(e=$e())!==r){for(t=[],n=ye();n!==r;)t.push(n),n=ye();qu=u,u=[e+t.join(""),ee()]}else Qu=u,u=r;return ue--,u===r&&(e=r,0===ue&&se(su)),u}function $e(){var e,t,n;return(e=function(){var e;return(e=function(){var e;return B.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Hu)),e}())===r&&(e=function(){var e;return g.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Nu)),e}())===r&&(e=function(){var e;return _.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Uu)),e}())===r&&(e=function(){var e;return F.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Iu)),e}())===r&&(e=function(){var e;return m.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(ku)),e}())===r&&(e=function(){var e;return $.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Wu)),e}()),e}())===r&&(36===u.charCodeAt(Qu)?(e="$",Qu++):(e=r,0===ue&&se(M)),e===r&&(95===u.charCodeAt(Qu)?(e="_",Qu++):(e=r,0===ue&&se(cu)),e===r&&(e=Qu,92===u.charCodeAt(Qu)?(t=p,Qu++):(t=r,0===ue&&se(lu)),t!==r&&(n=we())!==r?e=n:(Qu=e,e=r)))),e}function ye(){var e;return(e=$e())===r&&(e=function(){var e;return(e=function(){var e;return v.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Gu)),e}())===r&&(e=function(){var e;return D.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(ju)),e}()),e}())===r&&(e=function(){var e;return S.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Vu)),e}())===r&&(e=function(){var e;return y.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Yu)),e}())===r&&(8204===u.charCodeAt(Qu)?(e="‌",Qu++):(e=r,0===ue&&se(pu)),e===r&&(8205===u.charCodeAt(Qu)?(e="‍",Qu++):(e=r,0===ue&&se(Au)))),e}function Pe(){var e,t,n,o;if(ue++,e=Qu,34===u.charCodeAt(Qu)?(t=A,Qu++):(t=r,0===ue&&se(Cu)),t!==r){for(n=[],o=xe();o!==r;)n.push(o),o=xe();34===u.charCodeAt(Qu)?(o=A,Qu++):(o=r,0===ue&&se(Cu)),o!==r?(qu=e,e=n.join("")):(Qu=e,e=r)}else Qu=e,e=r;if(e===r)if(e=Qu,39===u.charCodeAt(Qu)?(t=E,Qu++):(t=r,0===ue&&se(du)),t!==r){for(n=[],o=be();o!==r;)n.push(o),o=be();39===u.charCodeAt(Qu)?(o=E,Qu++):(o=r,0===ue&&se(du)),o!==r?(qu=e,e=n.join("")):(Qu=e,e=r)}else Qu=e,e=r;return ue--,e===r&&(t=r,0===ue&&se(fu)),e}function xe(){var e,t,n,o;return e=Qu,t=Qu,n=Qu,ue++,34===u.charCodeAt(Qu)?(o=A,Qu++):(o=r,0===ue&&se(Cu)),o===r&&(92===u.charCodeAt(Qu)?(o=p,Qu++):(o=r,0===ue&&se(lu)),o===r&&(o=me())),ue--,o===r?n=void 0:(Qu=n,n=r),n!==r&&(o=ge())!==r?t=n=[n,o]:(Qu=t,t=r),(e=t!==r?u.substring(e,Qu):t)===r&&(e=Qu,92===u.charCodeAt(Qu)?(t=p,Qu++):(t=r,0===ue&&se(lu)),t!==r&&(n=Te())!==r?e=n:(Qu=e,e=r),e===r&&(e=Le())),e}function be(){var e,t,n,o;return e=Qu,t=Qu,n=Qu,ue++,39===u.charCodeAt(Qu)?(o=E,Qu++):(o=r,0===ue&&se(du)),o===r&&(92===u.charCodeAt(Qu)?(o=p,Qu++):(o=r,0===ue&&se(lu)),o===r&&(o=me())),ue--,o===r?n=void 0:(Qu=n,n=r),n!==r&&(o=ge())!==r?t=n=[n,o]:(Qu=t,t=r),(e=t!==r?u.substring(e,Qu):t)===r&&(e=Qu,92===u.charCodeAt(Qu)?(t=p,Qu++):(t=r,0===ue&&se(lu)),t!==r&&(n=Te())!==r?e=n:(Qu=e,e=r),e===r&&(e=Le())),e}function Re(){var e,t,n,o,a,i;return e=Qu,(t=Oe())!==r?(45===u.charCodeAt(Qu)?(n="-",Qu++):(n=r,0===ue&&se(Bu)),n!==r&&(o=Oe())!==r?(qu=e,i=o,(a=t).charCodeAt(0)>i.charCodeAt(0)&&te("Invalid character range: "+u.substring(qu,Qu)+"."),e=[a,i]):(Qu=e,e=r)):(Qu=e,e=r),e}function Oe(){var e,t,n,o;return e=Qu,t=Qu,n=Qu,ue++,93===u.charCodeAt(Qu)?(o="]",Qu++):(o=r,0===ue&&se(_u)),o===r&&(92===u.charCodeAt(Qu)?(o=p,Qu++):(o=r,0===ue&&se(lu)),o===r&&(o=me())),ue--,o===r?n=void 0:(Qu=n,n=r),n!==r&&(o=ge())!==r?t=n=[n,o]:(Qu=t,t=r),(e=t!==r?u.substring(e,Qu):t)===r&&(e=Qu,92===u.charCodeAt(Qu)?(t=p,Qu++):(t=r,0===ue&&se(lu)),t!==r&&(n=Te())!==r?e=n:(Qu=e,e=r),e===r&&(e=Le())),e}function Le(){var e,t;return e=Qu,92===u.charCodeAt(Qu)?(t=p,Qu++):(t=r,0===ue&&se(lu)),t!==r&&_e()!==r?(qu=e,e=""):(Qu=e,e=r),e}function Te(){var e,t,n,o;return e=function(){var e;return(e=Me())===r&&(e=function(){var e,t,n,o;return e=Qu,t=Qu,n=Qu,ue++,o=function(){var e;return(e=Me())===r&&(e=Ne())===r&&(120===u.charCodeAt(Qu)?(e="x",Qu++):(e=r,0===ue&&se(bu)),e===r&&(117===u.charCodeAt(Qu)?(e="u",Qu++):(e=r,0===ue&&se(Ru)))),e}(),o===r&&(o=me()),ue--,o===r?n=void 0:(Qu=n,n=r),n!==r&&(o=ge())!==r?t=n=[n,o]:(Qu=t,t=r),e=t!==r?u.substring(e,Qu):t}()),e}(),e===r&&(e=Qu,48===u.charCodeAt(Qu)?(t="0",Qu++):(t=r,0===ue&&se(Du)),t!==r?(n=Qu,ue++,o=Ne(),ue--,o===r?n=void 0:(Qu=n,n=r),n!==r?(qu=e,e="\0"):(Qu=e,e=r)):(Qu=e,e=r),e===r&&(e=function(){var e,t,n,o,a,i,s;return e=Qu,120===u.charCodeAt(Qu)?(t="x",Qu++):(t=r,0===ue&&se(bu)),t!==r?(n=Qu,o=Qu,(a=Ie())!==r&&(i=Ie())!==r?o=a=[a,i]:(Qu=o,o=r),(n=o!==r?u.substring(n,Qu):o)!==r?(qu=e,s=n,e=String.fromCharCode(parseInt(s,16))):(Qu=e,e=r)):(Qu=e,e=r),e}(),e===r&&(e=we()))),e}function Me(){var e,t;return 39===u.charCodeAt(Qu)?(e=E,Qu++):(e=r,0===ue&&se(du)),e===r&&(34===u.charCodeAt(Qu)?(e=A,Qu++):(e=r,0===ue&&se(Cu)),e===r&&(92===u.charCodeAt(Qu)?(e=p,Qu++):(e=r,0===ue&&se(lu)),e===r&&(e=Qu,98===u.charCodeAt(Qu)?(t="b",Qu++):(t=r,0===ue&&se(vu)),t!==r&&(qu=e,t="\b"),(e=t)===r&&(e=Qu,102===u.charCodeAt(Qu)?(t="f",Qu++):(t=r,0===ue&&se(Su)),t!==r&&(qu=e,t="\f"),(e=t)===r&&(e=Qu,110===u.charCodeAt(Qu)?(t="n",Qu++):(t=r,0===ue&&se($u)),t!==r&&(qu=e,t="\n"),(e=t)===r&&(e=Qu,114===u.charCodeAt(Qu)?(t="r",Qu++):(t=r,0===ue&&se(yu)),t!==r&&(qu=e,t="\r"),(e=t)===r&&(e=Qu,116===u.charCodeAt(Qu)?(t="t",Qu++):(t=r,0===ue&&se(Pu)),t!==r&&(qu=e,t="\t"),(e=t)===r&&(e=Qu,118===u.charCodeAt(Qu)?(t="v",Qu++):(t=r,0===ue&&se(xu)),t!==r&&(qu=e,t="\v"),e=t)))))))),e}function we(){var e,t,n,o,a,i,s,c,l;return e=Qu,117===u.charCodeAt(Qu)?(t="u",Qu++):(t=r,0===ue&&se(Ru)),t!==r?(n=Qu,o=Qu,(a=Ie())!==r&&(i=Ie())!==r&&(s=Ie())!==r&&(c=Ie())!==r?o=a=[a,i,s,c]:(Qu=o,o=r),(n=o!==r?u.substring(n,Qu):o)!==r?(qu=e,l=n,e=String.fromCharCode(parseInt(l,16))):(Qu=e,e=r)):(Qu=e,e=r),e}function Ne(){var e;return f.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Ou)),e}function Ie(){var e;return C.test(u.charAt(Qu))?(e=u.charAt(Qu),Qu++):(e=r,0===ue&&se(Lu)),e}function ke(){var e,t,n,o;return ue++,e=Qu,123===u.charCodeAt(Qu)?(t=i,Qu++):(t=r,0===ue&&se(x)),t!==r?(n=function(){var u,e;return u=Qu,e=Ue(),qu=u,e=[e,ee()]}(),125===u.charCodeAt(Qu)?(o=s,Qu++):(o=r,0===ue&&se(b)),o!==r?e=n:(Qu=e,e=r)):(Qu=e,e=r),ue--,e===r&&(t=r,0===ue&&se(Mu)),e}function Ue(){var e,t,n,o,a,c;if(e=Qu,t=[],n=[],o=Qu,a=Qu,ue++,d.test(u.charAt(Qu))?(c=u.charAt(Qu),Qu++):(c=r,0===ue&&se(wu)),ue--,c===r?a=void 0:(Qu=a,a=r),a!==r&&(c=ge())!==r?o=a=[a,c]:(Qu=o,o=r),o!==r)for(;o!==r;)n.push(o),o=Qu,a=Qu,ue++,d.test(u.charAt(Qu))?(c=u.charAt(Qu),Qu++):(c=r,0===ue&&se(wu)),ue--,c===r?a=void 0:(Qu=a,a=r),a!==r&&(c=ge())!==r?o=a=[a,c]:(Qu=o,o=r);else n=r;for(n===r&&(n=Qu,123===u.charCodeAt(Qu)?(o=i,Qu++):(o=r,0===ue&&se(x)),o!==r?(a=Ue(),125===u.charCodeAt(Qu)?(c=s,Qu++):(c=r,0===ue&&se(b)),c!==r?n=o=[o,a,c]:(Qu=n,n=r)):(Qu=n,n=r));n!==r;){if(t.push(n),n=[],o=Qu,a=Qu,ue++,d.test(u.charAt(Qu))?(c=u.charAt(Qu),Qu++):(c=r,0===ue&&se(wu)),ue--,c===r?a=void 0:(Qu=a,a=r),a!==r&&(c=ge())!==r?o=a=[a,c]:(Qu=o,o=r),o!==r)for(;o!==r;)n.push(o),o=Qu,a=Qu,ue++,d.test(u.charAt(Qu))?(c=u.charAt(Qu),Qu++):(c=r,0===ue&&se(wu)),ue--,c===r?a=void 0:(Qu=a,a=r),a!==r&&(c=ge())!==r?o=a=[a,c]:(Qu=o,o=r);else n=r;n===r&&(n=Qu,123===u.charCodeAt(Qu)?(o=i,Qu++):(o=r,0===ue&&se(x)),o!==r?(a=Ue(),125===u.charCodeAt(Qu)?(c=s,Qu++):(c=r,0===ue&&se(b)),c!==r?n=o=[o,a,c]:(Qu=n,n=r)):(Qu=n,n=r))}return u.substring(e,Qu)}function He(){var u,e;for(u=[],(e=Fe())===r&&(e=_e())===r&&(e=Be());e!==r;)u.push(e),(e=Fe())===r&&(e=_e())===r&&(e=Be());return u}function je(){var e,t,n,o;return e=Qu,t=He(),59===u.charCodeAt(Qu)?(n=";",Qu++):(n=r,0===ue&&se(Ju)),n!==r?e=t=[t,n]:(Qu=e,e=r),e===r&&(e=Qu,t=function(){var u,e;for(u=[],(e=Fe())===r&&(e=De());e!==r;)u.push(e),(e=Fe())===r&&(e=De());return u}(),(n=ve())===r&&(n=null),(o=_e())!==r?e=t=[t,n,o]:(Qu=e,e=r),e===r&&(e=Qu,t=He(),n=function(){var e,t;return e=Qu,ue++,u.length>Qu?(t=u.charAt(Qu),Qu++):(t=r,0===ue&&se(G)),ue--,t===r?e=void 0:(Qu=e,e=r),e}(),n!==r?e=t=[t,n]:(Qu=e,e=r))),e}var Ge=e.reservedWords||[];if((t=a())!==r&&Qu===u.length)return t;throw t!==r&&Qu0){for(e=1,t=1;e