@jay-framework/compiler-jay-html 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { RenderFragment, Imports, Import, JayImportedType, isObjectType as isObjectType$1, isImportedType, isRecursiveType, JayUnknown, WithValidations, isArrayType as isArrayType$1, isAtomicType, isPromiseType, isEnumType, hasRefs, GenerateTarget, JayComponentType, JayTypeAlias, mkRefsTree, mkRef, equalJayTypes, JayUnionType, JayHTMLType, getModeFileExtension, RuntimeMode, ImportsFor, nestRefs, JayErrorType, mergeRefsTrees, JayObjectType, JayArrayType, JayPromiseType, JAY_CONTRACT_EXTENSION, JayRecursiveType, JayEnumType, resolvePrimitiveType, SourceFileFormat } from "@jay-framework/compiler-shared";
1
+ import { RenderFragment, Imports, Import, JayImportedType, isObjectType as isObjectType$1, isImportedType, isRecursiveType, JayUnknown, WithValidations, isArrayType as isArrayType$1, isAtomicType, isPromiseType, isEnumType, hasRefs, GenerateTarget, JayComponentType, JayTypeAlias, mkRefsTree, mkRef, equalJayTypes, JayUnionType, JayHTMLType, getModeFileExtension, RuntimeMode, ImportsFor, nestRefs, JayErrorType, mergeRefsTrees, JayObjectType, JayArrayType, JayPromiseType, JAY_CONTRACT_EXTENSION, JayRecursiveType, JayEnumType, resolvePrimitiveType, SourceFileFormat, resolvePluginComponent } from "@jay-framework/compiler-shared";
2
2
  import path from "path";
3
3
  import fs from "fs/promises";
4
4
  import { analyzeExportedTypes } from "@jay-framework/compiler-analyze-exported-types";
@@ -159,7 +159,7 @@ function camelCaseTransform(input, index) {
159
159
  return input.toLowerCase();
160
160
  return pascalCaseTransform(input, index);
161
161
  }
162
- function camelCase(input, options) {
162
+ function camelCase$1(input, options) {
163
163
  if (options === void 0) {
164
164
  options = {};
165
165
  }
@@ -177,6 +177,22 @@ function capitalCase(input, options) {
177
177
  }
178
178
  return noCase(input, __assign$3({ delimiter: " ", transform: capitalCaseTransform }, options));
179
179
  }
180
+ function camelCase(str2) {
181
+ let leadingUnderscores = 0;
182
+ for (const char of str2) {
183
+ if (char === "_") {
184
+ leadingUnderscores++;
185
+ } else {
186
+ break;
187
+ }
188
+ }
189
+ if (leadingUnderscores === 0) {
190
+ return camelCase$1(str2);
191
+ }
192
+ const withoutLeadingUnderscores = str2.slice(leadingUnderscores);
193
+ const camelCased = camelCase$1(withoutLeadingUnderscores);
194
+ return "_".repeat(leadingUnderscores) + camelCased;
195
+ }
180
196
  function shouldIncludeInPhase(propertyPhase, targetPhase) {
181
197
  if (targetPhase === "slow") {
182
198
  return propertyPhase === "slow";
@@ -187,7 +203,7 @@ function shouldIncludeInPhase(propertyPhase, targetPhase) {
187
203
  }
188
204
  return false;
189
205
  }
190
- function extractPropertyPathsAndArrays(tags, targetPhase, parentPath = [], parentPhase) {
206
+ function extractPropertyPathsAndArrays(tags, targetPhase, parentPath = [], parentPhase, parentTrackBy) {
191
207
  const paths = [];
192
208
  const arrays = [];
193
209
  const asyncProps = [];
@@ -201,13 +217,16 @@ function extractPropertyPathsAndArrays(tags, targetPhase, parentPath = [], paren
201
217
  const isArray = tag.repeated || false;
202
218
  const isAsync = tag.async || false;
203
219
  if (tag.type.includes(ContractTagType.subContract) && tag.tags) {
220
+ const trackByForChildren = isArray ? tag.trackBy : void 0;
204
221
  const result = extractPropertyPathsAndArrays(
205
222
  tag.tags,
206
223
  targetPhase,
207
224
  currentPath,
208
- effectivePhase
225
+ effectivePhase,
226
+ trackByForChildren
209
227
  );
210
- if (result.paths.length > 0) {
228
+ const hasOnlyTrackBy = isArray && trackByForChildren && result.paths.length === 1 && result.paths[0].propertyName === camelCase(trackByForChildren);
229
+ if (result.paths.length > 0 && !hasOnlyTrackBy) {
211
230
  paths.push(...result.paths);
212
231
  arrays.push(...result.arrays);
213
232
  asyncProps.push(...result.asyncProps);
@@ -219,7 +238,8 @@ function extractPropertyPathsAndArrays(tags, targetPhase, parentPath = [], paren
219
238
  }
220
239
  }
221
240
  } else {
222
- if (shouldIncludeInPhase(effectivePhase, targetPhase)) {
241
+ const isTrackByField = parentTrackBy === tag.tag;
242
+ if (shouldIncludeInPhase(effectivePhase, targetPhase) || isTrackByField) {
223
243
  paths.push({
224
244
  path: parentPath,
225
245
  propertyName
@@ -268,6 +288,25 @@ function countTotalProperties(tags, targetPath, currentPath = []) {
268
288
  }
269
289
  return count;
270
290
  }
291
+ function buildPathAccess(baseTypeName, path2, arrays, asyncProps, skipFinalArrayAccess = false) {
292
+ if (path2.length === 0) {
293
+ return baseTypeName;
294
+ }
295
+ let result = baseTypeName;
296
+ for (let i = 0; i < path2.length; i++) {
297
+ const segment = path2[i];
298
+ result += `['${segment}']`;
299
+ const pathUpToHere = path2.slice(0, i + 1).join(".");
300
+ const isArray = arrays.has(pathUpToHere);
301
+ const isAsync = asyncProps?.has(pathUpToHere);
302
+ const isFinalSegment = i === path2.length - 1;
303
+ const shouldSkip = isFinalSegment && (skipFinalArrayAccess || isArray && isAsync);
304
+ if (isArray && !shouldSkip) {
305
+ result += "[number]";
306
+ }
307
+ }
308
+ return result;
309
+ }
271
310
  function buildPickExpression(baseTypeName, pathGroups, arrays, asyncProps, contractTags, currentPath = []) {
272
311
  const currentKey = currentPath.join(".");
273
312
  const properties = pathGroups.get(currentKey) || [];
@@ -286,7 +325,7 @@ function buildPickExpression(baseTypeName, pathGroups, arrays, asyncProps, contr
286
325
  const nestedProperties = [];
287
326
  const directProps = properties.filter((p) => !childPropertyNames.has(p));
288
327
  if (directProps.length > 0) {
289
- const pathAccess = currentPath.length > 0 ? `${baseTypeName}${currentPath.map((p) => `['${p}']`).join("")}` : baseTypeName;
328
+ const pathAccess = buildPathAccess(baseTypeName, currentPath, arrays, asyncProps);
290
329
  pickPart.push(`Pick<${pathAccess}, ${directProps.map((p) => `'${p}'`).join(" | ")}>`);
291
330
  }
292
331
  for (const childName of childPropertyNames) {
@@ -307,17 +346,17 @@ function buildPickExpression(baseTypeName, pathGroups, arrays, asyncProps, contr
307
346
  );
308
347
  if (childExpression) {
309
348
  let fullExpression;
310
- const originalPathAccess = `${baseTypeName}${childPath.map((p) => `['${p}']`).join("")}`;
349
+ const originalPathAccess = buildPathAccess(baseTypeName, childPath, arrays, asyncProps);
311
350
  if (isPickingAllProperties && childExpression === `Pick<${originalPathAccess}, ${childProperties.map((p) => `'${p}'`).join(" | ")}>`) {
312
351
  const directTypeRef = originalPathAccess;
313
352
  if (isAsync) {
314
353
  if (isArray) {
315
- fullExpression = `Promise<Array<${directTypeRef}[number]>>`;
354
+ fullExpression = `Promise<Array<Awaited<${directTypeRef}>[number]>>`;
316
355
  } else {
317
356
  fullExpression = `Promise<${directTypeRef}>`;
318
357
  }
319
358
  } else if (isArray) {
320
- fullExpression = `Array<${directTypeRef}[number]>`;
359
+ fullExpression = `Array<${directTypeRef}>`;
321
360
  } else {
322
361
  fullExpression = directTypeRef;
323
362
  }
@@ -339,8 +378,7 @@ function buildPickExpression(baseTypeName, pathGroups, arrays, asyncProps, contr
339
378
  fullExpression = `Promise<${unwrappedExpression}>`;
340
379
  }
341
380
  } else if (isArray) {
342
- const arrayElementAccess = `${originalPathAccess}[number]`;
343
- fullExpression = `Array<${childExpression.replace(originalPathAccess, arrayElementAccess)}>`;
381
+ fullExpression = `Array<${childExpression}>`;
344
382
  } else {
345
383
  fullExpression = childExpression;
346
384
  }
@@ -6290,7 +6328,50 @@ peg$SyntaxError.buildMessage = function(expected, found) {
6290
6328
  };
6291
6329
  function peg$parse(input, options) {
6292
6330
  options = options !== void 0 ? options : {};
6293
- var peg$FAILED = {}, peg$startRuleFunctions = { dynamicAttribute: peg$parsedynamicAttribute, booleanAttribute: peg$parsebooleanAttribute, dynamicText: peg$parsedynamicText, dynamicProperty: peg$parsedynamicProperty, conditionFunc: peg$parseconditionFunc, accessor: peg$parseaccessor, Identifier: peg$parseIdentifier, classExpression: peg$parseclassExpression, dynamicComponentProp: peg$parsedynamicComponentProp, importNames: peg$parseimportNames, enum: peg$parseenum, is_enum: peg$parseis_enum, reactDynamicText: peg$parsereactDynamicText, reactDynamicProperty: peg$parsereactDynamicProperty, reactClassExpression: peg$parsereactClassExpression, condition: peg$parsecondition }, peg$startRuleFunction = peg$parsedynamicAttribute, peg$c0 = function(head, tail) {
6331
+ var peg$FAILED = {}, peg$startRuleFunctions = { dynamicAttribute: peg$parsedynamicAttribute, booleanAttribute: peg$parsebooleanAttribute, dynamicText: peg$parsedynamicText, dynamicProperty: peg$parsedynamicProperty, conditionFunc: peg$parseconditionFunc, accessor: peg$parseaccessor, Identifier: peg$parseIdentifier, classExpression: peg$parseclassExpression, dynamicComponentProp: peg$parsedynamicComponentProp, importNames: peg$parseimportNames, enum: peg$parseenum, is_enum: peg$parseis_enum, reactDynamicText: peg$parsereactDynamicText, reactDynamicProperty: peg$parsereactDynamicProperty, reactClassExpression: peg$parsereactClassExpression, condition: peg$parsecondition, styleDeclarations: peg$parsestyleDeclarations }, peg$startRuleFunction = peg$parsedynamicAttribute, peg$c0 = function(declarations) {
6332
+ const validDeclarations = declarations.map((d) => d[0]).filter((d) => d !== null);
6333
+ const hasDynamic = validDeclarations.some((d) => d.isDynamic);
6334
+ return { declarations: validDeclarations, hasDynamic };
6335
+ }, peg$c1 = function(comment2) {
6336
+ return null;
6337
+ }, peg$c2 = ":", peg$c3 = peg$literalExpectation(":", false), peg$c4 = ";", peg$c5 = peg$literalExpectation(";", false), peg$c6 = function(prop, value) {
6338
+ const camelProp = prop.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
6339
+ const [valueFragment, isDynamic] = value;
6340
+ return {
6341
+ property: camelProp,
6342
+ valueFragment: isDynamic ? valueFragment.map((_) => `dp(${vars.currentVar} => ${_})`).plusImport(dp) : valueFragment,
6343
+ isDynamic
6344
+ };
6345
+ }, peg$c7 = function() {
6346
+ return null;
6347
+ }, peg$c8 = /^[\-a-zA-Z]/, peg$c9 = peg$classExpectation(["-", ["a", "z"], ["A", "Z"]], false, false), peg$c10 = function() {
6348
+ return text2();
6349
+ }, peg$c11 = "{", peg$c12 = peg$literalExpectation("{", false), peg$c13 = "}", peg$c14 = peg$literalExpectation("}", false), peg$c15 = function(a, head, tail) {
6350
+ const renderText2 = (w, h) => {
6351
+ return h ? h.reduce((acc, str2) => acc + str2[0] + (str2[1].length ? " " : ""), w.length ? " " : "") : w.length ? " " : "";
6352
+ };
6353
+ if (tail.length === 0) {
6354
+ const text3 = renderText2(a, head);
6355
+ return [new RenderFragment2("'" + text3 + "'", none), false];
6356
+ } else if (tail.length === 1 && !head && a.length === 0 && tail[0][5].length === 0 && tail[0][6].length === 0) {
6357
+ let accessor = tail[0][2];
6358
+ return [accessor, true];
6359
+ } else {
6360
+ let reducedFragment = tail.reduce(function(result, element) {
6361
+ let accessor = element[2];
6362
+ return RenderFragment2.merge(result, accessor.map((_) => `\${${_}}${renderText2(element[5], element[6])}`));
6363
+ }, new RenderFragment2(`\`${renderText2(a, head)}`, none)).map((exp) => exp + "`");
6364
+ return [reducedFragment, true];
6365
+ }
6366
+ }, peg$c16 = function() {
6367
+ return "";
6368
+ }, peg$c17 = /^[^;{}'"]/, peg$c18 = peg$classExpectation([";", "{", "}", "'", '"'], true, false), peg$c19 = function() {
6369
+ return text2().trim();
6370
+ }, peg$c20 = "'", peg$c21 = peg$literalExpectation("'", false), peg$c22 = /^[^']/, peg$c23 = peg$classExpectation(["'"], true, false), peg$c24 = function(chars) {
6371
+ return "'" + chars.join("") + "'";
6372
+ }, peg$c25 = '"', peg$c26 = peg$literalExpectation('"', false), peg$c27 = /^[^"]/, peg$c28 = peg$classExpectation(['"'], true, false), peg$c29 = function(chars) {
6373
+ return '"' + chars.join("") + '"';
6374
+ }, peg$c30 = "/*", peg$c31 = peg$literalExpectation("/*", false), peg$c32 = /^[^*]/, peg$c33 = peg$classExpectation(["*"], true, false), peg$c34 = "*", peg$c35 = peg$literalExpectation("*", false), peg$c36 = /^[^\/*]/, peg$c37 = peg$classExpectation(["/", "*"], true, false), peg$c38 = "/", peg$c39 = peg$literalExpectation("/", false), peg$c40 = /^[ \t\n\r]/, peg$c41 = peg$classExpectation([" ", " ", "\n", "\r"], false, false), peg$c42 = function(head, tail) {
6294
6375
  const classes = [head, ...tail.map((_) => _[1])];
6295
6376
  const isDynamic = classes.find((_) => _ instanceof RenderFragment2);
6296
6377
  if (isDynamic) {
@@ -6306,7 +6387,7 @@ function peg$parse(input, options) {
6306
6387
  return reduced.map((_) => `{\`${_}\`}`);
6307
6388
  } else
6308
6389
  return new RenderFragment2(classes.join(" "), none).map((_) => `"${_}"`);
6309
- }, peg$c1 = function(head, tail) {
6390
+ }, peg$c43 = function(head, tail) {
6310
6391
  let isDynamic = false;
6311
6392
  const renderClass = (cls) => {
6312
6393
  isDynamic = isDynamic || cls instanceof RenderFragment2;
@@ -6317,44 +6398,44 @@ function peg$parse(input, options) {
6317
6398
  return RenderFragment2.merge(result, renderClass(classExp), " ");
6318
6399
  }, renderClass(head));
6319
6400
  return isDynamic ? classString.map((_) => `da(${vars.currentVar} => \`${_}\`)`) : classString.map((_) => `'${_}'`);
6320
- }, peg$c2 = "{", peg$c3 = peg$literalExpectation("{", false), peg$c4 = "}", peg$c5 = peg$literalExpectation("}", false), peg$c6 = function(cls) {
6401
+ }, peg$c44 = function(cls) {
6321
6402
  return cls.render().plusImport(da);
6322
- }, peg$c7 = /^[{]/, peg$c8 = peg$classExpectation(["{"], false, false), peg$c9 = /^[?]/, peg$c10 = peg$classExpectation(["?"], false, false), peg$c11 = /^[:]/, peg$c12 = peg$classExpectation([":"], false, false), peg$c13 = /^[}]/, peg$c14 = peg$classExpectation(["}"], false, false), peg$c15 = function(acc, classY, classN) {
6403
+ }, peg$c45 = /^[{]/, peg$c46 = peg$classExpectation(["{"], false, false), peg$c47 = /^[?]/, peg$c48 = peg$classExpectation(["?"], false, false), peg$c49 = /^[:]/, peg$c50 = peg$classExpectation([":"], false, false), peg$c51 = /^[}]/, peg$c52 = peg$classExpectation(["}"], false, false), peg$c53 = function(acc, classY, classN) {
6323
6404
  return new RenderFragment2(`${acc.rendered}?'${classY}':'${classN ? classN[3] : ""}'`, da, acc.validations);
6324
- }, peg$c16 = /^[\-]/, peg$c17 = peg$classExpectation(["-"], false, false), peg$c18 = /^[_a-zA-Z]/, peg$c19 = peg$classExpectation(["_", ["a", "z"], ["A", "Z"]], false, false), peg$c20 = /^[_a-zA-Z0-9\-]/, peg$c21 = peg$classExpectation(["_", ["a", "z"], ["A", "Z"], ["0", "9"], "-"], false, false), peg$c22 = function() {
6405
+ }, peg$c54 = /^[\-]/, peg$c55 = peg$classExpectation(["-"], false, false), peg$c56 = /^[_a-zA-Z]/, peg$c57 = peg$classExpectation(["_", ["a", "z"], ["A", "Z"]], false, false), peg$c58 = /^[_a-zA-Z0-9\-]/, peg$c59 = peg$classExpectation(["_", ["a", "z"], ["A", "Z"], ["0", "9"], "-"], false, false), peg$c60 = function() {
6325
6406
  return text2();
6326
- }, peg$c23 = "as", peg$c24 = peg$literalExpectation("as", false), peg$c25 = ",", peg$c26 = peg$literalExpectation(",", false), peg$c27 = function(head, rename, tail) {
6407
+ }, peg$c61 = "as", peg$c62 = peg$literalExpectation("as", false), peg$c63 = ",", peg$c64 = peg$literalExpectation(",", false), peg$c65 = function(head, rename, tail) {
6327
6408
  let names = tail.reduce((acc, curr) => {
6328
6409
  return [...acc, curr[4] ? { name: curr[3], as: curr[4][3] } : { name: curr[3] }];
6329
6410
  }, [rename ? { name: head, as: rename[3] } : { name: head }]);
6330
6411
  return names;
6331
- }, peg$c28 = "enum", peg$c29 = peg$literalExpectation("enum", false), peg$c30 = "(", peg$c31 = peg$literalExpectation("(", false), peg$c32 = "", peg$c33 = peg$anyExpectation(), peg$c34 = function() {
6412
+ }, peg$c66 = "enum", peg$c67 = peg$literalExpectation("enum", false), peg$c68 = "(", peg$c69 = peg$literalExpectation("(", false), peg$c70 = "", peg$c71 = peg$anyExpectation(), peg$c72 = function() {
6332
6413
  return true;
6333
- }, peg$c35 = "|", peg$c36 = peg$literalExpectation("|", false), peg$c37 = ")", peg$c38 = peg$literalExpectation(")", false), peg$c39 = function(first, next) {
6414
+ }, peg$c73 = "|", peg$c74 = peg$literalExpectation("|", false), peg$c75 = ")", peg$c76 = peg$literalExpectation(")", false), peg$c77 = function(first, next) {
6334
6415
  return next.reduce((acc, val) => {
6335
6416
  return [...acc, val[3]];
6336
6417
  }, [first]);
6337
- }, peg$c40 = function(template) {
6418
+ }, peg$c78 = function(template) {
6338
6419
  let [renderFragment, isDynamic] = template;
6339
6420
  return isDynamic ? renderFragment.map((_) => `ba(${vars.currentVar} => ${_})`).plusImport(ba) : renderFragment;
6340
- }, peg$c41 = function(template) {
6421
+ }, peg$c79 = function(template) {
6341
6422
  let [renderFragment, isDynamic] = template;
6342
6423
  return isDynamic ? renderFragment.map((_) => `da(${vars.currentVar} => ${_})`).plusImport(da) : renderFragment;
6343
- }, peg$c42 = function(num) {
6424
+ }, peg$c80 = function(num) {
6344
6425
  return new RenderFragment2(num);
6345
- }, peg$c43 = function(template) {
6426
+ }, peg$c81 = function(template) {
6346
6427
  let [renderFragment, isDynamic] = template;
6347
6428
  return renderFragment;
6348
- }, peg$c44 = function(template) {
6429
+ }, peg$c82 = function(template) {
6349
6430
  let [renderFragment, isDynamic] = template;
6350
6431
  return isDynamic ? renderFragment.map((_) => `dp(${vars.currentVar} => ${_})`).plusImport(dp) : renderFragment;
6351
- }, peg$c45 = function(template) {
6432
+ }, peg$c83 = function(template) {
6352
6433
  let [renderFragment, isDynamic] = template;
6353
6434
  return isDynamic ? renderFragment.map((_) => `{${_}}`) : renderFragment;
6354
- }, peg$c46 = function(reactTemplate) {
6435
+ }, peg$c84 = function(reactTemplate) {
6355
6436
  let [renderFragment, isDynamic] = reactTemplate;
6356
6437
  return renderFragment;
6357
- }, peg$c47 = function(a, head, tail) {
6438
+ }, peg$c85 = function(a, head, tail) {
6358
6439
  const renderText2 = (w, h) => {
6359
6440
  return h ? h.reduce((acc, str2) => acc + str2[0] + (str2[1].length ? " " : ""), w.length ? " " : "") : w.length ? " " : "";
6360
6441
  };
@@ -6370,10 +6451,10 @@ function peg$parse(input, options) {
6370
6451
  }, new RenderFragment2(`${renderText2(a, head)}`, none)).map((exp) => exp);
6371
6452
  return [reducedFragment, true];
6372
6453
  }
6373
- }, peg$c48 = function(template) {
6454
+ }, peg$c86 = function(template) {
6374
6455
  let [renderFragment, isDynamic] = template;
6375
6456
  return isDynamic ? renderFragment.map((_) => `dt(${vars.currentVar} => ${_})`).plusImport(dt) : renderFragment;
6376
- }, peg$c49 = function(a, head, tail) {
6457
+ }, peg$c87 = function(a, head, tail) {
6377
6458
  const renderText2 = (w, h) => {
6378
6459
  return h ? h.reduce((acc, str2) => acc + str2[0] + (str2[1].length ? " " : ""), w.length ? " " : "") : w.length ? " " : "";
6379
6460
  };
@@ -6389,9 +6470,9 @@ function peg$parse(input, options) {
6389
6470
  }, new RenderFragment2(`\`${renderText2(a, head)}`, none)).map((exp) => exp + "`");
6390
6471
  return [reducedFragment, true];
6391
6472
  }
6392
- }, peg$c50 = function(cond) {
6473
+ }, peg$c88 = function(cond) {
6393
6474
  return cond.map((_) => `${vars.currentVar} => ${_}`);
6394
- }, peg$c51 = "||", peg$c52 = peg$literalExpectation("||", false), peg$c53 = function(head, tail) {
6475
+ }, peg$c89 = "||", peg$c90 = peg$literalExpectation("||", false), peg$c91 = function(head, tail) {
6395
6476
  if (tail.length === 0)
6396
6477
  return head;
6397
6478
  return tail.reduce((acc, curr) => {
@@ -6402,7 +6483,7 @@ function peg$parse(input, options) {
6402
6483
  " || "
6403
6484
  );
6404
6485
  }, head);
6405
- }, peg$c54 = "&&", peg$c55 = peg$literalExpectation("&&", false), peg$c56 = function(head, tail) {
6486
+ }, peg$c92 = "&&", peg$c93 = peg$literalExpectation("&&", false), peg$c94 = function(head, tail) {
6406
6487
  if (tail.length === 0)
6407
6488
  return head;
6408
6489
  return tail.reduce((acc, curr) => {
@@ -6413,40 +6494,40 @@ function peg$parse(input, options) {
6413
6494
  " && "
6414
6495
  );
6415
6496
  }, head);
6416
- }, peg$c57 = function(cond) {
6497
+ }, peg$c95 = function(cond) {
6417
6498
  return cond;
6418
- }, peg$c58 = function(not, head) {
6499
+ }, peg$c96 = function(not, head) {
6419
6500
  return not ? head.render().map((_) => `!${_}`) : head.render();
6420
- }, peg$c59 = function(head, oper, val) {
6501
+ }, peg$c97 = function(head, oper, val) {
6421
6502
  if (oper.length === 2)
6422
6503
  oper = oper + "=";
6423
6504
  return head.render().map((_) => `${_} ${oper} ${head.resolvedType.name}.${val}`);
6424
- }, peg$c60 = ".", peg$c61 = peg$literalExpectation(".", false), peg$c62 = function() {
6505
+ }, peg$c98 = ".", peg$c99 = peg$literalExpectation(".", false), peg$c100 = function() {
6425
6506
  return vars.resolveAccessor(["."]);
6426
- }, peg$c63 = function(head, tail) {
6507
+ }, peg$c101 = function(head, tail) {
6427
6508
  let terms = [head, ...tail.map((_) => _[3])];
6428
6509
  let accessor = vars.resolveAccessor(terms);
6429
6510
  return accessor;
6430
- }, peg$c64 = peg$otherExpectation("integer"), peg$c65 = /^[0-9]/, peg$c66 = peg$classExpectation([["0", "9"]], false, false), peg$c67 = peg$otherExpectation("whitespace"), peg$c68 = /^[ \t\n\r]/, peg$c69 = peg$classExpectation([" ", " ", "\n", "\r"], false, false), peg$c70 = /^[^{} \t\n\r]/, peg$c71 = peg$classExpectation(["{", "}", " ", " ", "\n", "\r"], true, false), peg$c72 = function() {
6511
+ }, peg$c102 = peg$otherExpectation("integer"), peg$c103 = /^[0-9]/, peg$c104 = peg$classExpectation([["0", "9"]], false, false), peg$c105 = peg$otherExpectation("whitespace"), peg$c106 = /^[^{} \t\n\r]/, peg$c107 = peg$classExpectation(["{", "}", " ", " ", "\n", "\r"], true, false), peg$c108 = function() {
6431
6512
  return text2();
6432
- }, peg$c73 = "!", peg$c74 = peg$literalExpectation("!", false), peg$c75 = "===", peg$c76 = peg$literalExpectation("===", false), peg$c77 = "!==", peg$c78 = peg$literalExpectation("!==", false), peg$c79 = "==", peg$c80 = peg$literalExpectation("==", false), peg$c81 = "!=", peg$c82 = peg$literalExpectation("!=", false), peg$c83 = function(name) {
6513
+ }, peg$c109 = "!", peg$c110 = peg$literalExpectation("!", false), peg$c111 = "===", peg$c112 = peg$literalExpectation("===", false), peg$c113 = "!==", peg$c114 = peg$literalExpectation("!==", false), peg$c115 = "==", peg$c116 = peg$literalExpectation("==", false), peg$c117 = "!=", peg$c118 = peg$literalExpectation("!=", false), peg$c119 = function(name) {
6433
6514
  return text2();
6434
- }, peg$c84 = peg$otherExpectation("identifier"), peg$c85 = function(head, tail) {
6515
+ }, peg$c120 = peg$otherExpectation("identifier"), peg$c121 = function(head, tail) {
6435
6516
  return {
6436
6517
  type: "Identifier",
6437
6518
  name: head + tail.join("")
6438
6519
  };
6439
- }, peg$c86 = "$", peg$c87 = peg$literalExpectation("$", false), peg$c88 = "_", peg$c89 = peg$literalExpectation("_", false), peg$c90 = "\\", peg$c91 = peg$literalExpectation("\\", false), peg$c92 = function(sequence) {
6520
+ }, peg$c122 = "$", peg$c123 = peg$literalExpectation("$", false), peg$c124 = "_", peg$c125 = peg$literalExpectation("_", false), peg$c126 = "\\", peg$c127 = peg$literalExpectation("\\", false), peg$c128 = function(sequence) {
6440
6521
  return sequence;
6441
- }, peg$c93 = "‌", peg$c94 = peg$literalExpectation("‌", false), peg$c95 = "‍", peg$c96 = peg$literalExpectation("‍", false), peg$c97 = "u", peg$c98 = peg$literalExpectation("u", false), peg$c99 = function(digits) {
6522
+ }, peg$c129 = "‌", peg$c130 = peg$literalExpectation("‌", false), peg$c131 = "‍", peg$c132 = peg$literalExpectation("‍", false), peg$c133 = "u", peg$c134 = peg$literalExpectation("u", false), peg$c135 = function(digits) {
6442
6523
  return String.fromCharCode(parseInt(digits, 16));
6443
- }, peg$c100 = function() {
6524
+ }, peg$c136 = function() {
6444
6525
  return { type: "Literal", value: null };
6445
- }, peg$c101 = function() {
6526
+ }, peg$c137 = function() {
6446
6527
  return { type: "Literal", value: true };
6447
- }, peg$c102 = function() {
6528
+ }, peg$c138 = function() {
6448
6529
  return { type: "Literal", value: false };
6449
- }, peg$c103 = /^[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\u1C90-\u1CBA\u1CBD-\u1CBF\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-\uA7AE\uA7B0-\uA7B4\uA7B6\uA7B8\uFF21-\uFF3A]/, peg$c104 = peg$classExpectation([["A", "Z"], ["À", "Ö"], ["Ø", "Þ"], "Ā", "Ă", "Ą", "Ć", "Ĉ", "Ċ", "Č", "Ď", "Đ", "Ē", "Ĕ", "Ė", "Ę", "Ě", "Ĝ", "Ğ", "Ġ", "Ģ", "Ĥ", "Ħ", "Ĩ", "Ī", "Ĭ", "Į", "İ", "IJ", "Ĵ", "Ķ", "Ĺ", "Ļ", "Ľ", "Ŀ", "Ł", "Ń", "Ņ", "Ň", "Ŋ", "Ō", "Ŏ", "Ő", "Œ", "Ŕ", "Ŗ", "Ř", "Ś", "Ŝ", "Ş", "Š", "Ţ", "Ť", "Ŧ", "Ũ", "Ū", "Ŭ", "Ů", "Ű", "Ų", "Ŵ", "Ŷ", ["Ÿ", "Ź"], "Ż", "Ž", ["Ɓ", "Ƃ"], "Ƅ", ["Ɔ", "Ƈ"], ["Ɖ", "Ƌ"], ["Ǝ", "Ƒ"], ["Ɠ", "Ɣ"], ["Ɩ", "Ƙ"], ["Ɯ", "Ɲ"], ["Ɵ", "Ơ"], "Ƣ", "Ƥ", ["Ʀ", "Ƨ"], "Ʃ", "Ƭ", ["Ʈ", "Ư"], ["Ʊ", "Ƴ"], "Ƶ", ["Ʒ", "Ƹ"], "Ƽ", "DŽ", "LJ", "NJ", "Ǎ", "Ǐ", "Ǒ", "Ǔ", "Ǖ", "Ǘ", "Ǚ", "Ǜ", "Ǟ", "Ǡ", "Ǣ", "Ǥ", "Ǧ", "Ǩ", "Ǫ", "Ǭ", "Ǯ", "DZ", "Ǵ", ["Ƕ", "Ǹ"], "Ǻ", "Ǽ", "Ǿ", "Ȁ", "Ȃ", "Ȅ", "Ȇ", "Ȉ", "Ȋ", "Ȍ", "Ȏ", "Ȑ", "Ȓ", "Ȕ", "Ȗ", "Ș", "Ț", "Ȝ", "Ȟ", "Ƞ", "Ȣ", "Ȥ", "Ȧ", "Ȩ", "Ȫ", "Ȭ", "Ȯ", "Ȱ", "Ȳ", ["Ⱥ", "Ȼ"], ["Ƚ", "Ⱦ"], "Ɂ", ["Ƀ", "Ɇ"], "Ɉ", "Ɋ", "Ɍ", "Ɏ", "Ͱ", "Ͳ", "Ͷ", "Ϳ", "Ά", ["Έ", "Ί"], "Ό", ["Ύ", "Ώ"], ["Α", "Ρ"], ["Σ", "Ϋ"], "Ϗ", ["ϒ", "ϔ"], "Ϙ", "Ϛ", "Ϝ", "Ϟ", "Ϡ", "Ϣ", "Ϥ", "Ϧ", "Ϩ", "Ϫ", "Ϭ", "Ϯ", "ϴ", "Ϸ", ["Ϲ", "Ϻ"], ["Ͻ", "Я"], "Ѡ", "Ѣ", "Ѥ", "Ѧ", "Ѩ", "Ѫ", "Ѭ", "Ѯ", "Ѱ", "Ѳ", "Ѵ", "Ѷ", "Ѹ", "Ѻ", "Ѽ", "Ѿ", "Ҁ", "Ҋ", "Ҍ", "Ҏ", "Ґ", "Ғ", "Ҕ", "Җ", "Ҙ", "Қ", "Ҝ", "Ҟ", "Ҡ", "Ң", "Ҥ", "Ҧ", "Ҩ", "Ҫ", "Ҭ", "Ү", "Ұ", "Ҳ", "Ҵ", "Ҷ", "Ҹ", "Һ", "Ҽ", "Ҿ", ["Ӏ", "Ӂ"], "Ӄ", "Ӆ", "Ӈ", "Ӊ", "Ӌ", "Ӎ", "Ӑ", "Ӓ", "Ӕ", "Ӗ", "Ә", "Ӛ", "Ӝ", "Ӟ", "Ӡ", "Ӣ", "Ӥ", "Ӧ", "Ө", "Ӫ", "Ӭ", "Ӯ", "Ӱ", "Ӳ", "Ӵ", "Ӷ", "Ӹ", "Ӻ", "Ӽ", "Ӿ", "Ԁ", "Ԃ", "Ԅ", "Ԇ", "Ԉ", "Ԋ", "Ԍ", "Ԏ", "Ԑ", "Ԓ", "Ԕ", "Ԗ", "Ԙ", "Ԛ", "Ԝ", "Ԟ", "Ԡ", "Ԣ", "Ԥ", "Ԧ", "Ԩ", "Ԫ", "Ԭ", "Ԯ", ["Ա", "Ֆ"], ["Ⴀ", "Ⴥ"], "Ⴧ", "Ⴭ", ["Ꭰ", "Ᏽ"], ["Ა", "Ჺ"], ["Ჽ", "Ჿ"], "Ḁ", "Ḃ", "Ḅ", "Ḇ", "Ḉ", "Ḋ", "Ḍ", "Ḏ", "Ḑ", "Ḓ", "Ḕ", "Ḗ", "Ḙ", "Ḛ", "Ḝ", "Ḟ", "Ḡ", "Ḣ", "Ḥ", "Ḧ", "Ḩ", "Ḫ", "Ḭ", "Ḯ", "Ḱ", "Ḳ", "Ḵ", "Ḷ", "Ḹ", "Ḻ", "Ḽ", "Ḿ", "Ṁ", "Ṃ", "Ṅ", "Ṇ", "Ṉ", "Ṋ", "Ṍ", "Ṏ", "Ṑ", "Ṓ", "Ṕ", "Ṗ", "Ṙ", "Ṛ", "Ṝ", "Ṟ", "Ṡ", "Ṣ", "Ṥ", "Ṧ", "Ṩ", "Ṫ", "Ṭ", "Ṯ", "Ṱ", "Ṳ", "Ṵ", "Ṷ", "Ṹ", "Ṻ", "Ṽ", "Ṿ", "Ẁ", "Ẃ", "Ẅ", "Ẇ", "Ẉ", "Ẋ", "Ẍ", "Ẏ", "Ẑ", "Ẓ", "Ẕ", "ẞ", "Ạ", "Ả", "Ấ", "Ầ", "Ẩ", "Ẫ", "Ậ", "Ắ", "Ằ", "Ẳ", "Ẵ", "Ặ", "Ẹ", "Ẻ", "Ẽ", "Ế", "Ề", "Ể", "Ễ", "Ệ", "Ỉ", "Ị", "Ọ", "Ỏ", "Ố", "Ồ", "Ổ", "Ỗ", "Ộ", "Ớ", "Ờ", "Ở", "Ỡ", "Ợ", "Ụ", "Ủ", "Ứ", "Ừ", "Ử", "Ữ", "Ự", "Ỳ", "Ỵ", "Ỷ", "Ỹ", "Ỻ", "Ỽ", "Ỿ", ["Ἀ", "Ἇ"], ["Ἐ", "Ἕ"], ["Ἠ", "Ἧ"], ["Ἰ", "Ἷ"], ["Ὀ", "Ὅ"], "Ὑ", "Ὓ", "Ὕ", "Ὗ", ["Ὠ", "Ὧ"], ["Ᾰ", "Ά"], ["Ὲ", "Ή"], ["Ῐ", "Ί"], ["Ῠ", "Ῥ"], ["Ὸ", "Ώ"], "ℂ", "ℇ", ["ℋ", "ℍ"], ["ℐ", "ℒ"], "ℕ", ["ℙ", "ℝ"], "ℤ", "Ω", "ℨ", ["K", "ℭ"], ["ℰ", "ℳ"], ["ℾ", "ℿ"], "ⅅ", "Ↄ", ["Ⰰ", "Ⱞ"], "Ⱡ", ["Ɫ", "Ɽ"], "Ⱨ", "Ⱪ", "Ⱬ", ["Ɑ", "Ɒ"], "Ⱳ", "Ⱶ", ["Ȿ", "Ⲁ"], "Ⲃ", "Ⲅ", "Ⲇ", "Ⲉ", "Ⲋ", "Ⲍ", "Ⲏ", "Ⲑ", "Ⲓ", "Ⲕ", "Ⲗ", "Ⲙ", "Ⲛ", "Ⲝ", "Ⲟ", "Ⲡ", "Ⲣ", "Ⲥ", "Ⲧ", "Ⲩ", "Ⲫ", "Ⲭ", "Ⲯ", "Ⲱ", "Ⲳ", "Ⲵ", "Ⲷ", "Ⲹ", "Ⲻ", "Ⲽ", "Ⲿ", "Ⳁ", "Ⳃ", "Ⳅ", "Ⳇ", "Ⳉ", "Ⳋ", "Ⳍ", "Ⳏ", "Ⳑ", "Ⳓ", "Ⳕ", "Ⳗ", "Ⳙ", "Ⳛ", "Ⳝ", "Ⳟ", "Ⳡ", "Ⳣ", "Ⳬ", "Ⳮ", "Ⳳ", "Ꙁ", "Ꙃ", "Ꙅ", "Ꙇ", "Ꙉ", "Ꙋ", "Ꙍ", "Ꙏ", "Ꙑ", "Ꙓ", "Ꙕ", "Ꙗ", "Ꙙ", "Ꙛ", "Ꙝ", "Ꙟ", "Ꙡ", "Ꙣ", "Ꙥ", "Ꙧ", "Ꙩ", "Ꙫ", "Ꙭ", "Ꚁ", "Ꚃ", "Ꚅ", "Ꚇ", "Ꚉ", "Ꚋ", "Ꚍ", "Ꚏ", "Ꚑ", "Ꚓ", "Ꚕ", "Ꚗ", "Ꚙ", "Ꚛ", "Ꜣ", "Ꜥ", "Ꜧ", "Ꜩ", "Ꜫ", "Ꜭ", "Ꜯ", "Ꜳ", "Ꜵ", "Ꜷ", "Ꜹ", "Ꜻ", "Ꜽ", "Ꜿ", "Ꝁ", "Ꝃ", "Ꝅ", "Ꝇ", "Ꝉ", "Ꝋ", "Ꝍ", "Ꝏ", "Ꝑ", "Ꝓ", "Ꝕ", "Ꝗ", "Ꝙ", "Ꝛ", "Ꝝ", "Ꝟ", "Ꝡ", "Ꝣ", "Ꝥ", "Ꝧ", "Ꝩ", "Ꝫ", "Ꝭ", "Ꝯ", "Ꝺ", "Ꝼ", ["Ᵹ", "Ꝿ"], "Ꞁ", "Ꞃ", "Ꞅ", "Ꞇ", "Ꞌ", "Ɥ", "Ꞑ", "Ꞓ", "Ꞗ", "Ꞙ", "Ꞛ", "Ꞝ", "Ꞟ", "Ꞡ", "Ꞣ", "Ꞥ", "Ꞧ", "Ꞩ", ["Ɦ", "Ɪ"], ["Ʞ", "Ꞵ"], "Ꞷ", "Ꞹ", ["A", "Z"]], false, false), peg$c105 = /^[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\u0560-\u0588\u10D0-\u10FA\u10FD-\u10FF\u13F8-\u13FD\u1C80-\u1C88\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\uA7AF\uA7B5\uA7B7\uA7B9\uA7FA\uAB30-\uAB5A\uAB60-\uAB65\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A]/, peg$c106 = peg$classExpectation([["a", "z"], "µ", ["ß", "ö"], ["ø", "ÿ"], "ā", "ă", "ą", "ć", "ĉ", "ċ", "č", "ď", "đ", "ē", "ĕ", "ė", "ę", "ě", "ĝ", "ğ", "ġ", "ģ", "ĥ", "ħ", "ĩ", "ī", "ĭ", "į", "ı", "ij", "ĵ", ["ķ", "ĸ"], "ĺ", "ļ", "ľ", "ŀ", "ł", "ń", "ņ", ["ň", "ʼn"], "ŋ", "ō", "ŏ", "ő", "œ", "ŕ", "ŗ", "ř", "ś", "ŝ", "ş", "š", "ţ", "ť", "ŧ", "ũ", "ū", "ŭ", "ů", "ű", "ų", "ŵ", "ŷ", "ź", "ż", ["ž", "ƀ"], "ƃ", "ƅ", "ƈ", ["ƌ", "ƍ"], "ƒ", "ƕ", ["ƙ", "ƛ"], "ƞ", "ơ", "ƣ", "ƥ", "ƨ", ["ƪ", "ƫ"], "ƭ", "ư", "ƴ", "ƶ", ["ƹ", "ƺ"], ["ƽ", "ƿ"], "dž", "lj", "nj", "ǎ", "ǐ", "ǒ", "ǔ", "ǖ", "ǘ", "ǚ", ["ǜ", "ǝ"], "ǟ", "ǡ", "ǣ", "ǥ", "ǧ", "ǩ", "ǫ", "ǭ", ["ǯ", "ǰ"], "dz", "ǵ", "ǹ", "ǻ", "ǽ", "ǿ", "ȁ", "ȃ", "ȅ", "ȇ", "ȉ", "ȋ", "ȍ", "ȏ", "ȑ", "ȓ", "ȕ", "ȗ", "ș", "ț", "ȝ", "ȟ", "ȡ", "ȣ", "ȥ", "ȧ", "ȩ", "ȫ", "ȭ", "ȯ", "ȱ", ["ȳ", "ȹ"], "ȼ", ["ȿ", "ɀ"], "ɂ", "ɇ", "ɉ", "ɋ", "ɍ", ["ɏ", "ʓ"], ["ʕ", "ʯ"], "ͱ", "ͳ", "ͷ", ["ͻ", "ͽ"], "ΐ", ["ά", "ώ"], ["ϐ", "ϑ"], ["ϕ", "ϗ"], "ϙ", "ϛ", "ϝ", "ϟ", "ϡ", "ϣ", "ϥ", "ϧ", "ϩ", "ϫ", "ϭ", ["ϯ", "ϳ"], "ϵ", "ϸ", ["ϻ", "ϼ"], ["а", "џ"], "ѡ", "ѣ", "ѥ", "ѧ", "ѩ", "ѫ", "ѭ", "ѯ", "ѱ", "ѳ", "ѵ", "ѷ", "ѹ", "ѻ", "ѽ", "ѿ", "ҁ", "ҋ", "ҍ", "ҏ", "ґ", "ғ", "ҕ", "җ", "ҙ", "қ", "ҝ", "ҟ", "ҡ", "ң", "ҥ", "ҧ", "ҩ", "ҫ", "ҭ", "ү", "ұ", "ҳ", "ҵ", "ҷ", "ҹ", "һ", "ҽ", "ҿ", "ӂ", "ӄ", "ӆ", "ӈ", "ӊ", "ӌ", ["ӎ", "ӏ"], "ӑ", "ӓ", "ӕ", "ӗ", "ә", "ӛ", "ӝ", "ӟ", "ӡ", "ӣ", "ӥ", "ӧ", "ө", "ӫ", "ӭ", "ӯ", "ӱ", "ӳ", "ӵ", "ӷ", "ӹ", "ӻ", "ӽ", "ӿ", "ԁ", "ԃ", "ԅ", "ԇ", "ԉ", "ԋ", "ԍ", "ԏ", "ԑ", "ԓ", "ԕ", "ԗ", "ԙ", "ԛ", "ԝ", "ԟ", "ԡ", "ԣ", "ԥ", "ԧ", "ԩ", "ԫ", "ԭ", "ԯ", ["ՠ", "ֈ"], ["ა", "ჺ"], ["ჽ", "ჿ"], ["ᏸ", "ᏽ"], ["ᲀ", "ᲈ"], ["ᴀ", "ᴫ"], ["ᵫ", "ᵷ"], ["ᵹ", "ᶚ"], "ḁ", "ḃ", "ḅ", "ḇ", "ḉ", "ḋ", "ḍ", "ḏ", "ḑ", "ḓ", "ḕ", "ḗ", "ḙ", "ḛ", "ḝ", "ḟ", "ḡ", "ḣ", "ḥ", "ḧ", "ḩ", "ḫ", "ḭ", "ḯ", "ḱ", "ḳ", "ḵ", "ḷ", "ḹ", "ḻ", "ḽ", "ḿ", "ṁ", "ṃ", "ṅ", "ṇ", "ṉ", "ṋ", "ṍ", "ṏ", "ṑ", "ṓ", "ṕ", "ṗ", "ṙ", "ṛ", "ṝ", "ṟ", "ṡ", "ṣ", "ṥ", "ṧ", "ṩ", "ṫ", "ṭ", "ṯ", "ṱ", "ṳ", "ṵ", "ṷ", "ṹ", "ṻ", "ṽ", "ṿ", "ẁ", "ẃ", "ẅ", "ẇ", "ẉ", "ẋ", "ẍ", "ẏ", "ẑ", "ẓ", ["ẕ", "ẝ"], "ẟ", "ạ", "ả", "ấ", "ầ", "ẩ", "ẫ", "ậ", "ắ", "ằ", "ẳ", "ẵ", "ặ", "ẹ", "ẻ", "ẽ", "ế", "ề", "ể", "ễ", "ệ", "ỉ", "ị", "ọ", "ỏ", "ố", "ồ", "ổ", "ỗ", "ộ", "ớ", "ờ", "ở", "ỡ", "ợ", "ụ", "ủ", "ứ", "ừ", "ử", "ữ", "ự", "ỳ", "ỵ", "ỷ", "ỹ", "ỻ", "ỽ", ["ỿ", "ἇ"], ["ἐ", "ἕ"], ["ἠ", "ἧ"], ["ἰ", "ἷ"], ["ὀ", "ὅ"], ["ὐ", "ὗ"], ["ὠ", "ὧ"], ["ὰ", "ώ"], ["ᾀ", "ᾇ"], ["ᾐ", "ᾗ"], ["ᾠ", "ᾧ"], ["ᾰ", "ᾴ"], ["ᾶ", "ᾷ"], "ι", ["ῂ", "ῄ"], ["ῆ", "ῇ"], ["ῐ", "ΐ"], ["ῖ", "ῗ"], ["ῠ", "ῧ"], ["ῲ", "ῴ"], ["ῶ", "ῷ"], "ℊ", ["ℎ", "ℏ"], "ℓ", "ℯ", "ℴ", "ℹ", ["ℼ", "ℽ"], ["ⅆ", "ⅉ"], "ⅎ", "ↄ", ["ⰰ", "ⱞ"], "ⱡ", ["ⱥ", "ⱦ"], "ⱨ", "ⱪ", "ⱬ", "ⱱ", ["ⱳ", "ⱴ"], ["ⱶ", "ⱻ"], "ⲁ", "ⲃ", "ⲅ", "ⲇ", "ⲉ", "ⲋ", "ⲍ", "ⲏ", "ⲑ", "ⲓ", "ⲕ", "ⲗ", "ⲙ", "ⲛ", "ⲝ", "ⲟ", "ⲡ", "ⲣ", "ⲥ", "ⲧ", "ⲩ", "ⲫ", "ⲭ", "ⲯ", "ⲱ", "ⲳ", "ⲵ", "ⲷ", "ⲹ", "ⲻ", "ⲽ", "ⲿ", "ⳁ", "ⳃ", "ⳅ", "ⳇ", "ⳉ", "ⳋ", "ⳍ", "ⳏ", "ⳑ", "ⳓ", "ⳕ", "ⳗ", "ⳙ", "ⳛ", "ⳝ", "ⳟ", "ⳡ", ["ⳣ", "ⳤ"], "ⳬ", "ⳮ", "ⳳ", ["ⴀ", "ⴥ"], "ⴧ", "ⴭ", "ꙁ", "ꙃ", "ꙅ", "ꙇ", "ꙉ", "ꙋ", "ꙍ", "ꙏ", "ꙑ", "ꙓ", "ꙕ", "ꙗ", "ꙙ", "ꙛ", "ꙝ", "ꙟ", "ꙡ", "ꙣ", "ꙥ", "ꙧ", "ꙩ", "ꙫ", "ꙭ", "ꚁ", "ꚃ", "ꚅ", "ꚇ", "ꚉ", "ꚋ", "ꚍ", "ꚏ", "ꚑ", "ꚓ", "ꚕ", "ꚗ", "ꚙ", "ꚛ", "ꜣ", "ꜥ", "ꜧ", "ꜩ", "ꜫ", "ꜭ", ["ꜯ", "ꜱ"], "ꜳ", "ꜵ", "ꜷ", "ꜹ", "ꜻ", "ꜽ", "ꜿ", "ꝁ", "ꝃ", "ꝅ", "ꝇ", "ꝉ", "ꝋ", "ꝍ", "ꝏ", "ꝑ", "ꝓ", "ꝕ", "ꝗ", "ꝙ", "ꝛ", "ꝝ", "ꝟ", "ꝡ", "ꝣ", "ꝥ", "ꝧ", "ꝩ", "ꝫ", "ꝭ", "ꝯ", ["ꝱ", "ꝸ"], "ꝺ", "ꝼ", "ꝿ", "ꞁ", "ꞃ", "ꞅ", "ꞇ", "ꞌ", "ꞎ", "ꞑ", ["ꞓ", "ꞕ"], "ꞗ", "ꞙ", "ꞛ", "ꞝ", "ꞟ", "ꞡ", "ꞣ", "ꞥ", "ꞧ", "ꞩ", "ꞯ", "ꞵ", "ꞷ", "ꞹ", "ꟺ", ["ꬰ", "ꭚ"], ["ꭠ", "ꭥ"], ["ꭰ", "ꮿ"], ["ff", "st"], ["ﬓ", "ﬗ"], ["a", "z"]], false, false), peg$c107 = /^[\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC]/, peg$c108 = peg$classExpectation(["Dž", "Lj", "Nj", "Dz", ["ᾈ", "ᾏ"], ["ᾘ", "ᾟ"], ["ᾨ", "ᾯ"], "ᾼ", "ῌ", "ῼ"], false, false), peg$c109 = /^[\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]/, peg$c110 = peg$classExpectation([["ʰ", "ˁ"], ["ˆ", "ˑ"], ["ˠ", "ˤ"], "ˬ", "ˮ", "ʹ", "ͺ", "ՙ", "ـ", ["ۥ", "ۦ"], ["ߴ", "ߵ"], "ߺ", "ࠚ", "ࠤ", "ࠨ", "ॱ", "ๆ", "ໆ", "ჼ", "ៗ", "ᡃ", "ᪧ", ["ᱸ", "ᱽ"], ["ᴬ", "ᵪ"], "ᵸ", ["ᶛ", "ᶿ"], "ⁱ", "ⁿ", ["ₐ", "ₜ"], ["ⱼ", "ⱽ"], "ⵯ", "ⸯ", "々", ["〱", "〵"], "〻", ["ゝ", "ゞ"], ["ー", "ヾ"], "ꀕ", ["ꓸ", "ꓽ"], "ꘌ", "ꙿ", ["ꚜ", "ꚝ"], ["ꜗ", "ꜟ"], "ꝰ", "ꞈ", ["ꟸ", "ꟹ"], "ꧏ", "ꧦ", "ꩰ", "ꫝ", ["ꫳ", "ꫴ"], ["ꭜ", "ꭟ"], "ー", ["゙", "゚"]], false, false), peg$c111 = /^[\xAA\xBA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05EF-\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\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\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\u09FC\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\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0CF1-\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\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\u1100-\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-\u1878\u1880-\u1884\u1887-\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-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\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-\uA8FE\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]/, peg$c112 = peg$classExpectation(["ª", "º", "ƻ", ["ǀ", "ǃ"], "ʔ", ["א", "ת"], ["ׯ", "ײ"], ["ؠ", "ؿ"], ["ف", "ي"], ["ٮ", "ٯ"], ["ٱ", "ۓ"], "ە", ["ۮ", "ۯ"], ["ۺ", "ۼ"], "ۿ", "ܐ", ["ܒ", "ܯ"], ["ݍ", "ޥ"], "ޱ", ["ߊ", "ߪ"], ["ࠀ", "ࠕ"], ["ࡀ", "ࡘ"], ["ࡠ", "ࡪ"], ["ࢠ", "ࢴ"], ["ࢶ", "ࢽ"], ["ऄ", "ह"], "ऽ", "ॐ", ["क़", "ॡ"], ["ॲ", "ঀ"], ["অ", "ঌ"], ["এ", "ঐ"], ["ও", "ন"], ["প", "র"], "ল", ["শ", "হ"], "ঽ", "ৎ", ["ড়", "ঢ়"], ["য়", "ৡ"], ["ৰ", "ৱ"], "ৼ", ["ਅ", "ਊ"], ["ਏ", "ਐ"], ["ਓ", "ਨ"], ["ਪ", "ਰ"], ["ਲ", "ਲ਼"], ["ਵ", "ਸ਼"], ["ਸ", "ਹ"], ["ਖ਼", "ੜ"], "ਫ਼", ["ੲ", "ੴ"], ["અ", "ઍ"], ["એ", "ઑ"], ["ઓ", "ન"], ["પ", "ર"], ["લ", "ળ"], ["વ", "હ"], "ઽ", "ૐ", ["ૠ", "ૡ"], "ૹ", ["ଅ", "ଌ"], ["ଏ", "ଐ"], ["ଓ", "ନ"], ["ପ", "ର"], ["ଲ", "ଳ"], ["ଵ", "ହ"], "ଽ", ["ଡ଼", "ଢ଼"], ["ୟ", "ୡ"], "ୱ", "ஃ", ["அ", "ஊ"], ["எ", "ஐ"], ["ஒ", "க"], ["ங", "ச"], "ஜ", ["ஞ", "ட"], ["ண", "த"], ["ந", "ப"], ["ம", "ஹ"], "ௐ", ["అ", "ఌ"], ["ఎ", "ఐ"], ["ఒ", "న"], ["ప", "హ"], "ఽ", ["ౘ", "ౚ"], ["ౠ", "ౡ"], "ಀ", ["ಅ", "ಌ"], ["ಎ", "ಐ"], ["ಒ", "ನ"], ["ಪ", "ಳ"], ["ವ", "ಹ"], "ಽ", "ೞ", ["ೠ", "ೡ"], ["ೱ", "ೲ"], ["അ", "ഌ"], ["എ", "ഐ"], ["ഒ", "ഺ"], "ഽ", "ൎ", ["ൔ", "ൖ"], ["ൟ", "ൡ"], ["ൺ", "ൿ"], ["අ", "ඖ"], ["ක", "න"], ["ඳ", "ර"], "ල", ["ව", "ෆ"], ["ก", "ะ"], ["า", "ำ"], ["เ", "ๅ"], ["ກ", "ຂ"], "ຄ", ["ງ", "ຈ"], "ຊ", "ຍ", ["ດ", "ທ"], ["ນ", "ຟ"], ["ມ", "ຣ"], "ລ", "ວ", ["ສ", "ຫ"], ["ອ", "ະ"], ["າ", "ຳ"], "ຽ", ["ເ", "ໄ"], ["ໜ", "ໟ"], "ༀ", ["ཀ", "ཇ"], ["ཉ", "ཬ"], ["ྈ", "ྌ"], ["က", "ဪ"], "ဿ", ["ၐ", "ၕ"], ["ၚ", "ၝ"], "ၡ", ["ၥ", "ၦ"], ["ၮ", "ၰ"], ["ၵ", "ႁ"], "ႎ", ["ᄀ", "ቈ"], ["ቊ", "ቍ"], ["ቐ", "ቖ"], "ቘ", ["ቚ", "ቝ"], ["በ", "ኈ"], ["ኊ", "ኍ"], ["ነ", "ኰ"], ["ኲ", "ኵ"], ["ኸ", "ኾ"], "ዀ", ["ዂ", "ዅ"], ["ወ", "ዖ"], ["ዘ", "ጐ"], ["ጒ", "ጕ"], ["ጘ", "ፚ"], ["ᎀ", "ᎏ"], ["ᐁ", "ᙬ"], ["ᙯ", "ᙿ"], ["ᚁ", "ᚚ"], ["ᚠ", "ᛪ"], ["ᛱ", "ᛸ"], ["ᜀ", "ᜌ"], ["ᜎ", "ᜑ"], ["ᜠ", "ᜱ"], ["ᝀ", "ᝑ"], ["ᝠ", "ᝬ"], ["ᝮ", "ᝰ"], ["ក", "ឳ"], "ៜ", ["ᠠ", "ᡂ"], ["ᡄ", "ᡸ"], ["ᢀ", "ᢄ"], ["ᢇ", "ᢨ"], "ᢪ", ["ᢰ", "ᣵ"], ["ᤀ", "ᤞ"], ["ᥐ", "ᥭ"], ["ᥰ", "ᥴ"], ["ᦀ", "ᦫ"], ["ᦰ", "ᧉ"], ["ᨀ", "ᨖ"], ["ᨠ", "ᩔ"], ["ᬅ", "ᬳ"], ["ᭅ", "ᭋ"], ["ᮃ", "ᮠ"], ["ᮮ", "ᮯ"], ["ᮺ", "ᯥ"], ["ᰀ", "ᰣ"], ["ᱍ", "ᱏ"], ["ᱚ", "ᱷ"], ["ᳩ", "ᳬ"], ["ᳮ", "ᳱ"], ["ᳵ", "ᳶ"], ["ℵ", "ℸ"], ["ⴰ", "ⵧ"], ["ⶀ", "ⶖ"], ["ⶠ", "ⶦ"], ["ⶨ", "ⶮ"], ["ⶰ", "ⶶ"], ["ⶸ", "ⶾ"], ["ⷀ", "ⷆ"], ["ⷈ", "ⷎ"], ["ⷐ", "ⷖ"], ["ⷘ", "ⷞ"], "〆", "〼", ["ぁ", "ゖ"], "ゟ", ["ァ", "ヺ"], "ヿ", ["ㄅ", "ㄯ"], ["ㄱ", "ㆎ"], ["ㆠ", "ㆺ"], ["ㇰ", "ㇿ"], ["㐀", "䶵"], ["一", "鿯"], ["ꀀ", "ꀔ"], ["ꀖ", "ꒌ"], ["ꓐ", "ꓷ"], ["ꔀ", "ꘋ"], ["ꘐ", "ꘟ"], ["ꘪ", "ꘫ"], "ꙮ", ["ꚠ", "ꛥ"], "ꞏ", "ꟷ", ["ꟻ", "ꠁ"], ["ꠃ", "ꠅ"], ["ꠇ", "ꠊ"], ["ꠌ", "ꠢ"], ["ꡀ", "ꡳ"], ["ꢂ", "ꢳ"], ["ꣲ", "ꣷ"], "ꣻ", ["ꣽ", "ꣾ"], ["ꤊ", "ꤥ"], ["ꤰ", "ꥆ"], ["ꥠ", "ꥼ"], ["ꦄ", "ꦲ"], ["ꧠ", "ꧤ"], ["ꧧ", "ꧯ"], ["ꧺ", "ꧾ"], ["ꨀ", "ꨨ"], ["ꩀ", "ꩂ"], ["ꩄ", "ꩋ"], ["ꩠ", "ꩯ"], ["ꩱ", "ꩶ"], "ꩺ", ["ꩾ", "ꪯ"], "ꪱ", ["ꪵ", "ꪶ"], ["ꪹ", "ꪽ"], "ꫀ", "ꫂ", ["ꫛ", "ꫜ"], ["ꫠ", "ꫪ"], "ꫲ", ["ꬁ", "ꬆ"], ["ꬉ", "ꬎ"], ["ꬑ", "ꬖ"], ["ꬠ", "ꬦ"], ["ꬨ", "ꬮ"], ["ꯀ", "ꯢ"], ["가", "힣"], ["ힰ", "ퟆ"], ["ퟋ", "ퟻ"], ["豈", "舘"], ["並", "龎"], "יִ", ["ײַ", "ﬨ"], ["שׁ", "זּ"], ["טּ", "לּ"], "מּ", ["נּ", "סּ"], ["ףּ", "פּ"], ["צּ", "ﮱ"], ["ﯓ", "ﴽ"], ["ﵐ", "ﶏ"], ["ﶒ", "ﷇ"], ["ﷰ", "ﷻ"], ["ﹰ", "ﹴ"], ["ﹶ", "ﻼ"], ["ヲ", "ッ"], ["ア", "ン"], ["ᅠ", "ᄒ"], ["ᅡ", "ᅦ"], ["ᅧ", "ᅬ"], ["ᅭ", "ᅲ"], ["ᅳ", "ᅵ"]], false, false), peg$c113 = /^[\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF]/, peg$c114 = peg$classExpectation([["ᛮ", "ᛰ"], ["Ⅰ", "ↂ"], ["ↅ", "ↈ"], "〇", ["〡", "〩"], ["〸", "〺"], ["ꛦ", "ꛯ"]], false, false), peg$c115 = /^[\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\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962-\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2-\u09E3\u09FE\u0A01-\u0A02\u0A3C\u0A41-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A51\u0A70-\u0A71\u0A75\u0A81-\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7-\u0AC8\u0ACD\u0AE2-\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62-\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C04\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C62-\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC-\u0CCD\u0CE2-\u0CE3\u0D00-\u0D01\u0D3B-\u0D3C\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\u1885-\u1886\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-\u1DF9\u1DFB-\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-\uA8C5\uA8E0-\uA8F1\uA8FF\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]/, peg$c116 = peg$classExpectation([["̀", "ͯ"], ["҃", "҇"], ["֑", "ֽ"], "ֿ", ["ׁ", "ׂ"], ["ׄ", "ׅ"], "ׇ", ["ؐ", "ؚ"], ["ً", "ٟ"], "ٰ", ["ۖ", "ۜ"], ["۟", "ۤ"], ["ۧ", "ۨ"], ["۪", "ۭ"], "ܑ", ["ܰ", "݊"], ["ަ", "ް"], ["߫", "߳"], "߽", ["ࠖ", "࠙"], ["ࠛ", "ࠣ"], ["ࠥ", "ࠧ"], ["ࠩ", "࠭"], ["࡙", "࡛"], ["࣓", "࣡"], ["ࣣ", "ं"], "ऺ", "़", ["ु", "ै"], "्", ["॑", "ॗ"], ["ॢ", "ॣ"], "ঁ", "়", ["ু", "ৄ"], "্", ["ৢ", "ৣ"], "৾", ["ਁ", "ਂ"], "਼", ["ੁ", "ੂ"], ["ੇ", "ੈ"], ["ੋ", "੍"], "ੑ", ["ੰ", "ੱ"], "ੵ", ["ઁ", "ં"], "઼", ["ુ", "ૅ"], ["ે", "ૈ"], "્", ["ૢ", "ૣ"], ["ૺ", "૿"], "ଁ", "଼", "ି", ["ୁ", "ୄ"], "୍", "ୖ", ["ୢ", "ୣ"], "ஂ", "ீ", "்", "ఀ", "ఄ", ["ా", "ీ"], ["ె", "ై"], ["ొ", "్"], ["ౕ", "ౖ"], ["ౢ", "ౣ"], "ಁ", "಼", "ಿ", "ೆ", ["ೌ", "್"], ["ೢ", "ೣ"], ["ഀ", "ഁ"], ["഻", "഼"], ["ു", "ൄ"], "്", ["ൢ", "ൣ"], "්", ["ි", "ු"], "ූ", "ั", ["ิ", "ฺ"], ["็", "๎"], "ັ", ["ິ", "ູ"], ["ົ", "ຼ"], ["່", "ໍ"], ["༘", "༙"], "༵", "༷", "༹", ["ཱ", "ཾ"], ["ྀ", "྄"], ["྆", "྇"], ["ྍ", "ྗ"], ["ྙ", "ྼ"], "࿆", ["ိ", "ူ"], ["ဲ", "့"], ["္", "်"], ["ွ", "ှ"], ["ၘ", "ၙ"], ["ၞ", "ၠ"], ["ၱ", "ၴ"], "ႂ", ["ႅ", "ႆ"], "ႍ", "ႝ", ["፝", "፟"], ["ᜒ", "᜔"], ["ᜲ", "᜴"], ["ᝒ", "ᝓ"], ["ᝲ", "ᝳ"], ["឴", "឵"], ["ិ", "ួ"], "ំ", ["៉", "៓"], "៝", ["᠋", "᠍"], ["ᢅ", "ᢆ"], "ᢩ", ["ᤠ", "ᤢ"], ["ᤧ", "ᤨ"], "ᤲ", ["᤹", "᤻"], ["ᨗ", "ᨘ"], "ᨛ", "ᩖ", ["ᩘ", "ᩞ"], "᩠", "ᩢ", ["ᩥ", "ᩬ"], ["ᩳ", "᩼"], "᩿", ["᪰", "᪽"], ["ᬀ", "ᬃ"], "᬴", ["ᬶ", "ᬺ"], "ᬼ", "ᭂ", ["᭫", "᭳"], ["ᮀ", "ᮁ"], ["ᮢ", "ᮥ"], ["ᮨ", "ᮩ"], ["᮫", "ᮭ"], "᯦", ["ᯨ", "ᯩ"], "ᯭ", ["ᯯ", "ᯱ"], ["ᰬ", "ᰳ"], ["ᰶ", "᰷"], ["᳐", "᳒"], ["᳔", "᳠"], ["᳢", "᳨"], "᳭", "᳴", ["᳸", "᳹"], ["᷀", "᷹"], ["᷻", "᷿"], ["⃐", "⃜"], "⃡", ["⃥", "⃰"], ["⳯", "⳱"], "⵿", ["ⷠ", "ⷿ"], ["〪", "〭"], ["゙", "゚"], "꙯", ["ꙴ", "꙽"], ["ꚞ", "ꚟ"], ["꛰", "꛱"], "ꠂ", "꠆", "ꠋ", ["ꠥ", "ꠦ"], ["꣄", "ꣅ"], ["꣠", "꣱"], "ꣿ", ["ꤦ", "꤭"], ["ꥇ", "ꥑ"], ["ꦀ", "ꦂ"], "꦳", ["ꦶ", "ꦹ"], "ꦼ", "ꧥ", ["ꨩ", "ꨮ"], ["ꨱ", "ꨲ"], ["ꨵ", "ꨶ"], "ꩃ", "ꩌ", "ꩼ", "ꪰ", ["ꪲ", "ꪴ"], ["ꪷ", "ꪸ"], ["ꪾ", "꪿"], "꫁", ["ꫬ", "ꫭ"], "꫶", "ꯥ", "ꯨ", "꯭", "ﬞ", ["︀", "️"], ["︠", "︯"]], false, false), peg$c117 = /^[\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\u1CF7\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]/, peg$c118 = peg$classExpectation(["ः", "ऻ", ["ा", "ी"], ["ॉ", "ौ"], ["ॎ", "ॏ"], ["ং", "ঃ"], ["া", "ী"], ["ে", "ৈ"], ["ো", "ৌ"], "ৗ", "ਃ", ["ਾ", "ੀ"], "ઃ", ["ા", "ી"], "ૉ", ["ો", "ૌ"], ["ଂ", "ଃ"], "ା", "ୀ", ["େ", "ୈ"], ["ୋ", "ୌ"], "ୗ", ["ா", "ி"], ["ு", "ூ"], ["ெ", "ை"], ["ொ", "ௌ"], "ௗ", ["ఁ", "ః"], ["ు", "ౄ"], ["ಂ", "ಃ"], "ಾ", ["ೀ", "ೄ"], ["ೇ", "ೈ"], ["ೊ", "ೋ"], ["ೕ", "ೖ"], ["ം", "ഃ"], ["ാ", "ീ"], ["െ", "ൈ"], ["ൊ", "ൌ"], "ൗ", ["ං", "ඃ"], ["ා", "ෑ"], ["ෘ", "ෟ"], ["ෲ", "ෳ"], ["༾", "༿"], "ཿ", ["ါ", "ာ"], "ေ", "း", ["ျ", "ြ"], ["ၖ", "ၗ"], ["ၢ", "ၤ"], ["ၧ", "ၭ"], ["ႃ", "ႄ"], ["ႇ", "ႌ"], "ႏ", ["ႚ", "ႜ"], "ា", ["ើ", "ៅ"], ["ះ", "ៈ"], ["ᤣ", "ᤦ"], ["ᤩ", "ᤫ"], ["ᤰ", "ᤱ"], ["ᤳ", "ᤸ"], ["ᨙ", "ᨚ"], "ᩕ", "ᩗ", "ᩡ", ["ᩣ", "ᩤ"], ["ᩭ", "ᩲ"], "ᬄ", "ᬵ", "ᬻ", ["ᬽ", "ᭁ"], ["ᭃ", "᭄"], "ᮂ", "ᮡ", ["ᮦ", "ᮧ"], "᮪", "ᯧ", ["ᯪ", "ᯬ"], "ᯮ", ["᯲", "᯳"], ["ᰤ", "ᰫ"], ["ᰴ", "ᰵ"], "᳡", ["ᳲ", "ᳳ"], "᳷", ["〮", "〯"], ["ꠣ", "ꠤ"], "ꠧ", ["ꢀ", "ꢁ"], ["ꢴ", "ꣃ"], ["ꥒ", "꥓"], "ꦃ", ["ꦴ", "ꦵ"], ["ꦺ", "ꦻ"], ["ꦽ", "꧀"], ["ꨯ", "ꨰ"], ["ꨳ", "ꨴ"], "ꩍ", "ꩻ", "ꩽ", "ꫫ", ["ꫮ", "ꫯ"], "ꫵ", ["ꯣ", "ꯤ"], ["ꯦ", "ꯧ"], ["ꯩ", "ꯪ"], "꯬"], false, false), peg$c119 = /^[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]/, peg$c120 = peg$classExpectation([["0", "9"], ["٠", "٩"], ["۰", "۹"], ["߀", "߉"], ["०", "९"], ["০", "৯"], ["੦", "੯"], ["૦", "૯"], ["୦", "୯"], ["௦", "௯"], ["౦", "౯"], ["೦", "೯"], ["൦", "൯"], ["෦", "෯"], ["๐", "๙"], ["໐", "໙"], ["༠", "༩"], ["၀", "၉"], ["႐", "႙"], ["០", "៩"], ["᠐", "᠙"], ["᥆", "᥏"], ["᧐", "᧙"], ["᪀", "᪉"], ["᪐", "᪙"], ["᭐", "᭙"], ["᮰", "᮹"], ["᱀", "᱉"], ["᱐", "᱙"], ["꘠", "꘩"], ["꣐", "꣙"], ["꤀", "꤉"], ["꧐", "꧙"], ["꧰", "꧹"], ["꩐", "꩙"], ["꯰", "꯹"], ["0", "9"]], false, false), peg$c121 = /^[_\u203F-\u2040\u2054\uFE33-\uFE34\uFE4D-\uFE4F\uFF3F]/, peg$c122 = peg$classExpectation(["_", ["‿", "⁀"], "⁔", ["︳", "︴"], ["﹍", "﹏"], "_"], false, false), peg$c125 = /^[0-9a-f]/i, peg$c126 = peg$classExpectation([["0", "9"], ["a", "f"]], false, true), peg$c127 = "break", peg$c128 = peg$literalExpectation("break", false), peg$c129 = "case", peg$c130 = peg$literalExpectation("case", false), peg$c131 = "catch", peg$c132 = peg$literalExpectation("catch", false), peg$c133 = "class", peg$c134 = peg$literalExpectation("class", false), peg$c135 = "const", peg$c136 = peg$literalExpectation("const", false), peg$c137 = "continue", peg$c138 = peg$literalExpectation("continue", false), peg$c139 = "debugger", peg$c140 = peg$literalExpectation("debugger", false), peg$c141 = "default", peg$c142 = peg$literalExpectation("default", false), peg$c143 = "delete", peg$c144 = peg$literalExpectation("delete", false), peg$c145 = "do", peg$c146 = peg$literalExpectation("do", false), peg$c147 = "else", peg$c148 = peg$literalExpectation("else", false), peg$c149 = "export", peg$c150 = peg$literalExpectation("export", false), peg$c151 = "extends", peg$c152 = peg$literalExpectation("extends", false), peg$c153 = "false", peg$c154 = peg$literalExpectation("false", false), peg$c155 = "finally", peg$c156 = peg$literalExpectation("finally", false), peg$c157 = "for", peg$c158 = peg$literalExpectation("for", false), peg$c159 = "function", peg$c160 = peg$literalExpectation("function", false), peg$c163 = "if", peg$c164 = peg$literalExpectation("if", false), peg$c165 = "import", peg$c166 = peg$literalExpectation("import", false), peg$c167 = "instanceof", peg$c168 = peg$literalExpectation("instanceof", false), peg$c169 = "in", peg$c170 = peg$literalExpectation("in", false), peg$c171 = "new", peg$c172 = peg$literalExpectation("new", false), peg$c173 = "null", peg$c174 = peg$literalExpectation("null", false), peg$c175 = "return", peg$c176 = peg$literalExpectation("return", false), peg$c179 = "super", peg$c180 = peg$literalExpectation("super", false), peg$c181 = "switch", peg$c182 = peg$literalExpectation("switch", false), peg$c183 = "this", peg$c184 = peg$literalExpectation("this", false), peg$c185 = "throw", peg$c186 = peg$literalExpectation("throw", false), peg$c187 = "true", peg$c188 = peg$literalExpectation("true", false), peg$c189 = "try", peg$c190 = peg$literalExpectation("try", false), peg$c191 = "typeof", peg$c192 = peg$literalExpectation("typeof", false), peg$c193 = "var", peg$c194 = peg$literalExpectation("var", false), peg$c195 = "void", peg$c196 = peg$literalExpectation("void", false), peg$c197 = "while", peg$c198 = peg$literalExpectation("while", false), peg$c199 = "with", peg$c200 = peg$literalExpectation("with", false), peg$currPos = 0, peg$savedPos = 0, peg$posDetailsCache = [{ line: 1, column: 1 }], peg$maxFailPos = 0, peg$maxFailExpected = [], peg$silentFails = 0, peg$result;
6530
+ }, peg$c139 = /^[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\u1C90-\u1CBA\u1CBD-\u1CBF\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-\uA7AE\uA7B0-\uA7B4\uA7B6\uA7B8\uFF21-\uFF3A]/, peg$c140 = peg$classExpectation([["A", "Z"], ["À", "Ö"], ["Ø", "Þ"], "Ā", "Ă", "Ą", "Ć", "Ĉ", "Ċ", "Č", "Ď", "Đ", "Ē", "Ĕ", "Ė", "Ę", "Ě", "Ĝ", "Ğ", "Ġ", "Ģ", "Ĥ", "Ħ", "Ĩ", "Ī", "Ĭ", "Į", "İ", "IJ", "Ĵ", "Ķ", "Ĺ", "Ļ", "Ľ", "Ŀ", "Ł", "Ń", "Ņ", "Ň", "Ŋ", "Ō", "Ŏ", "Ő", "Œ", "Ŕ", "Ŗ", "Ř", "Ś", "Ŝ", "Ş", "Š", "Ţ", "Ť", "Ŧ", "Ũ", "Ū", "Ŭ", "Ů", "Ű", "Ų", "Ŵ", "Ŷ", ["Ÿ", "Ź"], "Ż", "Ž", ["Ɓ", "Ƃ"], "Ƅ", ["Ɔ", "Ƈ"], ["Ɖ", "Ƌ"], ["Ǝ", "Ƒ"], ["Ɠ", "Ɣ"], ["Ɩ", "Ƙ"], ["Ɯ", "Ɲ"], ["Ɵ", "Ơ"], "Ƣ", "Ƥ", ["Ʀ", "Ƨ"], "Ʃ", "Ƭ", ["Ʈ", "Ư"], ["Ʊ", "Ƴ"], "Ƶ", ["Ʒ", "Ƹ"], "Ƽ", "DŽ", "LJ", "NJ", "Ǎ", "Ǐ", "Ǒ", "Ǔ", "Ǖ", "Ǘ", "Ǚ", "Ǜ", "Ǟ", "Ǡ", "Ǣ", "Ǥ", "Ǧ", "Ǩ", "Ǫ", "Ǭ", "Ǯ", "DZ", "Ǵ", ["Ƕ", "Ǹ"], "Ǻ", "Ǽ", "Ǿ", "Ȁ", "Ȃ", "Ȅ", "Ȇ", "Ȉ", "Ȋ", "Ȍ", "Ȏ", "Ȑ", "Ȓ", "Ȕ", "Ȗ", "Ș", "Ț", "Ȝ", "Ȟ", "Ƞ", "Ȣ", "Ȥ", "Ȧ", "Ȩ", "Ȫ", "Ȭ", "Ȯ", "Ȱ", "Ȳ", ["Ⱥ", "Ȼ"], ["Ƚ", "Ⱦ"], "Ɂ", ["Ƀ", "Ɇ"], "Ɉ", "Ɋ", "Ɍ", "Ɏ", "Ͱ", "Ͳ", "Ͷ", "Ϳ", "Ά", ["Έ", "Ί"], "Ό", ["Ύ", "Ώ"], ["Α", "Ρ"], ["Σ", "Ϋ"], "Ϗ", ["ϒ", "ϔ"], "Ϙ", "Ϛ", "Ϝ", "Ϟ", "Ϡ", "Ϣ", "Ϥ", "Ϧ", "Ϩ", "Ϫ", "Ϭ", "Ϯ", "ϴ", "Ϸ", ["Ϲ", "Ϻ"], ["Ͻ", "Я"], "Ѡ", "Ѣ", "Ѥ", "Ѧ", "Ѩ", "Ѫ", "Ѭ", "Ѯ", "Ѱ", "Ѳ", "Ѵ", "Ѷ", "Ѹ", "Ѻ", "Ѽ", "Ѿ", "Ҁ", "Ҋ", "Ҍ", "Ҏ", "Ґ", "Ғ", "Ҕ", "Җ", "Ҙ", "Қ", "Ҝ", "Ҟ", "Ҡ", "Ң", "Ҥ", "Ҧ", "Ҩ", "Ҫ", "Ҭ", "Ү", "Ұ", "Ҳ", "Ҵ", "Ҷ", "Ҹ", "Һ", "Ҽ", "Ҿ", ["Ӏ", "Ӂ"], "Ӄ", "Ӆ", "Ӈ", "Ӊ", "Ӌ", "Ӎ", "Ӑ", "Ӓ", "Ӕ", "Ӗ", "Ә", "Ӛ", "Ӝ", "Ӟ", "Ӡ", "Ӣ", "Ӥ", "Ӧ", "Ө", "Ӫ", "Ӭ", "Ӯ", "Ӱ", "Ӳ", "Ӵ", "Ӷ", "Ӹ", "Ӻ", "Ӽ", "Ӿ", "Ԁ", "Ԃ", "Ԅ", "Ԇ", "Ԉ", "Ԋ", "Ԍ", "Ԏ", "Ԑ", "Ԓ", "Ԕ", "Ԗ", "Ԙ", "Ԛ", "Ԝ", "Ԟ", "Ԡ", "Ԣ", "Ԥ", "Ԧ", "Ԩ", "Ԫ", "Ԭ", "Ԯ", ["Ա", "Ֆ"], ["Ⴀ", "Ⴥ"], "Ⴧ", "Ⴭ", ["Ꭰ", "Ᏽ"], ["Ა", "Ჺ"], ["Ჽ", "Ჿ"], "Ḁ", "Ḃ", "Ḅ", "Ḇ", "Ḉ", "Ḋ", "Ḍ", "Ḏ", "Ḑ", "Ḓ", "Ḕ", "Ḗ", "Ḙ", "Ḛ", "Ḝ", "Ḟ", "Ḡ", "Ḣ", "Ḥ", "Ḧ", "Ḩ", "Ḫ", "Ḭ", "Ḯ", "Ḱ", "Ḳ", "Ḵ", "Ḷ", "Ḹ", "Ḻ", "Ḽ", "Ḿ", "Ṁ", "Ṃ", "Ṅ", "Ṇ", "Ṉ", "Ṋ", "Ṍ", "Ṏ", "Ṑ", "Ṓ", "Ṕ", "Ṗ", "Ṙ", "Ṛ", "Ṝ", "Ṟ", "Ṡ", "Ṣ", "Ṥ", "Ṧ", "Ṩ", "Ṫ", "Ṭ", "Ṯ", "Ṱ", "Ṳ", "Ṵ", "Ṷ", "Ṹ", "Ṻ", "Ṽ", "Ṿ", "Ẁ", "Ẃ", "Ẅ", "Ẇ", "Ẉ", "Ẋ", "Ẍ", "Ẏ", "Ẑ", "Ẓ", "Ẕ", "ẞ", "Ạ", "Ả", "Ấ", "Ầ", "Ẩ", "Ẫ", "Ậ", "Ắ", "Ằ", "Ẳ", "Ẵ", "Ặ", "Ẹ", "Ẻ", "Ẽ", "Ế", "Ề", "Ể", "Ễ", "Ệ", "Ỉ", "Ị", "Ọ", "Ỏ", "Ố", "Ồ", "Ổ", "Ỗ", "Ộ", "Ớ", "Ờ", "Ở", "Ỡ", "Ợ", "Ụ", "Ủ", "Ứ", "Ừ", "Ử", "Ữ", "Ự", "Ỳ", "Ỵ", "Ỷ", "Ỹ", "Ỻ", "Ỽ", "Ỿ", ["Ἀ", "Ἇ"], ["Ἐ", "Ἕ"], ["Ἠ", "Ἧ"], ["Ἰ", "Ἷ"], ["Ὀ", "Ὅ"], "Ὑ", "Ὓ", "Ὕ", "Ὗ", ["Ὠ", "Ὧ"], ["Ᾰ", "Ά"], ["Ὲ", "Ή"], ["Ῐ", "Ί"], ["Ῠ", "Ῥ"], ["Ὸ", "Ώ"], "ℂ", "ℇ", ["ℋ", "ℍ"], ["ℐ", "ℒ"], "ℕ", ["ℙ", "ℝ"], "ℤ", "Ω", "ℨ", ["K", "ℭ"], ["ℰ", "ℳ"], ["ℾ", "ℿ"], "ⅅ", "Ↄ", ["Ⰰ", "Ⱞ"], "Ⱡ", ["Ɫ", "Ɽ"], "Ⱨ", "Ⱪ", "Ⱬ", ["Ɑ", "Ɒ"], "Ⱳ", "Ⱶ", ["Ȿ", "Ⲁ"], "Ⲃ", "Ⲅ", "Ⲇ", "Ⲉ", "Ⲋ", "Ⲍ", "Ⲏ", "Ⲑ", "Ⲓ", "Ⲕ", "Ⲗ", "Ⲙ", "Ⲛ", "Ⲝ", "Ⲟ", "Ⲡ", "Ⲣ", "Ⲥ", "Ⲧ", "Ⲩ", "Ⲫ", "Ⲭ", "Ⲯ", "Ⲱ", "Ⲳ", "Ⲵ", "Ⲷ", "Ⲹ", "Ⲻ", "Ⲽ", "Ⲿ", "Ⳁ", "Ⳃ", "Ⳅ", "Ⳇ", "Ⳉ", "Ⳋ", "Ⳍ", "Ⳏ", "Ⳑ", "Ⳓ", "Ⳕ", "Ⳗ", "Ⳙ", "Ⳛ", "Ⳝ", "Ⳟ", "Ⳡ", "Ⳣ", "Ⳬ", "Ⳮ", "Ⳳ", "Ꙁ", "Ꙃ", "Ꙅ", "Ꙇ", "Ꙉ", "Ꙋ", "Ꙍ", "Ꙏ", "Ꙑ", "Ꙓ", "Ꙕ", "Ꙗ", "Ꙙ", "Ꙛ", "Ꙝ", "Ꙟ", "Ꙡ", "Ꙣ", "Ꙥ", "Ꙧ", "Ꙩ", "Ꙫ", "Ꙭ", "Ꚁ", "Ꚃ", "Ꚅ", "Ꚇ", "Ꚉ", "Ꚋ", "Ꚍ", "Ꚏ", "Ꚑ", "Ꚓ", "Ꚕ", "Ꚗ", "Ꚙ", "Ꚛ", "Ꜣ", "Ꜥ", "Ꜧ", "Ꜩ", "Ꜫ", "Ꜭ", "Ꜯ", "Ꜳ", "Ꜵ", "Ꜷ", "Ꜹ", "Ꜻ", "Ꜽ", "Ꜿ", "Ꝁ", "Ꝃ", "Ꝅ", "Ꝇ", "Ꝉ", "Ꝋ", "Ꝍ", "Ꝏ", "Ꝑ", "Ꝓ", "Ꝕ", "Ꝗ", "Ꝙ", "Ꝛ", "Ꝝ", "Ꝟ", "Ꝡ", "Ꝣ", "Ꝥ", "Ꝧ", "Ꝩ", "Ꝫ", "Ꝭ", "Ꝯ", "Ꝺ", "Ꝼ", ["Ᵹ", "Ꝿ"], "Ꞁ", "Ꞃ", "Ꞅ", "Ꞇ", "Ꞌ", "Ɥ", "Ꞑ", "Ꞓ", "Ꞗ", "Ꞙ", "Ꞛ", "Ꞝ", "Ꞟ", "Ꞡ", "Ꞣ", "Ꞥ", "Ꞧ", "Ꞩ", ["Ɦ", "Ɪ"], ["Ʞ", "Ꞵ"], "Ꞷ", "Ꞹ", ["A", "Z"]], false, false), peg$c141 = /^[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\u0560-\u0588\u10D0-\u10FA\u10FD-\u10FF\u13F8-\u13FD\u1C80-\u1C88\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\uA7AF\uA7B5\uA7B7\uA7B9\uA7FA\uAB30-\uAB5A\uAB60-\uAB65\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A]/, peg$c142 = peg$classExpectation([["a", "z"], "µ", ["ß", "ö"], ["ø", "ÿ"], "ā", "ă", "ą", "ć", "ĉ", "ċ", "č", "ď", "đ", "ē", "ĕ", "ė", "ę", "ě", "ĝ", "ğ", "ġ", "ģ", "ĥ", "ħ", "ĩ", "ī", "ĭ", "į", "ı", "ij", "ĵ", ["ķ", "ĸ"], "ĺ", "ļ", "ľ", "ŀ", "ł", "ń", "ņ", ["ň", "ʼn"], "ŋ", "ō", "ŏ", "ő", "œ", "ŕ", "ŗ", "ř", "ś", "ŝ", "ş", "š", "ţ", "ť", "ŧ", "ũ", "ū", "ŭ", "ů", "ű", "ų", "ŵ", "ŷ", "ź", "ż", ["ž", "ƀ"], "ƃ", "ƅ", "ƈ", ["ƌ", "ƍ"], "ƒ", "ƕ", ["ƙ", "ƛ"], "ƞ", "ơ", "ƣ", "ƥ", "ƨ", ["ƪ", "ƫ"], "ƭ", "ư", "ƴ", "ƶ", ["ƹ", "ƺ"], ["ƽ", "ƿ"], "dž", "lj", "nj", "ǎ", "ǐ", "ǒ", "ǔ", "ǖ", "ǘ", "ǚ", ["ǜ", "ǝ"], "ǟ", "ǡ", "ǣ", "ǥ", "ǧ", "ǩ", "ǫ", "ǭ", ["ǯ", "ǰ"], "dz", "ǵ", "ǹ", "ǻ", "ǽ", "ǿ", "ȁ", "ȃ", "ȅ", "ȇ", "ȉ", "ȋ", "ȍ", "ȏ", "ȑ", "ȓ", "ȕ", "ȗ", "ș", "ț", "ȝ", "ȟ", "ȡ", "ȣ", "ȥ", "ȧ", "ȩ", "ȫ", "ȭ", "ȯ", "ȱ", ["ȳ", "ȹ"], "ȼ", ["ȿ", "ɀ"], "ɂ", "ɇ", "ɉ", "ɋ", "ɍ", ["ɏ", "ʓ"], ["ʕ", "ʯ"], "ͱ", "ͳ", "ͷ", ["ͻ", "ͽ"], "ΐ", ["ά", "ώ"], ["ϐ", "ϑ"], ["ϕ", "ϗ"], "ϙ", "ϛ", "ϝ", "ϟ", "ϡ", "ϣ", "ϥ", "ϧ", "ϩ", "ϫ", "ϭ", ["ϯ", "ϳ"], "ϵ", "ϸ", ["ϻ", "ϼ"], ["а", "џ"], "ѡ", "ѣ", "ѥ", "ѧ", "ѩ", "ѫ", "ѭ", "ѯ", "ѱ", "ѳ", "ѵ", "ѷ", "ѹ", "ѻ", "ѽ", "ѿ", "ҁ", "ҋ", "ҍ", "ҏ", "ґ", "ғ", "ҕ", "җ", "ҙ", "қ", "ҝ", "ҟ", "ҡ", "ң", "ҥ", "ҧ", "ҩ", "ҫ", "ҭ", "ү", "ұ", "ҳ", "ҵ", "ҷ", "ҹ", "һ", "ҽ", "ҿ", "ӂ", "ӄ", "ӆ", "ӈ", "ӊ", "ӌ", ["ӎ", "ӏ"], "ӑ", "ӓ", "ӕ", "ӗ", "ә", "ӛ", "ӝ", "ӟ", "ӡ", "ӣ", "ӥ", "ӧ", "ө", "ӫ", "ӭ", "ӯ", "ӱ", "ӳ", "ӵ", "ӷ", "ӹ", "ӻ", "ӽ", "ӿ", "ԁ", "ԃ", "ԅ", "ԇ", "ԉ", "ԋ", "ԍ", "ԏ", "ԑ", "ԓ", "ԕ", "ԗ", "ԙ", "ԛ", "ԝ", "ԟ", "ԡ", "ԣ", "ԥ", "ԧ", "ԩ", "ԫ", "ԭ", "ԯ", ["ՠ", "ֈ"], ["ა", "ჺ"], ["ჽ", "ჿ"], ["ᏸ", "ᏽ"], ["ᲀ", "ᲈ"], ["ᴀ", "ᴫ"], ["ᵫ", "ᵷ"], ["ᵹ", "ᶚ"], "ḁ", "ḃ", "ḅ", "ḇ", "ḉ", "ḋ", "ḍ", "ḏ", "ḑ", "ḓ", "ḕ", "ḗ", "ḙ", "ḛ", "ḝ", "ḟ", "ḡ", "ḣ", "ḥ", "ḧ", "ḩ", "ḫ", "ḭ", "ḯ", "ḱ", "ḳ", "ḵ", "ḷ", "ḹ", "ḻ", "ḽ", "ḿ", "ṁ", "ṃ", "ṅ", "ṇ", "ṉ", "ṋ", "ṍ", "ṏ", "ṑ", "ṓ", "ṕ", "ṗ", "ṙ", "ṛ", "ṝ", "ṟ", "ṡ", "ṣ", "ṥ", "ṧ", "ṩ", "ṫ", "ṭ", "ṯ", "ṱ", "ṳ", "ṵ", "ṷ", "ṹ", "ṻ", "ṽ", "ṿ", "ẁ", "ẃ", "ẅ", "ẇ", "ẉ", "ẋ", "ẍ", "ẏ", "ẑ", "ẓ", ["ẕ", "ẝ"], "ẟ", "ạ", "ả", "ấ", "ầ", "ẩ", "ẫ", "ậ", "ắ", "ằ", "ẳ", "ẵ", "ặ", "ẹ", "ẻ", "ẽ", "ế", "ề", "ể", "ễ", "ệ", "ỉ", "ị", "ọ", "ỏ", "ố", "ồ", "ổ", "ỗ", "ộ", "ớ", "ờ", "ở", "ỡ", "ợ", "ụ", "ủ", "ứ", "ừ", "ử", "ữ", "ự", "ỳ", "ỵ", "ỷ", "ỹ", "ỻ", "ỽ", ["ỿ", "ἇ"], ["ἐ", "ἕ"], ["ἠ", "ἧ"], ["ἰ", "ἷ"], ["ὀ", "ὅ"], ["ὐ", "ὗ"], ["ὠ", "ὧ"], ["ὰ", "ώ"], ["ᾀ", "ᾇ"], ["ᾐ", "ᾗ"], ["ᾠ", "ᾧ"], ["ᾰ", "ᾴ"], ["ᾶ", "ᾷ"], "ι", ["ῂ", "ῄ"], ["ῆ", "ῇ"], ["ῐ", "ΐ"], ["ῖ", "ῗ"], ["ῠ", "ῧ"], ["ῲ", "ῴ"], ["ῶ", "ῷ"], "ℊ", ["ℎ", "ℏ"], "ℓ", "ℯ", "ℴ", "ℹ", ["ℼ", "ℽ"], ["ⅆ", "ⅉ"], "ⅎ", "ↄ", ["ⰰ", "ⱞ"], "ⱡ", ["ⱥ", "ⱦ"], "ⱨ", "ⱪ", "ⱬ", "ⱱ", ["ⱳ", "ⱴ"], ["ⱶ", "ⱻ"], "ⲁ", "ⲃ", "ⲅ", "ⲇ", "ⲉ", "ⲋ", "ⲍ", "ⲏ", "ⲑ", "ⲓ", "ⲕ", "ⲗ", "ⲙ", "ⲛ", "ⲝ", "ⲟ", "ⲡ", "ⲣ", "ⲥ", "ⲧ", "ⲩ", "ⲫ", "ⲭ", "ⲯ", "ⲱ", "ⲳ", "ⲵ", "ⲷ", "ⲹ", "ⲻ", "ⲽ", "ⲿ", "ⳁ", "ⳃ", "ⳅ", "ⳇ", "ⳉ", "ⳋ", "ⳍ", "ⳏ", "ⳑ", "ⳓ", "ⳕ", "ⳗ", "ⳙ", "ⳛ", "ⳝ", "ⳟ", "ⳡ", ["ⳣ", "ⳤ"], "ⳬ", "ⳮ", "ⳳ", ["ⴀ", "ⴥ"], "ⴧ", "ⴭ", "ꙁ", "ꙃ", "ꙅ", "ꙇ", "ꙉ", "ꙋ", "ꙍ", "ꙏ", "ꙑ", "ꙓ", "ꙕ", "ꙗ", "ꙙ", "ꙛ", "ꙝ", "ꙟ", "ꙡ", "ꙣ", "ꙥ", "ꙧ", "ꙩ", "ꙫ", "ꙭ", "ꚁ", "ꚃ", "ꚅ", "ꚇ", "ꚉ", "ꚋ", "ꚍ", "ꚏ", "ꚑ", "ꚓ", "ꚕ", "ꚗ", "ꚙ", "ꚛ", "ꜣ", "ꜥ", "ꜧ", "ꜩ", "ꜫ", "ꜭ", ["ꜯ", "ꜱ"], "ꜳ", "ꜵ", "ꜷ", "ꜹ", "ꜻ", "ꜽ", "ꜿ", "ꝁ", "ꝃ", "ꝅ", "ꝇ", "ꝉ", "ꝋ", "ꝍ", "ꝏ", "ꝑ", "ꝓ", "ꝕ", "ꝗ", "ꝙ", "ꝛ", "ꝝ", "ꝟ", "ꝡ", "ꝣ", "ꝥ", "ꝧ", "ꝩ", "ꝫ", "ꝭ", "ꝯ", ["ꝱ", "ꝸ"], "ꝺ", "ꝼ", "ꝿ", "ꞁ", "ꞃ", "ꞅ", "ꞇ", "ꞌ", "ꞎ", "ꞑ", ["ꞓ", "ꞕ"], "ꞗ", "ꞙ", "ꞛ", "ꞝ", "ꞟ", "ꞡ", "ꞣ", "ꞥ", "ꞧ", "ꞩ", "ꞯ", "ꞵ", "ꞷ", "ꞹ", "ꟺ", ["ꬰ", "ꭚ"], ["ꭠ", "ꭥ"], ["ꭰ", "ꮿ"], ["ff", "st"], ["ﬓ", "ﬗ"], ["a", "z"]], false, false), peg$c143 = /^[\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC]/, peg$c144 = peg$classExpectation(["Dž", "Lj", "Nj", "Dz", ["ᾈ", "ᾏ"], ["ᾘ", "ᾟ"], ["ᾨ", "ᾯ"], "ᾼ", "ῌ", "ῼ"], false, false), peg$c145 = /^[\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]/, peg$c146 = peg$classExpectation([["ʰ", "ˁ"], ["ˆ", "ˑ"], ["ˠ", "ˤ"], "ˬ", "ˮ", "ʹ", "ͺ", "ՙ", "ـ", ["ۥ", "ۦ"], ["ߴ", "ߵ"], "ߺ", "ࠚ", "ࠤ", "ࠨ", "ॱ", "ๆ", "ໆ", "ჼ", "ៗ", "ᡃ", "ᪧ", ["ᱸ", "ᱽ"], ["ᴬ", "ᵪ"], "ᵸ", ["ᶛ", "ᶿ"], "ⁱ", "ⁿ", ["ₐ", "ₜ"], ["ⱼ", "ⱽ"], "ⵯ", "ⸯ", "々", ["〱", "〵"], "〻", ["ゝ", "ゞ"], ["ー", "ヾ"], "ꀕ", ["ꓸ", "ꓽ"], "ꘌ", "ꙿ", ["ꚜ", "ꚝ"], ["ꜗ", "ꜟ"], "ꝰ", "ꞈ", ["ꟸ", "ꟹ"], "ꧏ", "ꧦ", "ꩰ", "ꫝ", ["ꫳ", "ꫴ"], ["ꭜ", "ꭟ"], "ー", ["゙", "゚"]], false, false), peg$c147 = /^[\xAA\xBA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05EF-\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\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\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\u09FC\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\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0CF1-\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\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\u1100-\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-\u1878\u1880-\u1884\u1887-\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-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\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-\uA8FE\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]/, peg$c148 = peg$classExpectation(["ª", "º", "ƻ", ["ǀ", "ǃ"], "ʔ", ["א", "ת"], ["ׯ", "ײ"], ["ؠ", "ؿ"], ["ف", "ي"], ["ٮ", "ٯ"], ["ٱ", "ۓ"], "ە", ["ۮ", "ۯ"], ["ۺ", "ۼ"], "ۿ", "ܐ", ["ܒ", "ܯ"], ["ݍ", "ޥ"], "ޱ", ["ߊ", "ߪ"], ["ࠀ", "ࠕ"], ["ࡀ", "ࡘ"], ["ࡠ", "ࡪ"], ["ࢠ", "ࢴ"], ["ࢶ", "ࢽ"], ["ऄ", "ह"], "ऽ", "ॐ", ["क़", "ॡ"], ["ॲ", "ঀ"], ["অ", "ঌ"], ["এ", "ঐ"], ["ও", "ন"], ["প", "র"], "ল", ["শ", "হ"], "ঽ", "ৎ", ["ড়", "ঢ়"], ["য়", "ৡ"], ["ৰ", "ৱ"], "ৼ", ["ਅ", "ਊ"], ["ਏ", "ਐ"], ["ਓ", "ਨ"], ["ਪ", "ਰ"], ["ਲ", "ਲ਼"], ["ਵ", "ਸ਼"], ["ਸ", "ਹ"], ["ਖ਼", "ੜ"], "ਫ਼", ["ੲ", "ੴ"], ["અ", "ઍ"], ["એ", "ઑ"], ["ઓ", "ન"], ["પ", "ર"], ["લ", "ળ"], ["વ", "હ"], "ઽ", "ૐ", ["ૠ", "ૡ"], "ૹ", ["ଅ", "ଌ"], ["ଏ", "ଐ"], ["ଓ", "ନ"], ["ପ", "ର"], ["ଲ", "ଳ"], ["ଵ", "ହ"], "ଽ", ["ଡ଼", "ଢ଼"], ["ୟ", "ୡ"], "ୱ", "ஃ", ["அ", "ஊ"], ["எ", "ஐ"], ["ஒ", "க"], ["ங", "ச"], "ஜ", ["ஞ", "ட"], ["ண", "த"], ["ந", "ப"], ["ம", "ஹ"], "ௐ", ["అ", "ఌ"], ["ఎ", "ఐ"], ["ఒ", "న"], ["ప", "హ"], "ఽ", ["ౘ", "ౚ"], ["ౠ", "ౡ"], "ಀ", ["ಅ", "ಌ"], ["ಎ", "ಐ"], ["ಒ", "ನ"], ["ಪ", "ಳ"], ["ವ", "ಹ"], "ಽ", "ೞ", ["ೠ", "ೡ"], ["ೱ", "ೲ"], ["അ", "ഌ"], ["എ", "ഐ"], ["ഒ", "ഺ"], "ഽ", "ൎ", ["ൔ", "ൖ"], ["ൟ", "ൡ"], ["ൺ", "ൿ"], ["අ", "ඖ"], ["ක", "න"], ["ඳ", "ර"], "ල", ["ව", "ෆ"], ["ก", "ะ"], ["า", "ำ"], ["เ", "ๅ"], ["ກ", "ຂ"], "ຄ", ["ງ", "ຈ"], "ຊ", "ຍ", ["ດ", "ທ"], ["ນ", "ຟ"], ["ມ", "ຣ"], "ລ", "ວ", ["ສ", "ຫ"], ["ອ", "ະ"], ["າ", "ຳ"], "ຽ", ["ເ", "ໄ"], ["ໜ", "ໟ"], "ༀ", ["ཀ", "ཇ"], ["ཉ", "ཬ"], ["ྈ", "ྌ"], ["က", "ဪ"], "ဿ", ["ၐ", "ၕ"], ["ၚ", "ၝ"], "ၡ", ["ၥ", "ၦ"], ["ၮ", "ၰ"], ["ၵ", "ႁ"], "ႎ", ["ᄀ", "ቈ"], ["ቊ", "ቍ"], ["ቐ", "ቖ"], "ቘ", ["ቚ", "ቝ"], ["በ", "ኈ"], ["ኊ", "ኍ"], ["ነ", "ኰ"], ["ኲ", "ኵ"], ["ኸ", "ኾ"], "ዀ", ["ዂ", "ዅ"], ["ወ", "ዖ"], ["ዘ", "ጐ"], ["ጒ", "ጕ"], ["ጘ", "ፚ"], ["ᎀ", "ᎏ"], ["ᐁ", "ᙬ"], ["ᙯ", "ᙿ"], ["ᚁ", "ᚚ"], ["ᚠ", "ᛪ"], ["ᛱ", "ᛸ"], ["ᜀ", "ᜌ"], ["ᜎ", "ᜑ"], ["ᜠ", "ᜱ"], ["ᝀ", "ᝑ"], ["ᝠ", "ᝬ"], ["ᝮ", "ᝰ"], ["ក", "ឳ"], "ៜ", ["ᠠ", "ᡂ"], ["ᡄ", "ᡸ"], ["ᢀ", "ᢄ"], ["ᢇ", "ᢨ"], "ᢪ", ["ᢰ", "ᣵ"], ["ᤀ", "ᤞ"], ["ᥐ", "ᥭ"], ["ᥰ", "ᥴ"], ["ᦀ", "ᦫ"], ["ᦰ", "ᧉ"], ["ᨀ", "ᨖ"], ["ᨠ", "ᩔ"], ["ᬅ", "ᬳ"], ["ᭅ", "ᭋ"], ["ᮃ", "ᮠ"], ["ᮮ", "ᮯ"], ["ᮺ", "ᯥ"], ["ᰀ", "ᰣ"], ["ᱍ", "ᱏ"], ["ᱚ", "ᱷ"], ["ᳩ", "ᳬ"], ["ᳮ", "ᳱ"], ["ᳵ", "ᳶ"], ["ℵ", "ℸ"], ["ⴰ", "ⵧ"], ["ⶀ", "ⶖ"], ["ⶠ", "ⶦ"], ["ⶨ", "ⶮ"], ["ⶰ", "ⶶ"], ["ⶸ", "ⶾ"], ["ⷀ", "ⷆ"], ["ⷈ", "ⷎ"], ["ⷐ", "ⷖ"], ["ⷘ", "ⷞ"], "〆", "〼", ["ぁ", "ゖ"], "ゟ", ["ァ", "ヺ"], "ヿ", ["ㄅ", "ㄯ"], ["ㄱ", "ㆎ"], ["ㆠ", "ㆺ"], ["ㇰ", "ㇿ"], ["㐀", "䶵"], ["一", "鿯"], ["ꀀ", "ꀔ"], ["ꀖ", "ꒌ"], ["ꓐ", "ꓷ"], ["ꔀ", "ꘋ"], ["ꘐ", "ꘟ"], ["ꘪ", "ꘫ"], "ꙮ", ["ꚠ", "ꛥ"], "ꞏ", "ꟷ", ["ꟻ", "ꠁ"], ["ꠃ", "ꠅ"], ["ꠇ", "ꠊ"], ["ꠌ", "ꠢ"], ["ꡀ", "ꡳ"], ["ꢂ", "ꢳ"], ["ꣲ", "ꣷ"], "ꣻ", ["ꣽ", "ꣾ"], ["ꤊ", "ꤥ"], ["ꤰ", "ꥆ"], ["ꥠ", "ꥼ"], ["ꦄ", "ꦲ"], ["ꧠ", "ꧤ"], ["ꧧ", "ꧯ"], ["ꧺ", "ꧾ"], ["ꨀ", "ꨨ"], ["ꩀ", "ꩂ"], ["ꩄ", "ꩋ"], ["ꩠ", "ꩯ"], ["ꩱ", "ꩶ"], "ꩺ", ["ꩾ", "ꪯ"], "ꪱ", ["ꪵ", "ꪶ"], ["ꪹ", "ꪽ"], "ꫀ", "ꫂ", ["ꫛ", "ꫜ"], ["ꫠ", "ꫪ"], "ꫲ", ["ꬁ", "ꬆ"], ["ꬉ", "ꬎ"], ["ꬑ", "ꬖ"], ["ꬠ", "ꬦ"], ["ꬨ", "ꬮ"], ["ꯀ", "ꯢ"], ["가", "힣"], ["ힰ", "ퟆ"], ["ퟋ", "ퟻ"], ["豈", "舘"], ["並", "龎"], "יִ", ["ײַ", "ﬨ"], ["שׁ", "זּ"], ["טּ", "לּ"], "מּ", ["נּ", "סּ"], ["ףּ", "פּ"], ["צּ", "ﮱ"], ["ﯓ", "ﴽ"], ["ﵐ", "ﶏ"], ["ﶒ", "ﷇ"], ["ﷰ", "ﷻ"], ["ﹰ", "ﹴ"], ["ﹶ", "ﻼ"], ["ヲ", "ッ"], ["ア", "ン"], ["ᅠ", "ᄒ"], ["ᅡ", "ᅦ"], ["ᅧ", "ᅬ"], ["ᅭ", "ᅲ"], ["ᅳ", "ᅵ"]], false, false), peg$c149 = /^[\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF]/, peg$c150 = peg$classExpectation([["ᛮ", "ᛰ"], ["Ⅰ", "ↂ"], ["ↅ", "ↈ"], "〇", ["〡", "〩"], ["〸", "〺"], ["ꛦ", "ꛯ"]], false, false), peg$c151 = /^[\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\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962-\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2-\u09E3\u09FE\u0A01-\u0A02\u0A3C\u0A41-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A51\u0A70-\u0A71\u0A75\u0A81-\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7-\u0AC8\u0ACD\u0AE2-\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62-\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C04\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C62-\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC-\u0CCD\u0CE2-\u0CE3\u0D00-\u0D01\u0D3B-\u0D3C\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\u1885-\u1886\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-\u1DF9\u1DFB-\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-\uA8C5\uA8E0-\uA8F1\uA8FF\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]/, peg$c152 = peg$classExpectation([["̀", "ͯ"], ["҃", "҇"], ["֑", "ֽ"], "ֿ", ["ׁ", "ׂ"], ["ׄ", "ׅ"], "ׇ", ["ؐ", "ؚ"], ["ً", "ٟ"], "ٰ", ["ۖ", "ۜ"], ["۟", "ۤ"], ["ۧ", "ۨ"], ["۪", "ۭ"], "ܑ", ["ܰ", "݊"], ["ަ", "ް"], ["߫", "߳"], "߽", ["ࠖ", "࠙"], ["ࠛ", "ࠣ"], ["ࠥ", "ࠧ"], ["ࠩ", "࠭"], ["࡙", "࡛"], ["࣓", "࣡"], ["ࣣ", "ं"], "ऺ", "़", ["ु", "ै"], "्", ["॑", "ॗ"], ["ॢ", "ॣ"], "ঁ", "়", ["ু", "ৄ"], "্", ["ৢ", "ৣ"], "৾", ["ਁ", "ਂ"], "਼", ["ੁ", "ੂ"], ["ੇ", "ੈ"], ["ੋ", "੍"], "ੑ", ["ੰ", "ੱ"], "ੵ", ["ઁ", "ં"], "઼", ["ુ", "ૅ"], ["ે", "ૈ"], "્", ["ૢ", "ૣ"], ["ૺ", "૿"], "ଁ", "଼", "ି", ["ୁ", "ୄ"], "୍", "ୖ", ["ୢ", "ୣ"], "ஂ", "ீ", "்", "ఀ", "ఄ", ["ా", "ీ"], ["ె", "ై"], ["ొ", "్"], ["ౕ", "ౖ"], ["ౢ", "ౣ"], "ಁ", "಼", "ಿ", "ೆ", ["ೌ", "್"], ["ೢ", "ೣ"], ["ഀ", "ഁ"], ["഻", "഼"], ["ു", "ൄ"], "്", ["ൢ", "ൣ"], "්", ["ි", "ු"], "ූ", "ั", ["ิ", "ฺ"], ["็", "๎"], "ັ", ["ິ", "ູ"], ["ົ", "ຼ"], ["່", "ໍ"], ["༘", "༙"], "༵", "༷", "༹", ["ཱ", "ཾ"], ["ྀ", "྄"], ["྆", "྇"], ["ྍ", "ྗ"], ["ྙ", "ྼ"], "࿆", ["ိ", "ူ"], ["ဲ", "့"], ["္", "်"], ["ွ", "ှ"], ["ၘ", "ၙ"], ["ၞ", "ၠ"], ["ၱ", "ၴ"], "ႂ", ["ႅ", "ႆ"], "ႍ", "ႝ", ["፝", "፟"], ["ᜒ", "᜔"], ["ᜲ", "᜴"], ["ᝒ", "ᝓ"], ["ᝲ", "ᝳ"], ["឴", "឵"], ["ិ", "ួ"], "ំ", ["៉", "៓"], "៝", ["᠋", "᠍"], ["ᢅ", "ᢆ"], "ᢩ", ["ᤠ", "ᤢ"], ["ᤧ", "ᤨ"], "ᤲ", ["᤹", "᤻"], ["ᨗ", "ᨘ"], "ᨛ", "ᩖ", ["ᩘ", "ᩞ"], "᩠", "ᩢ", ["ᩥ", "ᩬ"], ["ᩳ", "᩼"], "᩿", ["᪰", "᪽"], ["ᬀ", "ᬃ"], "᬴", ["ᬶ", "ᬺ"], "ᬼ", "ᭂ", ["᭫", "᭳"], ["ᮀ", "ᮁ"], ["ᮢ", "ᮥ"], ["ᮨ", "ᮩ"], ["᮫", "ᮭ"], "᯦", ["ᯨ", "ᯩ"], "ᯭ", ["ᯯ", "ᯱ"], ["ᰬ", "ᰳ"], ["ᰶ", "᰷"], ["᳐", "᳒"], ["᳔", "᳠"], ["᳢", "᳨"], "᳭", "᳴", ["᳸", "᳹"], ["᷀", "᷹"], ["᷻", "᷿"], ["⃐", "⃜"], "⃡", ["⃥", "⃰"], ["⳯", "⳱"], "⵿", ["ⷠ", "ⷿ"], ["〪", "〭"], ["゙", "゚"], "꙯", ["ꙴ", "꙽"], ["ꚞ", "ꚟ"], ["꛰", "꛱"], "ꠂ", "꠆", "ꠋ", ["ꠥ", "ꠦ"], ["꣄", "ꣅ"], ["꣠", "꣱"], "ꣿ", ["ꤦ", "꤭"], ["ꥇ", "ꥑ"], ["ꦀ", "ꦂ"], "꦳", ["ꦶ", "ꦹ"], "ꦼ", "ꧥ", ["ꨩ", "ꨮ"], ["ꨱ", "ꨲ"], ["ꨵ", "ꨶ"], "ꩃ", "ꩌ", "ꩼ", "ꪰ", ["ꪲ", "ꪴ"], ["ꪷ", "ꪸ"], ["ꪾ", "꪿"], "꫁", ["ꫬ", "ꫭ"], "꫶", "ꯥ", "ꯨ", "꯭", "ﬞ", ["︀", "️"], ["︠", "︯"]], false, false), peg$c153 = /^[\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\u1CF7\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]/, peg$c154 = peg$classExpectation(["ः", "ऻ", ["ा", "ी"], ["ॉ", "ौ"], ["ॎ", "ॏ"], ["ং", "ঃ"], ["া", "ী"], ["ে", "ৈ"], ["ো", "ৌ"], "ৗ", "ਃ", ["ਾ", "ੀ"], "ઃ", ["ા", "ી"], "ૉ", ["ો", "ૌ"], ["ଂ", "ଃ"], "ା", "ୀ", ["େ", "ୈ"], ["ୋ", "ୌ"], "ୗ", ["ா", "ி"], ["ு", "ூ"], ["ெ", "ை"], ["ொ", "ௌ"], "ௗ", ["ఁ", "ః"], ["ు", "ౄ"], ["ಂ", "ಃ"], "ಾ", ["ೀ", "ೄ"], ["ೇ", "ೈ"], ["ೊ", "ೋ"], ["ೕ", "ೖ"], ["ം", "ഃ"], ["ാ", "ീ"], ["െ", "ൈ"], ["ൊ", "ൌ"], "ൗ", ["ං", "ඃ"], ["ා", "ෑ"], ["ෘ", "ෟ"], ["ෲ", "ෳ"], ["༾", "༿"], "ཿ", ["ါ", "ာ"], "ေ", "း", ["ျ", "ြ"], ["ၖ", "ၗ"], ["ၢ", "ၤ"], ["ၧ", "ၭ"], ["ႃ", "ႄ"], ["ႇ", "ႌ"], "ႏ", ["ႚ", "ႜ"], "ា", ["ើ", "ៅ"], ["ះ", "ៈ"], ["ᤣ", "ᤦ"], ["ᤩ", "ᤫ"], ["ᤰ", "ᤱ"], ["ᤳ", "ᤸ"], ["ᨙ", "ᨚ"], "ᩕ", "ᩗ", "ᩡ", ["ᩣ", "ᩤ"], ["ᩭ", "ᩲ"], "ᬄ", "ᬵ", "ᬻ", ["ᬽ", "ᭁ"], ["ᭃ", "᭄"], "ᮂ", "ᮡ", ["ᮦ", "ᮧ"], "᮪", "ᯧ", ["ᯪ", "ᯬ"], "ᯮ", ["᯲", "᯳"], ["ᰤ", "ᰫ"], ["ᰴ", "ᰵ"], "᳡", ["ᳲ", "ᳳ"], "᳷", ["〮", "〯"], ["ꠣ", "ꠤ"], "ꠧ", ["ꢀ", "ꢁ"], ["ꢴ", "ꣃ"], ["ꥒ", "꥓"], "ꦃ", ["ꦴ", "ꦵ"], ["ꦺ", "ꦻ"], ["ꦽ", "꧀"], ["ꨯ", "ꨰ"], ["ꨳ", "ꨴ"], "ꩍ", "ꩻ", "ꩽ", "ꫫ", ["ꫮ", "ꫯ"], "ꫵ", ["ꯣ", "ꯤ"], ["ꯦ", "ꯧ"], ["ꯩ", "ꯪ"], "꯬"], false, false), peg$c155 = /^[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]/, peg$c156 = peg$classExpectation([["0", "9"], ["٠", "٩"], ["۰", "۹"], ["߀", "߉"], ["०", "९"], ["০", "৯"], ["੦", "੯"], ["૦", "૯"], ["୦", "୯"], ["௦", "௯"], ["౦", "౯"], ["೦", "೯"], ["൦", "൯"], ["෦", "෯"], ["๐", "๙"], ["໐", "໙"], ["༠", "༩"], ["၀", "၉"], ["႐", "႙"], ["០", "៩"], ["᠐", "᠙"], ["᥆", "᥏"], ["᧐", "᧙"], ["᪀", "᪉"], ["᪐", "᪙"], ["᭐", "᭙"], ["᮰", "᮹"], ["᱀", "᱉"], ["᱐", "᱙"], ["꘠", "꘩"], ["꣐", "꣙"], ["꤀", "꤉"], ["꧐", "꧙"], ["꧰", "꧹"], ["꩐", "꩙"], ["꯰", "꯹"], ["0", "9"]], false, false), peg$c157 = /^[_\u203F-\u2040\u2054\uFE33-\uFE34\uFE4D-\uFE4F\uFF3F]/, peg$c158 = peg$classExpectation(["_", ["‿", "⁀"], "⁔", ["︳", "︴"], ["﹍", "﹏"], "_"], false, false), peg$c161 = /^[0-9a-f]/i, peg$c162 = peg$classExpectation([["0", "9"], ["a", "f"]], false, true), peg$c163 = "break", peg$c164 = peg$literalExpectation("break", false), peg$c165 = "case", peg$c166 = peg$literalExpectation("case", false), peg$c167 = "catch", peg$c168 = peg$literalExpectation("catch", false), peg$c169 = "class", peg$c170 = peg$literalExpectation("class", false), peg$c171 = "const", peg$c172 = peg$literalExpectation("const", false), peg$c173 = "continue", peg$c174 = peg$literalExpectation("continue", false), peg$c175 = "debugger", peg$c176 = peg$literalExpectation("debugger", false), peg$c177 = "default", peg$c178 = peg$literalExpectation("default", false), peg$c179 = "delete", peg$c180 = peg$literalExpectation("delete", false), peg$c181 = "do", peg$c182 = peg$literalExpectation("do", false), peg$c183 = "else", peg$c184 = peg$literalExpectation("else", false), peg$c185 = "export", peg$c186 = peg$literalExpectation("export", false), peg$c187 = "extends", peg$c188 = peg$literalExpectation("extends", false), peg$c189 = "false", peg$c190 = peg$literalExpectation("false", false), peg$c191 = "finally", peg$c192 = peg$literalExpectation("finally", false), peg$c193 = "for", peg$c194 = peg$literalExpectation("for", false), peg$c195 = "function", peg$c196 = peg$literalExpectation("function", false), peg$c199 = "if", peg$c200 = peg$literalExpectation("if", false), peg$c201 = "import", peg$c202 = peg$literalExpectation("import", false), peg$c203 = "instanceof", peg$c204 = peg$literalExpectation("instanceof", false), peg$c205 = "in", peg$c206 = peg$literalExpectation("in", false), peg$c207 = "new", peg$c208 = peg$literalExpectation("new", false), peg$c209 = "null", peg$c210 = peg$literalExpectation("null", false), peg$c211 = "return", peg$c212 = peg$literalExpectation("return", false), peg$c215 = "super", peg$c216 = peg$literalExpectation("super", false), peg$c217 = "switch", peg$c218 = peg$literalExpectation("switch", false), peg$c219 = "this", peg$c220 = peg$literalExpectation("this", false), peg$c221 = "throw", peg$c222 = peg$literalExpectation("throw", false), peg$c223 = "true", peg$c224 = peg$literalExpectation("true", false), peg$c225 = "try", peg$c226 = peg$literalExpectation("try", false), peg$c227 = "typeof", peg$c228 = peg$literalExpectation("typeof", false), peg$c229 = "var", peg$c230 = peg$literalExpectation("var", false), peg$c231 = "void", peg$c232 = peg$literalExpectation("void", false), peg$c233 = "while", peg$c234 = peg$literalExpectation("while", false), peg$c235 = "with", peg$c236 = peg$literalExpectation("with", false), peg$currPos = 0, peg$savedPos = 0, peg$posDetailsCache = [{ line: 1, column: 1 }], peg$maxFailPos = 0, peg$maxFailExpected = [], peg$silentFails = 0, peg$result;
6450
6531
  if ("startRule" in options) {
6451
6532
  if (!(options.startRule in peg$startRuleFunctions)) {
6452
6533
  throw new Error(`Can't start parsing from rule "` + options.startRule + '".');
@@ -6511,25 +6592,980 @@ function peg$parse(input, options) {
6511
6592
  line: endPosDetails.line,
6512
6593
  column: endPosDetails.column
6513
6594
  }
6514
- };
6515
- }
6516
- function peg$fail(expected) {
6517
- if (peg$currPos < peg$maxFailPos) {
6518
- return;
6595
+ };
6596
+ }
6597
+ function peg$fail(expected) {
6598
+ if (peg$currPos < peg$maxFailPos) {
6599
+ return;
6600
+ }
6601
+ if (peg$currPos > peg$maxFailPos) {
6602
+ peg$maxFailPos = peg$currPos;
6603
+ peg$maxFailExpected = [];
6604
+ }
6605
+ peg$maxFailExpected.push(expected);
6606
+ }
6607
+ function peg$buildStructuredError(expected, found, location) {
6608
+ return new peg$SyntaxError(
6609
+ peg$SyntaxError.buildMessage(expected, found),
6610
+ expected,
6611
+ found,
6612
+ location
6613
+ );
6614
+ }
6615
+ function peg$parsestyleDeclarations() {
6616
+ var s0, s1, s2, s3, s4, s5;
6617
+ s0 = peg$currPos;
6618
+ s1 = peg$parse__();
6619
+ if (s1 !== peg$FAILED) {
6620
+ s2 = [];
6621
+ s3 = peg$currPos;
6622
+ s4 = peg$parsestyleDeclaration();
6623
+ if (s4 !== peg$FAILED) {
6624
+ s5 = peg$parse__();
6625
+ if (s5 !== peg$FAILED) {
6626
+ s4 = [s4, s5];
6627
+ s3 = s4;
6628
+ } else {
6629
+ peg$currPos = s3;
6630
+ s3 = peg$FAILED;
6631
+ }
6632
+ } else {
6633
+ peg$currPos = s3;
6634
+ s3 = peg$FAILED;
6635
+ }
6636
+ while (s3 !== peg$FAILED) {
6637
+ s2.push(s3);
6638
+ s3 = peg$currPos;
6639
+ s4 = peg$parsestyleDeclaration();
6640
+ if (s4 !== peg$FAILED) {
6641
+ s5 = peg$parse__();
6642
+ if (s5 !== peg$FAILED) {
6643
+ s4 = [s4, s5];
6644
+ s3 = s4;
6645
+ } else {
6646
+ peg$currPos = s3;
6647
+ s3 = peg$FAILED;
6648
+ }
6649
+ } else {
6650
+ peg$currPos = s3;
6651
+ s3 = peg$FAILED;
6652
+ }
6653
+ }
6654
+ if (s2 !== peg$FAILED) {
6655
+ s3 = peg$parse__();
6656
+ if (s3 !== peg$FAILED) {
6657
+ peg$savedPos = s0;
6658
+ s1 = peg$c0(s2);
6659
+ s0 = s1;
6660
+ } else {
6661
+ peg$currPos = s0;
6662
+ s0 = peg$FAILED;
6663
+ }
6664
+ } else {
6665
+ peg$currPos = s0;
6666
+ s0 = peg$FAILED;
6667
+ }
6668
+ } else {
6669
+ peg$currPos = s0;
6670
+ s0 = peg$FAILED;
6671
+ }
6672
+ return s0;
6673
+ }
6674
+ function peg$parsestyleDeclaration() {
6675
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8;
6676
+ s0 = peg$currPos;
6677
+ s1 = peg$parsecssComment();
6678
+ if (s1 !== peg$FAILED) {
6679
+ s2 = peg$parse__();
6680
+ if (s2 !== peg$FAILED) {
6681
+ peg$savedPos = s0;
6682
+ s1 = peg$c1();
6683
+ s0 = s1;
6684
+ } else {
6685
+ peg$currPos = s0;
6686
+ s0 = peg$FAILED;
6687
+ }
6688
+ } else {
6689
+ peg$currPos = s0;
6690
+ s0 = peg$FAILED;
6691
+ }
6692
+ if (s0 === peg$FAILED) {
6693
+ s0 = peg$currPos;
6694
+ s1 = peg$parsestylePropName();
6695
+ if (s1 !== peg$FAILED) {
6696
+ s2 = peg$parse__();
6697
+ if (s2 !== peg$FAILED) {
6698
+ if (input.charCodeAt(peg$currPos) === 58) {
6699
+ s3 = peg$c2;
6700
+ peg$currPos++;
6701
+ } else {
6702
+ s3 = peg$FAILED;
6703
+ if (peg$silentFails === 0) {
6704
+ peg$fail(peg$c3);
6705
+ }
6706
+ }
6707
+ if (s3 !== peg$FAILED) {
6708
+ s4 = peg$parse__();
6709
+ if (s4 !== peg$FAILED) {
6710
+ s5 = peg$parsestyleValueContent();
6711
+ if (s5 !== peg$FAILED) {
6712
+ s6 = peg$parse__();
6713
+ if (s6 !== peg$FAILED) {
6714
+ s7 = [];
6715
+ if (input.charCodeAt(peg$currPos) === 59) {
6716
+ s8 = peg$c4;
6717
+ peg$currPos++;
6718
+ } else {
6719
+ s8 = peg$FAILED;
6720
+ if (peg$silentFails === 0) {
6721
+ peg$fail(peg$c5);
6722
+ }
6723
+ }
6724
+ while (s8 !== peg$FAILED) {
6725
+ s7.push(s8);
6726
+ if (input.charCodeAt(peg$currPos) === 59) {
6727
+ s8 = peg$c4;
6728
+ peg$currPos++;
6729
+ } else {
6730
+ s8 = peg$FAILED;
6731
+ if (peg$silentFails === 0) {
6732
+ peg$fail(peg$c5);
6733
+ }
6734
+ }
6735
+ }
6736
+ if (s7 !== peg$FAILED) {
6737
+ s8 = peg$parse__();
6738
+ if (s8 !== peg$FAILED) {
6739
+ peg$savedPos = s0;
6740
+ s1 = peg$c6(s1, s5);
6741
+ s0 = s1;
6742
+ } else {
6743
+ peg$currPos = s0;
6744
+ s0 = peg$FAILED;
6745
+ }
6746
+ } else {
6747
+ peg$currPos = s0;
6748
+ s0 = peg$FAILED;
6749
+ }
6750
+ } else {
6751
+ peg$currPos = s0;
6752
+ s0 = peg$FAILED;
6753
+ }
6754
+ } else {
6755
+ peg$currPos = s0;
6756
+ s0 = peg$FAILED;
6757
+ }
6758
+ } else {
6759
+ peg$currPos = s0;
6760
+ s0 = peg$FAILED;
6761
+ }
6762
+ } else {
6763
+ peg$currPos = s0;
6764
+ s0 = peg$FAILED;
6765
+ }
6766
+ } else {
6767
+ peg$currPos = s0;
6768
+ s0 = peg$FAILED;
6769
+ }
6770
+ } else {
6771
+ peg$currPos = s0;
6772
+ s0 = peg$FAILED;
6773
+ }
6774
+ if (s0 === peg$FAILED) {
6775
+ s0 = peg$currPos;
6776
+ s1 = peg$parse__();
6777
+ if (s1 !== peg$FAILED) {
6778
+ s2 = [];
6779
+ if (input.charCodeAt(peg$currPos) === 59) {
6780
+ s3 = peg$c4;
6781
+ peg$currPos++;
6782
+ } else {
6783
+ s3 = peg$FAILED;
6784
+ if (peg$silentFails === 0) {
6785
+ peg$fail(peg$c5);
6786
+ }
6787
+ }
6788
+ if (s3 !== peg$FAILED) {
6789
+ while (s3 !== peg$FAILED) {
6790
+ s2.push(s3);
6791
+ if (input.charCodeAt(peg$currPos) === 59) {
6792
+ s3 = peg$c4;
6793
+ peg$currPos++;
6794
+ } else {
6795
+ s3 = peg$FAILED;
6796
+ if (peg$silentFails === 0) {
6797
+ peg$fail(peg$c5);
6798
+ }
6799
+ }
6800
+ }
6801
+ } else {
6802
+ s2 = peg$FAILED;
6803
+ }
6804
+ if (s2 !== peg$FAILED) {
6805
+ s3 = peg$parse__();
6806
+ if (s3 !== peg$FAILED) {
6807
+ peg$savedPos = s0;
6808
+ s1 = peg$c7();
6809
+ s0 = s1;
6810
+ } else {
6811
+ peg$currPos = s0;
6812
+ s0 = peg$FAILED;
6813
+ }
6814
+ } else {
6815
+ peg$currPos = s0;
6816
+ s0 = peg$FAILED;
6817
+ }
6818
+ } else {
6819
+ peg$currPos = s0;
6820
+ s0 = peg$FAILED;
6821
+ }
6822
+ }
6823
+ }
6824
+ return s0;
6825
+ }
6826
+ function peg$parsestylePropName() {
6827
+ var s0, s1, s2;
6828
+ s0 = peg$currPos;
6829
+ s1 = [];
6830
+ if (peg$c8.test(input.charAt(peg$currPos))) {
6831
+ s2 = input.charAt(peg$currPos);
6832
+ peg$currPos++;
6833
+ } else {
6834
+ s2 = peg$FAILED;
6835
+ if (peg$silentFails === 0) {
6836
+ peg$fail(peg$c9);
6837
+ }
6838
+ }
6839
+ if (s2 !== peg$FAILED) {
6840
+ while (s2 !== peg$FAILED) {
6841
+ s1.push(s2);
6842
+ if (peg$c8.test(input.charAt(peg$currPos))) {
6843
+ s2 = input.charAt(peg$currPos);
6844
+ peg$currPos++;
6845
+ } else {
6846
+ s2 = peg$FAILED;
6847
+ if (peg$silentFails === 0) {
6848
+ peg$fail(peg$c9);
6849
+ }
6850
+ }
6851
+ }
6852
+ } else {
6853
+ s1 = peg$FAILED;
6854
+ }
6855
+ if (s1 !== peg$FAILED) {
6856
+ peg$savedPos = s0;
6857
+ s1 = peg$c10();
6858
+ }
6859
+ s0 = s1;
6860
+ return s0;
6861
+ }
6862
+ function peg$parsestyleValueContent() {
6863
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14;
6864
+ s0 = peg$currPos;
6865
+ s1 = peg$parse__();
6866
+ if (s1 !== peg$FAILED) {
6867
+ s2 = [];
6868
+ s3 = peg$currPos;
6869
+ s4 = peg$parsestyleValueChunk();
6870
+ if (s4 !== peg$FAILED) {
6871
+ s5 = peg$parse__();
6872
+ if (s5 !== peg$FAILED) {
6873
+ s4 = [s4, s5];
6874
+ s3 = s4;
6875
+ } else {
6876
+ peg$currPos = s3;
6877
+ s3 = peg$FAILED;
6878
+ }
6879
+ } else {
6880
+ peg$currPos = s3;
6881
+ s3 = peg$FAILED;
6882
+ }
6883
+ if (s3 !== peg$FAILED) {
6884
+ while (s3 !== peg$FAILED) {
6885
+ s2.push(s3);
6886
+ s3 = peg$currPos;
6887
+ s4 = peg$parsestyleValueChunk();
6888
+ if (s4 !== peg$FAILED) {
6889
+ s5 = peg$parse__();
6890
+ if (s5 !== peg$FAILED) {
6891
+ s4 = [s4, s5];
6892
+ s3 = s4;
6893
+ } else {
6894
+ peg$currPos = s3;
6895
+ s3 = peg$FAILED;
6896
+ }
6897
+ } else {
6898
+ peg$currPos = s3;
6899
+ s3 = peg$FAILED;
6900
+ }
6901
+ }
6902
+ } else {
6903
+ s2 = peg$FAILED;
6904
+ }
6905
+ if (s2 === peg$FAILED) {
6906
+ s2 = null;
6907
+ }
6908
+ if (s2 !== peg$FAILED) {
6909
+ s3 = [];
6910
+ s4 = peg$currPos;
6911
+ if (input.charCodeAt(peg$currPos) === 123) {
6912
+ s5 = peg$c11;
6913
+ peg$currPos++;
6914
+ } else {
6915
+ s5 = peg$FAILED;
6916
+ if (peg$silentFails === 0) {
6917
+ peg$fail(peg$c12);
6918
+ }
6919
+ }
6920
+ if (s5 !== peg$FAILED) {
6921
+ s6 = peg$parse__();
6922
+ if (s6 !== peg$FAILED) {
6923
+ s7 = peg$parseaccessorExpression();
6924
+ if (s7 !== peg$FAILED) {
6925
+ s8 = peg$parse__();
6926
+ if (s8 !== peg$FAILED) {
6927
+ if (input.charCodeAt(peg$currPos) === 125) {
6928
+ s9 = peg$c13;
6929
+ peg$currPos++;
6930
+ } else {
6931
+ s9 = peg$FAILED;
6932
+ if (peg$silentFails === 0) {
6933
+ peg$fail(peg$c14);
6934
+ }
6935
+ }
6936
+ if (s9 !== peg$FAILED) {
6937
+ s10 = peg$parse__();
6938
+ if (s10 !== peg$FAILED) {
6939
+ s11 = [];
6940
+ s12 = peg$currPos;
6941
+ s13 = peg$parsestyleValueChunk();
6942
+ if (s13 !== peg$FAILED) {
6943
+ s14 = peg$parse__();
6944
+ if (s14 !== peg$FAILED) {
6945
+ s13 = [s13, s14];
6946
+ s12 = s13;
6947
+ } else {
6948
+ peg$currPos = s12;
6949
+ s12 = peg$FAILED;
6950
+ }
6951
+ } else {
6952
+ peg$currPos = s12;
6953
+ s12 = peg$FAILED;
6954
+ }
6955
+ while (s12 !== peg$FAILED) {
6956
+ s11.push(s12);
6957
+ s12 = peg$currPos;
6958
+ s13 = peg$parsestyleValueChunk();
6959
+ if (s13 !== peg$FAILED) {
6960
+ s14 = peg$parse__();
6961
+ if (s14 !== peg$FAILED) {
6962
+ s13 = [s13, s14];
6963
+ s12 = s13;
6964
+ } else {
6965
+ peg$currPos = s12;
6966
+ s12 = peg$FAILED;
6967
+ }
6968
+ } else {
6969
+ peg$currPos = s12;
6970
+ s12 = peg$FAILED;
6971
+ }
6972
+ }
6973
+ if (s11 !== peg$FAILED) {
6974
+ s5 = [s5, s6, s7, s8, s9, s10, s11];
6975
+ s4 = s5;
6976
+ } else {
6977
+ peg$currPos = s4;
6978
+ s4 = peg$FAILED;
6979
+ }
6980
+ } else {
6981
+ peg$currPos = s4;
6982
+ s4 = peg$FAILED;
6983
+ }
6984
+ } else {
6985
+ peg$currPos = s4;
6986
+ s4 = peg$FAILED;
6987
+ }
6988
+ } else {
6989
+ peg$currPos = s4;
6990
+ s4 = peg$FAILED;
6991
+ }
6992
+ } else {
6993
+ peg$currPos = s4;
6994
+ s4 = peg$FAILED;
6995
+ }
6996
+ } else {
6997
+ peg$currPos = s4;
6998
+ s4 = peg$FAILED;
6999
+ }
7000
+ } else {
7001
+ peg$currPos = s4;
7002
+ s4 = peg$FAILED;
7003
+ }
7004
+ while (s4 !== peg$FAILED) {
7005
+ s3.push(s4);
7006
+ s4 = peg$currPos;
7007
+ if (input.charCodeAt(peg$currPos) === 123) {
7008
+ s5 = peg$c11;
7009
+ peg$currPos++;
7010
+ } else {
7011
+ s5 = peg$FAILED;
7012
+ if (peg$silentFails === 0) {
7013
+ peg$fail(peg$c12);
7014
+ }
7015
+ }
7016
+ if (s5 !== peg$FAILED) {
7017
+ s6 = peg$parse__();
7018
+ if (s6 !== peg$FAILED) {
7019
+ s7 = peg$parseaccessorExpression();
7020
+ if (s7 !== peg$FAILED) {
7021
+ s8 = peg$parse__();
7022
+ if (s8 !== peg$FAILED) {
7023
+ if (input.charCodeAt(peg$currPos) === 125) {
7024
+ s9 = peg$c13;
7025
+ peg$currPos++;
7026
+ } else {
7027
+ s9 = peg$FAILED;
7028
+ if (peg$silentFails === 0) {
7029
+ peg$fail(peg$c14);
7030
+ }
7031
+ }
7032
+ if (s9 !== peg$FAILED) {
7033
+ s10 = peg$parse__();
7034
+ if (s10 !== peg$FAILED) {
7035
+ s11 = [];
7036
+ s12 = peg$currPos;
7037
+ s13 = peg$parsestyleValueChunk();
7038
+ if (s13 !== peg$FAILED) {
7039
+ s14 = peg$parse__();
7040
+ if (s14 !== peg$FAILED) {
7041
+ s13 = [s13, s14];
7042
+ s12 = s13;
7043
+ } else {
7044
+ peg$currPos = s12;
7045
+ s12 = peg$FAILED;
7046
+ }
7047
+ } else {
7048
+ peg$currPos = s12;
7049
+ s12 = peg$FAILED;
7050
+ }
7051
+ while (s12 !== peg$FAILED) {
7052
+ s11.push(s12);
7053
+ s12 = peg$currPos;
7054
+ s13 = peg$parsestyleValueChunk();
7055
+ if (s13 !== peg$FAILED) {
7056
+ s14 = peg$parse__();
7057
+ if (s14 !== peg$FAILED) {
7058
+ s13 = [s13, s14];
7059
+ s12 = s13;
7060
+ } else {
7061
+ peg$currPos = s12;
7062
+ s12 = peg$FAILED;
7063
+ }
7064
+ } else {
7065
+ peg$currPos = s12;
7066
+ s12 = peg$FAILED;
7067
+ }
7068
+ }
7069
+ if (s11 !== peg$FAILED) {
7070
+ s5 = [s5, s6, s7, s8, s9, s10, s11];
7071
+ s4 = s5;
7072
+ } else {
7073
+ peg$currPos = s4;
7074
+ s4 = peg$FAILED;
7075
+ }
7076
+ } else {
7077
+ peg$currPos = s4;
7078
+ s4 = peg$FAILED;
7079
+ }
7080
+ } else {
7081
+ peg$currPos = s4;
7082
+ s4 = peg$FAILED;
7083
+ }
7084
+ } else {
7085
+ peg$currPos = s4;
7086
+ s4 = peg$FAILED;
7087
+ }
7088
+ } else {
7089
+ peg$currPos = s4;
7090
+ s4 = peg$FAILED;
7091
+ }
7092
+ } else {
7093
+ peg$currPos = s4;
7094
+ s4 = peg$FAILED;
7095
+ }
7096
+ } else {
7097
+ peg$currPos = s4;
7098
+ s4 = peg$FAILED;
7099
+ }
7100
+ }
7101
+ if (s3 !== peg$FAILED) {
7102
+ peg$savedPos = s0;
7103
+ s1 = peg$c15(s1, s2, s3);
7104
+ s0 = s1;
7105
+ } else {
7106
+ peg$currPos = s0;
7107
+ s0 = peg$FAILED;
7108
+ }
7109
+ } else {
7110
+ peg$currPos = s0;
7111
+ s0 = peg$FAILED;
7112
+ }
7113
+ } else {
7114
+ peg$currPos = s0;
7115
+ s0 = peg$FAILED;
7116
+ }
7117
+ return s0;
7118
+ }
7119
+ function peg$parsestyleValueChunk() {
7120
+ var s0, s1, s2;
7121
+ s0 = peg$currPos;
7122
+ s1 = peg$parsecssComment();
7123
+ if (s1 !== peg$FAILED) {
7124
+ peg$savedPos = s0;
7125
+ s1 = peg$c16();
7126
+ }
7127
+ s0 = s1;
7128
+ if (s0 === peg$FAILED) {
7129
+ s0 = peg$parsequotedString();
7130
+ if (s0 === peg$FAILED) {
7131
+ s0 = peg$currPos;
7132
+ s1 = [];
7133
+ if (peg$c17.test(input.charAt(peg$currPos))) {
7134
+ s2 = input.charAt(peg$currPos);
7135
+ peg$currPos++;
7136
+ } else {
7137
+ s2 = peg$FAILED;
7138
+ if (peg$silentFails === 0) {
7139
+ peg$fail(peg$c18);
7140
+ }
7141
+ }
7142
+ if (s2 !== peg$FAILED) {
7143
+ while (s2 !== peg$FAILED) {
7144
+ s1.push(s2);
7145
+ if (peg$c17.test(input.charAt(peg$currPos))) {
7146
+ s2 = input.charAt(peg$currPos);
7147
+ peg$currPos++;
7148
+ } else {
7149
+ s2 = peg$FAILED;
7150
+ if (peg$silentFails === 0) {
7151
+ peg$fail(peg$c18);
7152
+ }
7153
+ }
7154
+ }
7155
+ } else {
7156
+ s1 = peg$FAILED;
7157
+ }
7158
+ if (s1 !== peg$FAILED) {
7159
+ peg$savedPos = s0;
7160
+ s1 = peg$c19();
7161
+ }
7162
+ s0 = s1;
7163
+ }
7164
+ }
7165
+ return s0;
7166
+ }
7167
+ function peg$parsequotedString() {
7168
+ var s0, s1, s2, s3;
7169
+ s0 = peg$currPos;
7170
+ if (input.charCodeAt(peg$currPos) === 39) {
7171
+ s1 = peg$c20;
7172
+ peg$currPos++;
7173
+ } else {
7174
+ s1 = peg$FAILED;
7175
+ if (peg$silentFails === 0) {
7176
+ peg$fail(peg$c21);
7177
+ }
7178
+ }
7179
+ if (s1 !== peg$FAILED) {
7180
+ s2 = [];
7181
+ if (peg$c22.test(input.charAt(peg$currPos))) {
7182
+ s3 = input.charAt(peg$currPos);
7183
+ peg$currPos++;
7184
+ } else {
7185
+ s3 = peg$FAILED;
7186
+ if (peg$silentFails === 0) {
7187
+ peg$fail(peg$c23);
7188
+ }
7189
+ }
7190
+ while (s3 !== peg$FAILED) {
7191
+ s2.push(s3);
7192
+ if (peg$c22.test(input.charAt(peg$currPos))) {
7193
+ s3 = input.charAt(peg$currPos);
7194
+ peg$currPos++;
7195
+ } else {
7196
+ s3 = peg$FAILED;
7197
+ if (peg$silentFails === 0) {
7198
+ peg$fail(peg$c23);
7199
+ }
7200
+ }
7201
+ }
7202
+ if (s2 !== peg$FAILED) {
7203
+ if (input.charCodeAt(peg$currPos) === 39) {
7204
+ s3 = peg$c20;
7205
+ peg$currPos++;
7206
+ } else {
7207
+ s3 = peg$FAILED;
7208
+ if (peg$silentFails === 0) {
7209
+ peg$fail(peg$c21);
7210
+ }
7211
+ }
7212
+ if (s3 !== peg$FAILED) {
7213
+ peg$savedPos = s0;
7214
+ s1 = peg$c24(s2);
7215
+ s0 = s1;
7216
+ } else {
7217
+ peg$currPos = s0;
7218
+ s0 = peg$FAILED;
7219
+ }
7220
+ } else {
7221
+ peg$currPos = s0;
7222
+ s0 = peg$FAILED;
7223
+ }
7224
+ } else {
7225
+ peg$currPos = s0;
7226
+ s0 = peg$FAILED;
7227
+ }
7228
+ if (s0 === peg$FAILED) {
7229
+ s0 = peg$currPos;
7230
+ if (input.charCodeAt(peg$currPos) === 34) {
7231
+ s1 = peg$c25;
7232
+ peg$currPos++;
7233
+ } else {
7234
+ s1 = peg$FAILED;
7235
+ if (peg$silentFails === 0) {
7236
+ peg$fail(peg$c26);
7237
+ }
7238
+ }
7239
+ if (s1 !== peg$FAILED) {
7240
+ s2 = [];
7241
+ if (peg$c27.test(input.charAt(peg$currPos))) {
7242
+ s3 = input.charAt(peg$currPos);
7243
+ peg$currPos++;
7244
+ } else {
7245
+ s3 = peg$FAILED;
7246
+ if (peg$silentFails === 0) {
7247
+ peg$fail(peg$c28);
7248
+ }
7249
+ }
7250
+ while (s3 !== peg$FAILED) {
7251
+ s2.push(s3);
7252
+ if (peg$c27.test(input.charAt(peg$currPos))) {
7253
+ s3 = input.charAt(peg$currPos);
7254
+ peg$currPos++;
7255
+ } else {
7256
+ s3 = peg$FAILED;
7257
+ if (peg$silentFails === 0) {
7258
+ peg$fail(peg$c28);
7259
+ }
7260
+ }
7261
+ }
7262
+ if (s2 !== peg$FAILED) {
7263
+ if (input.charCodeAt(peg$currPos) === 34) {
7264
+ s3 = peg$c25;
7265
+ peg$currPos++;
7266
+ } else {
7267
+ s3 = peg$FAILED;
7268
+ if (peg$silentFails === 0) {
7269
+ peg$fail(peg$c26);
7270
+ }
7271
+ }
7272
+ if (s3 !== peg$FAILED) {
7273
+ peg$savedPos = s0;
7274
+ s1 = peg$c29(s2);
7275
+ s0 = s1;
7276
+ } else {
7277
+ peg$currPos = s0;
7278
+ s0 = peg$FAILED;
7279
+ }
7280
+ } else {
7281
+ peg$currPos = s0;
7282
+ s0 = peg$FAILED;
7283
+ }
7284
+ } else {
7285
+ peg$currPos = s0;
7286
+ s0 = peg$FAILED;
7287
+ }
7288
+ }
7289
+ return s0;
7290
+ }
7291
+ function peg$parsecssComment() {
7292
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
7293
+ s0 = peg$currPos;
7294
+ if (input.substr(peg$currPos, 2) === peg$c30) {
7295
+ s1 = peg$c30;
7296
+ peg$currPos += 2;
7297
+ } else {
7298
+ s1 = peg$FAILED;
7299
+ if (peg$silentFails === 0) {
7300
+ peg$fail(peg$c31);
7301
+ }
7302
+ }
7303
+ if (s1 !== peg$FAILED) {
7304
+ s2 = [];
7305
+ if (peg$c32.test(input.charAt(peg$currPos))) {
7306
+ s3 = input.charAt(peg$currPos);
7307
+ peg$currPos++;
7308
+ } else {
7309
+ s3 = peg$FAILED;
7310
+ if (peg$silentFails === 0) {
7311
+ peg$fail(peg$c33);
7312
+ }
7313
+ }
7314
+ while (s3 !== peg$FAILED) {
7315
+ s2.push(s3);
7316
+ if (peg$c32.test(input.charAt(peg$currPos))) {
7317
+ s3 = input.charAt(peg$currPos);
7318
+ peg$currPos++;
7319
+ } else {
7320
+ s3 = peg$FAILED;
7321
+ if (peg$silentFails === 0) {
7322
+ peg$fail(peg$c33);
7323
+ }
7324
+ }
7325
+ }
7326
+ if (s2 !== peg$FAILED) {
7327
+ s3 = [];
7328
+ if (input.charCodeAt(peg$currPos) === 42) {
7329
+ s4 = peg$c34;
7330
+ peg$currPos++;
7331
+ } else {
7332
+ s4 = peg$FAILED;
7333
+ if (peg$silentFails === 0) {
7334
+ peg$fail(peg$c35);
7335
+ }
7336
+ }
7337
+ if (s4 !== peg$FAILED) {
7338
+ while (s4 !== peg$FAILED) {
7339
+ s3.push(s4);
7340
+ if (input.charCodeAt(peg$currPos) === 42) {
7341
+ s4 = peg$c34;
7342
+ peg$currPos++;
7343
+ } else {
7344
+ s4 = peg$FAILED;
7345
+ if (peg$silentFails === 0) {
7346
+ peg$fail(peg$c35);
7347
+ }
7348
+ }
7349
+ }
7350
+ } else {
7351
+ s3 = peg$FAILED;
7352
+ }
7353
+ if (s3 !== peg$FAILED) {
7354
+ s4 = [];
7355
+ s5 = peg$currPos;
7356
+ if (peg$c36.test(input.charAt(peg$currPos))) {
7357
+ s6 = input.charAt(peg$currPos);
7358
+ peg$currPos++;
7359
+ } else {
7360
+ s6 = peg$FAILED;
7361
+ if (peg$silentFails === 0) {
7362
+ peg$fail(peg$c37);
7363
+ }
7364
+ }
7365
+ if (s6 !== peg$FAILED) {
7366
+ s7 = [];
7367
+ if (peg$c32.test(input.charAt(peg$currPos))) {
7368
+ s8 = input.charAt(peg$currPos);
7369
+ peg$currPos++;
7370
+ } else {
7371
+ s8 = peg$FAILED;
7372
+ if (peg$silentFails === 0) {
7373
+ peg$fail(peg$c33);
7374
+ }
7375
+ }
7376
+ while (s8 !== peg$FAILED) {
7377
+ s7.push(s8);
7378
+ if (peg$c32.test(input.charAt(peg$currPos))) {
7379
+ s8 = input.charAt(peg$currPos);
7380
+ peg$currPos++;
7381
+ } else {
7382
+ s8 = peg$FAILED;
7383
+ if (peg$silentFails === 0) {
7384
+ peg$fail(peg$c33);
7385
+ }
7386
+ }
7387
+ }
7388
+ if (s7 !== peg$FAILED) {
7389
+ s8 = [];
7390
+ if (input.charCodeAt(peg$currPos) === 42) {
7391
+ s9 = peg$c34;
7392
+ peg$currPos++;
7393
+ } else {
7394
+ s9 = peg$FAILED;
7395
+ if (peg$silentFails === 0) {
7396
+ peg$fail(peg$c35);
7397
+ }
7398
+ }
7399
+ if (s9 !== peg$FAILED) {
7400
+ while (s9 !== peg$FAILED) {
7401
+ s8.push(s9);
7402
+ if (input.charCodeAt(peg$currPos) === 42) {
7403
+ s9 = peg$c34;
7404
+ peg$currPos++;
7405
+ } else {
7406
+ s9 = peg$FAILED;
7407
+ if (peg$silentFails === 0) {
7408
+ peg$fail(peg$c35);
7409
+ }
7410
+ }
7411
+ }
7412
+ } else {
7413
+ s8 = peg$FAILED;
7414
+ }
7415
+ if (s8 !== peg$FAILED) {
7416
+ s6 = [s6, s7, s8];
7417
+ s5 = s6;
7418
+ } else {
7419
+ peg$currPos = s5;
7420
+ s5 = peg$FAILED;
7421
+ }
7422
+ } else {
7423
+ peg$currPos = s5;
7424
+ s5 = peg$FAILED;
7425
+ }
7426
+ } else {
7427
+ peg$currPos = s5;
7428
+ s5 = peg$FAILED;
7429
+ }
7430
+ while (s5 !== peg$FAILED) {
7431
+ s4.push(s5);
7432
+ s5 = peg$currPos;
7433
+ if (peg$c36.test(input.charAt(peg$currPos))) {
7434
+ s6 = input.charAt(peg$currPos);
7435
+ peg$currPos++;
7436
+ } else {
7437
+ s6 = peg$FAILED;
7438
+ if (peg$silentFails === 0) {
7439
+ peg$fail(peg$c37);
7440
+ }
7441
+ }
7442
+ if (s6 !== peg$FAILED) {
7443
+ s7 = [];
7444
+ if (peg$c32.test(input.charAt(peg$currPos))) {
7445
+ s8 = input.charAt(peg$currPos);
7446
+ peg$currPos++;
7447
+ } else {
7448
+ s8 = peg$FAILED;
7449
+ if (peg$silentFails === 0) {
7450
+ peg$fail(peg$c33);
7451
+ }
7452
+ }
7453
+ while (s8 !== peg$FAILED) {
7454
+ s7.push(s8);
7455
+ if (peg$c32.test(input.charAt(peg$currPos))) {
7456
+ s8 = input.charAt(peg$currPos);
7457
+ peg$currPos++;
7458
+ } else {
7459
+ s8 = peg$FAILED;
7460
+ if (peg$silentFails === 0) {
7461
+ peg$fail(peg$c33);
7462
+ }
7463
+ }
7464
+ }
7465
+ if (s7 !== peg$FAILED) {
7466
+ s8 = [];
7467
+ if (input.charCodeAt(peg$currPos) === 42) {
7468
+ s9 = peg$c34;
7469
+ peg$currPos++;
7470
+ } else {
7471
+ s9 = peg$FAILED;
7472
+ if (peg$silentFails === 0) {
7473
+ peg$fail(peg$c35);
7474
+ }
7475
+ }
7476
+ if (s9 !== peg$FAILED) {
7477
+ while (s9 !== peg$FAILED) {
7478
+ s8.push(s9);
7479
+ if (input.charCodeAt(peg$currPos) === 42) {
7480
+ s9 = peg$c34;
7481
+ peg$currPos++;
7482
+ } else {
7483
+ s9 = peg$FAILED;
7484
+ if (peg$silentFails === 0) {
7485
+ peg$fail(peg$c35);
7486
+ }
7487
+ }
7488
+ }
7489
+ } else {
7490
+ s8 = peg$FAILED;
7491
+ }
7492
+ if (s8 !== peg$FAILED) {
7493
+ s6 = [s6, s7, s8];
7494
+ s5 = s6;
7495
+ } else {
7496
+ peg$currPos = s5;
7497
+ s5 = peg$FAILED;
7498
+ }
7499
+ } else {
7500
+ peg$currPos = s5;
7501
+ s5 = peg$FAILED;
7502
+ }
7503
+ } else {
7504
+ peg$currPos = s5;
7505
+ s5 = peg$FAILED;
7506
+ }
7507
+ }
7508
+ if (s4 !== peg$FAILED) {
7509
+ if (input.charCodeAt(peg$currPos) === 47) {
7510
+ s5 = peg$c38;
7511
+ peg$currPos++;
7512
+ } else {
7513
+ s5 = peg$FAILED;
7514
+ if (peg$silentFails === 0) {
7515
+ peg$fail(peg$c39);
7516
+ }
7517
+ }
7518
+ if (s5 !== peg$FAILED) {
7519
+ peg$savedPos = s0;
7520
+ s1 = peg$c16();
7521
+ s0 = s1;
7522
+ } else {
7523
+ peg$currPos = s0;
7524
+ s0 = peg$FAILED;
7525
+ }
7526
+ } else {
7527
+ peg$currPos = s0;
7528
+ s0 = peg$FAILED;
7529
+ }
7530
+ } else {
7531
+ peg$currPos = s0;
7532
+ s0 = peg$FAILED;
7533
+ }
7534
+ } else {
7535
+ peg$currPos = s0;
7536
+ s0 = peg$FAILED;
7537
+ }
7538
+ } else {
7539
+ peg$currPos = s0;
7540
+ s0 = peg$FAILED;
7541
+ }
7542
+ return s0;
7543
+ }
7544
+ function peg$parse__() {
7545
+ var s0, s1;
7546
+ s0 = [];
7547
+ if (peg$c40.test(input.charAt(peg$currPos))) {
7548
+ s1 = input.charAt(peg$currPos);
7549
+ peg$currPos++;
7550
+ } else {
7551
+ s1 = peg$FAILED;
7552
+ if (peg$silentFails === 0) {
7553
+ peg$fail(peg$c41);
7554
+ }
6519
7555
  }
6520
- if (peg$currPos > peg$maxFailPos) {
6521
- peg$maxFailPos = peg$currPos;
6522
- peg$maxFailExpected = [];
7556
+ while (s1 !== peg$FAILED) {
7557
+ s0.push(s1);
7558
+ if (peg$c40.test(input.charAt(peg$currPos))) {
7559
+ s1 = input.charAt(peg$currPos);
7560
+ peg$currPos++;
7561
+ } else {
7562
+ s1 = peg$FAILED;
7563
+ if (peg$silentFails === 0) {
7564
+ peg$fail(peg$c41);
7565
+ }
7566
+ }
6523
7567
  }
6524
- peg$maxFailExpected.push(expected);
6525
- }
6526
- function peg$buildStructuredError(expected, found, location) {
6527
- return new peg$SyntaxError(
6528
- peg$SyntaxError.buildMessage(expected, found),
6529
- expected,
6530
- found,
6531
- location
6532
- );
7568
+ return s0;
6533
7569
  }
6534
7570
  function peg$parsereactClassExpression() {
6535
7571
  var s0, s1, s2, s3, s4, s5, s6;
@@ -6576,7 +7612,7 @@ function peg$parse(input, options) {
6576
7612
  s4 = peg$parse_();
6577
7613
  if (s4 !== peg$FAILED) {
6578
7614
  peg$savedPos = s0;
6579
- s1 = peg$c0(s2, s3);
7615
+ s1 = peg$c42(s2, s3);
6580
7616
  s0 = s1;
6581
7617
  } else {
6582
7618
  peg$currPos = s0;
@@ -6641,7 +7677,7 @@ function peg$parse(input, options) {
6641
7677
  s4 = peg$parse_();
6642
7678
  if (s4 !== peg$FAILED) {
6643
7679
  peg$savedPos = s0;
6644
- s1 = peg$c1(s2, s3);
7680
+ s1 = peg$c43(s2, s3);
6645
7681
  s0 = s1;
6646
7682
  } else {
6647
7683
  peg$currPos = s0;
@@ -6676,12 +7712,12 @@ function peg$parse(input, options) {
6676
7712
  var s0, s1, s2, s3, s4, s5;
6677
7713
  s0 = peg$currPos;
6678
7714
  if (input.charCodeAt(peg$currPos) === 123) {
6679
- s1 = peg$c2;
7715
+ s1 = peg$c11;
6680
7716
  peg$currPos++;
6681
7717
  } else {
6682
7718
  s1 = peg$FAILED;
6683
7719
  if (peg$silentFails === 0) {
6684
- peg$fail(peg$c3);
7720
+ peg$fail(peg$c12);
6685
7721
  }
6686
7722
  }
6687
7723
  if (s1 !== peg$FAILED) {
@@ -6692,17 +7728,17 @@ function peg$parse(input, options) {
6692
7728
  s4 = peg$parse_();
6693
7729
  if (s4 !== peg$FAILED) {
6694
7730
  if (input.charCodeAt(peg$currPos) === 125) {
6695
- s5 = peg$c4;
7731
+ s5 = peg$c13;
6696
7732
  peg$currPos++;
6697
7733
  } else {
6698
7734
  s5 = peg$FAILED;
6699
7735
  if (peg$silentFails === 0) {
6700
- peg$fail(peg$c5);
7736
+ peg$fail(peg$c14);
6701
7737
  }
6702
7738
  }
6703
7739
  if (s5 !== peg$FAILED) {
6704
7740
  peg$savedPos = s0;
6705
- s1 = peg$c6(s3);
7741
+ s1 = peg$c44(s3);
6706
7742
  s0 = s1;
6707
7743
  } else {
6708
7744
  peg$currPos = s0;
@@ -6729,13 +7765,13 @@ function peg$parse(input, options) {
6729
7765
  function peg$parseternaryClassExpression() {
6730
7766
  var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;
6731
7767
  s0 = peg$currPos;
6732
- if (peg$c7.test(input.charAt(peg$currPos))) {
7768
+ if (peg$c45.test(input.charAt(peg$currPos))) {
6733
7769
  s1 = input.charAt(peg$currPos);
6734
7770
  peg$currPos++;
6735
7771
  } else {
6736
7772
  s1 = peg$FAILED;
6737
7773
  if (peg$silentFails === 0) {
6738
- peg$fail(peg$c8);
7774
+ peg$fail(peg$c46);
6739
7775
  }
6740
7776
  }
6741
7777
  if (s1 !== peg$FAILED) {
@@ -6745,13 +7781,13 @@ function peg$parse(input, options) {
6745
7781
  if (s3 !== peg$FAILED) {
6746
7782
  s4 = peg$parse_();
6747
7783
  if (s4 !== peg$FAILED) {
6748
- if (peg$c9.test(input.charAt(peg$currPos))) {
7784
+ if (peg$c47.test(input.charAt(peg$currPos))) {
6749
7785
  s5 = input.charAt(peg$currPos);
6750
7786
  peg$currPos++;
6751
7787
  } else {
6752
7788
  s5 = peg$FAILED;
6753
7789
  if (peg$silentFails === 0) {
6754
- peg$fail(peg$c10);
7790
+ peg$fail(peg$c48);
6755
7791
  }
6756
7792
  }
6757
7793
  if (s5 !== peg$FAILED) {
@@ -6762,13 +7798,13 @@ function peg$parse(input, options) {
6762
7798
  s8 = peg$currPos;
6763
7799
  s9 = peg$parse_();
6764
7800
  if (s9 !== peg$FAILED) {
6765
- if (peg$c11.test(input.charAt(peg$currPos))) {
7801
+ if (peg$c49.test(input.charAt(peg$currPos))) {
6766
7802
  s10 = input.charAt(peg$currPos);
6767
7803
  peg$currPos++;
6768
7804
  } else {
6769
7805
  s10 = peg$FAILED;
6770
7806
  if (peg$silentFails === 0) {
6771
- peg$fail(peg$c12);
7807
+ peg$fail(peg$c50);
6772
7808
  }
6773
7809
  }
6774
7810
  if (s10 !== peg$FAILED) {
@@ -6800,18 +7836,18 @@ function peg$parse(input, options) {
6800
7836
  if (s8 !== peg$FAILED) {
6801
7837
  s9 = peg$parse_();
6802
7838
  if (s9 !== peg$FAILED) {
6803
- if (peg$c13.test(input.charAt(peg$currPos))) {
7839
+ if (peg$c51.test(input.charAt(peg$currPos))) {
6804
7840
  s10 = input.charAt(peg$currPos);
6805
7841
  peg$currPos++;
6806
7842
  } else {
6807
7843
  s10 = peg$FAILED;
6808
7844
  if (peg$silentFails === 0) {
6809
- peg$fail(peg$c14);
7845
+ peg$fail(peg$c52);
6810
7846
  }
6811
7847
  }
6812
7848
  if (s10 !== peg$FAILED) {
6813
7849
  peg$savedPos = s0;
6814
- s1 = peg$c15(s3, s7, s8);
7850
+ s1 = peg$c53(s3, s7, s8);
6815
7851
  s0 = s1;
6816
7852
  } else {
6817
7853
  peg$currPos = s0;
@@ -6858,13 +7894,13 @@ function peg$parse(input, options) {
6858
7894
  function peg$parsecssClassName() {
6859
7895
  var s0, s1, s2, s3, s4;
6860
7896
  s0 = peg$currPos;
6861
- if (peg$c16.test(input.charAt(peg$currPos))) {
7897
+ if (peg$c54.test(input.charAt(peg$currPos))) {
6862
7898
  s1 = input.charAt(peg$currPos);
6863
7899
  peg$currPos++;
6864
7900
  } else {
6865
7901
  s1 = peg$FAILED;
6866
7902
  if (peg$silentFails === 0) {
6867
- peg$fail(peg$c17);
7903
+ peg$fail(peg$c55);
6868
7904
  }
6869
7905
  }
6870
7906
  if (s1 === peg$FAILED) {
@@ -6872,25 +7908,25 @@ function peg$parse(input, options) {
6872
7908
  }
6873
7909
  if (s1 !== peg$FAILED) {
6874
7910
  s2 = [];
6875
- if (peg$c18.test(input.charAt(peg$currPos))) {
7911
+ if (peg$c56.test(input.charAt(peg$currPos))) {
6876
7912
  s3 = input.charAt(peg$currPos);
6877
7913
  peg$currPos++;
6878
7914
  } else {
6879
7915
  s3 = peg$FAILED;
6880
7916
  if (peg$silentFails === 0) {
6881
- peg$fail(peg$c19);
7917
+ peg$fail(peg$c57);
6882
7918
  }
6883
7919
  }
6884
7920
  if (s3 !== peg$FAILED) {
6885
7921
  while (s3 !== peg$FAILED) {
6886
7922
  s2.push(s3);
6887
- if (peg$c18.test(input.charAt(peg$currPos))) {
7923
+ if (peg$c56.test(input.charAt(peg$currPos))) {
6888
7924
  s3 = input.charAt(peg$currPos);
6889
7925
  peg$currPos++;
6890
7926
  } else {
6891
7927
  s3 = peg$FAILED;
6892
7928
  if (peg$silentFails === 0) {
6893
- peg$fail(peg$c19);
7929
+ peg$fail(peg$c57);
6894
7930
  }
6895
7931
  }
6896
7932
  }
@@ -6899,30 +7935,30 @@ function peg$parse(input, options) {
6899
7935
  }
6900
7936
  if (s2 !== peg$FAILED) {
6901
7937
  s3 = [];
6902
- if (peg$c20.test(input.charAt(peg$currPos))) {
7938
+ if (peg$c58.test(input.charAt(peg$currPos))) {
6903
7939
  s4 = input.charAt(peg$currPos);
6904
7940
  peg$currPos++;
6905
7941
  } else {
6906
7942
  s4 = peg$FAILED;
6907
7943
  if (peg$silentFails === 0) {
6908
- peg$fail(peg$c21);
7944
+ peg$fail(peg$c59);
6909
7945
  }
6910
7946
  }
6911
7947
  while (s4 !== peg$FAILED) {
6912
7948
  s3.push(s4);
6913
- if (peg$c20.test(input.charAt(peg$currPos))) {
7949
+ if (peg$c58.test(input.charAt(peg$currPos))) {
6914
7950
  s4 = input.charAt(peg$currPos);
6915
7951
  peg$currPos++;
6916
7952
  } else {
6917
7953
  s4 = peg$FAILED;
6918
7954
  if (peg$silentFails === 0) {
6919
- peg$fail(peg$c21);
7955
+ peg$fail(peg$c59);
6920
7956
  }
6921
7957
  }
6922
7958
  }
6923
7959
  if (s3 !== peg$FAILED) {
6924
7960
  peg$savedPos = s0;
6925
- s1 = peg$c22();
7961
+ s1 = peg$c60();
6926
7962
  s0 = s1;
6927
7963
  } else {
6928
7964
  peg$currPos = s0;
@@ -6948,13 +7984,13 @@ function peg$parse(input, options) {
6948
7984
  s3 = peg$currPos;
6949
7985
  s4 = peg$parse_();
6950
7986
  if (s4 !== peg$FAILED) {
6951
- if (input.substr(peg$currPos, 2) === peg$c23) {
6952
- s5 = peg$c23;
7987
+ if (input.substr(peg$currPos, 2) === peg$c61) {
7988
+ s5 = peg$c61;
6953
7989
  peg$currPos += 2;
6954
7990
  } else {
6955
7991
  s5 = peg$FAILED;
6956
7992
  if (peg$silentFails === 0) {
6957
- peg$fail(peg$c24);
7993
+ peg$fail(peg$c62);
6958
7994
  }
6959
7995
  }
6960
7996
  if (s5 !== peg$FAILED) {
@@ -6989,12 +8025,12 @@ function peg$parse(input, options) {
6989
8025
  s6 = peg$parse_();
6990
8026
  if (s6 !== peg$FAILED) {
6991
8027
  if (input.charCodeAt(peg$currPos) === 44) {
6992
- s7 = peg$c25;
8028
+ s7 = peg$c63;
6993
8029
  peg$currPos++;
6994
8030
  } else {
6995
8031
  s7 = peg$FAILED;
6996
8032
  if (peg$silentFails === 0) {
6997
- peg$fail(peg$c26);
8033
+ peg$fail(peg$c64);
6998
8034
  }
6999
8035
  }
7000
8036
  if (s7 !== peg$FAILED) {
@@ -7005,13 +8041,13 @@ function peg$parse(input, options) {
7005
8041
  s10 = peg$currPos;
7006
8042
  s11 = peg$parse_();
7007
8043
  if (s11 !== peg$FAILED) {
7008
- if (input.substr(peg$currPos, 2) === peg$c23) {
7009
- s12 = peg$c23;
8044
+ if (input.substr(peg$currPos, 2) === peg$c61) {
8045
+ s12 = peg$c61;
7010
8046
  peg$currPos += 2;
7011
8047
  } else {
7012
8048
  s12 = peg$FAILED;
7013
8049
  if (peg$silentFails === 0) {
7014
- peg$fail(peg$c24);
8050
+ peg$fail(peg$c62);
7015
8051
  }
7016
8052
  }
7017
8053
  if (s12 !== peg$FAILED) {
@@ -7069,12 +8105,12 @@ function peg$parse(input, options) {
7069
8105
  s6 = peg$parse_();
7070
8106
  if (s6 !== peg$FAILED) {
7071
8107
  if (input.charCodeAt(peg$currPos) === 44) {
7072
- s7 = peg$c25;
8108
+ s7 = peg$c63;
7073
8109
  peg$currPos++;
7074
8110
  } else {
7075
8111
  s7 = peg$FAILED;
7076
8112
  if (peg$silentFails === 0) {
7077
- peg$fail(peg$c26);
8113
+ peg$fail(peg$c64);
7078
8114
  }
7079
8115
  }
7080
8116
  if (s7 !== peg$FAILED) {
@@ -7085,13 +8121,13 @@ function peg$parse(input, options) {
7085
8121
  s10 = peg$currPos;
7086
8122
  s11 = peg$parse_();
7087
8123
  if (s11 !== peg$FAILED) {
7088
- if (input.substr(peg$currPos, 2) === peg$c23) {
7089
- s12 = peg$c23;
8124
+ if (input.substr(peg$currPos, 2) === peg$c61) {
8125
+ s12 = peg$c61;
7090
8126
  peg$currPos += 2;
7091
8127
  } else {
7092
8128
  s12 = peg$FAILED;
7093
8129
  if (peg$silentFails === 0) {
7094
- peg$fail(peg$c24);
8130
+ peg$fail(peg$c62);
7095
8131
  }
7096
8132
  }
7097
8133
  if (s12 !== peg$FAILED) {
@@ -7146,7 +8182,7 @@ function peg$parse(input, options) {
7146
8182
  }
7147
8183
  if (s4 !== peg$FAILED) {
7148
8184
  peg$savedPos = s0;
7149
- s1 = peg$c27(s2, s3, s4);
8185
+ s1 = peg$c65(s2, s3, s4);
7150
8186
  s0 = s1;
7151
8187
  } else {
7152
8188
  peg$currPos = s0;
@@ -7171,29 +8207,29 @@ function peg$parse(input, options) {
7171
8207
  s0 = peg$currPos;
7172
8208
  s1 = peg$parse_();
7173
8209
  if (s1 !== peg$FAILED) {
7174
- if (input.substr(peg$currPos, 4) === peg$c28) {
7175
- s2 = peg$c28;
8210
+ if (input.substr(peg$currPos, 4) === peg$c66) {
8211
+ s2 = peg$c66;
7176
8212
  peg$currPos += 4;
7177
8213
  } else {
7178
8214
  s2 = peg$FAILED;
7179
8215
  if (peg$silentFails === 0) {
7180
- peg$fail(peg$c29);
8216
+ peg$fail(peg$c67);
7181
8217
  }
7182
8218
  }
7183
8219
  if (s2 !== peg$FAILED) {
7184
8220
  s3 = peg$parse_();
7185
8221
  if (s3 !== peg$FAILED) {
7186
8222
  if (input.charCodeAt(peg$currPos) === 40) {
7187
- s4 = peg$c30;
8223
+ s4 = peg$c68;
7188
8224
  peg$currPos++;
7189
8225
  } else {
7190
8226
  s4 = peg$FAILED;
7191
8227
  if (peg$silentFails === 0) {
7192
- peg$fail(peg$c31);
8228
+ peg$fail(peg$c69);
7193
8229
  }
7194
8230
  }
7195
8231
  if (s4 !== peg$FAILED) {
7196
- s5 = peg$c32;
8232
+ s5 = peg$c70;
7197
8233
  if (s5 !== peg$FAILED) {
7198
8234
  s6 = [];
7199
8235
  if (input.length > peg$currPos) {
@@ -7202,7 +8238,7 @@ function peg$parse(input, options) {
7202
8238
  } else {
7203
8239
  s7 = peg$FAILED;
7204
8240
  if (peg$silentFails === 0) {
7205
- peg$fail(peg$c33);
8241
+ peg$fail(peg$c71);
7206
8242
  }
7207
8243
  }
7208
8244
  while (s7 !== peg$FAILED) {
@@ -7213,13 +8249,13 @@ function peg$parse(input, options) {
7213
8249
  } else {
7214
8250
  s7 = peg$FAILED;
7215
8251
  if (peg$silentFails === 0) {
7216
- peg$fail(peg$c33);
8252
+ peg$fail(peg$c71);
7217
8253
  }
7218
8254
  }
7219
8255
  }
7220
8256
  if (s6 !== peg$FAILED) {
7221
8257
  peg$savedPos = s0;
7222
- s1 = peg$c34();
8258
+ s1 = peg$c72();
7223
8259
  s0 = s1;
7224
8260
  } else {
7225
8261
  peg$currPos = s0;
@@ -7252,25 +8288,25 @@ function peg$parse(input, options) {
7252
8288
  s0 = peg$currPos;
7253
8289
  s1 = peg$parse_();
7254
8290
  if (s1 !== peg$FAILED) {
7255
- if (input.substr(peg$currPos, 4) === peg$c28) {
7256
- s2 = peg$c28;
8291
+ if (input.substr(peg$currPos, 4) === peg$c66) {
8292
+ s2 = peg$c66;
7257
8293
  peg$currPos += 4;
7258
8294
  } else {
7259
8295
  s2 = peg$FAILED;
7260
8296
  if (peg$silentFails === 0) {
7261
- peg$fail(peg$c29);
8297
+ peg$fail(peg$c67);
7262
8298
  }
7263
8299
  }
7264
8300
  if (s2 !== peg$FAILED) {
7265
8301
  s3 = peg$parse_();
7266
8302
  if (s3 !== peg$FAILED) {
7267
8303
  if (input.charCodeAt(peg$currPos) === 40) {
7268
- s4 = peg$c30;
8304
+ s4 = peg$c68;
7269
8305
  peg$currPos++;
7270
8306
  } else {
7271
8307
  s4 = peg$FAILED;
7272
8308
  if (peg$silentFails === 0) {
7273
- peg$fail(peg$c31);
8309
+ peg$fail(peg$c69);
7274
8310
  }
7275
8311
  }
7276
8312
  if (s4 !== peg$FAILED) {
@@ -7281,12 +8317,12 @@ function peg$parse(input, options) {
7281
8317
  s8 = peg$parse_();
7282
8318
  if (s8 !== peg$FAILED) {
7283
8319
  if (input.charCodeAt(peg$currPos) === 124) {
7284
- s9 = peg$c35;
8320
+ s9 = peg$c73;
7285
8321
  peg$currPos++;
7286
8322
  } else {
7287
8323
  s9 = peg$FAILED;
7288
8324
  if (peg$silentFails === 0) {
7289
- peg$fail(peg$c36);
8325
+ peg$fail(peg$c74);
7290
8326
  }
7291
8327
  }
7292
8328
  if (s9 !== peg$FAILED) {
@@ -7318,12 +8354,12 @@ function peg$parse(input, options) {
7318
8354
  s8 = peg$parse_();
7319
8355
  if (s8 !== peg$FAILED) {
7320
8356
  if (input.charCodeAt(peg$currPos) === 124) {
7321
- s9 = peg$c35;
8357
+ s9 = peg$c73;
7322
8358
  peg$currPos++;
7323
8359
  } else {
7324
8360
  s9 = peg$FAILED;
7325
8361
  if (peg$silentFails === 0) {
7326
- peg$fail(peg$c36);
8362
+ peg$fail(peg$c74);
7327
8363
  }
7328
8364
  }
7329
8365
  if (s9 !== peg$FAILED) {
@@ -7354,19 +8390,19 @@ function peg$parse(input, options) {
7354
8390
  s7 = peg$parse_();
7355
8391
  if (s7 !== peg$FAILED) {
7356
8392
  if (input.charCodeAt(peg$currPos) === 41) {
7357
- s8 = peg$c37;
8393
+ s8 = peg$c75;
7358
8394
  peg$currPos++;
7359
8395
  } else {
7360
8396
  s8 = peg$FAILED;
7361
8397
  if (peg$silentFails === 0) {
7362
- peg$fail(peg$c38);
8398
+ peg$fail(peg$c76);
7363
8399
  }
7364
8400
  }
7365
8401
  if (s8 !== peg$FAILED) {
7366
8402
  s9 = peg$parse_();
7367
8403
  if (s9 !== peg$FAILED) {
7368
8404
  peg$savedPos = s0;
7369
- s1 = peg$c39(s5, s6);
8405
+ s1 = peg$c77(s5, s6);
7370
8406
  s0 = s1;
7371
8407
  } else {
7372
8408
  peg$currPos = s0;
@@ -7412,7 +8448,7 @@ function peg$parse(input, options) {
7412
8448
  s1 = peg$parsetemplate();
7413
8449
  if (s1 !== peg$FAILED) {
7414
8450
  peg$savedPos = s0;
7415
- s1 = peg$c40(s1);
8451
+ s1 = peg$c78(s1);
7416
8452
  }
7417
8453
  s0 = s1;
7418
8454
  return s0;
@@ -7423,7 +8459,7 @@ function peg$parse(input, options) {
7423
8459
  s1 = peg$parsetemplate();
7424
8460
  if (s1 !== peg$FAILED) {
7425
8461
  peg$savedPos = s0;
7426
- s1 = peg$c41(s1);
8462
+ s1 = peg$c79(s1);
7427
8463
  }
7428
8464
  s0 = s1;
7429
8465
  return s0;
@@ -7434,7 +8470,7 @@ function peg$parse(input, options) {
7434
8470
  s1 = peg$parseinteger();
7435
8471
  if (s1 !== peg$FAILED) {
7436
8472
  peg$savedPos = s0;
7437
- s1 = peg$c42(s1);
8473
+ s1 = peg$c80(s1);
7438
8474
  }
7439
8475
  s0 = s1;
7440
8476
  if (s0 === peg$FAILED) {
@@ -7442,7 +8478,7 @@ function peg$parse(input, options) {
7442
8478
  s1 = peg$parsetemplate();
7443
8479
  if (s1 !== peg$FAILED) {
7444
8480
  peg$savedPos = s0;
7445
- s1 = peg$c43(s1);
8481
+ s1 = peg$c81(s1);
7446
8482
  }
7447
8483
  s0 = s1;
7448
8484
  }
@@ -7454,7 +8490,7 @@ function peg$parse(input, options) {
7454
8490
  s1 = peg$parsetemplate();
7455
8491
  if (s1 !== peg$FAILED) {
7456
8492
  peg$savedPos = s0;
7457
- s1 = peg$c44(s1);
8493
+ s1 = peg$c82(s1);
7458
8494
  }
7459
8495
  s0 = s1;
7460
8496
  return s0;
@@ -7465,7 +8501,7 @@ function peg$parse(input, options) {
7465
8501
  s1 = peg$parsetemplate();
7466
8502
  if (s1 !== peg$FAILED) {
7467
8503
  peg$savedPos = s0;
7468
- s1 = peg$c45(s1);
8504
+ s1 = peg$c83(s1);
7469
8505
  }
7470
8506
  s0 = s1;
7471
8507
  return s0;
@@ -7476,7 +8512,7 @@ function peg$parse(input, options) {
7476
8512
  s1 = peg$parsereactTemplate();
7477
8513
  if (s1 !== peg$FAILED) {
7478
8514
  peg$savedPos = s0;
7479
- s1 = peg$c46(s1);
8515
+ s1 = peg$c84(s1);
7480
8516
  }
7481
8517
  s0 = s1;
7482
8518
  return s0;
@@ -7531,12 +8567,12 @@ function peg$parse(input, options) {
7531
8567
  s3 = [];
7532
8568
  s4 = peg$currPos;
7533
8569
  if (input.charCodeAt(peg$currPos) === 123) {
7534
- s5 = peg$c2;
8570
+ s5 = peg$c11;
7535
8571
  peg$currPos++;
7536
8572
  } else {
7537
8573
  s5 = peg$FAILED;
7538
8574
  if (peg$silentFails === 0) {
7539
- peg$fail(peg$c3);
8575
+ peg$fail(peg$c12);
7540
8576
  }
7541
8577
  }
7542
8578
  if (s5 !== peg$FAILED) {
@@ -7547,12 +8583,12 @@ function peg$parse(input, options) {
7547
8583
  s8 = peg$parse_();
7548
8584
  if (s8 !== peg$FAILED) {
7549
8585
  if (input.charCodeAt(peg$currPos) === 125) {
7550
- s9 = peg$c4;
8586
+ s9 = peg$c13;
7551
8587
  peg$currPos++;
7552
8588
  } else {
7553
8589
  s9 = peg$FAILED;
7554
8590
  if (peg$silentFails === 0) {
7555
- peg$fail(peg$c5);
8591
+ peg$fail(peg$c14);
7556
8592
  }
7557
8593
  }
7558
8594
  if (s9 !== peg$FAILED) {
@@ -7627,12 +8663,12 @@ function peg$parse(input, options) {
7627
8663
  s3.push(s4);
7628
8664
  s4 = peg$currPos;
7629
8665
  if (input.charCodeAt(peg$currPos) === 123) {
7630
- s5 = peg$c2;
8666
+ s5 = peg$c11;
7631
8667
  peg$currPos++;
7632
8668
  } else {
7633
8669
  s5 = peg$FAILED;
7634
8670
  if (peg$silentFails === 0) {
7635
- peg$fail(peg$c3);
8671
+ peg$fail(peg$c12);
7636
8672
  }
7637
8673
  }
7638
8674
  if (s5 !== peg$FAILED) {
@@ -7643,12 +8679,12 @@ function peg$parse(input, options) {
7643
8679
  s8 = peg$parse_();
7644
8680
  if (s8 !== peg$FAILED) {
7645
8681
  if (input.charCodeAt(peg$currPos) === 125) {
7646
- s9 = peg$c4;
8682
+ s9 = peg$c13;
7647
8683
  peg$currPos++;
7648
8684
  } else {
7649
8685
  s9 = peg$FAILED;
7650
8686
  if (peg$silentFails === 0) {
7651
- peg$fail(peg$c5);
8687
+ peg$fail(peg$c14);
7652
8688
  }
7653
8689
  }
7654
8690
  if (s9 !== peg$FAILED) {
@@ -7722,7 +8758,7 @@ function peg$parse(input, options) {
7722
8758
  }
7723
8759
  if (s3 !== peg$FAILED) {
7724
8760
  peg$savedPos = s0;
7725
- s1 = peg$c47(s1, s2, s3);
8761
+ s1 = peg$c85(s1, s2, s3);
7726
8762
  s0 = s1;
7727
8763
  } else {
7728
8764
  peg$currPos = s0;
@@ -7744,7 +8780,7 @@ function peg$parse(input, options) {
7744
8780
  s1 = peg$parsetemplate();
7745
8781
  if (s1 !== peg$FAILED) {
7746
8782
  peg$savedPos = s0;
7747
- s1 = peg$c48(s1);
8783
+ s1 = peg$c86(s1);
7748
8784
  }
7749
8785
  s0 = s1;
7750
8786
  return s0;
@@ -7799,12 +8835,12 @@ function peg$parse(input, options) {
7799
8835
  s3 = [];
7800
8836
  s4 = peg$currPos;
7801
8837
  if (input.charCodeAt(peg$currPos) === 123) {
7802
- s5 = peg$c2;
8838
+ s5 = peg$c11;
7803
8839
  peg$currPos++;
7804
8840
  } else {
7805
8841
  s5 = peg$FAILED;
7806
8842
  if (peg$silentFails === 0) {
7807
- peg$fail(peg$c3);
8843
+ peg$fail(peg$c12);
7808
8844
  }
7809
8845
  }
7810
8846
  if (s5 !== peg$FAILED) {
@@ -7815,12 +8851,12 @@ function peg$parse(input, options) {
7815
8851
  s8 = peg$parse_();
7816
8852
  if (s8 !== peg$FAILED) {
7817
8853
  if (input.charCodeAt(peg$currPos) === 125) {
7818
- s9 = peg$c4;
8854
+ s9 = peg$c13;
7819
8855
  peg$currPos++;
7820
8856
  } else {
7821
8857
  s9 = peg$FAILED;
7822
8858
  if (peg$silentFails === 0) {
7823
- peg$fail(peg$c5);
8859
+ peg$fail(peg$c14);
7824
8860
  }
7825
8861
  }
7826
8862
  if (s9 !== peg$FAILED) {
@@ -7895,12 +8931,12 @@ function peg$parse(input, options) {
7895
8931
  s3.push(s4);
7896
8932
  s4 = peg$currPos;
7897
8933
  if (input.charCodeAt(peg$currPos) === 123) {
7898
- s5 = peg$c2;
8934
+ s5 = peg$c11;
7899
8935
  peg$currPos++;
7900
8936
  } else {
7901
8937
  s5 = peg$FAILED;
7902
8938
  if (peg$silentFails === 0) {
7903
- peg$fail(peg$c3);
8939
+ peg$fail(peg$c12);
7904
8940
  }
7905
8941
  }
7906
8942
  if (s5 !== peg$FAILED) {
@@ -7911,12 +8947,12 @@ function peg$parse(input, options) {
7911
8947
  s8 = peg$parse_();
7912
8948
  if (s8 !== peg$FAILED) {
7913
8949
  if (input.charCodeAt(peg$currPos) === 125) {
7914
- s9 = peg$c4;
8950
+ s9 = peg$c13;
7915
8951
  peg$currPos++;
7916
8952
  } else {
7917
8953
  s9 = peg$FAILED;
7918
8954
  if (peg$silentFails === 0) {
7919
- peg$fail(peg$c5);
8955
+ peg$fail(peg$c14);
7920
8956
  }
7921
8957
  }
7922
8958
  if (s9 !== peg$FAILED) {
@@ -7990,7 +9026,7 @@ function peg$parse(input, options) {
7990
9026
  }
7991
9027
  if (s3 !== peg$FAILED) {
7992
9028
  peg$savedPos = s0;
7993
- s1 = peg$c49(s1, s2, s3);
9029
+ s1 = peg$c87(s1, s2, s3);
7994
9030
  s0 = s1;
7995
9031
  } else {
7996
9032
  peg$currPos = s0;
@@ -8020,7 +9056,7 @@ function peg$parse(input, options) {
8020
9056
  s1 = peg$parselogicalOrCondition();
8021
9057
  if (s1 !== peg$FAILED) {
8022
9058
  peg$savedPos = s0;
8023
- s1 = peg$c50(s1);
9059
+ s1 = peg$c88(s1);
8024
9060
  }
8025
9061
  s0 = s1;
8026
9062
  return s0;
@@ -8039,13 +9075,13 @@ function peg$parse(input, options) {
8039
9075
  s3 = peg$currPos;
8040
9076
  s4 = peg$parse_();
8041
9077
  if (s4 !== peg$FAILED) {
8042
- if (input.substr(peg$currPos, 2) === peg$c51) {
8043
- s5 = peg$c51;
9078
+ if (input.substr(peg$currPos, 2) === peg$c89) {
9079
+ s5 = peg$c89;
8044
9080
  peg$currPos += 2;
8045
9081
  } else {
8046
9082
  s5 = peg$FAILED;
8047
9083
  if (peg$silentFails === 0) {
8048
- peg$fail(peg$c52);
9084
+ peg$fail(peg$c90);
8049
9085
  }
8050
9086
  }
8051
9087
  if (s5 !== peg$FAILED) {
@@ -8076,13 +9112,13 @@ function peg$parse(input, options) {
8076
9112
  s3 = peg$currPos;
8077
9113
  s4 = peg$parse_();
8078
9114
  if (s4 !== peg$FAILED) {
8079
- if (input.substr(peg$currPos, 2) === peg$c51) {
8080
- s5 = peg$c51;
9115
+ if (input.substr(peg$currPos, 2) === peg$c89) {
9116
+ s5 = peg$c89;
8081
9117
  peg$currPos += 2;
8082
9118
  } else {
8083
9119
  s5 = peg$FAILED;
8084
9120
  if (peg$silentFails === 0) {
8085
- peg$fail(peg$c52);
9121
+ peg$fail(peg$c90);
8086
9122
  }
8087
9123
  }
8088
9124
  if (s5 !== peg$FAILED) {
@@ -8111,7 +9147,7 @@ function peg$parse(input, options) {
8111
9147
  }
8112
9148
  if (s2 !== peg$FAILED) {
8113
9149
  peg$savedPos = s0;
8114
- s1 = peg$c53(s1, s2);
9150
+ s1 = peg$c91(s1, s2);
8115
9151
  s0 = s1;
8116
9152
  } else {
8117
9153
  peg$currPos = s0;
@@ -8132,13 +9168,13 @@ function peg$parse(input, options) {
8132
9168
  s3 = peg$currPos;
8133
9169
  s4 = peg$parse_();
8134
9170
  if (s4 !== peg$FAILED) {
8135
- if (input.substr(peg$currPos, 2) === peg$c54) {
8136
- s5 = peg$c54;
9171
+ if (input.substr(peg$currPos, 2) === peg$c92) {
9172
+ s5 = peg$c92;
8137
9173
  peg$currPos += 2;
8138
9174
  } else {
8139
9175
  s5 = peg$FAILED;
8140
9176
  if (peg$silentFails === 0) {
8141
- peg$fail(peg$c55);
9177
+ peg$fail(peg$c93);
8142
9178
  }
8143
9179
  }
8144
9180
  if (s5 !== peg$FAILED) {
@@ -8169,13 +9205,13 @@ function peg$parse(input, options) {
8169
9205
  s3 = peg$currPos;
8170
9206
  s4 = peg$parse_();
8171
9207
  if (s4 !== peg$FAILED) {
8172
- if (input.substr(peg$currPos, 2) === peg$c54) {
8173
- s5 = peg$c54;
9208
+ if (input.substr(peg$currPos, 2) === peg$c92) {
9209
+ s5 = peg$c92;
8174
9210
  peg$currPos += 2;
8175
9211
  } else {
8176
9212
  s5 = peg$FAILED;
8177
9213
  if (peg$silentFails === 0) {
8178
- peg$fail(peg$c55);
9214
+ peg$fail(peg$c93);
8179
9215
  }
8180
9216
  }
8181
9217
  if (s5 !== peg$FAILED) {
@@ -8204,7 +9240,7 @@ function peg$parse(input, options) {
8204
9240
  }
8205
9241
  if (s2 !== peg$FAILED) {
8206
9242
  peg$savedPos = s0;
8207
- s1 = peg$c56(s1, s2);
9243
+ s1 = peg$c94(s1, s2);
8208
9244
  s0 = s1;
8209
9245
  } else {
8210
9246
  peg$currPos = s0;
@@ -8220,12 +9256,12 @@ function peg$parse(input, options) {
8220
9256
  var s0, s1, s2, s3, s4, s5;
8221
9257
  s0 = peg$currPos;
8222
9258
  if (input.charCodeAt(peg$currPos) === 40) {
8223
- s1 = peg$c30;
9259
+ s1 = peg$c68;
8224
9260
  peg$currPos++;
8225
9261
  } else {
8226
9262
  s1 = peg$FAILED;
8227
9263
  if (peg$silentFails === 0) {
8228
- peg$fail(peg$c31);
9264
+ peg$fail(peg$c69);
8229
9265
  }
8230
9266
  }
8231
9267
  if (s1 !== peg$FAILED) {
@@ -8236,17 +9272,17 @@ function peg$parse(input, options) {
8236
9272
  s4 = peg$parse_();
8237
9273
  if (s4 !== peg$FAILED) {
8238
9274
  if (input.charCodeAt(peg$currPos) === 41) {
8239
- s5 = peg$c37;
9275
+ s5 = peg$c75;
8240
9276
  peg$currPos++;
8241
9277
  } else {
8242
9278
  s5 = peg$FAILED;
8243
9279
  if (peg$silentFails === 0) {
8244
- peg$fail(peg$c38);
9280
+ peg$fail(peg$c76);
8245
9281
  }
8246
9282
  }
8247
9283
  if (s5 !== peg$FAILED) {
8248
9284
  peg$savedPos = s0;
8249
- s1 = peg$c57(s3);
9285
+ s1 = peg$c95(s3);
8250
9286
  s0 = s1;
8251
9287
  } else {
8252
9288
  peg$currPos = s0;
@@ -8287,7 +9323,7 @@ function peg$parse(input, options) {
8287
9323
  s2 = peg$parseaccessor();
8288
9324
  if (s2 !== peg$FAILED) {
8289
9325
  peg$savedPos = s0;
8290
- s1 = peg$c58(s1, s2);
9326
+ s1 = peg$c96(s1, s2);
8291
9327
  s0 = s1;
8292
9328
  } else {
8293
9329
  peg$currPos = s0;
@@ -8313,7 +9349,7 @@ function peg$parse(input, options) {
8313
9349
  s5 = peg$parseIdentifier();
8314
9350
  if (s5 !== peg$FAILED) {
8315
9351
  peg$savedPos = s0;
8316
- s1 = peg$c59(s1, s3, s5);
9352
+ s1 = peg$c97(s1, s3, s5);
8317
9353
  s0 = s1;
8318
9354
  } else {
8319
9355
  peg$currPos = s0;
@@ -8349,17 +9385,17 @@ function peg$parse(input, options) {
8349
9385
  var s0, s1;
8350
9386
  s0 = peg$currPos;
8351
9387
  if (input.charCodeAt(peg$currPos) === 46) {
8352
- s1 = peg$c60;
9388
+ s1 = peg$c98;
8353
9389
  peg$currPos++;
8354
9390
  } else {
8355
9391
  s1 = peg$FAILED;
8356
9392
  if (peg$silentFails === 0) {
8357
- peg$fail(peg$c61);
9393
+ peg$fail(peg$c99);
8358
9394
  }
8359
9395
  }
8360
9396
  if (s1 !== peg$FAILED) {
8361
9397
  peg$savedPos = s0;
8362
- s1 = peg$c62();
9398
+ s1 = peg$c100();
8363
9399
  }
8364
9400
  s0 = s1;
8365
9401
  return s0;
@@ -8374,12 +9410,12 @@ function peg$parse(input, options) {
8374
9410
  s4 = peg$parse_();
8375
9411
  if (s4 !== peg$FAILED) {
8376
9412
  if (input.charCodeAt(peg$currPos) === 46) {
8377
- s5 = peg$c60;
9413
+ s5 = peg$c98;
8378
9414
  peg$currPos++;
8379
9415
  } else {
8380
9416
  s5 = peg$FAILED;
8381
9417
  if (peg$silentFails === 0) {
8382
- peg$fail(peg$c61);
9418
+ peg$fail(peg$c99);
8383
9419
  }
8384
9420
  }
8385
9421
  if (s5 !== peg$FAILED) {
@@ -8411,12 +9447,12 @@ function peg$parse(input, options) {
8411
9447
  s4 = peg$parse_();
8412
9448
  if (s4 !== peg$FAILED) {
8413
9449
  if (input.charCodeAt(peg$currPos) === 46) {
8414
- s5 = peg$c60;
9450
+ s5 = peg$c98;
8415
9451
  peg$currPos++;
8416
9452
  } else {
8417
9453
  s5 = peg$FAILED;
8418
9454
  if (peg$silentFails === 0) {
8419
- peg$fail(peg$c61);
9455
+ peg$fail(peg$c99);
8420
9456
  }
8421
9457
  }
8422
9458
  if (s5 !== peg$FAILED) {
@@ -8445,7 +9481,7 @@ function peg$parse(input, options) {
8445
9481
  }
8446
9482
  if (s2 !== peg$FAILED) {
8447
9483
  peg$savedPos = s0;
8448
- s1 = peg$c63(s1, s2);
9484
+ s1 = peg$c101(s1, s2);
8449
9485
  s0 = s1;
8450
9486
  } else {
8451
9487
  peg$currPos = s0;
@@ -8464,25 +9500,25 @@ function peg$parse(input, options) {
8464
9500
  s1 = peg$parse_();
8465
9501
  if (s1 !== peg$FAILED) {
8466
9502
  s2 = [];
8467
- if (peg$c65.test(input.charAt(peg$currPos))) {
9503
+ if (peg$c103.test(input.charAt(peg$currPos))) {
8468
9504
  s3 = input.charAt(peg$currPos);
8469
9505
  peg$currPos++;
8470
9506
  } else {
8471
9507
  s3 = peg$FAILED;
8472
9508
  if (peg$silentFails === 0) {
8473
- peg$fail(peg$c66);
9509
+ peg$fail(peg$c104);
8474
9510
  }
8475
9511
  }
8476
9512
  if (s3 !== peg$FAILED) {
8477
9513
  while (s3 !== peg$FAILED) {
8478
9514
  s2.push(s3);
8479
- if (peg$c65.test(input.charAt(peg$currPos))) {
9515
+ if (peg$c103.test(input.charAt(peg$currPos))) {
8480
9516
  s3 = input.charAt(peg$currPos);
8481
9517
  peg$currPos++;
8482
9518
  } else {
8483
9519
  s3 = peg$FAILED;
8484
9520
  if (peg$silentFails === 0) {
8485
- peg$fail(peg$c66);
9521
+ peg$fail(peg$c104);
8486
9522
  }
8487
9523
  }
8488
9524
  }
@@ -8491,7 +9527,7 @@ function peg$parse(input, options) {
8491
9527
  }
8492
9528
  if (s2 !== peg$FAILED) {
8493
9529
  peg$savedPos = s0;
8494
- s1 = peg$c22();
9530
+ s1 = peg$c60();
8495
9531
  s0 = s1;
8496
9532
  } else {
8497
9533
  peg$currPos = s0;
@@ -8505,7 +9541,7 @@ function peg$parse(input, options) {
8505
9541
  if (s0 === peg$FAILED) {
8506
9542
  s1 = peg$FAILED;
8507
9543
  if (peg$silentFails === 0) {
8508
- peg$fail(peg$c64);
9544
+ peg$fail(peg$c102);
8509
9545
  }
8510
9546
  }
8511
9547
  return s0;
@@ -8514,24 +9550,24 @@ function peg$parse(input, options) {
8514
9550
  var s0, s1;
8515
9551
  peg$silentFails++;
8516
9552
  s0 = [];
8517
- if (peg$c68.test(input.charAt(peg$currPos))) {
9553
+ if (peg$c40.test(input.charAt(peg$currPos))) {
8518
9554
  s1 = input.charAt(peg$currPos);
8519
9555
  peg$currPos++;
8520
9556
  } else {
8521
9557
  s1 = peg$FAILED;
8522
9558
  if (peg$silentFails === 0) {
8523
- peg$fail(peg$c69);
9559
+ peg$fail(peg$c41);
8524
9560
  }
8525
9561
  }
8526
9562
  while (s1 !== peg$FAILED) {
8527
9563
  s0.push(s1);
8528
- if (peg$c68.test(input.charAt(peg$currPos))) {
9564
+ if (peg$c40.test(input.charAt(peg$currPos))) {
8529
9565
  s1 = input.charAt(peg$currPos);
8530
9566
  peg$currPos++;
8531
9567
  } else {
8532
9568
  s1 = peg$FAILED;
8533
9569
  if (peg$silentFails === 0) {
8534
- peg$fail(peg$c69);
9570
+ peg$fail(peg$c41);
8535
9571
  }
8536
9572
  }
8537
9573
  }
@@ -8539,7 +9575,7 @@ function peg$parse(input, options) {
8539
9575
  if (s0 === peg$FAILED) {
8540
9576
  s1 = peg$FAILED;
8541
9577
  if (peg$silentFails === 0) {
8542
- peg$fail(peg$c67);
9578
+ peg$fail(peg$c105);
8543
9579
  }
8544
9580
  }
8545
9581
  return s0;
@@ -8548,25 +9584,25 @@ function peg$parse(input, options) {
8548
9584
  var s0, s1, s2;
8549
9585
  s0 = peg$currPos;
8550
9586
  s1 = [];
8551
- if (peg$c70.test(input.charAt(peg$currPos))) {
9587
+ if (peg$c106.test(input.charAt(peg$currPos))) {
8552
9588
  s2 = input.charAt(peg$currPos);
8553
9589
  peg$currPos++;
8554
9590
  } else {
8555
9591
  s2 = peg$FAILED;
8556
9592
  if (peg$silentFails === 0) {
8557
- peg$fail(peg$c71);
9593
+ peg$fail(peg$c107);
8558
9594
  }
8559
9595
  }
8560
9596
  if (s2 !== peg$FAILED) {
8561
9597
  while (s2 !== peg$FAILED) {
8562
9598
  s1.push(s2);
8563
- if (peg$c70.test(input.charAt(peg$currPos))) {
9599
+ if (peg$c106.test(input.charAt(peg$currPos))) {
8564
9600
  s2 = input.charAt(peg$currPos);
8565
9601
  peg$currPos++;
8566
9602
  } else {
8567
9603
  s2 = peg$FAILED;
8568
9604
  if (peg$silentFails === 0) {
8569
- peg$fail(peg$c71);
9605
+ peg$fail(peg$c107);
8570
9606
  }
8571
9607
  }
8572
9608
  }
@@ -8575,7 +9611,7 @@ function peg$parse(input, options) {
8575
9611
  }
8576
9612
  if (s1 !== peg$FAILED) {
8577
9613
  peg$savedPos = s0;
8578
- s1 = peg$c72();
9614
+ s1 = peg$c108();
8579
9615
  }
8580
9616
  s0 = s1;
8581
9617
  return s0;
@@ -8583,55 +9619,55 @@ function peg$parse(input, options) {
8583
9619
  function peg$parsebang() {
8584
9620
  var s0;
8585
9621
  if (input.charCodeAt(peg$currPos) === 33) {
8586
- s0 = peg$c73;
9622
+ s0 = peg$c109;
8587
9623
  peg$currPos++;
8588
9624
  } else {
8589
9625
  s0 = peg$FAILED;
8590
9626
  if (peg$silentFails === 0) {
8591
- peg$fail(peg$c74);
9627
+ peg$fail(peg$c110);
8592
9628
  }
8593
9629
  }
8594
9630
  return s0;
8595
9631
  }
8596
9632
  function peg$parseEqualityOperator() {
8597
9633
  var s0;
8598
- if (input.substr(peg$currPos, 3) === peg$c75) {
8599
- s0 = peg$c75;
9634
+ if (input.substr(peg$currPos, 3) === peg$c111) {
9635
+ s0 = peg$c111;
8600
9636
  peg$currPos += 3;
8601
9637
  } else {
8602
9638
  s0 = peg$FAILED;
8603
9639
  if (peg$silentFails === 0) {
8604
- peg$fail(peg$c76);
9640
+ peg$fail(peg$c112);
8605
9641
  }
8606
9642
  }
8607
9643
  if (s0 === peg$FAILED) {
8608
- if (input.substr(peg$currPos, 3) === peg$c77) {
8609
- s0 = peg$c77;
9644
+ if (input.substr(peg$currPos, 3) === peg$c113) {
9645
+ s0 = peg$c113;
8610
9646
  peg$currPos += 3;
8611
9647
  } else {
8612
9648
  s0 = peg$FAILED;
8613
9649
  if (peg$silentFails === 0) {
8614
- peg$fail(peg$c78);
9650
+ peg$fail(peg$c114);
8615
9651
  }
8616
9652
  }
8617
9653
  if (s0 === peg$FAILED) {
8618
- if (input.substr(peg$currPos, 2) === peg$c79) {
8619
- s0 = peg$c79;
9654
+ if (input.substr(peg$currPos, 2) === peg$c115) {
9655
+ s0 = peg$c115;
8620
9656
  peg$currPos += 2;
8621
9657
  } else {
8622
9658
  s0 = peg$FAILED;
8623
9659
  if (peg$silentFails === 0) {
8624
- peg$fail(peg$c80);
9660
+ peg$fail(peg$c116);
8625
9661
  }
8626
9662
  }
8627
9663
  if (s0 === peg$FAILED) {
8628
- if (input.substr(peg$currPos, 2) === peg$c81) {
8629
- s0 = peg$c81;
9664
+ if (input.substr(peg$currPos, 2) === peg$c117) {
9665
+ s0 = peg$c117;
8630
9666
  peg$currPos += 2;
8631
9667
  } else {
8632
9668
  s0 = peg$FAILED;
8633
9669
  if (peg$silentFails === 0) {
8634
- peg$fail(peg$c82);
9670
+ peg$fail(peg$c118);
8635
9671
  }
8636
9672
  }
8637
9673
  }
@@ -8656,7 +9692,7 @@ function peg$parse(input, options) {
8656
9692
  s2 = peg$parseIdentifierName();
8657
9693
  if (s2 !== peg$FAILED) {
8658
9694
  peg$savedPos = s0;
8659
- s1 = peg$c83();
9695
+ s1 = peg$c119();
8660
9696
  s0 = s1;
8661
9697
  } else {
8662
9698
  peg$currPos = s0;
@@ -8682,7 +9718,7 @@ function peg$parse(input, options) {
8682
9718
  }
8683
9719
  if (s2 !== peg$FAILED) {
8684
9720
  peg$savedPos = s0;
8685
- s1 = peg$c85(s1, s2);
9721
+ s1 = peg$c121(s1, s2);
8686
9722
  s0 = s1;
8687
9723
  } else {
8688
9724
  peg$currPos = s0;
@@ -8696,7 +9732,7 @@ function peg$parse(input, options) {
8696
9732
  if (s0 === peg$FAILED) {
8697
9733
  s1 = peg$FAILED;
8698
9734
  if (peg$silentFails === 0) {
8699
- peg$fail(peg$c84);
9735
+ peg$fail(peg$c120);
8700
9736
  }
8701
9737
  }
8702
9738
  return s0;
@@ -8706,40 +9742,40 @@ function peg$parse(input, options) {
8706
9742
  s0 = peg$parseUnicodeLetter();
8707
9743
  if (s0 === peg$FAILED) {
8708
9744
  if (input.charCodeAt(peg$currPos) === 36) {
8709
- s0 = peg$c86;
9745
+ s0 = peg$c122;
8710
9746
  peg$currPos++;
8711
9747
  } else {
8712
9748
  s0 = peg$FAILED;
8713
9749
  if (peg$silentFails === 0) {
8714
- peg$fail(peg$c87);
9750
+ peg$fail(peg$c123);
8715
9751
  }
8716
9752
  }
8717
9753
  if (s0 === peg$FAILED) {
8718
9754
  if (input.charCodeAt(peg$currPos) === 95) {
8719
- s0 = peg$c88;
9755
+ s0 = peg$c124;
8720
9756
  peg$currPos++;
8721
9757
  } else {
8722
9758
  s0 = peg$FAILED;
8723
9759
  if (peg$silentFails === 0) {
8724
- peg$fail(peg$c89);
9760
+ peg$fail(peg$c125);
8725
9761
  }
8726
9762
  }
8727
9763
  if (s0 === peg$FAILED) {
8728
9764
  s0 = peg$currPos;
8729
9765
  if (input.charCodeAt(peg$currPos) === 92) {
8730
- s1 = peg$c90;
9766
+ s1 = peg$c126;
8731
9767
  peg$currPos++;
8732
9768
  } else {
8733
9769
  s1 = peg$FAILED;
8734
9770
  if (peg$silentFails === 0) {
8735
- peg$fail(peg$c91);
9771
+ peg$fail(peg$c127);
8736
9772
  }
8737
9773
  }
8738
9774
  if (s1 !== peg$FAILED) {
8739
9775
  s2 = peg$parseUnicodeEscapeSequence();
8740
9776
  if (s2 !== peg$FAILED) {
8741
9777
  peg$savedPos = s0;
8742
- s1 = peg$c92(s2);
9778
+ s1 = peg$c128(s2);
8743
9779
  s0 = s1;
8744
9780
  } else {
8745
9781
  peg$currPos = s0;
@@ -8765,22 +9801,22 @@ function peg$parse(input, options) {
8765
9801
  s0 = peg$parsePc();
8766
9802
  if (s0 === peg$FAILED) {
8767
9803
  if (input.charCodeAt(peg$currPos) === 8204) {
8768
- s0 = peg$c93;
9804
+ s0 = peg$c129;
8769
9805
  peg$currPos++;
8770
9806
  } else {
8771
9807
  s0 = peg$FAILED;
8772
9808
  if (peg$silentFails === 0) {
8773
- peg$fail(peg$c94);
9809
+ peg$fail(peg$c130);
8774
9810
  }
8775
9811
  }
8776
9812
  if (s0 === peg$FAILED) {
8777
9813
  if (input.charCodeAt(peg$currPos) === 8205) {
8778
- s0 = peg$c95;
9814
+ s0 = peg$c131;
8779
9815
  peg$currPos++;
8780
9816
  } else {
8781
9817
  s0 = peg$FAILED;
8782
9818
  if (peg$silentFails === 0) {
8783
- peg$fail(peg$c96);
9819
+ peg$fail(peg$c132);
8784
9820
  }
8785
9821
  }
8786
9822
  }
@@ -8828,12 +9864,12 @@ function peg$parse(input, options) {
8828
9864
  var s0, s1, s2, s3, s4, s5, s6, s7;
8829
9865
  s0 = peg$currPos;
8830
9866
  if (input.charCodeAt(peg$currPos) === 117) {
8831
- s1 = peg$c97;
9867
+ s1 = peg$c133;
8832
9868
  peg$currPos++;
8833
9869
  } else {
8834
9870
  s1 = peg$FAILED;
8835
9871
  if (peg$silentFails === 0) {
8836
- peg$fail(peg$c98);
9872
+ peg$fail(peg$c134);
8837
9873
  }
8838
9874
  }
8839
9875
  if (s1 !== peg$FAILED) {
@@ -8872,7 +9908,7 @@ function peg$parse(input, options) {
8872
9908
  }
8873
9909
  if (s2 !== peg$FAILED) {
8874
9910
  peg$savedPos = s0;
8875
- s1 = peg$c99(s2);
9911
+ s1 = peg$c135(s2);
8876
9912
  s0 = s1;
8877
9913
  } else {
8878
9914
  peg$currPos = s0;
@@ -9001,7 +10037,7 @@ function peg$parse(input, options) {
9001
10037
  s1 = peg$parseNullToken();
9002
10038
  if (s1 !== peg$FAILED) {
9003
10039
  peg$savedPos = s0;
9004
- s1 = peg$c100();
10040
+ s1 = peg$c136();
9005
10041
  }
9006
10042
  s0 = s1;
9007
10043
  return s0;
@@ -9012,7 +10048,7 @@ function peg$parse(input, options) {
9012
10048
  s1 = peg$parseTrueToken();
9013
10049
  if (s1 !== peg$FAILED) {
9014
10050
  peg$savedPos = s0;
9015
- s1 = peg$c101();
10051
+ s1 = peg$c137();
9016
10052
  }
9017
10053
  s0 = s1;
9018
10054
  if (s0 === peg$FAILED) {
@@ -9020,7 +10056,7 @@ function peg$parse(input, options) {
9020
10056
  s1 = peg$parseFalseToken();
9021
10057
  if (s1 !== peg$FAILED) {
9022
10058
  peg$savedPos = s0;
9023
- s1 = peg$c102();
10059
+ s1 = peg$c138();
9024
10060
  }
9025
10061
  s0 = s1;
9026
10062
  }
@@ -9028,143 +10064,143 @@ function peg$parse(input, options) {
9028
10064
  }
9029
10065
  function peg$parseLu() {
9030
10066
  var s0;
9031
- if (peg$c103.test(input.charAt(peg$currPos))) {
10067
+ if (peg$c139.test(input.charAt(peg$currPos))) {
9032
10068
  s0 = input.charAt(peg$currPos);
9033
10069
  peg$currPos++;
9034
10070
  } else {
9035
10071
  s0 = peg$FAILED;
9036
10072
  if (peg$silentFails === 0) {
9037
- peg$fail(peg$c104);
10073
+ peg$fail(peg$c140);
9038
10074
  }
9039
10075
  }
9040
10076
  return s0;
9041
10077
  }
9042
10078
  function peg$parseLl() {
9043
10079
  var s0;
9044
- if (peg$c105.test(input.charAt(peg$currPos))) {
10080
+ if (peg$c141.test(input.charAt(peg$currPos))) {
9045
10081
  s0 = input.charAt(peg$currPos);
9046
10082
  peg$currPos++;
9047
10083
  } else {
9048
10084
  s0 = peg$FAILED;
9049
10085
  if (peg$silentFails === 0) {
9050
- peg$fail(peg$c106);
10086
+ peg$fail(peg$c142);
9051
10087
  }
9052
10088
  }
9053
10089
  return s0;
9054
10090
  }
9055
10091
  function peg$parseLt() {
9056
10092
  var s0;
9057
- if (peg$c107.test(input.charAt(peg$currPos))) {
10093
+ if (peg$c143.test(input.charAt(peg$currPos))) {
9058
10094
  s0 = input.charAt(peg$currPos);
9059
10095
  peg$currPos++;
9060
10096
  } else {
9061
10097
  s0 = peg$FAILED;
9062
10098
  if (peg$silentFails === 0) {
9063
- peg$fail(peg$c108);
10099
+ peg$fail(peg$c144);
9064
10100
  }
9065
10101
  }
9066
10102
  return s0;
9067
10103
  }
9068
10104
  function peg$parseLm() {
9069
10105
  var s0;
9070
- if (peg$c109.test(input.charAt(peg$currPos))) {
10106
+ if (peg$c145.test(input.charAt(peg$currPos))) {
9071
10107
  s0 = input.charAt(peg$currPos);
9072
10108
  peg$currPos++;
9073
10109
  } else {
9074
10110
  s0 = peg$FAILED;
9075
10111
  if (peg$silentFails === 0) {
9076
- peg$fail(peg$c110);
10112
+ peg$fail(peg$c146);
9077
10113
  }
9078
10114
  }
9079
10115
  return s0;
9080
10116
  }
9081
10117
  function peg$parseLo() {
9082
10118
  var s0;
9083
- if (peg$c111.test(input.charAt(peg$currPos))) {
10119
+ if (peg$c147.test(input.charAt(peg$currPos))) {
9084
10120
  s0 = input.charAt(peg$currPos);
9085
10121
  peg$currPos++;
9086
10122
  } else {
9087
10123
  s0 = peg$FAILED;
9088
10124
  if (peg$silentFails === 0) {
9089
- peg$fail(peg$c112);
10125
+ peg$fail(peg$c148);
9090
10126
  }
9091
10127
  }
9092
10128
  return s0;
9093
10129
  }
9094
10130
  function peg$parseNl() {
9095
10131
  var s0;
9096
- if (peg$c113.test(input.charAt(peg$currPos))) {
10132
+ if (peg$c149.test(input.charAt(peg$currPos))) {
9097
10133
  s0 = input.charAt(peg$currPos);
9098
10134
  peg$currPos++;
9099
10135
  } else {
9100
10136
  s0 = peg$FAILED;
9101
10137
  if (peg$silentFails === 0) {
9102
- peg$fail(peg$c114);
10138
+ peg$fail(peg$c150);
9103
10139
  }
9104
10140
  }
9105
10141
  return s0;
9106
10142
  }
9107
10143
  function peg$parseMn() {
9108
10144
  var s0;
9109
- if (peg$c115.test(input.charAt(peg$currPos))) {
10145
+ if (peg$c151.test(input.charAt(peg$currPos))) {
9110
10146
  s0 = input.charAt(peg$currPos);
9111
10147
  peg$currPos++;
9112
10148
  } else {
9113
10149
  s0 = peg$FAILED;
9114
10150
  if (peg$silentFails === 0) {
9115
- peg$fail(peg$c116);
10151
+ peg$fail(peg$c152);
9116
10152
  }
9117
10153
  }
9118
10154
  return s0;
9119
10155
  }
9120
10156
  function peg$parseMc() {
9121
10157
  var s0;
9122
- if (peg$c117.test(input.charAt(peg$currPos))) {
10158
+ if (peg$c153.test(input.charAt(peg$currPos))) {
9123
10159
  s0 = input.charAt(peg$currPos);
9124
10160
  peg$currPos++;
9125
10161
  } else {
9126
10162
  s0 = peg$FAILED;
9127
10163
  if (peg$silentFails === 0) {
9128
- peg$fail(peg$c118);
10164
+ peg$fail(peg$c154);
9129
10165
  }
9130
10166
  }
9131
10167
  return s0;
9132
10168
  }
9133
10169
  function peg$parseNd() {
9134
10170
  var s0;
9135
- if (peg$c119.test(input.charAt(peg$currPos))) {
10171
+ if (peg$c155.test(input.charAt(peg$currPos))) {
9136
10172
  s0 = input.charAt(peg$currPos);
9137
10173
  peg$currPos++;
9138
10174
  } else {
9139
10175
  s0 = peg$FAILED;
9140
10176
  if (peg$silentFails === 0) {
9141
- peg$fail(peg$c120);
10177
+ peg$fail(peg$c156);
9142
10178
  }
9143
10179
  }
9144
10180
  return s0;
9145
10181
  }
9146
10182
  function peg$parsePc() {
9147
10183
  var s0;
9148
- if (peg$c121.test(input.charAt(peg$currPos))) {
10184
+ if (peg$c157.test(input.charAt(peg$currPos))) {
9149
10185
  s0 = input.charAt(peg$currPos);
9150
10186
  peg$currPos++;
9151
10187
  } else {
9152
10188
  s0 = peg$FAILED;
9153
10189
  if (peg$silentFails === 0) {
9154
- peg$fail(peg$c122);
10190
+ peg$fail(peg$c158);
9155
10191
  }
9156
10192
  }
9157
10193
  return s0;
9158
10194
  }
9159
10195
  function peg$parseHexDigit() {
9160
10196
  var s0;
9161
- if (peg$c125.test(input.charAt(peg$currPos))) {
10197
+ if (peg$c161.test(input.charAt(peg$currPos))) {
9162
10198
  s0 = input.charAt(peg$currPos);
9163
10199
  peg$currPos++;
9164
10200
  } else {
9165
10201
  s0 = peg$FAILED;
9166
10202
  if (peg$silentFails === 0) {
9167
- peg$fail(peg$c126);
10203
+ peg$fail(peg$c162);
9168
10204
  }
9169
10205
  }
9170
10206
  return s0;
@@ -9172,13 +10208,13 @@ function peg$parse(input, options) {
9172
10208
  function peg$parseBreakToken() {
9173
10209
  var s0, s1, s2, s3;
9174
10210
  s0 = peg$currPos;
9175
- if (input.substr(peg$currPos, 5) === peg$c127) {
9176
- s1 = peg$c127;
10211
+ if (input.substr(peg$currPos, 5) === peg$c163) {
10212
+ s1 = peg$c163;
9177
10213
  peg$currPos += 5;
9178
10214
  } else {
9179
10215
  s1 = peg$FAILED;
9180
10216
  if (peg$silentFails === 0) {
9181
- peg$fail(peg$c128);
10217
+ peg$fail(peg$c164);
9182
10218
  }
9183
10219
  }
9184
10220
  if (s1 !== peg$FAILED) {
@@ -9208,13 +10244,13 @@ function peg$parse(input, options) {
9208
10244
  function peg$parseCaseToken() {
9209
10245
  var s0, s1, s2, s3;
9210
10246
  s0 = peg$currPos;
9211
- if (input.substr(peg$currPos, 4) === peg$c129) {
9212
- s1 = peg$c129;
10247
+ if (input.substr(peg$currPos, 4) === peg$c165) {
10248
+ s1 = peg$c165;
9213
10249
  peg$currPos += 4;
9214
10250
  } else {
9215
10251
  s1 = peg$FAILED;
9216
10252
  if (peg$silentFails === 0) {
9217
- peg$fail(peg$c130);
10253
+ peg$fail(peg$c166);
9218
10254
  }
9219
10255
  }
9220
10256
  if (s1 !== peg$FAILED) {
@@ -9244,13 +10280,13 @@ function peg$parse(input, options) {
9244
10280
  function peg$parseCatchToken() {
9245
10281
  var s0, s1, s2, s3;
9246
10282
  s0 = peg$currPos;
9247
- if (input.substr(peg$currPos, 5) === peg$c131) {
9248
- s1 = peg$c131;
10283
+ if (input.substr(peg$currPos, 5) === peg$c167) {
10284
+ s1 = peg$c167;
9249
10285
  peg$currPos += 5;
9250
10286
  } else {
9251
10287
  s1 = peg$FAILED;
9252
10288
  if (peg$silentFails === 0) {
9253
- peg$fail(peg$c132);
10289
+ peg$fail(peg$c168);
9254
10290
  }
9255
10291
  }
9256
10292
  if (s1 !== peg$FAILED) {
@@ -9280,13 +10316,13 @@ function peg$parse(input, options) {
9280
10316
  function peg$parseClassToken() {
9281
10317
  var s0, s1, s2, s3;
9282
10318
  s0 = peg$currPos;
9283
- if (input.substr(peg$currPos, 5) === peg$c133) {
9284
- s1 = peg$c133;
10319
+ if (input.substr(peg$currPos, 5) === peg$c169) {
10320
+ s1 = peg$c169;
9285
10321
  peg$currPos += 5;
9286
10322
  } else {
9287
10323
  s1 = peg$FAILED;
9288
10324
  if (peg$silentFails === 0) {
9289
- peg$fail(peg$c134);
10325
+ peg$fail(peg$c170);
9290
10326
  }
9291
10327
  }
9292
10328
  if (s1 !== peg$FAILED) {
@@ -9316,13 +10352,13 @@ function peg$parse(input, options) {
9316
10352
  function peg$parseConstToken() {
9317
10353
  var s0, s1, s2, s3;
9318
10354
  s0 = peg$currPos;
9319
- if (input.substr(peg$currPos, 5) === peg$c135) {
9320
- s1 = peg$c135;
10355
+ if (input.substr(peg$currPos, 5) === peg$c171) {
10356
+ s1 = peg$c171;
9321
10357
  peg$currPos += 5;
9322
10358
  } else {
9323
10359
  s1 = peg$FAILED;
9324
10360
  if (peg$silentFails === 0) {
9325
- peg$fail(peg$c136);
10361
+ peg$fail(peg$c172);
9326
10362
  }
9327
10363
  }
9328
10364
  if (s1 !== peg$FAILED) {
@@ -9352,13 +10388,13 @@ function peg$parse(input, options) {
9352
10388
  function peg$parseContinueToken() {
9353
10389
  var s0, s1, s2, s3;
9354
10390
  s0 = peg$currPos;
9355
- if (input.substr(peg$currPos, 8) === peg$c137) {
9356
- s1 = peg$c137;
10391
+ if (input.substr(peg$currPos, 8) === peg$c173) {
10392
+ s1 = peg$c173;
9357
10393
  peg$currPos += 8;
9358
10394
  } else {
9359
10395
  s1 = peg$FAILED;
9360
10396
  if (peg$silentFails === 0) {
9361
- peg$fail(peg$c138);
10397
+ peg$fail(peg$c174);
9362
10398
  }
9363
10399
  }
9364
10400
  if (s1 !== peg$FAILED) {
@@ -9388,13 +10424,13 @@ function peg$parse(input, options) {
9388
10424
  function peg$parseDebuggerToken() {
9389
10425
  var s0, s1, s2, s3;
9390
10426
  s0 = peg$currPos;
9391
- if (input.substr(peg$currPos, 8) === peg$c139) {
9392
- s1 = peg$c139;
10427
+ if (input.substr(peg$currPos, 8) === peg$c175) {
10428
+ s1 = peg$c175;
9393
10429
  peg$currPos += 8;
9394
10430
  } else {
9395
10431
  s1 = peg$FAILED;
9396
10432
  if (peg$silentFails === 0) {
9397
- peg$fail(peg$c140);
10433
+ peg$fail(peg$c176);
9398
10434
  }
9399
10435
  }
9400
10436
  if (s1 !== peg$FAILED) {
@@ -9424,13 +10460,13 @@ function peg$parse(input, options) {
9424
10460
  function peg$parseDefaultToken() {
9425
10461
  var s0, s1, s2, s3;
9426
10462
  s0 = peg$currPos;
9427
- if (input.substr(peg$currPos, 7) === peg$c141) {
9428
- s1 = peg$c141;
10463
+ if (input.substr(peg$currPos, 7) === peg$c177) {
10464
+ s1 = peg$c177;
9429
10465
  peg$currPos += 7;
9430
10466
  } else {
9431
10467
  s1 = peg$FAILED;
9432
10468
  if (peg$silentFails === 0) {
9433
- peg$fail(peg$c142);
10469
+ peg$fail(peg$c178);
9434
10470
  }
9435
10471
  }
9436
10472
  if (s1 !== peg$FAILED) {
@@ -9460,13 +10496,13 @@ function peg$parse(input, options) {
9460
10496
  function peg$parseDeleteToken() {
9461
10497
  var s0, s1, s2, s3;
9462
10498
  s0 = peg$currPos;
9463
- if (input.substr(peg$currPos, 6) === peg$c143) {
9464
- s1 = peg$c143;
10499
+ if (input.substr(peg$currPos, 6) === peg$c179) {
10500
+ s1 = peg$c179;
9465
10501
  peg$currPos += 6;
9466
10502
  } else {
9467
10503
  s1 = peg$FAILED;
9468
10504
  if (peg$silentFails === 0) {
9469
- peg$fail(peg$c144);
10505
+ peg$fail(peg$c180);
9470
10506
  }
9471
10507
  }
9472
10508
  if (s1 !== peg$FAILED) {
@@ -9496,13 +10532,13 @@ function peg$parse(input, options) {
9496
10532
  function peg$parseDoToken() {
9497
10533
  var s0, s1, s2, s3;
9498
10534
  s0 = peg$currPos;
9499
- if (input.substr(peg$currPos, 2) === peg$c145) {
9500
- s1 = peg$c145;
10535
+ if (input.substr(peg$currPos, 2) === peg$c181) {
10536
+ s1 = peg$c181;
9501
10537
  peg$currPos += 2;
9502
10538
  } else {
9503
10539
  s1 = peg$FAILED;
9504
10540
  if (peg$silentFails === 0) {
9505
- peg$fail(peg$c146);
10541
+ peg$fail(peg$c182);
9506
10542
  }
9507
10543
  }
9508
10544
  if (s1 !== peg$FAILED) {
@@ -9532,13 +10568,13 @@ function peg$parse(input, options) {
9532
10568
  function peg$parseElseToken() {
9533
10569
  var s0, s1, s2, s3;
9534
10570
  s0 = peg$currPos;
9535
- if (input.substr(peg$currPos, 4) === peg$c147) {
9536
- s1 = peg$c147;
10571
+ if (input.substr(peg$currPos, 4) === peg$c183) {
10572
+ s1 = peg$c183;
9537
10573
  peg$currPos += 4;
9538
10574
  } else {
9539
10575
  s1 = peg$FAILED;
9540
10576
  if (peg$silentFails === 0) {
9541
- peg$fail(peg$c148);
10577
+ peg$fail(peg$c184);
9542
10578
  }
9543
10579
  }
9544
10580
  if (s1 !== peg$FAILED) {
@@ -9568,13 +10604,13 @@ function peg$parse(input, options) {
9568
10604
  function peg$parseEnumToken() {
9569
10605
  var s0, s1, s2, s3;
9570
10606
  s0 = peg$currPos;
9571
- if (input.substr(peg$currPos, 4) === peg$c28) {
9572
- s1 = peg$c28;
10607
+ if (input.substr(peg$currPos, 4) === peg$c66) {
10608
+ s1 = peg$c66;
9573
10609
  peg$currPos += 4;
9574
10610
  } else {
9575
10611
  s1 = peg$FAILED;
9576
10612
  if (peg$silentFails === 0) {
9577
- peg$fail(peg$c29);
10613
+ peg$fail(peg$c67);
9578
10614
  }
9579
10615
  }
9580
10616
  if (s1 !== peg$FAILED) {
@@ -9604,13 +10640,13 @@ function peg$parse(input, options) {
9604
10640
  function peg$parseExportToken() {
9605
10641
  var s0, s1, s2, s3;
9606
10642
  s0 = peg$currPos;
9607
- if (input.substr(peg$currPos, 6) === peg$c149) {
9608
- s1 = peg$c149;
10643
+ if (input.substr(peg$currPos, 6) === peg$c185) {
10644
+ s1 = peg$c185;
9609
10645
  peg$currPos += 6;
9610
10646
  } else {
9611
10647
  s1 = peg$FAILED;
9612
10648
  if (peg$silentFails === 0) {
9613
- peg$fail(peg$c150);
10649
+ peg$fail(peg$c186);
9614
10650
  }
9615
10651
  }
9616
10652
  if (s1 !== peg$FAILED) {
@@ -9640,13 +10676,13 @@ function peg$parse(input, options) {
9640
10676
  function peg$parseExtendsToken() {
9641
10677
  var s0, s1, s2, s3;
9642
10678
  s0 = peg$currPos;
9643
- if (input.substr(peg$currPos, 7) === peg$c151) {
9644
- s1 = peg$c151;
10679
+ if (input.substr(peg$currPos, 7) === peg$c187) {
10680
+ s1 = peg$c187;
9645
10681
  peg$currPos += 7;
9646
10682
  } else {
9647
10683
  s1 = peg$FAILED;
9648
10684
  if (peg$silentFails === 0) {
9649
- peg$fail(peg$c152);
10685
+ peg$fail(peg$c188);
9650
10686
  }
9651
10687
  }
9652
10688
  if (s1 !== peg$FAILED) {
@@ -9676,13 +10712,13 @@ function peg$parse(input, options) {
9676
10712
  function peg$parseFalseToken() {
9677
10713
  var s0, s1, s2, s3;
9678
10714
  s0 = peg$currPos;
9679
- if (input.substr(peg$currPos, 5) === peg$c153) {
9680
- s1 = peg$c153;
10715
+ if (input.substr(peg$currPos, 5) === peg$c189) {
10716
+ s1 = peg$c189;
9681
10717
  peg$currPos += 5;
9682
10718
  } else {
9683
10719
  s1 = peg$FAILED;
9684
10720
  if (peg$silentFails === 0) {
9685
- peg$fail(peg$c154);
10721
+ peg$fail(peg$c190);
9686
10722
  }
9687
10723
  }
9688
10724
  if (s1 !== peg$FAILED) {
@@ -9712,13 +10748,13 @@ function peg$parse(input, options) {
9712
10748
  function peg$parseFinallyToken() {
9713
10749
  var s0, s1, s2, s3;
9714
10750
  s0 = peg$currPos;
9715
- if (input.substr(peg$currPos, 7) === peg$c155) {
9716
- s1 = peg$c155;
10751
+ if (input.substr(peg$currPos, 7) === peg$c191) {
10752
+ s1 = peg$c191;
9717
10753
  peg$currPos += 7;
9718
10754
  } else {
9719
10755
  s1 = peg$FAILED;
9720
10756
  if (peg$silentFails === 0) {
9721
- peg$fail(peg$c156);
10757
+ peg$fail(peg$c192);
9722
10758
  }
9723
10759
  }
9724
10760
  if (s1 !== peg$FAILED) {
@@ -9748,13 +10784,13 @@ function peg$parse(input, options) {
9748
10784
  function peg$parseForToken() {
9749
10785
  var s0, s1, s2, s3;
9750
10786
  s0 = peg$currPos;
9751
- if (input.substr(peg$currPos, 3) === peg$c157) {
9752
- s1 = peg$c157;
10787
+ if (input.substr(peg$currPos, 3) === peg$c193) {
10788
+ s1 = peg$c193;
9753
10789
  peg$currPos += 3;
9754
10790
  } else {
9755
10791
  s1 = peg$FAILED;
9756
10792
  if (peg$silentFails === 0) {
9757
- peg$fail(peg$c158);
10793
+ peg$fail(peg$c194);
9758
10794
  }
9759
10795
  }
9760
10796
  if (s1 !== peg$FAILED) {
@@ -9784,13 +10820,13 @@ function peg$parse(input, options) {
9784
10820
  function peg$parseFunctionToken() {
9785
10821
  var s0, s1, s2, s3;
9786
10822
  s0 = peg$currPos;
9787
- if (input.substr(peg$currPos, 8) === peg$c159) {
9788
- s1 = peg$c159;
10823
+ if (input.substr(peg$currPos, 8) === peg$c195) {
10824
+ s1 = peg$c195;
9789
10825
  peg$currPos += 8;
9790
10826
  } else {
9791
10827
  s1 = peg$FAILED;
9792
10828
  if (peg$silentFails === 0) {
9793
- peg$fail(peg$c160);
10829
+ peg$fail(peg$c196);
9794
10830
  }
9795
10831
  }
9796
10832
  if (s1 !== peg$FAILED) {
@@ -9820,13 +10856,13 @@ function peg$parse(input, options) {
9820
10856
  function peg$parseIfToken() {
9821
10857
  var s0, s1, s2, s3;
9822
10858
  s0 = peg$currPos;
9823
- if (input.substr(peg$currPos, 2) === peg$c163) {
9824
- s1 = peg$c163;
10859
+ if (input.substr(peg$currPos, 2) === peg$c199) {
10860
+ s1 = peg$c199;
9825
10861
  peg$currPos += 2;
9826
10862
  } else {
9827
10863
  s1 = peg$FAILED;
9828
10864
  if (peg$silentFails === 0) {
9829
- peg$fail(peg$c164);
10865
+ peg$fail(peg$c200);
9830
10866
  }
9831
10867
  }
9832
10868
  if (s1 !== peg$FAILED) {
@@ -9856,13 +10892,13 @@ function peg$parse(input, options) {
9856
10892
  function peg$parseImportToken() {
9857
10893
  var s0, s1, s2, s3;
9858
10894
  s0 = peg$currPos;
9859
- if (input.substr(peg$currPos, 6) === peg$c165) {
9860
- s1 = peg$c165;
10895
+ if (input.substr(peg$currPos, 6) === peg$c201) {
10896
+ s1 = peg$c201;
9861
10897
  peg$currPos += 6;
9862
10898
  } else {
9863
10899
  s1 = peg$FAILED;
9864
10900
  if (peg$silentFails === 0) {
9865
- peg$fail(peg$c166);
10901
+ peg$fail(peg$c202);
9866
10902
  }
9867
10903
  }
9868
10904
  if (s1 !== peg$FAILED) {
@@ -9892,13 +10928,13 @@ function peg$parse(input, options) {
9892
10928
  function peg$parseInstanceofToken() {
9893
10929
  var s0, s1, s2, s3;
9894
10930
  s0 = peg$currPos;
9895
- if (input.substr(peg$currPos, 10) === peg$c167) {
9896
- s1 = peg$c167;
10931
+ if (input.substr(peg$currPos, 10) === peg$c203) {
10932
+ s1 = peg$c203;
9897
10933
  peg$currPos += 10;
9898
10934
  } else {
9899
10935
  s1 = peg$FAILED;
9900
10936
  if (peg$silentFails === 0) {
9901
- peg$fail(peg$c168);
10937
+ peg$fail(peg$c204);
9902
10938
  }
9903
10939
  }
9904
10940
  if (s1 !== peg$FAILED) {
@@ -9928,13 +10964,13 @@ function peg$parse(input, options) {
9928
10964
  function peg$parseInToken() {
9929
10965
  var s0, s1, s2, s3;
9930
10966
  s0 = peg$currPos;
9931
- if (input.substr(peg$currPos, 2) === peg$c169) {
9932
- s1 = peg$c169;
10967
+ if (input.substr(peg$currPos, 2) === peg$c205) {
10968
+ s1 = peg$c205;
9933
10969
  peg$currPos += 2;
9934
10970
  } else {
9935
10971
  s1 = peg$FAILED;
9936
10972
  if (peg$silentFails === 0) {
9937
- peg$fail(peg$c170);
10973
+ peg$fail(peg$c206);
9938
10974
  }
9939
10975
  }
9940
10976
  if (s1 !== peg$FAILED) {
@@ -9964,13 +11000,13 @@ function peg$parse(input, options) {
9964
11000
  function peg$parseNewToken() {
9965
11001
  var s0, s1, s2, s3;
9966
11002
  s0 = peg$currPos;
9967
- if (input.substr(peg$currPos, 3) === peg$c171) {
9968
- s1 = peg$c171;
11003
+ if (input.substr(peg$currPos, 3) === peg$c207) {
11004
+ s1 = peg$c207;
9969
11005
  peg$currPos += 3;
9970
11006
  } else {
9971
11007
  s1 = peg$FAILED;
9972
11008
  if (peg$silentFails === 0) {
9973
- peg$fail(peg$c172);
11009
+ peg$fail(peg$c208);
9974
11010
  }
9975
11011
  }
9976
11012
  if (s1 !== peg$FAILED) {
@@ -10000,13 +11036,13 @@ function peg$parse(input, options) {
10000
11036
  function peg$parseNullToken() {
10001
11037
  var s0, s1, s2, s3;
10002
11038
  s0 = peg$currPos;
10003
- if (input.substr(peg$currPos, 4) === peg$c173) {
10004
- s1 = peg$c173;
11039
+ if (input.substr(peg$currPos, 4) === peg$c209) {
11040
+ s1 = peg$c209;
10005
11041
  peg$currPos += 4;
10006
11042
  } else {
10007
11043
  s1 = peg$FAILED;
10008
11044
  if (peg$silentFails === 0) {
10009
- peg$fail(peg$c174);
11045
+ peg$fail(peg$c210);
10010
11046
  }
10011
11047
  }
10012
11048
  if (s1 !== peg$FAILED) {
@@ -10036,13 +11072,13 @@ function peg$parse(input, options) {
10036
11072
  function peg$parseReturnToken() {
10037
11073
  var s0, s1, s2, s3;
10038
11074
  s0 = peg$currPos;
10039
- if (input.substr(peg$currPos, 6) === peg$c175) {
10040
- s1 = peg$c175;
11075
+ if (input.substr(peg$currPos, 6) === peg$c211) {
11076
+ s1 = peg$c211;
10041
11077
  peg$currPos += 6;
10042
11078
  } else {
10043
11079
  s1 = peg$FAILED;
10044
11080
  if (peg$silentFails === 0) {
10045
- peg$fail(peg$c176);
11081
+ peg$fail(peg$c212);
10046
11082
  }
10047
11083
  }
10048
11084
  if (s1 !== peg$FAILED) {
@@ -10072,13 +11108,13 @@ function peg$parse(input, options) {
10072
11108
  function peg$parseSuperToken() {
10073
11109
  var s0, s1, s2, s3;
10074
11110
  s0 = peg$currPos;
10075
- if (input.substr(peg$currPos, 5) === peg$c179) {
10076
- s1 = peg$c179;
11111
+ if (input.substr(peg$currPos, 5) === peg$c215) {
11112
+ s1 = peg$c215;
10077
11113
  peg$currPos += 5;
10078
11114
  } else {
10079
11115
  s1 = peg$FAILED;
10080
11116
  if (peg$silentFails === 0) {
10081
- peg$fail(peg$c180);
11117
+ peg$fail(peg$c216);
10082
11118
  }
10083
11119
  }
10084
11120
  if (s1 !== peg$FAILED) {
@@ -10108,13 +11144,13 @@ function peg$parse(input, options) {
10108
11144
  function peg$parseSwitchToken() {
10109
11145
  var s0, s1, s2, s3;
10110
11146
  s0 = peg$currPos;
10111
- if (input.substr(peg$currPos, 6) === peg$c181) {
10112
- s1 = peg$c181;
11147
+ if (input.substr(peg$currPos, 6) === peg$c217) {
11148
+ s1 = peg$c217;
10113
11149
  peg$currPos += 6;
10114
11150
  } else {
10115
11151
  s1 = peg$FAILED;
10116
11152
  if (peg$silentFails === 0) {
10117
- peg$fail(peg$c182);
11153
+ peg$fail(peg$c218);
10118
11154
  }
10119
11155
  }
10120
11156
  if (s1 !== peg$FAILED) {
@@ -10144,13 +11180,13 @@ function peg$parse(input, options) {
10144
11180
  function peg$parseThisToken() {
10145
11181
  var s0, s1, s2, s3;
10146
11182
  s0 = peg$currPos;
10147
- if (input.substr(peg$currPos, 4) === peg$c183) {
10148
- s1 = peg$c183;
11183
+ if (input.substr(peg$currPos, 4) === peg$c219) {
11184
+ s1 = peg$c219;
10149
11185
  peg$currPos += 4;
10150
11186
  } else {
10151
11187
  s1 = peg$FAILED;
10152
11188
  if (peg$silentFails === 0) {
10153
- peg$fail(peg$c184);
11189
+ peg$fail(peg$c220);
10154
11190
  }
10155
11191
  }
10156
11192
  if (s1 !== peg$FAILED) {
@@ -10180,13 +11216,13 @@ function peg$parse(input, options) {
10180
11216
  function peg$parseThrowToken() {
10181
11217
  var s0, s1, s2, s3;
10182
11218
  s0 = peg$currPos;
10183
- if (input.substr(peg$currPos, 5) === peg$c185) {
10184
- s1 = peg$c185;
11219
+ if (input.substr(peg$currPos, 5) === peg$c221) {
11220
+ s1 = peg$c221;
10185
11221
  peg$currPos += 5;
10186
11222
  } else {
10187
11223
  s1 = peg$FAILED;
10188
11224
  if (peg$silentFails === 0) {
10189
- peg$fail(peg$c186);
11225
+ peg$fail(peg$c222);
10190
11226
  }
10191
11227
  }
10192
11228
  if (s1 !== peg$FAILED) {
@@ -10216,13 +11252,13 @@ function peg$parse(input, options) {
10216
11252
  function peg$parseTrueToken() {
10217
11253
  var s0, s1, s2, s3;
10218
11254
  s0 = peg$currPos;
10219
- if (input.substr(peg$currPos, 4) === peg$c187) {
10220
- s1 = peg$c187;
11255
+ if (input.substr(peg$currPos, 4) === peg$c223) {
11256
+ s1 = peg$c223;
10221
11257
  peg$currPos += 4;
10222
11258
  } else {
10223
11259
  s1 = peg$FAILED;
10224
11260
  if (peg$silentFails === 0) {
10225
- peg$fail(peg$c188);
11261
+ peg$fail(peg$c224);
10226
11262
  }
10227
11263
  }
10228
11264
  if (s1 !== peg$FAILED) {
@@ -10252,13 +11288,13 @@ function peg$parse(input, options) {
10252
11288
  function peg$parseTryToken() {
10253
11289
  var s0, s1, s2, s3;
10254
11290
  s0 = peg$currPos;
10255
- if (input.substr(peg$currPos, 3) === peg$c189) {
10256
- s1 = peg$c189;
11291
+ if (input.substr(peg$currPos, 3) === peg$c225) {
11292
+ s1 = peg$c225;
10257
11293
  peg$currPos += 3;
10258
11294
  } else {
10259
11295
  s1 = peg$FAILED;
10260
11296
  if (peg$silentFails === 0) {
10261
- peg$fail(peg$c190);
11297
+ peg$fail(peg$c226);
10262
11298
  }
10263
11299
  }
10264
11300
  if (s1 !== peg$FAILED) {
@@ -10288,13 +11324,13 @@ function peg$parse(input, options) {
10288
11324
  function peg$parseTypeofToken() {
10289
11325
  var s0, s1, s2, s3;
10290
11326
  s0 = peg$currPos;
10291
- if (input.substr(peg$currPos, 6) === peg$c191) {
10292
- s1 = peg$c191;
11327
+ if (input.substr(peg$currPos, 6) === peg$c227) {
11328
+ s1 = peg$c227;
10293
11329
  peg$currPos += 6;
10294
11330
  } else {
10295
11331
  s1 = peg$FAILED;
10296
11332
  if (peg$silentFails === 0) {
10297
- peg$fail(peg$c192);
11333
+ peg$fail(peg$c228);
10298
11334
  }
10299
11335
  }
10300
11336
  if (s1 !== peg$FAILED) {
@@ -10324,13 +11360,13 @@ function peg$parse(input, options) {
10324
11360
  function peg$parseVarToken() {
10325
11361
  var s0, s1, s2, s3;
10326
11362
  s0 = peg$currPos;
10327
- if (input.substr(peg$currPos, 3) === peg$c193) {
10328
- s1 = peg$c193;
11363
+ if (input.substr(peg$currPos, 3) === peg$c229) {
11364
+ s1 = peg$c229;
10329
11365
  peg$currPos += 3;
10330
11366
  } else {
10331
11367
  s1 = peg$FAILED;
10332
11368
  if (peg$silentFails === 0) {
10333
- peg$fail(peg$c194);
11369
+ peg$fail(peg$c230);
10334
11370
  }
10335
11371
  }
10336
11372
  if (s1 !== peg$FAILED) {
@@ -10360,13 +11396,13 @@ function peg$parse(input, options) {
10360
11396
  function peg$parseVoidToken() {
10361
11397
  var s0, s1, s2, s3;
10362
11398
  s0 = peg$currPos;
10363
- if (input.substr(peg$currPos, 4) === peg$c195) {
10364
- s1 = peg$c195;
11399
+ if (input.substr(peg$currPos, 4) === peg$c231) {
11400
+ s1 = peg$c231;
10365
11401
  peg$currPos += 4;
10366
11402
  } else {
10367
11403
  s1 = peg$FAILED;
10368
11404
  if (peg$silentFails === 0) {
10369
- peg$fail(peg$c196);
11405
+ peg$fail(peg$c232);
10370
11406
  }
10371
11407
  }
10372
11408
  if (s1 !== peg$FAILED) {
@@ -10396,13 +11432,13 @@ function peg$parse(input, options) {
10396
11432
  function peg$parseWhileToken() {
10397
11433
  var s0, s1, s2, s3;
10398
11434
  s0 = peg$currPos;
10399
- if (input.substr(peg$currPos, 5) === peg$c197) {
10400
- s1 = peg$c197;
11435
+ if (input.substr(peg$currPos, 5) === peg$c233) {
11436
+ s1 = peg$c233;
10401
11437
  peg$currPos += 5;
10402
11438
  } else {
10403
11439
  s1 = peg$FAILED;
10404
11440
  if (peg$silentFails === 0) {
10405
- peg$fail(peg$c198);
11441
+ peg$fail(peg$c234);
10406
11442
  }
10407
11443
  }
10408
11444
  if (s1 !== peg$FAILED) {
@@ -10432,13 +11468,13 @@ function peg$parse(input, options) {
10432
11468
  function peg$parseWithToken() {
10433
11469
  var s0, s1, s2, s3;
10434
11470
  s0 = peg$currPos;
10435
- if (input.substr(peg$currPos, 4) === peg$c199) {
10436
- s1 = peg$c199;
11471
+ if (input.substr(peg$currPos, 4) === peg$c235) {
11472
+ s1 = peg$c235;
10437
11473
  peg$currPos += 4;
10438
11474
  } else {
10439
11475
  s1 = peg$FAILED;
10440
11476
  if (peg$silentFails === 0) {
10441
- peg$fail(peg$c200);
11477
+ peg$fail(peg$c236);
10442
11478
  }
10443
11479
  }
10444
11480
  if (s1 !== peg$FAILED) {
@@ -10655,6 +11691,9 @@ function parseIsEnum(expression) {
10655
11691
  function parseEnumValues(expression) {
10656
11692
  return doParse(expression, "enum");
10657
11693
  }
11694
+ function parseStyleDeclarations(styleString, vars) {
11695
+ return doParse(styleString, "styleDeclarations", vars);
11696
+ }
10658
11697
  function isConditional(node2) {
10659
11698
  return node2.nodeType !== NodeType.TEXT_NODE && node2.hasAttribute("if");
10660
11699
  }
@@ -11030,6 +12069,16 @@ class RefNameGenerator {
11030
12069
  newAutoRefNameGenerator() {
11031
12070
  return "aR" + this.nextId++;
11032
12071
  }
12072
+ /**
12073
+ * Register a constName as used with the given Variables context.
12074
+ * This is used when an imported ref is used to ensure later refs
12075
+ * with the same name get a different suffix.
12076
+ */
12077
+ registerUsedConstName(constName, variables) {
12078
+ if (!this.constNamesToVariables.has(constName)) {
12079
+ this.constNamesToVariables.set(constName, variables);
12080
+ }
12081
+ }
11033
12082
  newConstantName(refName, variables) {
11034
12083
  let suffix = 2;
11035
12084
  let constName = camelCase(`ref ${refName}`);
@@ -11163,6 +12212,7 @@ function renderReferenceManager(refs, target) {
11163
12212
  const { referenceManagerInit, imports } = REFERENCE_MANAGER_TYPES[target];
11164
12213
  const options = target === 0 ? "options, " : "";
11165
12214
  const usedRefManagerNames = /* @__PURE__ */ new Set();
12215
+ const usedRefConstNames = /* @__PURE__ */ new Set();
11166
12216
  const getUniqueRefManagerName = (baseName) => {
11167
12217
  const baseCamelCase = camelCase(`${baseName}RefManager`);
11168
12218
  if (!usedRefManagerNames.has(baseCamelCase)) {
@@ -11178,6 +12228,20 @@ function renderReferenceManager(refs, target) {
11178
12228
  usedRefManagerNames.add(uniqueName);
11179
12229
  return uniqueName;
11180
12230
  };
12231
+ const getUniqueRefConstName = (constName) => {
12232
+ if (!usedRefConstNames.has(constName)) {
12233
+ usedRefConstNames.add(constName);
12234
+ return constName;
12235
+ }
12236
+ let suffix = 2;
12237
+ let uniqueName = `${constName}${suffix}`;
12238
+ while (usedRefConstNames.has(uniqueName)) {
12239
+ suffix++;
12240
+ uniqueName = `${constName}${suffix}`;
12241
+ }
12242
+ usedRefConstNames.add(uniqueName);
12243
+ return uniqueName;
12244
+ };
11181
12245
  const renderRefManagerNode = (name, refsTree) => {
11182
12246
  const elemRefs = refsTree.refs.filter((_) => !isComponentRef(_) && !isCollectionRef(_));
11183
12247
  const elemCollectionRefs = refsTree.refs.filter(
@@ -11192,10 +12256,10 @@ function renderReferenceManager(refs, target) {
11192
12256
  const compRefsDeclarations = compRefs.map((ref) => `'${ref.ref}'`).join(", ");
11193
12257
  const compCollectionRefsDeclarations = compCollectionRefs.map((ref) => `'${ref.ref}'`).join(", ");
11194
12258
  const refVariables = [
11195
- ...elemRefs.map((ref) => ref.constName),
11196
- ...elemCollectionRefs.map((ref) => ref.constName),
11197
- ...compRefs.map((ref) => ref.constName),
11198
- ...compCollectionRefs.map((ref) => ref.constName)
12259
+ ...elemRefs.map((ref) => getUniqueRefConstName(ref.constName)),
12260
+ ...elemCollectionRefs.map((ref) => getUniqueRefConstName(ref.constName)),
12261
+ ...compRefs.map((ref) => getUniqueRefConstName(ref.constName)),
12262
+ ...compCollectionRefs.map((ref) => getUniqueRefConstName(ref.constName))
11199
12263
  ].join(", ");
11200
12264
  const childRenderedRefManagers = [];
11201
12265
  const childRefManagerMembers = [];
@@ -11394,6 +12458,20 @@ const propertyMapping = {
11394
12458
  disabled: { type: BOOLEAN_ATTRIBUTE }
11395
12459
  };
11396
12460
  const attributesRequiresQuotes$1 = /[- ]/;
12461
+ function renderStyleAttribute(styleString, variables) {
12462
+ const { declarations, hasDynamic } = parseStyleDeclarations(styleString, variables);
12463
+ if (!hasDynamic) {
12464
+ return new RenderFragment(`style: {cssText: '${styleString.replace(/'/g, "\\'")}'}`);
12465
+ }
12466
+ const styleProps = declarations.map((decl) => {
12467
+ const propKey = decl.property.match(attributesRequiresQuotes$1) ? `"${decl.property}"` : decl.property;
12468
+ return decl.valueFragment.map((_) => `${propKey}: ${_}`);
12469
+ });
12470
+ return styleProps.reduce(
12471
+ (prev, current) => RenderFragment.merge(prev, current, ", "),
12472
+ RenderFragment.empty()
12473
+ ).map((_) => `style: {${_}}`);
12474
+ }
11397
12475
  function renderAttributes$1(element, { variables }) {
11398
12476
  let attributes2 = element.attributes;
11399
12477
  let renderedAttributes = [];
@@ -11402,13 +12480,9 @@ function renderAttributes$1(element, { variables }) {
11402
12480
  let attrKey = attrCanonical.match(attributesRequiresQuotes$1) ? `"${attrCanonical}"` : attrCanonical;
11403
12481
  if (attrCanonical === "if" || attrCanonical === "foreach" || attrCanonical === "trackby" || attrCanonical === "ref" || attrCanonical === AsyncDirectiveTypes.loading.directive || attrCanonical === AsyncDirectiveTypes.resolved.directive || attrCanonical === AsyncDirectiveTypes.rejected.directive)
11404
12482
  return;
11405
- if (attrCanonical === "style")
11406
- renderedAttributes.push(
11407
- new RenderFragment(
11408
- `style: {cssText: '${attributes2[attrName].replace(/'/g, "\\'")}'}`
11409
- )
11410
- );
11411
- else if (attrCanonical === "class") {
12483
+ if (attrCanonical === "style") {
12484
+ renderedAttributes.push(renderStyleAttribute(attributes2[attrName], variables));
12485
+ } else if (attrCanonical === "class") {
11412
12486
  let classExpression = parseClassExpression(attributes2[attrName], variables);
11413
12487
  renderedAttributes.push(classExpression.map((_) => `class: ${_}`));
11414
12488
  } else if (propertyMapping[attrCanonical]?.type === PROPERTY) {
@@ -11434,6 +12508,7 @@ function renderElementRef$1(element, { dynamicRef, variables, importedRefNameToR
11434
12508
  if (element.attributes.ref) {
11435
12509
  if (importedRefNameToRef.has(element.attributes.ref)) {
11436
12510
  const ref = importedRefNameToRef.get(element.attributes.ref);
12511
+ refNameGenerator.registerUsedConstName(ref.constName, variables);
11437
12512
  return new RenderFragment(`${ref.constName}()`);
11438
12513
  }
11439
12514
  let originalName = element.attributes.ref;
@@ -11490,6 +12565,7 @@ function renderChildCompProps$1(element, { variables }) {
11490
12565
  function renderChildCompRef$1(element, { dynamicRef, variables, refNameGenerator, importedRefNameToRef }) {
11491
12566
  if (importedRefNameToRef.has(element.attributes.ref)) {
11492
12567
  const ref = importedRefNameToRef.get(element.attributes.ref);
12568
+ refNameGenerator.registerUsedConstName(ref.constName, variables);
11493
12569
  return new RenderFragment(`${ref.constName}()`, Imports.none(), [], mkRefsTree([ref], {}));
11494
12570
  }
11495
12571
  let originalName = element.attributes.ref || refNameGenerator.newAutoRefNameGenerator();
@@ -12127,8 +13203,27 @@ ${renderedRefsManager}
12127
13203
  function generatePhaseSpecificTypes(jayFile) {
12128
13204
  const baseName = jayFile.baseElementName;
12129
13205
  const actualViewStateTypeName = jayFile.types.name;
13206
+ const hasHeadlessComponents = jayFile.headlessImports && jayFile.headlessImports.length > 0;
12130
13207
  if (jayFile.contract) {
12131
- return generateAllPhaseViewStateTypes(jayFile.contract, actualViewStateTypeName);
13208
+ const basePhaseTypes = generateAllPhaseViewStateTypes(
13209
+ jayFile.contract,
13210
+ actualViewStateTypeName
13211
+ );
13212
+ if (hasHeadlessComponents) {
13213
+ const headlessProps = jayFile.headlessImports.map((h) => `'${h.key}'`).join(" | ");
13214
+ const interactiveTypeName = `${baseName}InteractiveViewState`;
13215
+ const interactivePattern = new RegExp(
13216
+ `export type ${interactiveTypeName} = ([^;]+);`,
13217
+ "g"
13218
+ );
13219
+ return basePhaseTypes.replace(interactivePattern, (match, originalType) => {
13220
+ if (originalType.trim() === "{}") {
13221
+ return `export type ${interactiveTypeName} = Pick<${actualViewStateTypeName}, ${headlessProps}>;`;
13222
+ }
13223
+ return `export type ${interactiveTypeName} = ${originalType.trim()} & Pick<${actualViewStateTypeName}, ${headlessProps}>;`;
13224
+ });
13225
+ }
13226
+ return basePhaseTypes;
12132
13227
  }
12133
13228
  if (jayFile.hasInlineData) {
12134
13229
  return [
@@ -12142,51 +13237,7 @@ function generatePhaseSpecificTypes(jayFile) {
12142
13237
  function generateElementDefinitionFile(parsedFile) {
12143
13238
  return parsedFile.map((jayFile) => {
12144
13239
  const baseName = jayFile.baseElementName;
12145
- if (jayFile.contract && jayFile.contractRef) {
12146
- const contractFileName = path.basename(jayFile.contractRef, ".jay-contract");
12147
- const contractImport = `import {
12148
- ${baseName}ViewState,
12149
- ${baseName}Refs as ${baseName}ElementRefs,
12150
- ${baseName}SlowViewState,
12151
- ${baseName}FastViewState,
12152
- ${baseName}InteractiveViewState,
12153
- ${baseName}Contract
12154
- } from './${contractFileName}.jay-contract';`;
12155
- const { renderedElement: renderedElement2, preRenderType: preRenderType2, renderedImplementation: renderedImplementation2 } = renderFunctionImplementation$1(
12156
- jayFile.types,
12157
- jayFile.body,
12158
- jayFile.imports,
12159
- jayFile.baseElementName,
12160
- jayFile.namespaces,
12161
- jayFile.headlessImports,
12162
- RuntimeMode.WorkerTrusted,
12163
- jayFile.headLinks
12164
- );
12165
- const cssImport2 = generateCssImport(jayFile);
12166
- const runtimeImports = renderImports$1(
12167
- renderedImplementation2.imports.plus(Import.jayElement).minus(Import.jayContract).minus(Import.HTMLElementProxy).minus(Import.HTMLElementCollectionProxy),
12168
- ImportsFor.definition,
12169
- jayFile.imports,
12170
- RuntimeMode.MainTrusted
12171
- );
12172
- const reExports = `
12173
- // Re-export contract types for convenience
12174
- export { ${baseName}ViewState, ${baseName}ElementRefs, ${baseName}SlowViewState, ${baseName}FastViewState, ${baseName}InteractiveViewState, ${baseName}Contract };
12175
- `;
12176
- let htmlOnlyTypes = renderedElement2.replace(new RegExp(`export interface ${baseName}ViewState[\\s\\S]*?\\n}`, "g"), "").replace(
12177
- new RegExp(`export interface ${baseName}ElementRefs[\\s\\S]*?\\n}`, "g"),
12178
- ""
12179
- ).replace(new RegExp(`export type ${baseName}Contract = [\\s\\S]*?;`, "g"), "");
12180
- return [
12181
- contractImport,
12182
- runtimeImports,
12183
- cssImport2,
12184
- reExports,
12185
- htmlOnlyTypes,
12186
- renderFunctionDeclaration(preRenderType2)
12187
- ].filter((_) => _ !== null && _ !== "").join("\n\n");
12188
- }
12189
- let types2 = generateTypes(jayFile.types);
13240
+ const types2 = generateTypes(jayFile.types);
12190
13241
  let { renderedRefs, renderedElement, preRenderType, renderedImplementation } = renderFunctionImplementation$1(
12191
13242
  jayFile.types,
12192
13243
  jayFile.body,
@@ -16256,12 +17307,31 @@ ${contractType}`;
16256
17307
  });
16257
17308
  });
16258
17309
  }
17310
+ function isRecursiveReference$1(typeString) {
17311
+ return typeof typeString === "string" && typeString.startsWith("$/");
17312
+ }
17313
+ function parseArrayRecursiveReference$1(typeString) {
17314
+ if (typeof typeString !== "string")
17315
+ return null;
17316
+ const match = typeString.match(/^array<(\$\/.*)>$/);
17317
+ if (match && match[1]) {
17318
+ return match[1];
17319
+ }
17320
+ return null;
17321
+ }
16259
17322
  function parseDataType(tag, dataType) {
16260
17323
  if (!dataType)
16261
17324
  return void 0;
16262
17325
  if (parseIsEnum(dataType)) {
16263
17326
  return new JayEnumType(pascalCase(tag), parseEnumValues(dataType));
16264
17327
  }
17328
+ if (isRecursiveReference$1(dataType)) {
17329
+ return new JayRecursiveType(dataType);
17330
+ }
17331
+ const arrayRecursiveRef = parseArrayRecursiveReference$1(dataType);
17332
+ if (arrayRecursiveRef) {
17333
+ return new JayArrayType(new JayRecursiveType(arrayRecursiveRef));
17334
+ }
16265
17335
  return resolvePrimitiveType(dataType);
16266
17336
  }
16267
17337
  function parseDescription(description) {
@@ -16340,11 +17410,49 @@ function parseTag(tag) {
16340
17410
  if (tag.elementType) {
16341
17411
  validations.push(`Tag [${tag.tag}] of type [sub-contract] cannot have an elementType`);
16342
17412
  }
17413
+ if (tag.repeated && !tag.trackBy) {
17414
+ validations.push(
17415
+ `Tag [${tag.tag}] is a repeated sub-contract and requires a trackBy attribute`
17416
+ );
17417
+ }
17418
+ if (tag.trackBy && !tag.repeated) {
17419
+ validations.push(`Tag [${tag.tag}] has trackBy but is not marked as repeated`);
17420
+ }
17421
+ if (tag.trackBy && tag.tags) {
17422
+ const trackByTag = tag.tags.find((t) => t.tag === tag.trackBy);
17423
+ if (!trackByTag) {
17424
+ validations.push(
17425
+ `Tag [${tag.tag}] trackBy references [${tag.trackBy}] which does not exist in the sub-contract`
17426
+ );
17427
+ } else {
17428
+ const trackByTypes = parseType(trackByTag.type || "data", trackByTag.tag);
17429
+ if (!trackByTypes.val.includes(ContractTagType.data)) {
17430
+ validations.push(
17431
+ `Tag [${tag.tag}] trackBy must reference a data tag, but [${tag.trackBy}] is not a data tag`
17432
+ );
17433
+ }
17434
+ if (trackByTag.dataType) {
17435
+ const trackByDataType = trackByTag.dataType.toLowerCase();
17436
+ if (trackByDataType !== "string" && trackByDataType !== "number") {
17437
+ validations.push(
17438
+ `Tag [${tag.tag}] trackBy must reference a string or number property, but [${tag.trackBy}] is type [${trackByTag.dataType}]`
17439
+ );
17440
+ }
17441
+ }
17442
+ if (trackByTag.phase && trackByTag.phase !== "slow") {
17443
+ validations.push(
17444
+ `Tag [${tag.tag}] trackBy field [${tag.trackBy}] should have phase 'slow' (or no phase) since identity is slow-changing data. Found phase: [${trackByTag.phase}]. Note: trackBy fields are automatically included in all phases for merging.`
17445
+ );
17446
+ }
17447
+ }
17448
+ }
16343
17449
  } else {
16344
17450
  if (tag.tags)
16345
17451
  validations.push(`Tag [${tag.tag}] of type [${typesAsString}] cannot have tags`);
16346
17452
  if (tag.link)
16347
17453
  validations.push(`Tag [${tag.tag}] of type [${typesAsString}] cannot have link`);
17454
+ if (tag.trackBy)
17455
+ validations.push(`Tag [${tag.tag}] of type [${typesAsString}] cannot have trackBy`);
16348
17456
  }
16349
17457
  const description = parseDescription(tag.description);
16350
17458
  const elementType = parseElementType(tag.elementType);
@@ -16363,6 +17471,7 @@ function parseTag(tag) {
16363
17471
  ...required && { required },
16364
17472
  ...description && { description },
16365
17473
  ...tag.repeated && { repeated: tag.repeated },
17474
+ ...tag.trackBy && { trackBy: tag.trackBy },
16366
17475
  ...phase && { phase },
16367
17476
  link: tag.link
16368
17477
  },
@@ -16390,6 +17499,7 @@ function parseTag(tag) {
16390
17499
  ...description && { description },
16391
17500
  tags: parsedSubTags,
16392
17501
  ...tag.repeated && { repeated: tag.repeated },
17502
+ ...tag.trackBy && { trackBy: tag.trackBy },
16393
17503
  ...tag.async && { async: tag.async },
16394
17504
  ...phase && { phase }
16395
17505
  },
@@ -16475,7 +17585,7 @@ function parseArrayRecursiveReference(typeString) {
16475
17585
  }
16476
17586
  return null;
16477
17587
  }
16478
- function validateRecursivePath(referencePath, rootData, currentPath) {
17588
+ function validateRecursivePath(referencePath, rootData) {
16479
17589
  const hasArrayUnwrap = referencePath.endsWith("[]");
16480
17590
  const pathToValidate = hasArrayUnwrap ? referencePath.substring(0, referencePath.length - 2) : referencePath;
16481
17591
  const parts = pathToValidate.split("/").filter((p) => p);
@@ -16622,6 +17732,23 @@ function resolveRecursiveReferences(type2, rootType, validations) {
16622
17732
  }
16623
17733
  }
16624
17734
  async function parseTypes(jayYaml, validations, baseElementName, imports, headlessImports, filePath, importResolver) {
17735
+ const mergeHeadlessTypes = (resolvedType) => {
17736
+ const headlessImportedTypes = Object.fromEntries(
17737
+ headlessImports.map((_) => [
17738
+ _.key,
17739
+ new JayImportedType(_.rootType.name, _.rootType, true)
17740
+ ])
17741
+ );
17742
+ if (resolvedType instanceof JayObjectType) {
17743
+ const finalType = new JayObjectType(resolvedType.name, {
17744
+ ...headlessImportedTypes,
17745
+ ...resolvedType.props
17746
+ });
17747
+ resolveRecursiveReferences(finalType, finalType, validations);
17748
+ return finalType;
17749
+ }
17750
+ return resolvedType;
17751
+ };
16625
17752
  if (jayYaml.contractRef) {
16626
17753
  const contractPath = path.resolve(filePath, jayYaml.contractRef);
16627
17754
  try {
@@ -16637,10 +17764,16 @@ async function parseTypes(jayYaml, validations, baseElementName, imports, headle
16637
17764
  validations.push(...viewStateResult.validations);
16638
17765
  if (viewStateResult.val && viewStateResult.val.type) {
16639
17766
  const contractType = viewStateResult.val.type;
17767
+ let resolvedType;
16640
17768
  if (contractType instanceof JayObjectType) {
16641
- return new JayObjectType(baseElementName + "ViewState", contractType.props);
17769
+ resolvedType = new JayObjectType(
17770
+ baseElementName + "ViewState",
17771
+ contractType.props
17772
+ );
17773
+ } else {
17774
+ resolvedType = contractType;
16642
17775
  }
16643
- return contractType;
17776
+ return mergeHeadlessTypes(resolvedType);
16644
17777
  } else {
16645
17778
  validations.push(
16646
17779
  `Failed to extract ViewState from contract ${jayYaml.contractRef}`
@@ -16667,18 +17800,7 @@ async function parseTypes(jayYaml, validations, baseElementName, imports, headle
16667
17800
  jayYaml.data
16668
17801
  // Pass root data for recursive reference validation
16669
17802
  );
16670
- const headlessImportedTypes = Object.fromEntries(
16671
- headlessImports.map((_) => [
16672
- _.key,
16673
- new JayImportedType(_.rootType.name, _.rootType, true)
16674
- ])
16675
- );
16676
- const finalType = new JayObjectType(resolvedType.name, {
16677
- ...headlessImportedTypes,
16678
- ...resolvedType.props
16679
- });
16680
- resolveRecursiveReferences(finalType, finalType, validations);
16681
- return finalType;
17803
+ return mergeHeadlessTypes(resolvedType);
16682
17804
  } else if (typeof jayYaml.data === "string")
16683
17805
  return resolveImportedType(imports, jayYaml.data);
16684
17806
  }
@@ -16755,29 +17877,18 @@ function parseHeadfullImports(elements, validations, filePath, options, importRe
16755
17877
  }
16756
17878
  });
16757
17879
  }
16758
- async function parseHeadlessImports(elements, validations, filePath, importResolver) {
17880
+ async function parseHeadlessImports(elements, validations, filePath, importResolver, projectRoot) {
16759
17881
  const result = [];
16760
17882
  for await (const element of elements) {
16761
- const module = element.getAttribute("src");
16762
- const name = element.getAttribute("name");
16763
- const contractPath = element.getAttribute("contract");
17883
+ const pluginAttr = element.getAttribute("plugin");
17884
+ const contractAttr = element.getAttribute("contract");
16764
17885
  const key = element.getAttribute("key");
16765
- if (!module) {
16766
- validations.push(
16767
- "headless import must specify src attribute, module path to headless component implementation"
16768
- );
16769
- continue;
16770
- }
16771
- if (!name) {
16772
- validations.push(
16773
- `headless import must specify name of the constant to import from ${module}`
16774
- );
17886
+ if (!pluginAttr) {
17887
+ validations.push("headless import must specify plugin attribute");
16775
17888
  continue;
16776
17889
  }
16777
- if (!contractPath) {
16778
- validations.push(
16779
- "headless import must specify contract attribute, module path to headless component contract"
16780
- );
17890
+ if (!contractAttr) {
17891
+ validations.push("headless import must specify contract attribute");
16781
17892
  continue;
16782
17893
  }
16783
17894
  if (!key) {
@@ -16786,7 +17897,30 @@ async function parseHeadlessImports(elements, validations, filePath, importResol
16786
17897
  );
16787
17898
  continue;
16788
17899
  }
16789
- const contractFile = importResolver.resolveLink(filePath, contractPath);
17900
+ const resolveResult = importResolver.resolvePluginComponent(
17901
+ pluginAttr,
17902
+ contractAttr,
17903
+ projectRoot
17904
+ );
17905
+ validations.push(...resolveResult.validations);
17906
+ if (!resolveResult.val) {
17907
+ continue;
17908
+ }
17909
+ const absoluteComponentPath = resolveResult.val.componentPath;
17910
+ const name = resolveResult.val.componentName;
17911
+ const contractPath = resolveResult.val.contractPath;
17912
+ const isNpmPackage = resolveResult.val.isNpmPackage;
17913
+ const packageName = resolveResult.val.packageName;
17914
+ let module;
17915
+ if (isNpmPackage && packageName) {
17916
+ module = packageName;
17917
+ } else {
17918
+ module = path.relative(filePath, absoluteComponentPath);
17919
+ if (!module.startsWith(".")) {
17920
+ module = "./" + module;
17921
+ }
17922
+ }
17923
+ const contractFile = contractPath;
16790
17924
  try {
16791
17925
  const subContract = importResolver.loadContract(contractFile);
16792
17926
  validations.push(...subContract.validations);
@@ -16813,9 +17947,10 @@ async function parseHeadlessImports(elements, validations, filePath, importResol
16813
17947
  declaringModule: path.relative(filePath, enumsToImport2.declaringModule)
16814
17948
  })
16815
17949
  );
16816
- const enumsFromContract = enumsToImportRelativeToJayHtml.filter((_) => _.declaringModule === contractPath).map((_) => _.type);
17950
+ const relativeContractPath = path.relative(filePath, contractPath);
17951
+ const enumsFromContract = enumsToImportRelativeToJayHtml.filter((_) => _.declaringModule === relativeContractPath).map((_) => _.type);
16817
17952
  const contractLink = {
16818
- module: contractPath,
17953
+ module: relativeContractPath,
16819
17954
  names: [
16820
17955
  { name: type2.name, type: type2 },
16821
17956
  { name: refsTypeName, type: JayUnknown },
@@ -16823,7 +17958,7 @@ async function parseHeadlessImports(elements, validations, filePath, importResol
16823
17958
  ]
16824
17959
  };
16825
17960
  const enumsFromOtherContracts = enumsToImportRelativeToJayHtml.filter(
16826
- (_) => _.declaringModule !== contractPath
17961
+ (_) => _.declaringModule !== relativeContractPath
16827
17962
  );
16828
17963
  const enumImportLinks = Object.entries(
16829
17964
  enumsFromOtherContracts.reduce(
@@ -16849,7 +17984,7 @@ async function parseHeadlessImports(elements, validations, filePath, importResol
16849
17984
  module,
16850
17985
  names: [{ name, type: new JayComponentType(name, []) }]
16851
17986
  };
16852
- result.push({ key, refs, rootType: type2, contractLinks, codeLink });
17987
+ result.push({ key, refs, rootType: type2, contractLinks, codeLink, contract });
16853
17988
  });
16854
17989
  });
16855
17990
  } catch (e2) {
@@ -16869,9 +18004,7 @@ function parseHeadLinks(root, excludeCssLinks = false) {
16869
18004
  const rel = link.getAttribute("rel");
16870
18005
  if (rel === "import")
16871
18006
  return false;
16872
- if (excludeCssLinks && rel === "stylesheet")
16873
- return false;
16874
- return true;
18007
+ return !(excludeCssLinks && rel === "stylesheet");
16875
18008
  }).map((link) => {
16876
18009
  const attributes2 = { ...link.attributes };
16877
18010
  const rel = attributes2.rel || "";
@@ -16919,7 +18052,37 @@ ${cssContent}`);
16919
18052
  const css = cssParts.length > 0 ? cssParts.join("\n\n") : void 0;
16920
18053
  return new WithValidations(css, validations);
16921
18054
  }
16922
- async function parseJayFile(html2, filename, filePath, options, linkedContractResolver) {
18055
+ function extractTrackByMaps(pageContract, headlessImports) {
18056
+ const serverTrackByMap = {};
18057
+ const clientTrackByMap = {};
18058
+ function extractFromTags(tags, basePath = "", parentPhase) {
18059
+ for (const tag of tags) {
18060
+ const propertyName = camelCase(tag.tag);
18061
+ const currentPath = basePath ? `${basePath}.${propertyName}` : propertyName;
18062
+ const effectivePhase = tag.phase || parentPhase || "slow";
18063
+ if (tag.repeated && tag.trackBy) {
18064
+ const trackByField = camelCase(tag.trackBy);
18065
+ serverTrackByMap[currentPath] = trackByField;
18066
+ if (effectivePhase !== "fast+interactive") {
18067
+ clientTrackByMap[currentPath] = trackByField;
18068
+ }
18069
+ }
18070
+ if (tag.tags) {
18071
+ extractFromTags(tag.tags, currentPath, effectivePhase);
18072
+ }
18073
+ }
18074
+ }
18075
+ if (pageContract) {
18076
+ extractFromTags(pageContract.tags);
18077
+ }
18078
+ for (const headless of headlessImports) {
18079
+ if (headless.contract) {
18080
+ extractFromTags(headless.contract.tags, headless.key);
18081
+ }
18082
+ }
18083
+ return { serverTrackByMap, clientTrackByMap };
18084
+ }
18085
+ async function parseJayFile(html2, filename, filePath, options, linkedContractResolver, projectRoot) {
16923
18086
  const normalizedFileName = normalizeFilename(filename);
16924
18087
  const baseElementName = capitalCase(normalizedFileName, { delimiter: "" });
16925
18088
  const root = parse_2(html2);
@@ -16938,7 +18101,8 @@ async function parseJayFile(html2, filename, filePath, options, linkedContractRe
16938
18101
  root.querySelectorAll('script[type="application/jay-headless"]'),
16939
18102
  validations,
16940
18103
  filePath,
16941
- linkedContractResolver
18104
+ linkedContractResolver,
18105
+ projectRoot
16942
18106
  );
16943
18107
  const importNames = headfullImports.flatMap((_) => _.names);
16944
18108
  const types2 = await parseTypes(
@@ -16965,6 +18129,10 @@ async function parseJayFile(html2, filename, filePath, options, linkedContractRe
16965
18129
  validations.push(`jay file must have exactly a body tag`);
16966
18130
  return new WithValidations(void 0, validations);
16967
18131
  }
18132
+ const { serverTrackByMap, clientTrackByMap } = extractTrackByMaps(
18133
+ jayYaml.parsedContract,
18134
+ headlessImports
18135
+ );
16968
18136
  return new WithValidations(
16969
18137
  {
16970
18138
  format: SourceFileFormat.JayHtml,
@@ -16979,7 +18147,9 @@ async function parseJayFile(html2, filename, filePath, options, linkedContractRe
16979
18147
  filename: normalizedFileName,
16980
18148
  contract: jayYaml.parsedContract,
16981
18149
  contractRef: jayYaml.contractRef,
16982
- hasInlineData: jayYaml.hasInlineData
18150
+ hasInlineData: jayYaml.hasInlineData,
18151
+ serverTrackByMap: Object.keys(serverTrackByMap).length > 0 ? serverTrackByMap : void 0,
18152
+ clientTrackByMap: Object.keys(clientTrackByMap).length > 0 ? clientTrackByMap : void 0
16983
18153
  },
16984
18154
  validations
16985
18155
  );
@@ -17004,6 +18174,9 @@ const JAY_IMPORT_RESOLVER = {
17004
18174
  return path.resolve(importingModuleDir, link);
17005
18175
  else
17006
18176
  return require2.resolve(link, { paths: require2.resolve.paths(importingModuleDir) });
18177
+ },
18178
+ resolvePluginComponent(pluginName, contractName, projectRoot) {
18179
+ return resolvePluginComponent(projectRoot, pluginName, contractName);
17007
18180
  }
17008
18181
  };
17009
18182
  export {