{"version":3,"file":"react-intl.min.js","sources":["../node_modules/intl-messageformat-parser/lib/types.js","../node_modules/intl-messageformat-parser/lib/parser.js","../node_modules/intl-messageformat-parser/lib/normalize.js","../node_modules/intl-messageformat-parser/lib/skeleton.js","../node_modules/intl-messageformat-parser/lib/index.js","../node_modules/intl-format-cache/lib/index.js","../node_modules/intl-messageformat/lib/formatters.js","../node_modules/intl-messageformat/lib/core.js","../node_modules/@formatjs/intl-utils/lib/invariant.js","../lib/utils.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../lib/components/injectIntl.js","../lib/components/createFormattedComponent.js","../lib/formatters/number.js","../lib/formatters/relativeTime.js","../lib/formatters/dateTime.js","../lib/formatters/plural.js","../lib/formatters/message.js","../node_modules/shallow-equal/objects/index.js","../lib/formatters/list.js","../lib/formatters/displayName.js","../lib/components/provider.js","../lib/components/relative.js","../lib/components/plural.js","../lib/components/message.js","../lib/components/html-message.js","../lib/index.js","../lib/components/useIntl.js"],"sourcesContent":["export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n})(TYPE || (TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === 0 /* number */);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === 1 /* dateTime */);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// tslint:disable:only-arrow-functions\n// tslint:disable:object-literal-shorthand\n// tslint:disable:trailing-comma\n// tslint:disable:object-literal-sort-keys\n// tslint:disable:one-variable-per-declaration\n// tslint:disable:max-line-length\n// tslint:disable:no-consecutive-blank-lines\n// tslint:disable:align\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// Generated by PEG.js v. 0.10.0 (ts-pegjs plugin v. 0.2.6 )\n//\n// https://pegjs.org/ https://github.com/metadevpro/ts-pegjs\nimport { TYPE, } from './types';\nvar SyntaxError = /** @class */ (function (_super) {\n __extends(SyntaxError, _super);\n function SyntaxError(message, expected, found, location) {\n var _this = _super.call(this) || this;\n _this.message = message;\n _this.expected = expected;\n _this.found = found;\n _this.location = location;\n _this.name = \"SyntaxError\";\n if (typeof Error.captureStackTrace === \"function\") {\n Error.captureStackTrace(_this, SyntaxError);\n }\n return _this;\n }\n SyntaxError.buildMessage = function (expected, found) {\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n function literalEscape(s) {\n return s\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\"/g, \"\\\\\\\"\")\n .replace(/\\0/g, \"\\\\0\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/[\\x00-\\x0F]/g, function (ch) { return \"\\\\x0\" + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function (ch) { return \"\\\\x\" + hex(ch); });\n }\n function classEscape(s) {\n return s\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\]/g, \"\\\\]\")\n .replace(/\\^/g, \"\\\\^\")\n .replace(/-/g, \"\\\\-\")\n .replace(/\\0/g, \"\\\\0\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/[\\x00-\\x0F]/g, function (ch) { return \"\\\\x0\" + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function (ch) { return \"\\\\x\" + hex(ch); });\n }\n function describeExpectation(expectation) {\n switch (expectation.type) {\n case \"literal\":\n return \"\\\"\" + literalEscape(expectation.text) + \"\\\"\";\n case \"class\":\n var escapedParts = expectation.parts.map(function (part) {\n return Array.isArray(part)\n ? classEscape(part[0]) + \"-\" + classEscape(part[1])\n : classEscape(part);\n });\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts + \"]\";\n case \"any\":\n return \"any character\";\n case \"end\":\n return \"end of input\";\n case \"other\":\n return expectation.description;\n }\n }\n function describeExpected(expected1) {\n var descriptions = expected1.map(describeExpectation);\n var i;\n var j;\n descriptions.sort();\n if (descriptions.length > 0) {\n for (i = 1, j = 1; i < descriptions.length; i++) {\n if (descriptions[i - 1] !== descriptions[i]) {\n descriptions[j] = descriptions[i];\n j++;\n }\n }\n descriptions.length = j;\n }\n switch (descriptions.length) {\n case 1:\n return descriptions[0];\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n default:\n return descriptions.slice(0, -1).join(\", \")\n + \", or \"\n + descriptions[descriptions.length - 1];\n }\n }\n function describeFound(found1) {\n return found1 ? \"\\\"\" + literalEscape(found1) + \"\\\"\" : \"end of input\";\n }\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n return SyntaxError;\n}(Error));\nexport { SyntaxError };\nfunction peg$parse(input, options) {\n options = options !== undefined ? options : {};\n var peg$FAILED = {};\n var peg$startRuleFunctions = { start: peg$parsestart };\n var peg$startRuleFunction = peg$parsestart;\n var peg$c0 = function (parts) {\n return parts.join('');\n };\n var peg$c1 = function (messageText) {\n return __assign({ type: TYPE.literal, value: messageText }, insertLocation());\n };\n var peg$c2 = \"#\";\n var peg$c3 = peg$literalExpectation(\"#\", false);\n var peg$c4 = function () {\n return __assign({ type: TYPE.pound }, insertLocation());\n };\n var peg$c5 = peg$otherExpectation(\"argumentElement\");\n var peg$c6 = \"{\";\n var peg$c7 = peg$literalExpectation(\"{\", false);\n var peg$c8 = \"}\";\n var peg$c9 = peg$literalExpectation(\"}\", false);\n var peg$c10 = function (value) {\n return __assign({ type: TYPE.argument, value: value }, insertLocation());\n };\n var peg$c11 = peg$otherExpectation(\"numberSkeletonId\");\n var peg$c12 = /^['\\/{}]/;\n var peg$c13 = peg$classExpectation([\"'\", \"/\", \"{\", \"}\"], false, false);\n var peg$c14 = peg$anyExpectation();\n var peg$c15 = peg$otherExpectation(\"numberSkeletonTokenOption\");\n var peg$c16 = \"/\";\n var peg$c17 = peg$literalExpectation(\"/\", false);\n var peg$c18 = function (option) { return option; };\n var peg$c19 = peg$otherExpectation(\"numberSkeletonToken\");\n var peg$c20 = function (stem, options) {\n return { stem: stem, options: options };\n };\n var peg$c21 = function (tokens) {\n return __assign({ type: 0 /* number */, tokens: tokens }, insertLocation());\n };\n var peg$c22 = \"::\";\n var peg$c23 = peg$literalExpectation(\"::\", false);\n var peg$c24 = function (skeleton) { return skeleton; };\n var peg$c25 = function () { messageCtx.push('numberArgStyle'); return true; };\n var peg$c26 = function (style) {\n messageCtx.pop();\n return style.replace(/\\s*$/, '');\n };\n var peg$c27 = \",\";\n var peg$c28 = peg$literalExpectation(\",\", false);\n var peg$c29 = \"number\";\n var peg$c30 = peg$literalExpectation(\"number\", false);\n var peg$c31 = function (value, type, style) {\n return __assign({ type: type === 'number' ? TYPE.number : type === 'date' ? TYPE.date : TYPE.time, style: style && style[2], value: value }, insertLocation());\n };\n var peg$c32 = \"'\";\n var peg$c33 = peg$literalExpectation(\"'\", false);\n var peg$c34 = /^[^']/;\n var peg$c35 = peg$classExpectation([\"'\"], true, false);\n var peg$c36 = /^[^a-zA-Z'{}]/;\n var peg$c37 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"], \"'\", \"{\", \"}\"], true, false);\n var peg$c38 = /^[a-zA-Z]/;\n var peg$c39 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"]], false, false);\n var peg$c40 = function (pattern) {\n return __assign({ type: 1 /* dateTime */, pattern: pattern }, insertLocation());\n };\n var peg$c41 = function () { messageCtx.push('dateOrTimeArgStyle'); return true; };\n var peg$c42 = \"date\";\n var peg$c43 = peg$literalExpectation(\"date\", false);\n var peg$c44 = \"time\";\n var peg$c45 = peg$literalExpectation(\"time\", false);\n var peg$c46 = \"plural\";\n var peg$c47 = peg$literalExpectation(\"plural\", false);\n var peg$c48 = \"selectordinal\";\n var peg$c49 = peg$literalExpectation(\"selectordinal\", false);\n var peg$c50 = \"offset:\";\n var peg$c51 = peg$literalExpectation(\"offset:\", false);\n var peg$c52 = function (value, pluralType, offset, options) {\n return __assign({ type: TYPE.plural, pluralType: pluralType === 'plural' ? 'cardinal' : 'ordinal', value: value, offset: offset ? offset[2] : 0, options: options.reduce(function (all, _a) {\n var id = _a.id, value = _a.value, optionLocation = _a.location;\n if (id in all) {\n error(\"Duplicate option \\\"\" + id + \"\\\" in plural element: \\\"\" + text() + \"\\\"\", location());\n }\n all[id] = {\n value: value,\n location: optionLocation\n };\n return all;\n }, {}) }, insertLocation());\n };\n var peg$c53 = \"select\";\n var peg$c54 = peg$literalExpectation(\"select\", false);\n var peg$c55 = function (value, options) {\n return __assign({ type: TYPE.select, value: value, options: options.reduce(function (all, _a) {\n var id = _a.id, value = _a.value, optionLocation = _a.location;\n if (id in all) {\n error(\"Duplicate option \\\"\" + id + \"\\\" in select element: \\\"\" + text() + \"\\\"\", location());\n }\n all[id] = {\n value: value,\n location: optionLocation\n };\n return all;\n }, {}) }, insertLocation());\n };\n var peg$c56 = \"=\";\n var peg$c57 = peg$literalExpectation(\"=\", false);\n var peg$c58 = function (id) { messageCtx.push('select'); return true; };\n var peg$c59 = function (id, value) {\n messageCtx.pop();\n return __assign({ id: id,\n value: value }, insertLocation());\n };\n var peg$c60 = function (id) { messageCtx.push('plural'); return true; };\n var peg$c61 = function (id, value) {\n messageCtx.pop();\n return __assign({ id: id,\n value: value }, insertLocation());\n };\n var peg$c62 = peg$otherExpectation(\"whitespace\");\n var peg$c63 = /^[\\t-\\r \\x85\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/;\n var peg$c64 = peg$classExpectation([[\"\\t\", \"\\r\"], \" \", \"\\x85\", \"\\xA0\", \"\\u1680\", [\"\\u2000\", \"\\u200A\"], \"\\u2028\", \"\\u2029\", \"\\u202F\", \"\\u205F\", \"\\u3000\"], false, false);\n var peg$c65 = peg$otherExpectation(\"syntax pattern\");\n var peg$c66 = /^[!-\\/:-@[-\\^`{-~\\xA1-\\xA7\\xA9\\xAB\\xAC\\xAE\\xB0\\xB1\\xB6\\xBB\\xBF\\xD7\\xF7\\u2010-\\u2027\\u2030-\\u203E\\u2041-\\u2053\\u2055-\\u205E\\u2190-\\u245F\\u2500-\\u2775\\u2794-\\u2BFF\\u2E00-\\u2E7F\\u3001-\\u3003\\u3008-\\u3020\\u3030\\uFD3E\\uFD3F\\uFE45\\uFE46]/;\n var peg$c67 = peg$classExpectation([[\"!\", \"/\"], [\":\", \"@\"], [\"[\", \"^\"], \"`\", [\"{\", \"~\"], [\"\\xA1\", \"\\xA7\"], \"\\xA9\", \"\\xAB\", \"\\xAC\", \"\\xAE\", \"\\xB0\", \"\\xB1\", \"\\xB6\", \"\\xBB\", \"\\xBF\", \"\\xD7\", \"\\xF7\", [\"\\u2010\", \"\\u2027\"], [\"\\u2030\", \"\\u203E\"], [\"\\u2041\", \"\\u2053\"], [\"\\u2055\", \"\\u205E\"], [\"\\u2190\", \"\\u245F\"], [\"\\u2500\", \"\\u2775\"], [\"\\u2794\", \"\\u2BFF\"], [\"\\u2E00\", \"\\u2E7F\"], [\"\\u3001\", \"\\u3003\"], [\"\\u3008\", \"\\u3020\"], \"\\u3030\", \"\\uFD3E\", \"\\uFD3F\", \"\\uFE45\", \"\\uFE46\"], false, false);\n var peg$c68 = peg$otherExpectation(\"optional whitespace\");\n var peg$c69 = peg$otherExpectation(\"number\");\n var peg$c70 = \"-\";\n var peg$c71 = peg$literalExpectation(\"-\", false);\n var peg$c72 = function (negative, num) {\n return num\n ? negative\n ? -num\n : num\n : 0;\n };\n var peg$c73 = peg$otherExpectation(\"apostrophe\");\n var peg$c74 = peg$otherExpectation(\"double apostrophes\");\n var peg$c75 = \"''\";\n var peg$c76 = peg$literalExpectation(\"''\", false);\n var peg$c77 = function () { return \"'\"; };\n var peg$c78 = function (escapedChar, quotedChars) {\n return escapedChar + quotedChars.replace(\"''\", \"'\");\n };\n var peg$c79 = function (x) {\n return (x !== '{' &&\n !(isInPluralOption() && x === '#') &&\n !(isNestedMessageText() && x === '}'));\n };\n var peg$c80 = \"\\n\";\n var peg$c81 = peg$literalExpectation(\"\\n\", false);\n var peg$c82 = function (x) {\n return x === '{' || x === '}' || (isInPluralOption() && x === '#');\n };\n var peg$c83 = peg$otherExpectation(\"argNameOrNumber\");\n var peg$c84 = peg$otherExpectation(\"argNumber\");\n var peg$c85 = \"0\";\n var peg$c86 = peg$literalExpectation(\"0\", false);\n var peg$c87 = function () { return 0; };\n var peg$c88 = /^[1-9]/;\n var peg$c89 = peg$classExpectation([[\"1\", \"9\"]], false, false);\n var peg$c90 = /^[0-9]/;\n var peg$c91 = peg$classExpectation([[\"0\", \"9\"]], false, false);\n var peg$c92 = function (digits) {\n return parseInt(digits.join(''), 10);\n };\n var peg$c93 = peg$otherExpectation(\"argName\");\n var peg$currPos = 0;\n var peg$savedPos = 0;\n var peg$posDetailsCache = [{ line: 1, column: 1 }];\n var peg$maxFailPos = 0;\n var peg$maxFailExpected = [];\n var peg$silentFails = 0;\n var peg$result;\n if (options.startRule !== undefined) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n function expected(description, location1) {\n location1 = location1 !== undefined\n ? location1\n : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildStructuredError([peg$otherExpectation(description)], input.substring(peg$savedPos, peg$currPos), location1);\n }\n function error(message, location1) {\n location1 = location1 !== undefined\n ? location1\n : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildSimpleError(message, location1);\n }\n function peg$literalExpectation(text1, ignoreCase) {\n return { type: \"literal\", text: text1, ignoreCase: ignoreCase };\n }\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts: parts, inverted: inverted, ignoreCase: ignoreCase };\n }\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n function peg$otherExpectation(description) {\n return { type: \"other\", description: description };\n }\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos];\n var p;\n if (details) {\n return details;\n }\n else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\n };\n while (p < pos) {\n if (input.charCodeAt(p) === 10) {\n details.line++;\n details.column = 1;\n }\n else {\n details.column++;\n }\n p++;\n }\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n function peg$computeLocation(startPos, endPos) {\n var startPosDetails = peg$computePosDetails(startPos);\n var endPosDetails = peg$computePosDetails(endPos);\n return {\n start: {\n offset: startPos,\n line: startPosDetails.line,\n column: startPosDetails.column\n },\n end: {\n offset: endPos,\n line: endPosDetails.line,\n column: endPosDetails.column\n }\n };\n }\n function peg$fail(expected1) {\n if (peg$currPos < peg$maxFailPos) {\n return;\n }\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n peg$maxFailExpected.push(expected1);\n }\n function peg$buildSimpleError(message, location1) {\n return new SyntaxError(message, [], \"\", location1);\n }\n function peg$buildStructuredError(expected1, found, location1) {\n return new SyntaxError(SyntaxError.buildMessage(expected1, found), expected1, found, location1);\n }\n function peg$parsestart() {\n var s0;\n s0 = peg$parsemessage();\n return s0;\n }\n function peg$parsemessage() {\n var s0, s1;\n s0 = [];\n s1 = peg$parsemessageElement();\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n s1 = peg$parsemessageElement();\n }\n return s0;\n }\n function peg$parsemessageElement() {\n var s0;\n s0 = peg$parseliteralElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseargumentElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsesimpleFormatElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepluralElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepoundElement();\n }\n }\n }\n }\n }\n return s0;\n }\n function peg$parsemessageText() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsedoubleApostrophes();\n if (s2 === peg$FAILED) {\n s2 = peg$parsequotedString();\n if (s2 === peg$FAILED) {\n s2 = peg$parseunquotedString();\n }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsedoubleApostrophes();\n if (s2 === peg$FAILED) {\n s2 = peg$parsequotedString();\n if (s2 === peg$FAILED) {\n s2 = peg$parseunquotedString();\n }\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c0(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parseliteralElement() {\n var s0, s1;\n s0 = peg$currPos;\n s1 = peg$parsemessageText();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c1(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsepoundElement() {\n var s0, s1;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 35) {\n s1 = peg$c2;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c4();\n }\n s0 = s1;\n return s0;\n }\n function peg$parseargumentElement() {\n var s0, s1, s2, s3, s4, s5;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s5 = peg$c8;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c10(s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c5);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonId() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n if (peg$c12.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c13);\n }\n }\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n if (peg$c12.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c13);\n }\n }\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c11);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonTokenOption() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 47) {\n s1 = peg$c16;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c17);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeletonId();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c18(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c15);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonToken() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeletonId();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parsenumberSkeletonTokenOption();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsenumberSkeletonTokenOption();\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c20(s2, s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c19);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeleton() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsenumberSkeletonToken();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsenumberSkeletonToken();\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c21(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsenumberArgStyle() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeleton();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c24(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n peg$savedPos = peg$currPos;\n s1 = peg$c25();\n if (s1) {\n s1 = undefined;\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsemessageText();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c26(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parsenumberFormatElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c29) {\n s7 = peg$c29;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c30);\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n s9 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s10 = peg$c27;\n peg$currPos++;\n }\n else {\n s10 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s10 !== peg$FAILED) {\n s11 = peg$parse_();\n if (s11 !== peg$FAILED) {\n s12 = peg$parsenumberArgStyle();\n if (s12 !== peg$FAILED) {\n s10 = [s10, s11, s12];\n s9 = s10;\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n if (s9 === peg$FAILED) {\n s9 = null;\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s11 = peg$c8;\n peg$currPos++;\n }\n else {\n s11 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s11 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c31(s3, s7, s9);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsedateTimeSkeletonLiteral() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 39) {\n s1 = peg$c32;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsedoubleApostrophes();\n if (s3 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsedoubleApostrophes();\n if (s3 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n }\n }\n else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 39) {\n s3 = peg$c32;\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s3 !== peg$FAILED) {\n s1 = [s1, s2, s3];\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = [];\n s1 = peg$parsedoubleApostrophes();\n if (s1 === peg$FAILED) {\n if (peg$c36.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c37);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n s1 = peg$parsedoubleApostrophes();\n if (s1 === peg$FAILED) {\n if (peg$c36.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c37);\n }\n }\n }\n }\n }\n else {\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parsedateTimeSkeletonPattern() {\n var s0, s1;\n s0 = [];\n if (peg$c38.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c39);\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c38.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c39);\n }\n }\n }\n }\n else {\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsedateTimeSkeleton() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n s3 = peg$parsedateTimeSkeletonLiteral();\n if (s3 === peg$FAILED) {\n s3 = peg$parsedateTimeSkeletonPattern();\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsedateTimeSkeletonLiteral();\n if (s3 === peg$FAILED) {\n s3 = peg$parsedateTimeSkeletonPattern();\n }\n }\n }\n else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = input.substring(s1, peg$currPos);\n }\n else {\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c40(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsedateOrTimeArgStyle() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsedateTimeSkeleton();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c24(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n peg$savedPos = peg$currPos;\n s1 = peg$c41();\n if (s1) {\n s1 = undefined;\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsemessageText();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c26(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parsedateOrTimeFormatElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c42) {\n s7 = peg$c42;\n peg$currPos += 4;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c43);\n }\n }\n if (s7 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c44) {\n s7 = peg$c44;\n peg$currPos += 4;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c45);\n }\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n s9 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s10 = peg$c27;\n peg$currPos++;\n }\n else {\n s10 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s10 !== peg$FAILED) {\n s11 = peg$parse_();\n if (s11 !== peg$FAILED) {\n s12 = peg$parsedateOrTimeArgStyle();\n if (s12 !== peg$FAILED) {\n s10 = [s10, s11, s12];\n s9 = s10;\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n if (s9 === peg$FAILED) {\n s9 = null;\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s11 = peg$c8;\n peg$currPos++;\n }\n else {\n s11 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s11 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c31(s3, s7, s9);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsesimpleFormatElement() {\n var s0;\n s0 = peg$parsenumberFormatElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsedateOrTimeFormatElement();\n }\n return s0;\n }\n function peg$parsepluralElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c46) {\n s7 = peg$c46;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c47);\n }\n }\n if (s7 === peg$FAILED) {\n if (input.substr(peg$currPos, 13) === peg$c48) {\n s7 = peg$c48;\n peg$currPos += 13;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c49);\n }\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s9 = peg$c27;\n peg$currPos++;\n }\n else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n s11 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c50) {\n s12 = peg$c50;\n peg$currPos += 7;\n }\n else {\n s12 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c51);\n }\n }\n if (s12 !== peg$FAILED) {\n s13 = peg$parse_();\n if (s13 !== peg$FAILED) {\n s14 = peg$parsenumber();\n if (s14 !== peg$FAILED) {\n s12 = [s12, s13, s14];\n s11 = s12;\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n if (s11 === peg$FAILED) {\n s11 = null;\n }\n if (s11 !== peg$FAILED) {\n s12 = peg$parse_();\n if (s12 !== peg$FAILED) {\n s13 = [];\n s14 = peg$parsepluralOption();\n if (s14 !== peg$FAILED) {\n while (s14 !== peg$FAILED) {\n s13.push(s14);\n s14 = peg$parsepluralOption();\n }\n }\n else {\n s13 = peg$FAILED;\n }\n if (s13 !== peg$FAILED) {\n s14 = peg$parse_();\n if (s14 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s15 = peg$c8;\n peg$currPos++;\n }\n else {\n s15 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s15 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c52(s3, s7, s11, s13);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseselectElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c53) {\n s7 = peg$c53;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c54);\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s9 = peg$c27;\n peg$currPos++;\n }\n else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n s11 = [];\n s12 = peg$parseselectOption();\n if (s12 !== peg$FAILED) {\n while (s12 !== peg$FAILED) {\n s11.push(s12);\n s12 = peg$parseselectOption();\n }\n }\n else {\n s11 = peg$FAILED;\n }\n if (s11 !== peg$FAILED) {\n s12 = peg$parse_();\n if (s12 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s13 = peg$c8;\n peg$currPos++;\n }\n else {\n s13 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s13 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c55(s3, s11);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsepluralRuleSelectValue() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c56;\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c57);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parseargName();\n }\n return s0;\n }\n function peg$parseselectOption() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseargName();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c6;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s5 = peg$c58(s2);\n if (s5) {\n s5 = undefined;\n }\n else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessage();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c8;\n peg$currPos++;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c59(s2, s6);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsepluralOption() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsepluralRuleSelectValue();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c6;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s5 = peg$c60(s2);\n if (s5) {\n s5 = undefined;\n }\n else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessage();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c8;\n peg$currPos++;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c61(s2, s6);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsewhiteSpace() {\n var s0, s1;\n peg$silentFails++;\n if (peg$c63.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c64);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c62);\n }\n }\n return s0;\n }\n function peg$parsepatternSyntax() {\n var s0, s1;\n peg$silentFails++;\n if (peg$c66.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c67);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c65);\n }\n }\n return s0;\n }\n function peg$parse_() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsewhiteSpace();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsewhiteSpace();\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c68);\n }\n }\n return s0;\n }\n function peg$parsenumber() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 45) {\n s1 = peg$c70;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c71);\n }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseargNumber();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c72(s1, s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c69);\n }\n }\n return s0;\n }\n function peg$parseapostrophe() {\n var s0, s1;\n peg$silentFails++;\n if (input.charCodeAt(peg$currPos) === 39) {\n s0 = peg$c32;\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c73);\n }\n }\n return s0;\n }\n function peg$parsedoubleApostrophes() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c75) {\n s1 = peg$c75;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c76);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c77();\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c74);\n }\n }\n return s0;\n }\n function peg$parsequotedString() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 39) {\n s1 = peg$c32;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseescapedChar();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n s4 = [];\n if (input.substr(peg$currPos, 2) === peg$c75) {\n s5 = peg$c75;\n peg$currPos += 2;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c76);\n }\n }\n if (s5 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n if (input.substr(peg$currPos, 2) === peg$c75) {\n s5 = peg$c75;\n peg$currPos += 2;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c76);\n }\n }\n if (s5 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = input.substring(s3, peg$currPos);\n }\n else {\n s3 = s4;\n }\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 39) {\n s4 = peg$c32;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c78(s2, s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseunquotedString() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.length > peg$currPos) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s3 = peg$c79(s2);\n if (s3) {\n s3 = undefined;\n }\n else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 10) {\n s1 = peg$c80;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c81);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n return s0;\n }\n function peg$parseescapedChar() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.length > peg$currPos) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s3 = peg$c82(s2);\n if (s3) {\n s3 = undefined;\n }\n else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n return s0;\n }\n function peg$parseargNameOrNumber() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parseargNumber();\n if (s1 === peg$FAILED) {\n s1 = peg$parseargName();\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c83);\n }\n }\n return s0;\n }\n function peg$parseargNumber() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 48) {\n s1 = peg$c85;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c86);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c87();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (peg$c88.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c89);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c90.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c91);\n }\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c90.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c91);\n }\n }\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c92(s1);\n }\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c84);\n }\n }\n return s0;\n }\n function peg$parseargName() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n s4 = peg$parsepatternSyntax();\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n s4 = peg$parsepatternSyntax();\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c93);\n }\n }\n return s0;\n }\n var messageCtx = ['root'];\n function isNestedMessageText() {\n return messageCtx.length > 1;\n }\n function isInPluralOption() {\n return messageCtx[messageCtx.length - 1] === 'plural';\n }\n function insertLocation() {\n return options && options.captureLocation ? {\n location: location()\n } : {};\n }\n peg$result = peg$startRuleFunction();\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n }\n else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n throw peg$buildStructuredError(peg$maxFailExpected, peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, peg$maxFailPos < input.length\n ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)\n : peg$computeLocation(peg$maxFailPos, peg$maxFailPos));\n }\n}\nexport var pegParse = peg$parse;\n","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { isPluralElement, isLiteralElement, isSelectElement, } from './types';\nimport { pegParse } from './parser';\nvar PLURAL_HASHTAG_REGEX = /(^|[^\\\\])#/g;\n/**\n * Whether to convert `#` in plural rule options\n * to `{var, number}`\n * @param el AST Element\n * @param pluralStack current plural stack\n */\nexport function normalizeHashtagInPlural(els) {\n els.forEach(function (el) {\n // If we're encountering a plural el\n if (!isPluralElement(el) && !isSelectElement(el)) {\n return;\n }\n // Go down the options and search for # in any literal element\n Object.keys(el.options).forEach(function (id) {\n var _a;\n var opt = el.options[id];\n // If we got a match, we have to split this\n // and inject a NumberElement in the middle\n var matchingLiteralElIndex = -1;\n var literalEl = undefined;\n for (var i = 0; i < opt.value.length; i++) {\n var el_1 = opt.value[i];\n if (isLiteralElement(el_1) && PLURAL_HASHTAG_REGEX.test(el_1.value)) {\n matchingLiteralElIndex = i;\n literalEl = el_1;\n break;\n }\n }\n if (literalEl) {\n var newValue = literalEl.value.replace(PLURAL_HASHTAG_REGEX, \"$1{\" + el.value + \", number}\");\n var newEls = pegParse(newValue);\n (_a = opt.value).splice.apply(_a, __spreadArrays([matchingLiteralElIndex, 1], newEls));\n }\n normalizeHashtagInPlural(opt.value);\n });\n });\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'short' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) pattenrs are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: miliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) pattenrs are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\+|#+)?)?$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?$/g;\nfunction parseSignificantPrecision(str) {\n var result = {};\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function convertNumberSkeletonToNumberFormatOptions(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n result.style = 'percent';\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n }\n // Precision\n // https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#fraction-precision\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (match, g1, g2) {\n // precision-integer case\n if (match === '.') {\n result.maximumFractionDigits = 0;\n }\n // .000+ case\n else if (g2 === '+') {\n result.minimumFractionDigits = g2.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumFractionDigits = g1.length;\n }\n // .00## or .000 case\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n if (token.options.length) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.options[0]));\n }\n continue;\n }\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n }\n return result;\n}\n","import { pegParse } from './parser';\nimport { normalizeHashtagInPlural } from './normalize';\nexport * from './types';\nexport * from './parser';\nexport * from './skeleton';\nexport function parse(input, opts) {\n var els = pegParse(input, opts);\n if (!opts || opts.normalizeHashtagInPlural !== false) {\n normalizeHashtagInPlural(els);\n }\n return els;\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\n// -- Utilities ----------------------------------------------------------------\nfunction getCacheId(inputs) {\n return JSON.stringify(inputs.map(function (input) {\n return input && typeof input === 'object' ? orderedProps(input) : input;\n }));\n}\nfunction orderedProps(obj) {\n return Object.keys(obj)\n .sort()\n .map(function (k) {\n var _a;\n return (_a = {}, _a[k] = obj[k], _a);\n });\n}\nvar memoizeFormatConstructor = function (FormatConstructor, cache) {\n if (cache === void 0) { cache = {}; }\n return function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var cacheId = getCacheId(args);\n var format = cacheId && cache[cacheId];\n if (!format) {\n format = new ((_a = FormatConstructor).bind.apply(_a, __spreadArrays([void 0], args)))();\n if (cacheId) {\n cache[cacheId] = format;\n }\n }\n return format;\n };\n};\nexport default memoizeFormatConstructor;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { convertNumberSkeletonToNumberFormatOptions, isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, parseDateTimeSkeleton, } from 'intl-messageformat-parser';\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, variableId) {\n var _this = _super.call(this, msg) || this;\n _this.variableId = variableId;\n return _this;\n }\n return FormatError;\n}(Error));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== 0 /* literal */ ||\n part.type !== 0 /* literal */) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: 0 /* literal */,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: 0 /* literal */,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: 0 /* literal */,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new FormatError(\"The intl string context variable \\\"\" + varName + \"\\\" was not provided to the string \\\"\" + originalMessage + \"\\\"\");\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: 1 /* argument */,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string' ? formats.date[el.style] : undefined;\n result.push({\n type: 0 /* literal */,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? parseDateTimeSkeleton(el.style.pattern)\n : undefined;\n result.push({\n type: 0 /* literal */,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? convertNumberSkeletonToNumberFormatOptions(el.style.tokens)\n : undefined;\n result.push({\n type: 0 /* literal */,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new RangeError(\"Invalid values for \\\"\" + el.value + \"\\\": \\\"\" + value + \"\\\". Options are \\\"\" + Object.keys(el.options).join('\", \"') + \"\\\"\");\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\" + value];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\");\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new RangeError(\"Invalid values for \\\"\" + el.value + \"\\\": \\\"\" + value + \"\\\". Options are \\\"\" + Object.keys(el.options).join('\", \"') + \"\\\"\");\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\nexport function formatToString(els, locales, formatters, formats, values, \n// For debugging\noriginalMessage) {\n var parts = formatToParts(els, locales, formatters, formats, values, undefined, originalMessage);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n return parts.reduce(function (all, part) { return (all += part.value); }, '');\n}\n// Singleton\nvar domParser;\nvar TOKEN_DELIMITER = '@@';\nvar TOKEN_REGEX = /@@(\\d+_\\d+)@@/g;\nvar counter = 0;\nfunction generateId() {\n return Date.now() + \"_\" + ++counter;\n}\nfunction restoreRichPlaceholderMessage(text, objectParts) {\n return text\n .split(TOKEN_REGEX)\n .filter(Boolean)\n .map(function (c) { return (objectParts[c] != null ? objectParts[c] : c); })\n .reduce(function (all, c) {\n if (!all.length) {\n all.push(c);\n }\n else if (typeof c === 'string' &&\n typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += c;\n }\n else {\n all.push(c);\n }\n return all;\n }, []);\n}\n/**\n * Not exhaustive, just for sanity check\n */\nvar SIMPLE_XML_REGEX = /(<([0-9a-zA-Z-_]*?)>(.*?)<\\/([0-9a-zA-Z-_]*?)>)|(<[0-9a-zA-Z-_]*?\\/>)/;\nvar TEMPLATE_ID = Date.now() + '@@';\nvar VOID_ELEMENTS = [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n];\nfunction formatHTMLElement(el, objectParts, values) {\n var tagName = el.tagName;\n var outerHTML = el.outerHTML, textContent = el.textContent, childNodes = el.childNodes;\n // Regular text\n if (!tagName) {\n return restoreRichPlaceholderMessage(textContent || '', objectParts);\n }\n tagName = tagName.toLowerCase();\n var isVoidElement = ~VOID_ELEMENTS.indexOf(tagName);\n var formatFnOrValue = values[tagName];\n if (formatFnOrValue && isVoidElement) {\n throw new FormatError(tagName + \" is a self-closing tag and can not be used, please use another tag name.\");\n }\n if (!childNodes.length) {\n return [outerHTML];\n }\n var chunks = Array.prototype.slice.call(childNodes).reduce(function (all, child) {\n return all.concat(formatHTMLElement(child, objectParts, values));\n }, []);\n // Legacy HTML\n if (!formatFnOrValue) {\n return __spreadArrays([\"<\" + tagName + \">\"], chunks, [\"\"]);\n }\n // HTML Tag replacement\n if (typeof formatFnOrValue === 'function') {\n return [formatFnOrValue.apply(void 0, chunks)];\n }\n return [formatFnOrValue];\n}\nexport function formatHTMLMessage(els, locales, formatters, formats, values, \n// For debugging\noriginalMessage) {\n var parts = formatToParts(els, locales, formatters, formats, values, undefined, originalMessage);\n var objectParts = {};\n var formattedMessage = parts.reduce(function (all, part) {\n if (part.type === 0 /* literal */) {\n return (all += part.value);\n }\n var id = generateId();\n objectParts[id] = part.value;\n return (all += \"\" + TOKEN_DELIMITER + id + TOKEN_DELIMITER);\n }, '');\n // Not designed to filter out aggressively\n if (!SIMPLE_XML_REGEX.test(formattedMessage)) {\n return restoreRichPlaceholderMessage(formattedMessage, objectParts);\n }\n if (!values) {\n throw new FormatError('Message has placeholders but no values was given');\n }\n if (typeof DOMParser === 'undefined') {\n throw new FormatError('Cannot format XML message without DOMParser');\n }\n if (!domParser) {\n domParser = new DOMParser();\n }\n var content = domParser\n .parseFromString(\"\" + formattedMessage + \"\", 'text/html')\n .getElementById(TEMPLATE_ID);\n if (!content) {\n throw new FormatError(\"Malformed HTML message \" + formattedMessage);\n }\n var tagsToFormat = Object.keys(values).filter(function (varName) { return !!content.getElementsByTagName(varName).length; });\n // No tags to format\n if (!tagsToFormat.length) {\n return restoreRichPlaceholderMessage(formattedMessage, objectParts);\n }\n var caseSensitiveTags = tagsToFormat.filter(function (tagName) { return tagName !== tagName.toLowerCase(); });\n if (caseSensitiveTags.length) {\n throw new FormatError(\"HTML tag must be lowercased but the following tags are not: \" + caseSensitiveTags.join(', '));\n }\n // We're doing this since top node is `` which does not have a formatter\n return Array.prototype.slice\n .call(content.childNodes)\n .reduce(function (all, child) { return all.concat(formatHTMLElement(child, objectParts, values)); }, []);\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { parse } from 'intl-messageformat-parser';\nimport memoizeIntlConstructor from 'intl-format-cache';\nimport { formatToString, formatToParts, formatHTMLMessage, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nexport function createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoizeIntlConstructor(Intl.NumberFormat, cache.number),\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat, cache.dateTime),\n getPluralRules: memoizeIntlConstructor(Intl.PluralRules, cache.pluralRules),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n var _this = this;\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n return formatToString(_this.ast, _this.locales, _this.formatters, _this.formats, values, _this.message);\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.formatHTMLMessage = function (values) {\n return formatHTMLMessage(_this.ast, _this.locales, _this.formatters, _this.formats, values, _this.message);\n };\n this.resolvedOptions = function () { return ({\n locale: Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n }); };\n this.getAst = function () { return _this.ast; };\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, {\n normalizeHashtagInPlural: false,\n });\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n IntlMessageFormat.defaultLocale = new Intl.NumberFormat().resolvedOptions().locale;\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\nexport default IntlMessageFormat;\n","export function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\n","/*\nHTML escaping is the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\nimport * as React from 'react';\nimport IntlMessageFormat from 'intl-messageformat';\nimport memoizeIntlConstructor from 'intl-format-cache';\nimport { invariant } from '@formatjs/intl-utils';\nconst ESCAPED_CHARS = {\n 38: '&',\n 62: '>',\n 60: '<',\n 34: '"',\n 39: ''',\n};\nconst UNSAFE_CHARS_REGEX = /[&><\"']/g;\nexport function escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, match => ESCAPED_CHARS[match.charCodeAt(0)]);\n}\nexport function filterProps(props, whitelist, defaults = {}) {\n return whitelist.reduce((filtered, name) => {\n if (name in props) {\n filtered[name] = props[name];\n }\n else if (name in defaults) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\nexport function invariantIntlContext(intl) {\n invariant(intl, '[React Intl] Could not find required `intl` object. ' +\n ' needs to exist in the component ancestry.');\n}\nexport function createError(message, exception) {\n const eMsg = exception ? `\\n${exception.stack}` : '';\n return `[React Intl] ${message}${eMsg}`;\n}\nexport function defaultErrorHandler(error) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n}\nexport const DEFAULT_INTL_CONFIG = {\n formats: {},\n messages: {},\n timeZone: undefined,\n textComponent: React.Fragment,\n defaultLocale: 'en',\n defaultFormats: {},\n onError: defaultErrorHandler,\n};\nexport function createIntlCache() {\n return {\n dateTime: {},\n number: {},\n message: {},\n relativeTime: {},\n pluralRules: {},\n list: {},\n displayNames: {},\n };\n}\n/**\n * Create intl formatters and populate cache\n * @param cache explicit cache to prevent leaking memory\n */\nexport function createFormatters(cache = createIntlCache()) {\n const RelativeTimeFormat = Intl.RelativeTimeFormat;\n const ListFormat = Intl.ListFormat;\n const DisplayNames = Intl.DisplayNames;\n return {\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat, cache.dateTime),\n getNumberFormat: memoizeIntlConstructor(Intl.NumberFormat, cache.number),\n getMessageFormat: memoizeIntlConstructor(IntlMessageFormat, cache.message),\n getRelativeTimeFormat: memoizeIntlConstructor(RelativeTimeFormat, cache.relativeTime),\n getPluralRules: memoizeIntlConstructor(Intl.PluralRules, cache.pluralRules),\n getListFormat: memoizeIntlConstructor(ListFormat, cache.list),\n getDisplayNames: memoizeIntlConstructor(DisplayNames, cache.displayNames),\n };\n}\nexport function getNamedFormat(formats, type, name, onError) {\n const formatType = formats && formats[type];\n let format;\n if (formatType) {\n format = formatType[name];\n }\n if (format) {\n return format;\n }\n onError(createError(`No ${type} format named: ${name}`));\n}\n","/** @license React v16.8.6\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import * as React from 'react';\nimport * as hoistNonReactStatics_ from 'hoist-non-react-statics';\n// Since rollup cannot deal with namespace being a function,\n// this is to interop with TypeScript since `invariant`\n// does not export a default\n// https://github.com/rollup/rollup/issues/1267\nconst hoistNonReactStatics = hoistNonReactStatics_.default || hoistNonReactStatics_;\nimport { invariantIntlContext } from '../utils';\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n}\n// TODO: We should provide initial value here\nconst IntlContext = React.createContext(null);\nconst { Consumer: IntlConsumer, Provider: IntlProvider } = IntlContext;\nexport const Provider = IntlProvider;\nexport const Context = IntlContext;\nexport default function injectIntl(WrappedComponent, options) {\n const { intlPropName = 'intl', forwardRef = false, enforceContext = true } = options || {};\n const WithIntl = props => (React.createElement(IntlConsumer, null, (intl) => {\n if (enforceContext) {\n invariantIntlContext(intl);\n }\n return (React.createElement(WrappedComponent, Object.assign({}, props, {\n [intlPropName]: intl,\n }, { ref: forwardRef ? props.forwardedRef : null })));\n }));\n WithIntl.displayName = `injectIntl(${getDisplayName(WrappedComponent)})`;\n WithIntl.WrappedComponent = WrappedComponent;\n if (forwardRef) {\n return hoistNonReactStatics(React.forwardRef((props, ref) => (React.createElement(WithIntl, Object.assign({}, props, { forwardedRef: ref })))), WrappedComponent);\n }\n return hoistNonReactStatics(WithIntl, WrappedComponent);\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { invariantIntlContext } from '../utils';\nimport { Context } from './injectIntl';\nvar DisplayName;\n(function (DisplayName) {\n DisplayName[\"formatDate\"] = \"FormattedDate\";\n DisplayName[\"formatTime\"] = \"FormattedTime\";\n DisplayName[\"formatNumber\"] = \"FormattedNumber\";\n DisplayName[\"formatList\"] = \"FormattedList\";\n // Note that this DisplayName is the locale display name, not to be confused with\n // the name of the enum, which is for React component display name in dev tools.\n DisplayName[\"formatDisplayName\"] = \"FormattedDisplayName\";\n})(DisplayName || (DisplayName = {}));\nvar DisplayNameParts;\n(function (DisplayNameParts) {\n DisplayNameParts[\"formatDate\"] = \"FormattedDateParts\";\n DisplayNameParts[\"formatTime\"] = \"FormattedTimeParts\";\n DisplayNameParts[\"formatNumber\"] = \"FormattedNumberParts\";\n DisplayNameParts[\"formatList\"] = \"FormattedListParts\";\n})(DisplayNameParts || (DisplayNameParts = {}));\nexport const FormattedNumberParts = props => (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { value, children } = props, formatProps = __rest(props, [\"value\", \"children\"]);\n return children(intl.formatNumberToParts(value, formatProps));\n}));\nFormattedNumberParts.displayName = 'FormattedNumberParts';\nexport function createFormattedDateTimePartsComponent(name) {\n const ComponentParts = props => (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { value, children } = props, formatProps = __rest(props, [\"value\", \"children\"]);\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n const formattedParts = name === 'formatDate'\n ? intl.formatDateToParts(date, formatProps)\n : intl.formatTimeToParts(date, formatProps);\n return children(formattedParts);\n }));\n ComponentParts.displayName = DisplayNameParts[name];\n return ComponentParts;\n}\nexport function createFormattedComponent(name) {\n const Component = props => (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { value, children } = props, formatProps = __rest(props, [\"value\", \"children\"]);\n // TODO: fix TS type definition for localeMatcher upstream\n const formattedValue = intl[name](value, formatProps);\n if (typeof children === 'function') {\n return children(formattedValue);\n }\n const Text = intl.textComponent || React.Fragment;\n return React.createElement(Text, null, formattedValue);\n }));\n Component.displayName = DisplayName[name];\n return Component;\n}\n","import { getNamedFormat, filterProps, createError } from '../utils';\nconst NUMBER_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'style',\n 'currency',\n 'currencyDisplay',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n // Unified NumberFormat (Stage 3 as of 10/22/19)\n 'compactDisplay',\n 'currencyDisplay',\n 'currencySign',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n];\nexport function getFormatter({ locale, formats, onError, }, getNumberFormat, options = {}) {\n const { format } = options;\n const defaults = ((format &&\n getNamedFormat(formats, 'number', format, onError)) ||\n {});\n const filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n return getNumberFormat(locale, filteredOptions);\n}\nexport function formatNumber(config, getNumberFormat, value, options = {}) {\n try {\n return getFormatter(config, getNumberFormat, options).format(value);\n }\n catch (e) {\n config.onError(createError('Error formatting number.', e));\n }\n return String(value);\n}\nexport function formatNumberToParts(config, getNumberFormat, value, options = {}) {\n try {\n return getFormatter(config, getNumberFormat, options).formatToParts(value);\n }\n catch (e) {\n config.onError(createError('Error formatting number.', e));\n }\n return [];\n}\n","import { getNamedFormat, filterProps, createError } from '../utils';\nconst RELATIVE_TIME_FORMAT_OPTIONS = [\n 'numeric',\n 'style',\n];\nfunction getFormatter({ locale, formats, onError, }, getRelativeTimeFormat, options = {}) {\n const { format } = options;\n const defaults = (!!format && getNamedFormat(formats, 'relative', format, onError)) || {};\n const filteredOptions = filterProps(options, RELATIVE_TIME_FORMAT_OPTIONS, defaults);\n return getRelativeTimeFormat(locale, filteredOptions);\n}\nexport function formatRelativeTime(config, getRelativeTimeFormat, value, unit, options = {}) {\n if (!unit) {\n unit = 'second';\n }\n const RelativeTimeFormat = Intl.RelativeTimeFormat;\n if (!RelativeTimeFormat) {\n config.onError(createError(`Intl.RelativeTimeFormat is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-relativetimeformat\"\n`));\n }\n try {\n return getFormatter(config, getRelativeTimeFormat, options).format(value, unit);\n }\n catch (e) {\n config.onError(createError('Error formatting relative time.', e));\n }\n return String(value);\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { createError, filterProps, getNamedFormat } from '../utils';\nconst DATE_TIME_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'formatMatcher',\n 'timeZone',\n 'hour12',\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName',\n];\nexport function getFormatter({ locale, formats, onError, timeZone, }, type, getDateTimeFormat, options = {}) {\n const { format } = options;\n const defaults = Object.assign(Object.assign({}, (timeZone && { timeZone })), (format && getNamedFormat(formats, type, format, onError)));\n let filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n if (type === 'time' &&\n !filteredOptions.hour &&\n !filteredOptions.minute &&\n !filteredOptions.second) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = Object.assign(Object.assign({}, filteredOptions), { hour: 'numeric', minute: 'numeric' });\n }\n return getDateTimeFormat(locale, filteredOptions);\n}\nexport function formatDate(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(createError('Error formatting date.', e));\n }\n return String(date);\n}\nexport function formatTime(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(createError('Error formatting time.', e));\n }\n return String(date);\n}\nexport function formatDateToParts(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).formatToParts(date);\n }\n catch (e) {\n config.onError(createError('Error formatting date.', e));\n }\n return [];\n}\nexport function formatTimeToParts(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).formatToParts(date);\n }\n catch (e) {\n config.onError(createError('Error formatting time.', e));\n }\n return [];\n}\n","import { filterProps, createError } from '../utils';\nconst PLURAL_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'type',\n];\nexport function formatPlural({ locale, onError }, getPluralRules, value, options = {}) {\n if (!Intl.PluralRules) {\n onError(createError(`Intl.PluralRules is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-pluralrules\"\n`));\n }\n const filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n try {\n return getPluralRules(locale, filteredOptions).select(value);\n }\n catch (e) {\n onError(createError('Error formatting plural.', e));\n }\n return 'other';\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport { invariant } from '@formatjs/intl-utils';\nimport { createError, escape } from '../utils';\nimport IntlMessageFormat from 'intl-messageformat';\nfunction setTimeZoneInOptions(opts, timeZone) {\n return Object.keys(opts).reduce((all, k) => {\n all[k] = Object.assign({ timeZone }, opts[k]);\n return all;\n }, {});\n}\nfunction deepMergeOptions(opts1, opts2) {\n const keys = Object.keys(Object.assign(Object.assign({}, opts1), opts2));\n return keys.reduce((all, k) => {\n all[k] = Object.assign(Object.assign({}, (opts1[k] || {})), (opts2[k] || {}));\n return all;\n }, {});\n}\nfunction deepMergeFormatsAndSetTimeZone(f1, timeZone) {\n if (!timeZone) {\n return f1;\n }\n const mfFormats = IntlMessageFormat.formats;\n return Object.assign(Object.assign(Object.assign({}, mfFormats), f1), { date: deepMergeOptions(setTimeZoneInOptions(mfFormats.date, timeZone), setTimeZoneInOptions(f1.date || {}, timeZone)), time: deepMergeOptions(setTimeZoneInOptions(mfFormats.time, timeZone), setTimeZoneInOptions(f1.time || {}, timeZone)) });\n}\nexport const prepareIntlMessageFormatHtmlOutput = (chunks) => React.createElement(React.Fragment, null, ...chunks);\nexport function formatMessage({ locale, formats, messages, defaultLocale, defaultFormats, onError, timeZone, }, state, messageDescriptor = { id: '' }, values = {}) {\n const { id, defaultMessage } = messageDescriptor;\n // `id` is a required field of a Message Descriptor.\n invariant(!!id, '[React Intl] An `id` must be provided to format a message.');\n const message = messages && messages[String(id)];\n formats = deepMergeFormatsAndSetTimeZone(formats, timeZone);\n defaultFormats = deepMergeFormatsAndSetTimeZone(defaultFormats, timeZone);\n let formattedMessageParts = [];\n if (message) {\n try {\n const formatter = state.getMessageFormat(message, locale, formats, {\n formatters: state,\n });\n formattedMessageParts = formatter.formatHTMLMessage(values);\n }\n catch (e) {\n onError(createError(`Error formatting message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : ''), e));\n }\n }\n else {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the for the\n // default locale, and a default message is in the source.\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n onError(createError(`Missing message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : '')));\n }\n }\n if (!formattedMessageParts.length && defaultMessage) {\n try {\n const formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);\n formattedMessageParts = formatter.formatHTMLMessage(values);\n }\n catch (e) {\n onError(createError(`Error formatting the default message for: \"${id}\"`, e));\n }\n }\n if (!formattedMessageParts.length) {\n onError(createError(`Cannot format message: \"${id}\", ` +\n `using message ${message || defaultMessage ? 'source' : 'id'} as fallback.`));\n if (typeof message === 'string') {\n return message || defaultMessage || String(id);\n }\n return defaultMessage || String(id);\n }\n if (formattedMessageParts.length === 1 &&\n typeof formattedMessageParts[0] === 'string') {\n return formattedMessageParts[0] || defaultMessage || String(id);\n }\n return prepareIntlMessageFormatHtmlOutput(formattedMessageParts);\n}\nexport function formatHTMLMessage(config, state, messageDescriptor = { id: '' }, rawValues = {}) {\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n const escapedValues = Object.keys(rawValues).reduce((escaped, name) => {\n const value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n","'use strict';\n\nfunction shallowEqualObjects(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if (!objA || !objB) {\n return false;\n }\n\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n\n if (bKeys.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key] || !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqualObjects;\n","import { filterProps, createError } from '../utils';\nconst LIST_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'type',\n 'style',\n];\nconst now = Date.now();\nfunction generateToken(i) {\n return `${now}_${i}_${now}`;\n}\nexport function formatList({ locale, onError }, getListFormat, values, options = {}) {\n const ListFormat = Intl.ListFormat;\n if (!ListFormat) {\n onError(createError(`Intl.ListFormat is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-listformat\"\n`));\n }\n const filteredOptions = filterProps(options, LIST_FORMAT_OPTIONS);\n try {\n const richValues = {};\n const serializedValues = values.map((v, i) => {\n if (typeof v === 'object') {\n const id = generateToken(i);\n richValues[id] = v;\n return id;\n }\n return String(v);\n });\n if (!Object.keys(richValues).length) {\n return getListFormat(locale, filteredOptions).format(serializedValues);\n }\n const parts = getListFormat(locale, filteredOptions).formatToParts(serializedValues);\n return parts.reduce((all, el) => {\n const val = el.value;\n if (richValues[val]) {\n all.push(richValues[val]);\n }\n else if (typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += val;\n }\n else {\n all.push(val);\n }\n return all;\n }, []);\n }\n catch (e) {\n onError(createError('Error formatting list.', e));\n }\n return values;\n}\n","import { filterProps, createError } from '../utils';\nconst DISPLAY_NAMES_OPTONS = [\n 'localeMatcher',\n 'style',\n 'type',\n 'fallback',\n];\nexport function formatDisplayName({ locale, onError }, getDisplayNames, value, options = {}) {\n const DisplayNames = Intl.DisplayNames;\n if (!DisplayNames) {\n onError(createError(`Intl.DisplayNames is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-displaynames\"\n`));\n }\n const filteredOptions = filterProps(options, DISPLAY_NAMES_OPTONS);\n try {\n return getDisplayNames(locale, filteredOptions).of(value);\n }\n catch (e) {\n onError(createError('Error formatting display name.', e));\n }\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport { Provider } from './injectIntl';\nimport { createError, DEFAULT_INTL_CONFIG, createFormatters, invariantIntlContext, createIntlCache, } from '../utils';\nimport { formatNumber, formatNumberToParts } from '../formatters/number';\nimport { formatRelativeTime } from '../formatters/relativeTime';\nimport { formatDate, formatTime, formatDateToParts, formatTimeToParts, } from '../formatters/dateTime';\nimport { formatPlural } from '../formatters/plural';\nimport { formatMessage, formatHTMLMessage } from '../formatters/message';\nimport * as shallowEquals_ from 'shallow-equal/objects';\nimport { formatList } from '../formatters/list';\nimport { formatDisplayName } from '../formatters/displayName';\nconst shallowEquals = shallowEquals_.default || shallowEquals_;\nfunction processIntlConfig(config) {\n return {\n locale: config.locale,\n timeZone: config.timeZone,\n formats: config.formats,\n textComponent: config.textComponent,\n messages: config.messages,\n defaultLocale: config.defaultLocale,\n defaultFormats: config.defaultFormats,\n onError: config.onError,\n };\n}\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport function createIntl(config, cache) {\n const formatters = createFormatters(cache);\n const resolvedConfig = Object.assign(Object.assign({}, DEFAULT_INTL_CONFIG), config);\n const { locale, defaultLocale, onError } = resolvedConfig;\n if (!locale) {\n if (onError) {\n onError(createError(`\"locale\" was not configured, using \"${defaultLocale}\" as fallback. See https://github.com/formatjs/react-intl/blob/master/docs/API.md#intlshape for more details`));\n }\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each contains a `defaultMessage` prop.\n resolvedConfig.locale = resolvedConfig.defaultLocale || 'en';\n }\n else if (!Intl.NumberFormat.supportedLocalesOf(locale).length && onError) {\n onError(createError(`Missing locale data for locale: \"${locale}\" in Intl.NumberFormat. Using default locale: \"${defaultLocale}\" as fallback. See https://github.com/formatjs/react-intl/blob/master/docs/Getting-Started.md#runtime-requirements for more details`));\n }\n else if (!Intl.DateTimeFormat.supportedLocalesOf(locale).length &&\n onError) {\n onError(createError(`Missing locale data for locale: \"${locale}\" in Intl.DateTimeFormat. Using default locale: \"${defaultLocale}\" as fallback. See https://github.com/formatjs/react-intl/blob/master/docs/Getting-Started.md#runtime-requirements for more details`));\n }\n return Object.assign(Object.assign({}, resolvedConfig), { formatters, formatNumber: formatNumber.bind(null, resolvedConfig, formatters.getNumberFormat), formatNumberToParts: formatNumberToParts.bind(null, resolvedConfig, formatters.getNumberFormat), formatRelativeTime: formatRelativeTime.bind(null, resolvedConfig, formatters.getRelativeTimeFormat), formatDate: formatDate.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateToParts: formatDateToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTime: formatTime.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTimeToParts: formatTimeToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatPlural: formatPlural.bind(null, resolvedConfig, formatters.getPluralRules), formatMessage: formatMessage.bind(null, resolvedConfig, formatters), formatHTMLMessage: formatHTMLMessage.bind(null, resolvedConfig, formatters), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames) });\n}\nexport default class IntlProvider extends React.PureComponent {\n constructor() {\n super(...arguments);\n this.cache = createIntlCache();\n this.state = {\n cache: this.cache,\n intl: createIntl(processIntlConfig(this.props), this.cache),\n prevConfig: processIntlConfig(this.props),\n };\n }\n static getDerivedStateFromProps(props, { prevConfig, cache }) {\n const config = processIntlConfig(props);\n if (!shallowEquals(prevConfig, config)) {\n return {\n intl: createIntl(config, cache),\n prevConfig: config,\n };\n }\n return null;\n }\n render() {\n invariantIntlContext(this.state.intl);\n return React.createElement(Provider, { value: this.state.intl }, this.props.children);\n }\n}\nIntlProvider.displayName = 'IntlProvider';\nIntlProvider.defaultProps = DEFAULT_INTL_CONFIG;\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nimport { invariant } from '@formatjs/intl-utils';\nconst MINUTE = 60;\nconst HOUR = 60 * 60;\nconst DAY = 60 * 60 * 24;\nfunction selectUnit(seconds) {\n const absValue = Math.abs(seconds);\n if (absValue < MINUTE) {\n return 'second';\n }\n if (absValue < HOUR) {\n return 'minute';\n }\n if (absValue < DAY) {\n return 'hour';\n }\n return 'day';\n}\nfunction getDurationInSeconds(unit) {\n switch (unit) {\n case 'second':\n return 1;\n case 'minute':\n return MINUTE;\n case 'hour':\n return HOUR;\n default:\n return DAY;\n }\n}\nfunction valueToSeconds(value, unit) {\n if (!value) {\n return 0;\n }\n switch (unit) {\n case 'second':\n return value;\n case 'minute':\n return value * MINUTE;\n default:\n return value * HOUR;\n }\n}\nconst INCREMENTABLE_UNITS = ['second', 'minute', 'hour'];\nfunction canIncrement(unit = 'second') {\n return INCREMENTABLE_UNITS.includes(unit);\n}\nexport class FormattedRelativeTime extends React.PureComponent {\n constructor(props) {\n super(props);\n // Public for testing\n this._updateTimer = null;\n this.state = {\n prevUnit: this.props.unit,\n prevValue: this.props.value,\n currentValueInSeconds: canIncrement(this.props.unit)\n ? valueToSeconds(this.props.value, this.props.unit)\n : 0,\n };\n invariant(!props.updateIntervalInSeconds ||\n !!(props.updateIntervalInSeconds && canIncrement(props.unit)), 'Cannot schedule update with unit longer than hour');\n }\n scheduleNextUpdate({ updateIntervalInSeconds, unit }, { currentValueInSeconds }) {\n clearTimeout(this._updateTimer);\n this._updateTimer = null;\n // If there's no interval and we cannot increment this unit, do nothing\n if (!updateIntervalInSeconds || !canIncrement(unit)) {\n return;\n }\n // Figure out the next interesting time\n const nextValueInSeconds = currentValueInSeconds - updateIntervalInSeconds;\n const nextUnit = selectUnit(nextValueInSeconds);\n // We've reached the max auto incrementable unit, don't schedule another update\n if (nextUnit === 'day') {\n return;\n }\n const unitDuration = getDurationInSeconds(nextUnit);\n const remainder = nextValueInSeconds % unitDuration;\n const prevInterestingValueInSeconds = nextValueInSeconds - remainder;\n const nextInterestingValueInSeconds = prevInterestingValueInSeconds >= currentValueInSeconds\n ? prevInterestingValueInSeconds - unitDuration\n : prevInterestingValueInSeconds;\n const delayInSeconds = Math.abs(nextInterestingValueInSeconds - currentValueInSeconds);\n this._updateTimer = setTimeout(() => this.setState({\n currentValueInSeconds: nextInterestingValueInSeconds,\n }), delayInSeconds * 1e3);\n }\n componentDidMount() {\n this.scheduleNextUpdate(this.props, this.state);\n }\n componentDidUpdate() {\n this.scheduleNextUpdate(this.props, this.state);\n }\n componentWillUnmount() {\n clearTimeout(this._updateTimer);\n this._updateTimer = null;\n }\n static getDerivedStateFromProps(props, state) {\n if (props.unit !== state.prevUnit || props.value !== state.prevValue) {\n return {\n prevValue: props.value,\n prevUnit: props.unit,\n currentValueInSeconds: canIncrement(props.unit)\n ? valueToSeconds(props.value, props.unit)\n : 0,\n };\n }\n return null;\n }\n render() {\n return (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { formatRelativeTime, textComponent: Text } = intl;\n const { children, value, unit, updateIntervalInSeconds } = this.props;\n const { currentValueInSeconds } = this.state;\n let currentValue = value || 0;\n let currentUnit = unit;\n if (canIncrement(unit) &&\n typeof currentValueInSeconds === 'number' &&\n updateIntervalInSeconds) {\n currentUnit = selectUnit(currentValueInSeconds);\n const unitDuration = getDurationInSeconds(currentUnit);\n currentValue = Math.round(currentValueInSeconds / unitDuration);\n }\n const formattedRelativeTime = formatRelativeTime(currentValue, currentUnit, Object.assign({}, this.props));\n if (typeof children === 'function') {\n return children(formattedRelativeTime);\n }\n if (Text) {\n return React.createElement(Text, null, formattedRelativeTime);\n }\n return formattedRelativeTime;\n }));\n }\n}\nFormattedRelativeTime.displayName = 'FormattedRelativeTime';\nFormattedRelativeTime.defaultProps = {\n value: 0,\n unit: 'second',\n};\nexport default FormattedRelativeTime;\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport withIntl from './injectIntl';\nconst FormattedPlural = props => {\n const { value, other, children, intl: { formatPlural, textComponent: Text }, } = props;\n const pluralCategory = formatPlural(value, props);\n const formattedPlural = props[pluralCategory] || other;\n if (typeof children === 'function') {\n return children(formattedPlural);\n }\n if (Text) {\n return React.createElement(Text, null, formattedPlural);\n }\n // Work around @types/react where React.FC cannot return string\n return formattedPlural;\n};\nFormattedPlural.defaultProps = {\n type: 'cardinal',\n};\nFormattedPlural.displayName = 'FormattedPlural';\nexport default withIntl(FormattedPlural);\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { Context } from './injectIntl';\nimport { formatMessage } from '../formatters/message';\nimport { invariantIntlContext, DEFAULT_INTL_CONFIG, createFormatters, } from '../utils';\nimport * as shallowEquals_ from 'shallow-equal/objects';\nconst shallowEquals = shallowEquals_.default || shallowEquals_;\nconst defaultFormatMessage = (descriptor, values) => {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Could not find required `intl` object. needs to exist in the component ancestry. Using default message as fallback.');\n }\n return formatMessage(Object.assign(Object.assign({}, DEFAULT_INTL_CONFIG), { locale: 'en' }), createFormatters(), descriptor, values);\n};\nclass FormattedMessage extends React.Component {\n shouldComponentUpdate(nextProps) {\n const _a = this.props, { values } = _a, otherProps = __rest(_a, [\"values\"]);\n const { values: nextValues } = nextProps, nextOtherProps = __rest(nextProps, [\"values\"]);\n return (!shallowEquals(nextValues, values) ||\n !shallowEquals(otherProps, nextOtherProps));\n }\n render() {\n return (React.createElement(Context.Consumer, null, (intl) => {\n if (!this.props.defaultMessage) {\n invariantIntlContext(intl);\n }\n const { formatMessage = defaultFormatMessage, textComponent: Text = React.Fragment, } = intl || {};\n const { id, description, defaultMessage, values, children, tagName: Component = Text, } = this.props;\n const descriptor = { id, description, defaultMessage };\n let nodes = formatMessage(descriptor, values);\n if (!Array.isArray(nodes)) {\n nodes = [nodes];\n }\n if (typeof children === 'function') {\n return children(...nodes);\n }\n if (Component) {\n // Needs to use `createElement()` instead of JSX, otherwise React will\n // warn about a missing `key` prop with rich-text message formatting.\n return React.createElement(Component, null, ...nodes);\n }\n return nodes;\n }));\n }\n}\nFormattedMessage.displayName = 'FormattedMessage';\nFormattedMessage.defaultProps = {\n values: {},\n};\nexport default FormattedMessage;\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport FormattedMessage from './message';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nclass FormattedHTMLMessage extends FormattedMessage {\n render() {\n return (React.createElement(Context.Consumer, null, (intl) => {\n if (!this.props.defaultMessage) {\n invariantIntlContext(intl);\n }\n const { formatHTMLMessage, textComponent } = intl;\n const { id, description, defaultMessage, values: rawValues, children, } = this.props;\n let { tagName: Component } = this.props;\n // This is bc of TS3.3 doesn't recognize `defaultProps`\n if (!Component) {\n Component = textComponent || 'span';\n }\n const descriptor = { id, description, defaultMessage };\n const formattedHTMLMessage = formatHTMLMessage(descriptor, rawValues);\n if (typeof children === 'function') {\n return children(formattedHTMLMessage);\n }\n // Since the message presumably has HTML in it, we need to set\n // `innerHTML` in order for it to be rendered and not escaped by React.\n // To be safe, all string prop values were escaped when formatting the\n // message. It is assumed that the message is not UGC, and came from the\n // developer making it more like a template.\n //\n // Note: There's a perf impact of using this component since there's no\n // way for React to do its virtual DOM diffing.\n const html = { __html: formattedHTMLMessage };\n return React.createElement(Component, { dangerouslySetInnerHTML: html });\n }));\n }\n}\nFormattedHTMLMessage.displayName = 'FormattedHTMLMessage';\nFormattedHTMLMessage.defaultProps = Object.assign(Object.assign({}, FormattedMessage.defaultProps), { tagName: 'span' });\nexport default FormattedHTMLMessage;\n","export function defineMessages(msgs) {\n return msgs;\n}\nimport { createFormattedComponent, createFormattedDateTimePartsComponent, } from './components/createFormattedComponent';\nexport { default as injectIntl, Provider as RawIntlProvider, Context as IntlContext, } from './components/injectIntl';\nexport { default as useIntl } from './components/useIntl';\nexport { default as IntlProvider, createIntl } from './components/provider';\n// IMPORTANT: Explicit here to prevent api-extractor from outputing `import('./types').CustomFormatConfig`\nexport const FormattedDate = createFormattedComponent('formatDate');\nexport const FormattedTime = createFormattedComponent('formatTime');\nexport const FormattedNumber = createFormattedComponent('formatNumber');\nexport const FormattedList = createFormattedComponent('formatList');\nexport const FormattedDisplayName = createFormattedComponent('formatDisplayName');\nexport const FormattedDateParts = createFormattedDateTimePartsComponent('formatDate');\nexport const FormattedTimeParts = createFormattedDateTimePartsComponent('formatTime');\nexport { FormattedNumberParts } from './components/createFormattedComponent';\nexport { default as FormattedRelativeTime } from './components/relative';\nexport { default as FormattedPlural } from './components/plural';\nexport { default as FormattedMessage } from './components/message';\nexport { default as FormattedHTMLMessage } from './components/html-message';\nexport { createIntlCache } from './utils';\n","import { useContext } from 'react';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nexport default function useIntl() {\n const intl = useContext(Context);\n invariantIntlContext(intl);\n return intl;\n}\n"],"names":["TYPE","isLiteralElement","el","type","literal","isSelectElement","select","isPluralElement","plural","extendStatics","_super","__extends","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","this","SyntaxError","Error","buildMessage","expected","found","hex","ch","charCodeAt","toString","toUpperCase","literalEscape","replace","classEscape","describeExpectation","expectation","text","escapedParts","parts","map","part","isArray","inverted","description","expected1","j","descriptions","sort","slice","join","describeExpected","found1","message","location","_this","name","captureStackTrace","pegParse","input","options","undefined","peg$result","peg$FAILED","peg$startRuleFunctions","start","peg$parsestart","peg$startRuleFunction","peg$c0","peg$c1","messageText","value","insertLocation","peg$c2","peg$c3","peg$literalExpectation","peg$c4","pound","peg$c5","peg$otherExpectation","peg$c6","peg$c7","peg$c8","peg$c9","peg$c10","argument","peg$c11","peg$c12","peg$c13","peg$classExpectation","peg$c14","peg$c15","peg$c16","peg$c17","peg$c18","option","peg$c19","peg$c20","stem","peg$c21","tokens","peg$c22","peg$c23","peg$c24","skeleton","peg$c25","messageCtx","push","peg$c26","style","pop","peg$c27","peg$c28","peg$c29","peg$c30","peg$c31","number","date","time","peg$c32","peg$c33","peg$c34","peg$c35","peg$c36","peg$c37","peg$c38","peg$c39","peg$c40","pattern","peg$c41","peg$c42","peg$c43","peg$c44","peg$c45","peg$c46","peg$c47","peg$c48","peg$c49","peg$c50","peg$c51","peg$c52","pluralType","offset","reduce","all","_a","id","optionLocation","error","peg$c53","peg$c54","peg$c55","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","peg$c65","peg$c66","peg$c67","peg$c68","peg$c69","peg$c70","peg$c71","peg$c72","negative","num","peg$c74","peg$c75","peg$c76","peg$c77","peg$c78","escapedChar","quotedChars","peg$c79","x","isInPluralOption","peg$c80","peg$c81","peg$c82","peg$c83","peg$c84","peg$c85","peg$c86","peg$c87","peg$c88","peg$c89","peg$c90","peg$c91","peg$c92","digits","parseInt","peg$c93","peg$currPos","peg$savedPos","peg$posDetailsCache","line","column","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","startRule","substring","peg$computeLocation","location1","peg$buildSimpleError","text1","ignoreCase","peg$computePosDetails","pos","details","startPos","endPos","startPosDetails","endPosDetails","end","peg$fail","peg$parsemessage","s0","s1","peg$parsemessageElement","peg$parsemessageText","peg$parseliteralElement","s2","s3","s5","peg$parse_","peg$parseargNameOrNumber","peg$parseargumentElement","s7","s9","s10","s11","s12","substr","peg$parsenumberSkeletonToken","peg$parsenumberSkeleton","peg$parsenumberArgStyle","peg$parsenumberFormatElement","peg$parsedateTimeSkeletonLiteral","peg$parsedateTimeSkeletonPattern","peg$parsedateTimeSkeleton","peg$parsedateOrTimeArgStyle","peg$parsedateOrTimeFormatElement","peg$parsesimpleFormatElement","s13","s14","s15","peg$parsenumber","peg$parsepluralOption","peg$parsepluralElement","peg$parseselectOption","peg$parseselectElement","peg$parsepoundElement","peg$parsedoubleApostrophes","peg$parsequotedString","peg$parseunquotedString","peg$parsenumberSkeletonId","s4","peg$parsewhiteSpace","test","charAt","peg$parsenumberSkeletonTokenOption","s6","peg$parseargName","peg$parsepluralRuleSelectValue","peg$parsepatternSyntax","peg$parseargNumber","peg$parseescapedChar","captureLocation","__spreadArrays","il","r","k","a","jl","PLURAL_HASHTAG_REGEX","DATE_TIME_REGEX","parseDateTimeSkeleton","result","match","len","era","year","RangeError","month","day","weekday","hour12","hourCycle","hour","minute","second","timeZoneName","FRACTION_PRECISION_REGEX","SIGNIFICANT_PRECISION_REGEX","parseSignificantPrecision","str","_","g1","g2","minimumSignificantDigits","maximumSignificantDigits","parseSign","signDisplay","currencySign","parseNotationOptions","opt","signOpts","convertNumberSkeletonToNumberFormatOptions","_i","tokens_1","token","currency","useGrouping","maximumFractionDigits","unit","notation","compactDisplay","currencyDisplay","unitDisplay","minimumFractionDigits","parse","opts","els","normalizeHashtagInPlural","forEach","keys","matchingLiteralElIndex","literalEl","el_1","newValue","newEls","splice","getCacheId","inputs","JSON","stringify","_typeof","obj","orderedProps","domParser","memoizeFormatConstructor","FormatConstructor","cache","args","cacheId","format","bind","FormatError","msg","variableId","formatToParts","locales","formatters","formats","values","currentPluralValue","originalMessage","els_1","varName","other","Intl","PluralRules","rule","getPluralRules","getNumberFormat","getDateTimeFormat","String","lastPart","mergeLiteral","TOKEN_DELIMITER","TOKEN_REGEX","counter","restoreRichPlaceholderMessage","objectParts","split","filter","Boolean","c","SIMPLE_XML_REGEX","TEMPLATE_ID","Date","now","VOID_ELEMENTS","formatHTMLMessage","formattedMessage","DOMParser","content","parseFromString","getElementById","tagsToFormat","getElementsByTagName","caseSensitiveTags","tagName","toLowerCase","childNodes","child","concat","formatHTMLElement","outerHTML","textContent","isVoidElement","indexOf","formatFnOrValue","chunks","mergeConfigs","defaultConfig","configs","c1","c2","mergeConfig","IntlMessageFormat","defaultLocale","NumberFormat","resolvedOptions","locale","__parse","percent","short","medium","long","full","overrideFormats","formatterCache","dateTime","pluralRules","formatToString","ast","supportedLocalesOf","getAst","TypeError","memoizeIntlConstructor","DateTimeFormat","createDefaultFormatters","invariant","condition","Err","ESCAPED_CHARS","UNSAFE_CHARS_REGEX","filterProps","props","whitelist","defaults","filtered","invariantIntlContext","intl","createError","exception","eMsg","stack","DEFAULT_INTL_CONFIG","messages","timeZone","textComponent","React","defaultFormats","onError","createIntlCache","relativeTime","list","displayNames","createFormatters","RelativeTimeFormat","ListFormat","DisplayNames","getMessageFormat","getRelativeTimeFormat","getListFormat","getDisplayNames","getNamedFormat","formatType","defineProperty","exports","Symbol","for","e","f","g","h","l","m","q","u","$$typeof","v","module","require$$0","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","reactIs","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","targetComponent","sourceComponent","blacklist","inheritedComponent","hoistNonReactStatics","targetStatics","sourceStatics","key","descriptor","hoistNonReactStatics_","IntlContext","IntlConsumer","Consumer","Provider","Context","injectIntl","WrappedComponent","WithIntl","enforceContext","intlPropName","ref","forwardRef","forwardedRef","Component","getDisplayName","DisplayName","DisplayNameParts","__rest","propertyIsEnumerable","FormattedNumberParts","children","formatProps","formatNumberToParts","createFormattedDateTimePartsComponent","ComponentParts","formatDateToParts","formatTimeToParts","createFormattedComponent","formattedValue","Text","NUMBER_FORMAT_OPTIONS","getFormatter","RELATIVE_TIME_FORMAT_OPTIONS","formatRelativeTime","config","DATE_TIME_FORMAT_OPTIONS","filteredOptions","PLURAL_FORMAT_OPTIONS","setTimeZoneInOptions","deepMergeOptions","opts1","opts2","deepMergeFormatsAndSetTimeZone","f1","mfFormats","prepareIntlMessageFormatHtmlOutput","formatMessage","state","messageDescriptor","defaultMessage","formattedMessageParts","rawValues","escaped","escape","objA","objB","aKeys","bKeys","LIST_FORMAT_OPTIONS","formatList","richValues","serializedValues","generateToken","val","DISPLAY_NAMES_OPTONS","shallowEquals","shallowEquals_","processIntlConfig","createIntl","resolvedConfig","formatNumber","formatDate","formatTime","formatPlural","formatDisplayName","of","IntlProvider","prevConfig","MINUTE","HOUR","selectUnit","seconds","absValue","Math","abs","getDurationInSeconds","valueToSeconds","INCREMENTABLE_UNITS","canIncrement","includes","FormattedRelativeTime","_updateTimer","prevUnit","prevValue","currentValueInSeconds","updateIntervalInSeconds","clearTimeout","nextValueInSeconds","nextUnit","unitDuration","prevInterestingValueInSeconds","nextInterestingValueInSeconds","delayInSeconds","setTimeout","_this2","setState","scheduleNextUpdate","_this3","currentValue","currentUnit","round","formattedRelativeTime","FormattedPlural","formattedPlural","defaultFormatMessage","withIntl","FormattedMessage","nextProps","otherProps","nextValues","nextOtherProps","nodes","FormattedHTMLMessage","formattedHTMLMessage","html","__html","dangerouslySetInnerHTML","FormattedDate","FormattedTime","FormattedNumber","FormattedList","FormattedDisplayName","FormattedDateParts","FormattedTimeParts","msgs","useContext"],"mappings":"muDAAO,IAAIA,GACAA,EAsCJ,SAASC,EAAiBC,UACtBA,EAAGC,OAASH,GAAKI,QAcrB,SAASC,EAAgBH,UACrBA,EAAGC,OAASH,GAAKM,OAErB,SAASC,EAAgBL,UACrBA,EAAGC,OAASH,GAAKQ,QAzDjBR,EAkCCA,GAATA,IAAgB,IA9BVA,EAAI,QAAc,GAAK,UAI5BA,EAAKA,EAAI,SAAe,GAAK,WAI7BA,EAAKA,EAAI,OAAa,GAAK,SAI3BA,EAAKA,EAAI,KAAW,GAAK,OAIzBA,EAAKA,EAAI,KAAW,GAAK,OAIzBA,EAAKA,EAAI,OAAa,GAAK,SAI3BA,EAAKA,EAAI,OAAa,GAAK,SAK3BA,EAAKA,EAAI,MAAY,GAAK,QC1B9B,IACQS,EA2BmCC,EA5BvCC,GACIF,EAAgB,SAAUG,EAAGC,UAC7BJ,EAAgBK,OAAOC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,IACvE,SAAUD,EAAGC,OAAU,IAAIK,KAAKL,EAAOA,EAAEM,eAAeD,KAAIN,EAAEM,GAAKL,EAAEK,MACpDN,EAAGC,IAErB,SAAUD,EAAGC,YAEPO,SAAYC,YAAcT,EADnCH,EAAcG,EAAGC,GAEjBD,EAAEU,UAAkB,OAANT,EAAaC,OAAOS,OAAOV,IAAMO,EAAGE,UAAYT,EAAES,UAAW,IAAIF,KAGnFI,GAAsC,kBACtCA,GAAWV,OAAOW,QAAU,SAASC,OAC5B,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,QAEvC,IAAIV,KADTS,EAAIG,UAAUF,GACOd,OAAOQ,UAAUH,eAAea,KAAKL,EAAGT,KACzDQ,EAAER,GAAKS,EAAET,WAEVQ,IAEKO,MAAMC,KAAMJ,YAM5BK,IAAuCzB,EA4FzC0B,MA3FEzB,EAAUwB,EAAazB,GAavByB,EAAYE,aAAe,SAAUC,EAAUC,YAClCC,EAAIC,UACFA,EAAGC,WAAW,GAAGC,SAAS,IAAIC,uBAEhCC,EAAclB,UACZA,EACFmB,QAAQ,MAAO,QACfA,QAAQ,KAAM,OACdA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,eAAgB,SAAUL,SAAa,OAASD,EAAIC,KAC5DK,QAAQ,wBAAyB,SAAUL,SAAa,MAAQD,EAAIC,cAEpEM,EAAYpB,UACVA,EACFmB,QAAQ,MAAO,QACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,KAAM,OACdA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,eAAgB,SAAUL,SAAa,OAASD,EAAIC,KAC5DK,QAAQ,wBAAyB,SAAUL,SAAa,MAAQD,EAAIC,cAEpEO,EAAoBC,UACjBA,EAAY9C,UACX,gBACM,IAAO0C,EAAcI,EAAYC,MAAQ,QAC/C,YACGC,EAAeF,EAAYG,MAAMC,IAAI,SAAUC,UACxCrC,MAAMsC,QAAQD,GACfP,EAAYO,EAAK,IAAM,IAAMP,EAAYO,EAAK,IAC9CP,EAAYO,WAEf,KAAOL,EAAYO,SAAW,IAAM,IAAML,EAAe,QAC/D,YACM,oBACN,YACM,mBACN,eACMF,EAAYQ,mBA+BxB,qBA5BmBC,OAElB9B,EACA+B,EAFAC,EAAeF,EAAUL,IAAIL,MAGjCY,EAAaC,OACa,EAAtBD,EAAa7B,OAAY,KACb4B,EAAP/B,EAAI,EAAUA,EAAIgC,EAAa7B,OAAQH,IACpCgC,EAAahC,EAAI,KAAOgC,EAAahC,KACrCgC,EAAaD,GAAKC,EAAahC,GAC/B+B,KAGRC,EAAa7B,OAAS4B,SAElBC,EAAa7B,aACZ,SACM6B,EAAa,QACnB,SACMA,EAAa,GAAK,OAASA,EAAa,kBAExCA,EAAaE,MAAM,GAAI,GAAGC,KAAK,MAChC,QACAH,EAAaA,EAAa7B,OAAS,IAMhCiC,CAAiB1B,GAAY,UAH3B2B,EAGmD1B,GAFtD,IAAOM,EAAcoB,GAAU,IAAO,gBAEyB,cAH5DA,GAKpB9B,YAzFEA,EAAY+B,EAAS5B,EAAUC,EAAO4B,OACvCC,EAAQ1D,EAAOsB,KAAKE,OAASA,YACjCkC,EAAMF,QAAUA,EAChBE,EAAM9B,SAAWA,EACjB8B,EAAM7B,MAAQA,EACd6B,EAAMD,SAAWA,EACjBC,EAAMC,KAAO,cAC0B,mBAA5BjC,MAAMkC,mBACblC,MAAMkC,kBAAkBF,EAAOjC,GAE5BiC,EAsgFR,IAAIG,EAp7EX,SAAmBC,EAAOC,GACtBA,OAAsBC,IAAZD,EAAwBA,EAAU,OA2KxCE,EA1KAC,EAAa,GACbC,EAAyB,CAAEC,MAAOC,IAClCC,EAAwBD,GACxBE,EAAS,SAAU7B,UACZA,EAAMW,KAAK,KAElBmB,EAAS,SAAUC,UACZ3D,GAAS,CAAErB,KAAMH,GAAKI,QAASgF,MAAOD,GAAeE,OAE5DC,EAAS,IACTC,EAASC,GAAuB,KAAK,GACrCC,EAAS,kBACFjE,GAAS,CAAErB,KAAMH,GAAK0F,OAASL,OAEtCM,EAASC,GAAqB,mBAC9BC,EAAS,IACTC,EAASN,GAAuB,KAAK,GACrCO,EAAS,IACTC,EAASR,GAAuB,KAAK,GACrCS,EAAU,SAAUb,UACb5D,GAAS,CAAErB,KAAMH,GAAKkG,SAAUd,MAAOA,GAASC,OAEvDc,EAAUP,GAAqB,oBAC/BQ,EAAU,WACVC,EAAUC,GAAqB,CAAC,IAAK,IAAK,IAAK,MAAM,GAAO,GAC5DC,EAiLO,CAAEpG,KAAM,OAhLfqG,EAAUZ,GAAqB,6BAC/Ba,EAAU,IACVC,EAAUlB,GAAuB,KAAK,GACtCmB,EAAU,SAAUC,UAAiBA,GACrCC,EAAUjB,GAAqB,uBAC/BkB,EAAU,SAAUC,EAAMtC,SACnB,CAAEsC,KAAMA,EAAMtC,QAASA,IAE9BuC,EAAU,SAAUC,UACbzF,GAAS,CAAErB,KAAM,EAAgB8G,OAAQA,GAAU5B,OAE1D6B,EAAU,KACVC,EAAU3B,GAAuB,MAAM,GACvC4B,EAAU,SAAUC,UAAmBA,GACvCC,EAAU,kBAAcC,GAAWC,KAAK,mBAA0B,GAClEC,EAAU,SAAUC,UACpBH,GAAWI,MACJD,EAAM5E,QAAQ,OAAQ,KAE7B8E,EAAU,IACVC,EAAUrC,GAAuB,KAAK,GACtCsC,EAAU,SACVC,EAAUvC,GAAuB,UAAU,GAC3CwC,EAAU,SAAU5C,EAAOjF,EAAMuH,UAC1BlG,GAAS,CAAErB,KAAe,WAATA,EAAoBH,GAAKiI,OAAkB,SAAT9H,EAAkBH,GAAKkI,KAAOlI,GAAKmI,KAAMT,MAAOA,GAASA,EAAM,GAAItC,MAAOA,GAASC,OAE7I+C,EAAU,IACVC,EAAU7C,GAAuB,KAAK,GACtC8C,EAAU,QACVC,EAAUjC,GAAqB,CAAC,MAAM,GAAM,GAC5CkC,EAAU,gBACVC,EAAUnC,GAAqB,CAAC,CAAC,IAAK,KAAM,CAAC,IAAK,KAAM,IAAK,IAAK,MAAM,GAAM,GAC9EoC,EAAU,YACVC,EAAUrC,GAAqB,CAAC,CAAC,IAAK,KAAM,CAAC,IAAK,OAAO,GAAO,GAChEsC,EAAU,SAAUC,UACbrH,GAAS,CAAErB,KAAM,EAAkB0I,QAASA,GAAWxD,OAE9DyD,EAAU,kBAAcvB,GAAWC,KAAK,uBAA8B,GACtEuB,EAAU,OACVC,EAAUxD,GAAuB,QAAQ,GACzCyD,EAAU,OACVC,EAAU1D,GAAuB,QAAQ,GACzC2D,EAAU,SACVC,EAAU5D,GAAuB,UAAU,GAC3C6D,GAAU,gBACVC,GAAU9D,GAAuB,iBAAiB,GAClD+D,GAAU,UACVC,GAAUhE,GAAuB,WAAW,GAC5CiE,GAAU,SAAUrE,EAAOsE,EAAYC,EAAQlF,UACxCjD,GAAS,CAAErB,KAAMH,GAAKQ,OAAQkJ,WAA2B,WAAfA,EAA0B,WAAa,UAAWtE,MAAOA,EAAOuE,OAAQA,EAASA,EAAO,GAAK,EAAGlF,QAASA,EAAQmF,OAAO,SAAUC,EAAKC,OAC5KC,EAAKD,EAAGC,GAAI3E,EAAQ0E,EAAG1E,MAAO4E,EAAiBF,EAAG3F,gBAClD4F,KAAMF,GACNI,GAAM,qBAAwBF,EAAK,yBAA6B7G,KAAS,IAAMiB,MAEnF0F,EAAIE,GAAM,CACN3E,MAAOA,EACPjB,SAAU6F,GAEPH,GACR,KAAOxE,OAEd6E,GAAU,SACVC,GAAU3E,GAAuB,UAAU,GAC3C4E,GAAU,SAAUhF,EAAOX,UACpBjD,GAAS,CAAErB,KAAMH,GAAKM,OAAQ8E,MAAOA,EAAOX,QAASA,EAAQmF,OAAO,SAAUC,EAAKC,OAC9EC,EAAKD,EAAGC,GAAI3E,EAAQ0E,EAAG1E,MAAO4E,EAAiBF,EAAG3F,gBAClD4F,KAAMF,GACNI,GAAM,qBAAwBF,EAAK,yBAA6B7G,KAAS,IAAMiB,MAEnF0F,EAAIE,GAAM,CACN3E,MAAOA,EACPjB,SAAU6F,GAEPH,GACR,KAAOxE,OAEdgF,GAAU,IACVC,GAAU9E,GAAuB,KAAK,GACtC+E,GAAU,SAAUR,UAAMxC,GAAWC,KAAK,WAAkB,GAC5DgD,GAAU,SAAUT,EAAI3E,UACxBmC,GAAWI,MACJnG,GAAS,CAAEuI,GAAIA,EAClB3E,MAAOA,GAASC,OAEpBoF,GAAU,SAAUV,UAAMxC,GAAWC,KAAK,WAAkB,GAC5DkD,GAAU,SAAUX,EAAI3E,UACxBmC,GAAWI,MACJnG,GAAS,CAAEuI,GAAIA,EAClB3E,MAAOA,GAASC,OAEpBsF,GAAU/E,GAAqB,cAC/BgF,GAAU,qEACVC,GAAUvE,GAAqB,CAAC,CAAC,KAAM,MAAO,IAAK,IAAQ,IAAQ,IAAU,CAAC,IAAU,KAAW,SAAU,SAAU,IAAU,IAAU,MAAW,GAAO,GAC7JwE,GAAUlF,GAAqB,kBAC/BmF,GAAU,0OACVC,GAAU1E,GAAqB,CAAC,CAAC,IAAK,KAAM,CAAC,IAAK,KAAM,CAAC,IAAK,KAAM,IAAK,CAAC,IAAK,KAAM,CAAC,IAAQ,KAAS,IAAQ,IAAQ,IAAQ,IAAQ,IAAQ,IAAQ,IAAQ,IAAQ,IAAQ,IAAQ,IAAQ,CAAC,IAAU,KAAW,CAAC,IAAU,KAAW,CAAC,IAAU,KAAW,CAAC,IAAU,KAAW,CAAC,IAAU,KAAW,CAAC,IAAU,KAAW,CAAC,IAAU,KAAW,CAAC,IAAU,KAAW,CAAC,IAAU,KAAW,CAAC,IAAU,KAAW,IAAU,IAAU,IAAU,IAAU,MAAW,GAAO,GACrd2E,GAAUrF,GAAqB,uBAC/BsF,GAAUtF,GAAqB,UAC/BuF,GAAU,IACVC,GAAU5F,GAAuB,KAAK,GACtC6F,GAAU,SAAUC,EAAUC,UACvBA,EACDD,GACKC,EACDA,EACJ,GAGNC,GAAU5F,GAAqB,sBAC/B6F,GAAU,KACVC,GAAUlG,GAAuB,MAAM,GACvCmG,GAAU,iBAAqB,KAC/BC,GAAU,SAAUC,EAAaC,UAC1BD,EAAcC,EAAYhJ,QAAQ,KAAM,MAE/CiJ,GAAU,SAAUC,WACN,MAANA,GACFC,MAA4B,MAAND,GA4wED,EAApBzE,GAAWxF,QA3wEmB,MAANiK,IAE/BE,GAAU,KACVC,GAAU3G,GAAuB,MAAM,GACvC4G,GAAU,SAAUJ,SACP,MAANA,GAAmB,MAANA,GAAcC,MAA4B,MAAND,GAExDK,GAAUzG,GAAqB,mBAC/B0G,GAAU1G,GAAqB,aAC/B2G,GAAU,IACVC,GAAUhH,GAAuB,KAAK,GACtCiH,GAAU,kBAAqB,GAC/BC,GAAU,SACVC,GAAUrG,GAAqB,CAAC,CAAC,IAAK,OAAO,GAAO,GACpDsG,GAAU,SACVC,GAAUvG,GAAqB,CAAC,CAAC,IAAK,OAAO,GAAO,GACpDwG,GAAU,SAAUC,UACbC,SAASD,EAAOhJ,KAAK,IAAK,KAEjCkJ,GAAUrH,GAAqB,WAC/BsH,GAAc,EACdC,GAAe,EACfC,GAAsB,CAAC,CAAEC,KAAM,EAAGC,OAAQ,IAC1CC,GAAiB,EACjBC,GAAsB,GACtBC,GAAkB,UAEI/I,IAAtBD,EAAQiJ,UAAyB,MAC3BjJ,EAAQiJ,aAAa7I,SACjB,IAAIzC,MAAM,mCAAqCqC,EAAQiJ,UAAY,MAE7E1I,EAAwBH,EAAuBJ,EAAQiJ,oBAElDxK,YACEsB,EAAMmJ,UAAUR,GAAcD,aAEhC/I,YACEyJ,GAAoBT,GAAcD,aAQpCjD,GAAM/F,EAAS2J,kBA6EM3J,EAAS2J,UAC5B,IAAI1L,GAAY+B,EAAS,GAAI,GAAI2J,GA1ElCC,CAAqB5J,EAH3B2J,OAA0BnJ,IAAdmJ,EACNA,EACAD,GAAoBT,GAAcD,cAGnC1H,GAAuBuI,EAAOC,SAC5B,CAAE7N,KAAM,UAAW+C,KAAM6K,EAAOC,WAAYA,YAE9C1H,GAAqBlD,EAAOI,EAAUwK,SACpC,CAAE7N,KAAM,QAASiD,MAAOA,EAAOI,SAAUA,EAAUwK,WAAYA,YAQjEpI,GAAqBnC,SACnB,CAAEtD,KAAM,QAASsD,YAAaA,YAEhCwK,GAAsBC,OAEvBhN,EADAiN,EAAUf,GAAoBc,MAE9BC,SACOA,MAGPjN,EAAIgN,EAAM,GACFd,GAAoBlM,IACxBA,QAGJiN,EAAU,CACNd,MAFJc,EAAUf,GAAoBlM,IAEZmM,KACdC,OAAQa,EAAQb,QAEbpM,EAAIgN,GACqB,KAAxB1J,EAAM9B,WAAWxB,IACjBiN,EAAQd,OACRc,EAAQb,OAAS,GAGjBa,EAAQb,SAEZpM,WAEJkM,GAAoBc,GAAOC,WAI1BP,GAAoBQ,EAAUC,OAC/BC,EAAkBL,GAAsBG,GACxCG,EAAgBN,GAAsBI,SACnC,CACHvJ,MAAO,CACH6E,OAAQyE,EACRf,KAAMiB,EAAgBjB,KACtBC,OAAQgB,EAAgBhB,QAE5BkB,IAAK,CACD7E,OAAQ0E,EACRhB,KAAMkB,EAAclB,KACpBC,OAAQiB,EAAcjB,kBAIzBmB,GAAS/K,GACVwJ,GAAcK,KAGAA,GAAdL,KACAK,GAAiBL,GACjBM,GAAsB,IAE1BA,GAAoBhG,KAAK9D,aAQpBqB,YAEA2J,cAGAA,SACDC,EAAIC,MACRD,EAAK,GACLC,EAAKC,KACED,IAAOhK,GACV+J,EAAGnH,KAAKoH,GACRA,EAAKC,YAEFF,WAEFE,SACDF,SACJA,iBAoDIA,EAAIC,EACRD,EAAKzB,IACL0B,EAAKE,QACMlK,IACPuI,GAAewB,EACfC,EAAK1J,EAAO0J,WAEhBD,EAAKC,EA3DAG,MACMnK,IACP+J,iBAiFAA,EAAIC,EAAII,EAAIC,EAAQC,EACxBzB,KACAkB,EAAKzB,GACiC,MAAlC1I,EAAM9B,WAAWwK,KACjB0B,EAAK/I,EACLqH,OAGA0B,EAAKhK,EACmB,IAApB6I,IACAgB,GAAS3I,IAuBG6I,EApBhBC,IAAOhK,GACPoK,EAAKG,KACDH,IAAOpK,GACPqK,EAAKG,QACMxK,EACFuK,OACMvK,GAC+B,MAAlCJ,EAAM9B,WAAWwK,KACjBgC,EAAKnJ,EACLmH,OAGAgC,EAAKtK,EACmB,IAApB6I,IACAgB,GAASzI,IAGbkJ,IAAOtK,GACPuI,GAAewB,EACfC,EAAK3I,EAAQgJ,KAIb/B,GAAcyB,EACT/J,KAITsI,GAAcyB,EACT/J,IAITsI,GAAcyB,EACT/J,IAITsI,GAAcyB,EACT/J,KAITsI,GAAcyB,EACT/J,GAET6I,KACIkB,IAAO/J,IACPgK,EAAKhK,EACmB,IAApB6I,IACAgB,GAAS9I,WAGVgJ,EAnJEU,MACMzK,IACP+J,iBAs+BJA,GACJA,iBAvjBIA,EAAIC,EAAII,EAAIC,EAAQC,EAAQI,EAAQC,EAAIC,EAAKC,EAAKC,EACtDf,EAAKzB,GACiC,MAAlC1I,EAAM9B,WAAWwK,KACjB0B,EAAK/I,EACLqH,OAGA0B,EAAKhK,EACmB,IAApB6I,IACAgB,GAAS3I,IAwF2B6I,EArFxCC,IAAOhK,GACPoK,EAAKG,KACDH,IAAOpK,GACPqK,EAAKG,QACMxK,EACFuK,OACMvK,GAC+B,KAAlCJ,EAAM9B,WAAWwK,KACjBgC,EAAKtH,EACLsF,OAGAgC,EAAKtK,EACmB,IAApB6I,IACAgB,GAAS5G,IAGbqH,IAAOtK,EACFuK,OACMvK,GACHJ,EAAMmL,OAAOzC,GAAa,KAAOpF,GACjCwH,EAAKxH,EACLoF,IAAe,IAGfoC,EAAK1K,EACmB,IAApB6I,IACAgB,GAAS1G,IAGbuH,IAAO1K,EACFuK,OACMvK,GACP2K,EAAKrC,GACiC,KAAlC1I,EAAM9B,WAAWwK,KACjBsC,EAAM5H,EACNsF,OAGAsC,EAAM5K,EACkB,IAApB6I,IACAgB,GAAS5G,KASL0H,EANRC,IAAQ5K,GACR6K,EAAMN,QACMvK,GACR8K,iBArHpCf,EAAIC,EAAII,EACZL,EAAKzB,GACD1I,EAAMmL,OAAOzC,GAAa,KAAOhG,GACjC0H,EAAK1H,EACLgG,IAAe,IAGf0B,EAAKhK,EACmB,IAApB6I,IACAgB,GAAStH,IAQTwH,EALJC,IAAOhK,GACPoK,iBAlCAL,EAAIC,EAAII,KACZL,EAAKzB,GACL0B,EAAK,IACLI,EAAKY,QACMhL,OACAoK,IAAOpK,GACVgK,EAAGpH,KAAKwH,GACRA,EAAKY,UAIThB,EAAKhK,EAELgK,IAAOhK,IACPuI,GAAewB,EACfC,EAAK5H,EAAQ4H,WAEjBD,EAAKC,EAiBIiB,GACDb,IAAOpK,GACPuI,GAAewB,EACfC,EAAKxH,EAAQ4H,KAIb9B,GAAcyB,EACT/J,KAITsI,GAAcyB,EACT/J,GAEL+J,IAAO/J,IAEPuI,GADAwB,EAAKzB,GAEL0B,EAAKtH,IAYGqH,GAVJC,EADAA,OACKlK,EAGAE,KAEEA,GACPoK,EAAKF,QACMlK,GACPuI,GAAewB,EACfC,EAAKnH,EAAQuH,KAIb9B,GAAcyB,EACT/J,IAITsI,GAAcyB,EACT/J,WAGN+J,EA8DuCmB,MACMlL,EACR4K,EAAM,CAACA,EAAKC,EAAKC,IAIjBxC,GAAcqC,EACT3K,IAITsI,GAAcqC,EACT3K,IAITsI,GAAcqC,EACT3K,MAEEA,IACP2K,EAAK,MAELA,IAAO3K,GACP4K,EAAML,QACMvK,GAC8B,MAAlCJ,EAAM9B,WAAWwK,KACjBuC,EAAM1J,EACNmH,OAGAuC,EAAM7K,EACkB,IAApB6I,IACAgB,GAASzI,IAGbyJ,IAAQ7K,GACRuI,GAAewB,EACfC,EAAK5G,EAAQiH,EAAIK,EAAIC,KAIrBrC,GAAcyB,EACT/J,KAITsI,GAAcyB,EACT/J,IAITsI,GAAcyB,EACT/J,KAITsI,GAAcyB,EACT/J,IAITsI,GAAcyB,EACT/J,KAITsI,GAAcyB,EACT/J,IAITsI,GAAcyB,EACT/J,KAITsI,GAAcyB,EACT/J,IAITsI,GAAcyB,EACT/J,IAITsI,GAAcyB,EACT/J,KAITsI,GAAcyB,EACT/J,UAEF+J,EA8ZFoB,MACMnL,IACP+J,iBA3KAA,EAAIC,EAAII,EAAIC,EAAQC,EAAQI,EAAQC,EAAIC,EAAKC,EAAKC,EACtDf,EAAKzB,GACiC,MAAlC1I,EAAM9B,WAAWwK,KACjB0B,EAAK/I,EACLqH,OAGA0B,EAAKhK,EACmB,IAApB6I,IACAgB,GAAS3I,IAoG2B6I,EAjGxCC,IAAOhK,GACPoK,EAAKG,KACDH,IAAOpK,GACPqK,EAAKG,QACMxK,EACFuK,OACMvK,GAC+B,KAAlCJ,EAAM9B,WAAWwK,KACjBgC,EAAKtH,EACLsF,OAGAgC,EAAKtK,EACmB,IAApB6I,IACAgB,GAAS5G,IAGbqH,IAAOtK,EACFuK,OACMvK,GACHJ,EAAMmL,OAAOzC,GAAa,KAAOnE,GACjCuG,EAAKvG,EACLmE,IAAe,IAGfoC,EAAK1K,EACmB,IAApB6I,IACAgB,GAASzF,IAGbsG,IAAO1K,IACHJ,EAAMmL,OAAOzC,GAAa,KAAOjE,GACjCqG,EAAKrG,EACLiE,IAAe,IAGfoC,EAAK1K,EACmB,IAApB6I,IACAgB,GAASvF,KAIjBoG,IAAO1K,EACFuK,OACMvK,GACP2K,EAAKrC,GACiC,KAAlC1I,EAAM9B,WAAWwK,KACjBsC,EAAM5H,EACNsF,OAGAsC,EAAM5K,EACkB,IAApB6I,IACAgB,GAAS5G,KASL0H,EANRC,IAAQ5K,GACR6K,EAAMN,QACMvK,GACR8K,iBAjIpCf,EAAIC,EAAII,EACZL,EAAKzB,GACD1I,EAAMmL,OAAOzC,GAAa,KAAOhG,GACjC0H,EAAK1H,EACLgG,IAAe,IAGf0B,EAAKhK,EACmB,IAApB6I,IACAgB,GAAStH,IAQTwH,EALJC,IAAOhK,GACPoK,iBA/CAL,EAAIC,EAAII,EAAIC,EAEhBL,EADAD,EAAKzB,GAEL8B,EAAK,IACLC,EAAKe,QACMpL,IACPqK,EAAKgB,SAELhB,IAAOrK,OACAqK,IAAOrK,GACVoK,EAAGxH,KAAKyH,IACRA,EAAKe,QACMpL,IACPqK,EAAKgB,WAKbjB,EAAKpK,EAGLgK,EADAI,IAAOpK,EACFJ,EAAMmJ,UAAUiB,EAAI1B,IAGpB8B,EAELJ,IAAOhK,IACPuI,GAAewB,EACfC,EAAKhG,EAAQgG,WAEjBD,EAAKC,EAiBIsB,GACDlB,IAAOpK,GACPuI,GAAewB,EACfC,EAAKxH,EAAQ4H,KAIb9B,GAAcyB,EACT/J,KAITsI,GAAcyB,EACT/J,GAEL+J,IAAO/J,IAEPuI,GADAwB,EAAKzB,GAEL0B,EAAK9F,IAYG6F,GAVJC,EADAA,OACKlK,EAGAE,KAEEA,GACPoK,EAAKF,QACMlK,GACPuI,GAAewB,EACfC,EAAKnH,EAAQuH,KAIb9B,GAAcyB,EACT/J,IAITsI,GAAcyB,EACT/J,WAGN+J,EA0EuCwB,MACMvL,EACR4K,EAAM,CAACA,EAAKC,EAAKC,IAIjBxC,GAAcqC,EACT3K,IAITsI,GAAcqC,EACT3K,IAITsI,GAAcqC,EACT3K,MAEEA,IACP2K,EAAK,MAELA,IAAO3K,GACP4K,EAAML,QACMvK,GAC8B,MAAlCJ,EAAM9B,WAAWwK,KACjBuC,EAAM1J,EACNmH,OAGAuC,EAAM7K,EACkB,IAApB6I,IACAgB,GAASzI,IAGbyJ,IAAQ7K,GACRuI,GAAewB,EACfC,EAAK5G,EAAQiH,EAAIK,EAAIC,KAIrBrC,GAAcyB,EACT/J,KAITsI,GAAcyB,EACT/J,IAITsI,GAAcyB,EACT/J,KAITsI,GAAcyB,EACT/J,IAITsI,GAAcyB,EACT/J,KAITsI,GAAcyB,EACT/J,IAITsI,GAAcyB,EACT/J,KAITsI,GAAcyB,EACT/J,IAITsI,GAAcyB,EACT/J,IAITsI,GAAcyB,EACT/J,KAITsI,GAAcyB,EACT/J,UAEF+J,EAMEyB,WAEFzB,EA3+BM0B,MACMzL,IACP+J,iBA4+BRA,EAAIC,EAAQK,EAAQC,EAAQI,EAAQC,EAASE,EAAKC,EAAKY,EAAKC,EAAKC,EACrE7B,EAAKzB,GACiC,MAAlC1I,EAAM9B,WAAWwK,KACjB0B,EAAK/I,EACLqH,OAGA0B,EAAKhK,EACmB,IAApB6I,IACAgB,GAAS3I,OAGb8I,IAAOhK,KACFuK,OACMvK,MACPqK,EAAKG,QACMxK,KACFuK,OACMvK,KAC+B,KAAlCJ,EAAM9B,WAAWwK,KACjBgC,EAAKtH,EACLsF,OAGAgC,EAAKtK,EACmB,IAApB6I,IACAgB,GAAS5G,IAGbqH,IAAOtK,KACFuK,OACMvK,KACHJ,EAAMmL,OAAOzC,GAAa,KAAO/D,GACjCmG,EAAKnG,EACL+D,IAAe,IAGfoC,EAAK1K,EACmB,IAApB6I,IACAgB,GAASrF,IAGbkG,IAAO1K,IACHJ,EAAMmL,OAAOzC,GAAa,MAAQ7D,IAClCiG,EAAKjG,GACL6D,IAAe,KAGfoC,EAAK1K,EACmB,IAApB6I,IACAgB,GAASnF,MAIjBgG,IAAO1K,KACFuK,OACMvK,KAC+B,KAAlCJ,EAAM9B,WAAWwK,KACjBqC,EAAK3H,EACLsF,OAGAqC,EAAK3K,EACmB,IAApB6I,IACAgB,GAAS5G,IAGb0H,IAAO3K,KACDuK,OACMvK,KACR6K,EAAMvC,GACF1I,EAAMmL,OAAOzC,GAAa,KAAO3D,IACjCmG,EAAMnG,GACN2D,IAAe,IAGfwC,EAAM9K,EACkB,IAApB6I,IACAgB,GAASjF,MASLiG,EANRC,IAAQ9K,GACR0L,EAAMnB,QACMvK,GACR2L,EAAME,QACM7L,EACR8K,EAAM,CAACA,EAAKY,EAAKC,IAIjBrD,GAAcuC,EACR7K,IAIVsI,GAAcuC,EACR7K,IAIVsI,GAAcuC,EACR7K,MAEEA,IACR6K,EAAM,MAENA,IAAQ7K,MACR8K,EAAMP,QACMvK,EAAY,IACpB0L,EAAM,IACNC,EAAMG,QACM9L,OACD2L,IAAQ3L,GACX0L,EAAI9I,KAAK+I,GACTA,EAAMG,UAIVJ,EAAM1L,EAkBE+J,EAhBR2B,IAAQ1L,GACR2L,EAAMpB,QACMvK,GAC8B,MAAlCJ,EAAM9B,WAAWwK,KACjBsD,EAAMzK,EACNmH,OAGAsD,EAAM5L,EACkB,IAApB6I,IACAgB,GAASzI,IAGbwK,IAAQ5L,GACRuI,GAAewB,EACfC,EAAKnF,GAAQwF,EAAIK,EAAIG,EAAKa,KAI1BpD,GAAcyB,EACT/J,KAITsI,GAAcyB,EACT/J,IAITsI,GAAcyB,EACT/J,QAITsI,GAAcyB,EACdA,EAAK/J,OAITsI,GAAcyB,EACdA,EAAK/J,OAITsI,GAAcyB,EACdA,EAAK/J,OAITsI,GAAcyB,EACdA,EAAK/J,OAITsI,GAAcyB,EACdA,EAAK/J,OAITsI,GAAcyB,EACdA,EAAK/J,OAITsI,GAAcyB,EACdA,EAAK/J,OAITsI,GAAcyB,EACdA,EAAK/J,OAITsI,GAAcyB,EACdA,EAAK/J,OAITsI,GAAcyB,EACdA,EAAK/J,OAITsI,GAAcyB,EACdA,EAAK/J,OAITsI,GAAcyB,EACdA,EAAK/J,SAEF+J,EAhsCUgC,MACM/L,IACP+J,iBAisCZA,EAAIC,EAAQK,EAAQC,EAAQI,EAAQC,EAASE,EAAKC,EAAKY,EAC3D3B,EAAKzB,GACiC,MAAlC1I,EAAM9B,WAAWwK,KACjB0B,EAAK/I,EACLqH,OAGA0B,EAAKhK,EACmB,IAApB6I,IACAgB,GAAS3I,OAGb8I,IAAOhK,KACFuK,OACMvK,MACPqK,EAAKG,QACMxK,KACFuK,OACMvK,KAC+B,KAAlCJ,EAAM9B,WAAWwK,KACjBgC,EAAKtH,EACLsF,OAGAgC,EAAKtK,EACmB,IAApB6I,IACAgB,GAAS5G,IAGbqH,IAAOtK,KACFuK,OACMvK,KACHJ,EAAMmL,OAAOzC,GAAa,KAAOhD,IACjCoF,EAAKpF,GACLgD,IAAe,IAGfoC,EAAK1K,EACmB,IAApB6I,IACAgB,GAAStE,KAGbmF,IAAO1K,KACFuK,OACMvK,KAC+B,KAAlCJ,EAAM9B,WAAWwK,KACjBqC,EAAK3H,EACLsF,OAGAqC,EAAK3K,EACmB,IAApB6I,IACAgB,GAAS5G,IAGb0H,IAAO3K,KACDuK,OACMvK,EAAY,IACpB6K,EAAM,IACNC,EAAMkB,QACMhM,OACD8K,IAAQ9K,GACX6K,EAAIjI,KAAKkI,GACTA,EAAMkB,UAIVnB,EAAM7K,EAkBE+J,EAhBRc,IAAQ7K,GACR8K,EAAMP,QACMvK,GAC8B,MAAlCJ,EAAM9B,WAAWwK,KACjBoD,EAAMvK,EACNmH,OAGAoD,EAAM1L,EACkB,IAApB6I,IACAgB,GAASzI,IAGbsK,IAAQ1L,GACRuI,GAAewB,EACfC,EAAKxE,GAAQ6E,EAAIQ,KAIjBvC,GAAcyB,EACT/J,KAITsI,GAAcyB,EACT/J,IAITsI,GAAcyB,EACT/J,QAITsI,GAAcyB,EACdA,EAAK/J,OAITsI,GAAcyB,EACdA,EAAK/J,OAITsI,GAAcyB,EACdA,EAAK/J,OAITsI,GAAcyB,EACdA,EAAK/J,OAITsI,GAAcyB,EACdA,EAAK/J,OAITsI,GAAcyB,EACdA,EAAK/J,OAITsI,GAAcyB,EACdA,EAAK/J,OAITsI,GAAcyB,EACdA,EAAK/J,OAITsI,GAAcyB,EACdA,EAAK/J,OAITsI,GAAcyB,EACdA,EAAK/J,SAEF+J,EAx1CckC,MACMjM,IACP+J,iBAqDhBA,EAAIC,EACRD,EAAKzB,GACiC,KAAlC1I,EAAM9B,WAAWwK,KACjB0B,EAAKtJ,EACL4H,OAGA0B,EAAKhK,EACmB,IAApB6I,IACAgB,GAASlJ,IAGbqJ,IAAOhK,IACPuI,GAAewB,EACfC,EAAKnJ,YAETkJ,EAAKC,EArEoBkC,IAMlBnC,WAEFG,SACDH,EAAIC,EAAII,KACZL,EAAKzB,GACL0B,EAAK,IACLI,EAAK+B,QACMnM,IACPoK,EAAKgC,QACMpM,IACPoK,EAAKiC,MAGTjC,IAAOpK,OACAoK,IAAOpK,GACVgK,EAAGpH,KAAKwH,IACRA,EAAK+B,QACMnM,IACPoK,EAAKgC,QACMpM,IACPoK,EAAKiC,WAMjBrC,EAAKhK,SAELgK,IAAOhK,IACPuI,GAAewB,EACfC,EAAK3J,EAAO2J,IAEhBD,EAAKC,WAuGAsC,SACDvC,EAAIC,EAAII,EAAIC,EAAIkC,KACpB1D,KAEAmB,EAAK,GAELK,EADAD,EAFAL,EAAKzB,GAILO,MACA0D,EAAKC,QACMxM,IACHwB,EAAQiL,KAAK7M,EAAM8M,OAAOpE,MAC1BiE,EAAK3M,EAAM8M,OAAOpE,IAClBA,OAGAiE,EAAKvM,EACmB,IAApB6I,IACAgB,GAASpI,KAIrBoH,MAqBQuB,GAnBJC,EADAkC,IAAOvM,OACFF,GAGLwI,GAAc+B,EACTrK,MAEEA,GACHJ,EAAMzC,OAASmL,IACfiE,EAAK3M,EAAM8M,OAAOpE,IAClBA,OAGAiE,EAAKvM,EACmB,IAApB6I,IACAgB,GAASlI,IAGb4K,IAAOvM,EACPqK,EAAK,CAACA,EAAIkC,IAIVjE,GAAc8B,EACTpK,KAITsI,GAAc8B,EACTpK,MAEEA,OACAoK,IAAOpK,GACVgK,EAAGpH,KAAKwH,GAERC,EADAD,EAAK9B,GAELO,MACA0D,EAAKC,QACMxM,IACHwB,EAAQiL,KAAK7M,EAAM8M,OAAOpE,MAC1BiE,EAAK3M,EAAM8M,OAAOpE,IAClBA,OAGAiE,EAAKvM,EACmB,IAApB6I,IACAgB,GAASpI,KAIrBoH,KAqBQuB,GAnBJC,EADAkC,IAAOvM,OACFF,GAGLwI,GAAc+B,EACTrK,MAEEA,GACHJ,EAAMzC,OAASmL,IACfiE,EAAK3M,EAAM8M,OAAOpE,IAClBA,OAGAiE,EAAKvM,EACmB,IAApB6I,IACAgB,GAASlI,IAGb4K,IAAOvM,EACPqK,EAAK,CAACA,EAAIkC,IAIVjE,GAAc8B,EACTpK,KAITsI,GAAc8B,EACTpK,QAKbgK,EAAKhK,SAGL+J,EADAC,IAAOhK,EACFJ,EAAMmJ,UAAUgB,EAAIzB,IAGpB0B,EAETnB,KACIkB,IAAO/J,IACPgK,EAAKhK,EACmB,IAApB6I,IACAgB,GAAStI,IAGVwI,WAEF4C,SACD5C,EAAIC,EAAII,SACZvB,KACAkB,EAAKzB,GACiC,KAAlC1I,EAAM9B,WAAWwK,KACjB0B,EAAKnI,EACLyG,OAGA0B,EAAKhK,EACmB,IAApB6I,IACAgB,GAAS/H,IAQTiI,EALJC,IAAOhK,IACPoK,EAAKkC,QACMtM,GACPuI,GAAewB,EACfC,EAAKjI,EAAQqI,KASjB9B,GAAcyB,EACT/J,GAET6I,KACIkB,IAAO/J,IACPgK,EAAKhK,EACmB,IAApB6I,IACAgB,GAASjI,IAGVmI,WAEFiB,SACDjB,EAAQK,EAAIC,EAAIkC,KACpB1D,KACAkB,EAAKzB,GACAiC,OACMvK,MACPoK,EAAKkC,QACMtM,EAAY,KACnBqK,EAAK,GACLkC,EAAKI,KACEJ,IAAOvM,GACVqK,EAAGzH,KAAK2J,GACRA,EAAKI,KAKL5C,EAHAM,IAAOrK,GACPuI,GAAewB,EACV7H,EAAQkI,EAAIC,KAIjB/B,GAAcyB,EACT/J,QAITsI,GAAcyB,EACdA,EAAK/J,OAITsI,GAAcyB,EACdA,EAAK/J,SAET6I,KACIkB,IAAO/J,IACFA,EACmB,IAApB6I,IACAgB,GAAS5H,IAGV8H,WA6OFqB,SACDrB,EAAIC,EAAII,EAAIC,KAChBN,EAAKzB,GACiC,KAAlC1I,EAAM9B,WAAWwK,KACjB0B,EAAKxG,EACL8E,OAGA0B,EAAKhK,EACmB,IAApB6I,IACAgB,GAASpG,IAGbuG,IAAOhK,EAAY,IACnBoK,EAAK,IACLC,EAAK8B,QACMnM,IACH0D,EAAQ+I,KAAK7M,EAAM8M,OAAOpE,MAC1B+B,EAAKzK,EAAM8M,OAAOpE,IAClBA,OAGA+B,EAAKrK,EACmB,IAApB6I,IACAgB,GAASlG,KAIjB0G,IAAOrK,OACAqK,IAAOrK,GACVoK,EAAGxH,KAAKyH,IACRA,EAAK8B,QACMnM,IACH0D,EAAQ+I,KAAK7M,EAAM8M,OAAOpE,MAC1B+B,EAAKzK,EAAM8M,OAAOpE,IAClBA,OAGA+B,EAAKrK,EACmB,IAApB6I,IACAgB,GAASlG,UAOzByG,EAAKpK,EAeD+J,EAbJK,IAAOpK,GAC+B,KAAlCJ,EAAM9B,WAAWwK,KACjB+B,EAAK7G,EACL8E,OAGA+B,EAAKrK,EACmB,IAApB6I,IACAgB,GAASpG,IAGb4G,IAAOrK,EACPgK,EAAK,CAACA,EAAII,EAAIC,IAId/B,GAAcyB,EACT/J,KAITsI,GAAcyB,EACT/J,QAITsI,GAAcyB,EACdA,EAAK/J,KAEL+J,IAAO/J,KACP+J,EAAK,IACLC,EAAKmC,QACMnM,IACH4D,EAAQ6I,KAAK7M,EAAM8M,OAAOpE,MAC1B0B,EAAKpK,EAAM8M,OAAOpE,IAClBA,OAGA0B,EAAKhK,EACmB,IAApB6I,IACAgB,GAAShG,KAIjBmG,IAAOhK,OACAgK,IAAOhK,GACV+J,EAAGnH,KAAKoH,IACRA,EAAKmC,QACMnM,IACH4D,EAAQ6I,KAAK7M,EAAM8M,OAAOpE,MAC1B0B,EAAKpK,EAAM8M,OAAOpE,IAClBA,OAGA0B,EAAKhK,EACmB,IAApB6I,IACAgB,GAAShG,UAOzBkG,EAAK/J,SAGN+J,WAEFsB,SACDtB,EAAIC,KACRD,EAAK,GACDjG,EAAQ2I,KAAK7M,EAAM8M,OAAOpE,MAC1B0B,EAAKpK,EAAM8M,OAAOpE,IAClBA,OAGA0B,EAAKhK,EACmB,IAApB6I,IACAgB,GAAS9F,IAGbiG,IAAOhK,OACAgK,IAAOhK,GACV+J,EAAGnH,KAAKoH,GACJlG,EAAQ2I,KAAK7M,EAAM8M,OAAOpE,MAC1B0B,EAAKpK,EAAM8M,OAAOpE,IAClBA,OAGA0B,EAAKhK,EACmB,IAApB6I,IACAgB,GAAS9F,SAMrBgG,EAAK/J,SAEF+J,WAuqBFiC,SACDjC,EAAQK,EAAQmC,EAAQK,EAAIlC,SAChCX,EAAKzB,GA0CuByB,EAzCvBQ,OACMvK,IACPoK,EAAKyC,QACM7M,GACFuK,OACMvK,GAC+B,MAAlCJ,EAAM9B,WAAWwK,KACjBiE,EAAKtL,EACLqH,OAGAiE,EAAKvM,EACmB,IAApB6I,IACAgB,GAAS3I,IAGbqL,IAAOvM,GACPuI,GAAeD,IACV3C,UAEI7F,EAGAE,KAEEA,IACP4M,EAAK9C,QACM9J,GAC+B,MAAlCJ,EAAM9B,WAAWwK,KACjBoC,EAAKvJ,EACLmH,OAGAoC,EAAK1K,EACmB,IAApB6I,IACAgB,GAASzI,IAGbsJ,IAAO1K,GACPuI,GAAewB,EACVnE,GAAQwE,EAAIwC,KAIjBtE,GAAcyB,EACT/J,KASbsI,GAAcyB,EACT/J,KAITsI,GAAcyB,EACT/J,KAcjBsI,GAAcyB,EACT/J,YAIJ8L,SACD/B,EAAQK,EAAQmC,EAAQK,EAAIlC,SAChCX,EAAKzB,GA0CuByB,EAzCvBQ,OACMvK,IACPoK,iBA9HAL,EAAIC,EAAII,EAAIC,SAEhBL,EADAD,EAAKzB,GAEiC,KAAlC1I,EAAM9B,WAAWwK,KACjB8B,EAAK3E,GACL6C,OAGA8B,EAAKpK,EACmB,IAApB6I,IACAgB,GAASnE,MAmBbqE,GAZIC,EAJJI,IAAOpK,IACPqK,EAAKwB,QACM7L,EACPoK,EAAK,CAACA,EAAIC,IASd/B,GAAc0B,EACThK,MAEEA,EACFJ,EAAMmJ,UAAUgB,EAAIzB,IAGpB0B,KAEEhK,IACP+J,EAAK8C,MAEF9C,EAyFE+C,MACM9M,GACFuK,OACMvK,GAC+B,MAAlCJ,EAAM9B,WAAWwK,KACjBiE,EAAKtL,EACLqH,OAGAiE,EAAKvM,EACmB,IAApB6I,IACAgB,GAAS3I,IAGbqL,IAAOvM,GACPuI,GAAeD,IACVzC,UAEI/F,EAGAE,KAEEA,IACP4M,EAAK9C,QACM9J,GAC+B,MAAlCJ,EAAM9B,WAAWwK,KACjBoC,EAAKvJ,EACLmH,OAGAoC,EAAK1K,EACmB,IAApB6I,IACAgB,GAASzI,IAGbsJ,IAAO1K,GACPuI,GAAewB,EACVjE,GAAQsE,EAAIwC,KAIjBtE,GAAcyB,EACT/J,KASbsI,GAAcyB,EACT/J,KAITsI,GAAcyB,EACT/J,KAcjBsI,GAAcyB,EACT/J,YAIJwM,SACDzC,SACJlB,KACI7C,GAAQyG,KAAK7M,EAAM8M,OAAOpE,MAC1ByB,EAAKnK,EAAM8M,OAAOpE,IAClBA,OAGAyB,EAAK/J,EACmB,IAApB6I,IACAgB,GAAS5D,KAGjB4C,KACIkB,IAAO/J,GAEiB,IAApB6I,IACAgB,GAAS9D,IAGVgE,WAEFgD,SACDhD,SACJlB,KACI1C,GAAQsG,KAAK7M,EAAM8M,OAAOpE,MAC1ByB,EAAKnK,EAAM8M,OAAOpE,IAClBA,OAGAyB,EAAK/J,EACmB,IAApB6I,IACAgB,GAASzD,KAGjByC,KACIkB,IAAO/J,GAEiB,IAApB6I,IACAgB,GAAS3D,IAGV6D,WAEFQ,SACDR,EAAIC,EAAII,MACZvB,KACAkB,EAAKzB,GACL0B,EAAK,GACLI,EAAKoC,KACEpC,IAAOpK,GACVgK,EAAGpH,KAAKwH,GACRA,EAAKoC,YAGLzC,EADAC,IAAOhK,EACFJ,EAAMmJ,UAAUgB,EAAIzB,IAGpB0B,EAETnB,KACIkB,IAAO/J,IACPgK,EAAKhK,EACmB,IAApB6I,IACAgB,GAASxD,KAGV0D,WAEF8B,SACD9B,EAAIC,EAAII,SACZvB,KACAkB,EAAKzB,GACiC,KAAlC1I,EAAM9B,WAAWwK,KACjB0B,EAAKzD,GACL+B,OAGA0B,EAAKhK,EACmB,IAApB6I,IACAgB,GAASrD,KAGbwD,IAAOhK,IACPgK,EAAK,MAODD,EALJC,IAAOhK,IACPoK,EAAK4C,QACMhN,GACPuI,GAAewB,EACfC,EAAKvD,GAAQuD,EAAII,KASrB9B,GAAcyB,EACT/J,GAET6I,KACIkB,IAAO/J,IACPgK,EAAKhK,EACmB,IAApB6I,IACAgB,GAASvD,KAGVyD,WAwBFoC,SACDpC,EAAIC,SACRnB,KACAkB,EAAKzB,GACD1I,EAAMmL,OAAOzC,GAAa,KAAOzB,IACjCmD,EAAKnD,GACLyB,IAAe,IAGf0B,EAAKhK,EACmB,IAApB6I,IACAgB,GAAS/C,KAGbkD,IAAOhK,IACPuI,GAAewB,EACfC,EAAKjD,MAGT8B,MADAkB,EAAKC,KAEMhK,IACPgK,EAAKhK,EACmB,IAApB6I,IACAgB,GAASjD,KAGVmD,WAEFqC,SACDrC,EAAIC,EAAII,EAAIC,EAAIkC,EAAIjC,KACxBP,EAAKzB,GACiC,KAAlC1I,EAAM9B,WAAWwK,KACjB0B,EAAKxG,EACL8E,OAGA0B,EAAKhK,EACmB,IAApB6I,IACAgB,GAASpG,IAGbuG,IAAOhK,MACPoK,iBA0JAL,EAAIC,EAAII,EAAIC,EAEhBL,EADAD,EAAKzB,GAED1I,EAAMzC,OAASmL,IACf8B,EAAKxK,EAAM8M,OAAOpE,IAClBA,OAGA8B,EAAKpK,EACmB,IAApB6I,IACAgB,GAASlI,IAcTqI,EAXJI,IAAOpK,GACPuI,GAAeD,GACf+B,EAAK7C,GAAQ4C,IAETC,EADAA,OACKvK,EAGAE,KAEEA,EACPoK,EAAK,CAACA,EAAIC,IAIV/B,GAAc0B,EACThK,KAITsI,GAAc0B,EACThK,GAGL+J,EADAC,IAAOhK,EACFJ,EAAMmJ,UAAUgB,EAAIzB,IAGpB0B,SAEFD,EAnMEkD,MACMjN,EAAY,KACnBqK,EAAK/B,GACLiE,EAAK,GACD3M,EAAMmL,OAAOzC,GAAa,KAAOzB,IACjCyD,EAAKzD,GACLyB,IAAe,IAGfgC,EAAKtK,EACmB,IAApB6I,IACAgB,GAAS/C,KAGbwD,IAAOtK,IACH0D,EAAQ+I,KAAK7M,EAAM8M,OAAOpE,MAC1BgC,EAAK1K,EAAM8M,OAAOpE,IAClBA,OAGAgC,EAAKtK,EACmB,IAApB6I,IACAgB,GAASlG,KAId2G,IAAOtK,GACVuM,EAAG3J,KAAK0H,GACJ1K,EAAMmL,OAAOzC,GAAa,KAAOzB,IACjCyD,EAAKzD,GACLyB,IAAe,IAGfgC,EAAKtK,EACmB,IAApB6I,IACAgB,GAAS/C,KAGbwD,IAAOtK,IACH0D,EAAQ+I,KAAK7M,EAAM8M,OAAOpE,MAC1BgC,EAAK1K,EAAM8M,OAAOpE,IAClBA,OAGAgC,EAAKtK,EACmB,IAApB6I,IACAgB,GAASlG,KA4BjBoG,GAtBJM,EADAkC,IAAOvM,EACFJ,EAAMmJ,UAAUsB,EAAI/B,IAGpBiE,KAEEvM,GAC+B,KAAlCJ,EAAM9B,WAAWwK,KACjBiE,EAAK/I,EACL8E,OAGAiE,EAAKvM,EACmB,IAApB6I,IACAgB,GAASpG,IAGb8I,IAAOvM,IACPuM,EAAK,MAELA,IAAOvM,GACPuI,GAAewB,EACfC,EAAKhD,GAAQoD,EAAIC,KAIjB/B,GAAcyB,EACT/J,KAITsI,GAAcyB,EACT/J,QAITsI,GAAcyB,EACdA,EAAK/J,OAITsI,GAAcyB,EACdA,EAAK/J,SAEF+J,WAEFsC,SACDtC,EAAIC,EAAII,EAAIC,SAEhBL,EADAD,EAAKzB,GAED1I,EAAMzC,OAASmL,IACf8B,EAAKxK,EAAM8M,OAAOpE,IAClBA,OAGA8B,EAAKpK,EACmB,IAApB6I,IACAgB,GAASlI,KAcTqI,EAXJI,IAAOpK,GACPuI,GAAeD,IAGX+B,GAFJA,EAAKlD,GAAQiD,SAEJtK,EAGAE,KAEEA,EACPoK,EAAK,CAACA,EAAIC,IAIV/B,GAAc0B,EACThK,KAITsI,GAAc0B,EACThK,MAEEA,IAC+B,KAAlCJ,EAAM9B,WAAWwK,KACjB0B,EAAK1C,GACLgB,OAGA0B,EAAKhK,EACmB,IAApB6I,IACAgB,GAAStC,MAKjBwC,EADAC,IAAOhK,EACFJ,EAAMmJ,UAAUgB,EAAIzB,IAGpB0B,WAgDJQ,SACDT,EAAIC,SACRnB,KACAkB,EAAKzB,IACL0B,EAAKgD,QACMhN,IACPgK,EAAK6C,MAGL9C,EADAC,IAAOhK,EACFJ,EAAMmJ,UAAUgB,EAAIzB,IAGpB0B,EAETnB,KACIkB,IAAO/J,IACPgK,EAAKhK,EACmB,IAApB6I,IACAgB,GAASpC,KAGVsC,WAEFiD,SACDjD,EAAIC,EAAII,EAAIC,EAAIkC,KACpB1D,KACAkB,EAAKzB,GACiC,KAAlC1I,EAAM9B,WAAWwK,KACjB0B,EAAKrC,GACLW,OAGA0B,EAAKhK,EACmB,IAApB6I,IACAgB,GAASjC,KAGboC,IAAOhK,IACPuI,GAAewB,EACfC,EAAKnC,OAETkC,EAAKC,KACMhK,EAAY,IAEnBgK,EADAD,EAAKzB,GAEDR,GAAQ2E,KAAK7M,EAAM8M,OAAOpE,MAC1B8B,EAAKxK,EAAM8M,OAAOpE,IAClBA,OAGA8B,EAAKpK,EACmB,IAApB6I,IACAgB,GAAS9B,KAGbqC,IAAOpK,EAAY,KACnBqK,EAAK,GACDrC,GAAQyE,KAAK7M,EAAM8M,OAAOpE,MAC1BiE,EAAK3M,EAAM8M,OAAOpE,IAClBA,OAGAiE,EAAKvM,EACmB,IAApB6I,IACAgB,GAAS5B,KAGVsE,IAAOvM,GACVqK,EAAGzH,KAAK2J,GACJvE,GAAQyE,KAAK7M,EAAM8M,OAAOpE,MAC1BiE,EAAK3M,EAAM8M,OAAOpE,IAClBA,OAGAiE,EAAKvM,EACmB,IAApB6I,IACAgB,GAAS5B,KAMjB+B,EAFAK,IAAOrK,EACPoK,EAAK,CAACA,EAAIC,IAIV/B,GAAc0B,EACThK,QAITsI,GAAc0B,EACdA,EAAKhK,EAELgK,IAAOhK,IACPuI,GAAewB,EACfC,EAAK9B,GAAQ8B,IAEjBD,EAAKC,SAETnB,KACIkB,IAAO/J,IACPgK,EAAKhK,EACmB,IAApB6I,IACAgB,GAASnC,KAGVqC,WAEF8C,SACD9C,EAAIC,EAAII,EAAIC,EAAIkC,KACpB1D,KAEAmB,EAAK,GAELK,EADAD,EAFAL,EAAKzB,GAILO,MACA0D,EAAKC,QACMxM,IACPuM,EAAKQ,MAETlE,MAqBQuB,GAnBJC,EADAkC,IAAOvM,OACFF,GAGLwI,GAAc+B,EACTrK,MAEEA,GACHJ,EAAMzC,OAASmL,IACfiE,EAAK3M,EAAM8M,OAAOpE,IAClBA,OAGAiE,EAAKvM,EACmB,IAApB6I,IACAgB,GAASlI,IAGb4K,IAAOvM,EACPqK,EAAK,CAACA,EAAIkC,IAIVjE,GAAc8B,EACTpK,KAITsI,GAAc8B,EACTpK,MAEEA,OACAoK,IAAOpK,GACVgK,EAAGpH,KAAKwH,GAERC,EADAD,EAAK9B,GAELO,MACA0D,EAAKC,QACMxM,IACPuM,EAAKQ,MAETlE,KAqBQuB,GAnBJC,EADAkC,IAAOvM,OACFF,GAGLwI,GAAc+B,EACTrK,MAEEA,GACHJ,EAAMzC,OAASmL,IACfiE,EAAK3M,EAAM8M,OAAOpE,IAClBA,OAGAiE,EAAKvM,EACmB,IAApB6I,IACAgB,GAASlI,IAGb4K,IAAOvM,EACPqK,EAAK,CAACA,EAAIkC,IAIVjE,GAAc8B,EACTpK,KAITsI,GAAc8B,EACTpK,QAKbgK,EAAKhK,SAGL+J,EADAC,IAAOhK,EACFJ,EAAMmJ,UAAUgB,EAAIzB,IAGpB0B,EAETnB,KACIkB,IAAO/J,IACPgK,EAAKhK,EACmB,IAApB6I,IACAgB,GAASxB,KAGV0B,MA1oEuBjL,GAAWnB,GAAOsL,GA4oEhDtG,GAAa,CAAC,iBAIT0E,WACwC,WAAtC1E,GAAWA,GAAWxF,OAAS,YAEjCsD,YACEZ,GAAWA,EAAQqN,gBAAkB,CACxC3N,SAAUA,MACV,OAERQ,EAAaK,OACMJ,GAAcsI,KAAgB1I,EAAMzC,cAC5C4C,QAGHA,IAAeC,GAAcsI,GAAc1I,EAAMzC,QACjD0M,GA9tEG,CAAEtO,KAAM,QAgEeuD,GAgqEC8J,GAhqEUjL,GAgqEWgL,GAAiB/I,EAAMzC,OAASyC,EAAM8M,OAAO/D,IAAkB,KAhqEnEM,GAgqEyEN,GAAiB/I,EAAMzC,OAC1I6L,GAAoBL,GAAgBA,GAAiB,GACrDK,GAAoBL,GAAgBA,IAjqEnC,IAAIpL,GAAYA,GAAYE,aAAaqB,GAAWnB,IAAQmB,GAAWnB,GAAOsL,KClZzFkE,EAAkD,eAC7C,IAAIpQ,EAAI,EAAGC,EAAI,EAAGoQ,EAAKlQ,UAAUC,OAAQH,EAAIoQ,EAAIpQ,IAAKD,GAAKG,UAAUF,GAAGG,OACxE,IAAIkQ,EAAIhR,MAAMU,GAAIuQ,EAAI,MAAGtQ,EAAI,EAAGA,EAAIoQ,EAAIpQ,QACpC,IAAIuQ,EAAIrQ,UAAUF,GAAI+B,EAAI,EAAGyO,EAAKD,EAAEpQ,OAAQ4B,EAAIyO,EAAIzO,IAAKuO,IAC1DD,EAAEC,GAAKC,EAAExO,UACVsO,GAIPI,EAAuB,cCT3B,IAAI7Q,EAAsC,kBACtCA,EAAWV,OAAOW,QAAU,SAASC,OAC5B,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,QAEvC,IAAIV,KADTS,EAAIG,UAAUF,GACOd,OAAOQ,UAAUH,eAAea,KAAKL,EAAGT,KACzDQ,EAAER,GAAKS,EAAET,WAEVQ,IAEKO,MAAMC,KAAMJ,YAO5BwQ,EAAkB,4KAOf,SAASC,EAAsBlL,OAC9BmL,EAAS,UACbnL,EAASvE,QAAQwP,EAAiB,SAAUG,OACpCC,EAAMD,EAAM1Q,cACR0Q,EAAM,QAEL,IACDD,EAAOG,IAAc,IAARD,EAAY,OAAiB,IAARA,EAAY,SAAW,kBAGxD,IACDF,EAAOI,KAAe,IAARF,EAAY,UAAY,oBAErC,QACA,QACA,QACA,UACK,IAAIG,WAAW,oEAEpB,QACA,UACK,IAAIA,WAAW,kDAEpB,QACA,IACDL,EAAOM,MAAQ,CAAC,UAAW,UAAW,QAAS,OAAQ,UAAUJ,EAAM,aAGtE,QACA,UACK,IAAIG,WAAW,+CACpB,IACDL,EAAOO,IAAM,CAAC,UAAW,WAAWL,EAAM,aAEzC,QACA,QACA,UACK,IAAIG,WAAW,iEAEpB,IACDL,EAAOQ,QAAkB,IAARN,EAAY,QAAkB,IAARA,EAAY,SAAW,kBAE7D,OACGA,EAAM,QACA,IAAIG,WAAW,iDAEzBL,EAAOQ,QAAU,CAAC,QAAS,OAAQ,SAAU,SAASN,EAAM,aAE3D,OACGA,EAAM,QACA,IAAIG,WAAW,iDAEzBL,EAAOQ,QAAU,CAAC,QAAS,OAAQ,SAAU,SAASN,EAAM,aAG3D,IACDF,EAAOS,QAAS,YAEf,QACA,UACK,IAAIJ,WAAW,kEAEpB,IACDL,EAAOU,UAAY,MACnBV,EAAOW,KAAO,CAAC,UAAW,WAAWT,EAAM,aAE1C,IACDF,EAAOU,UAAY,MACnBV,EAAOW,KAAO,CAAC,UAAW,WAAWT,EAAM,aAE1C,IACDF,EAAOU,UAAY,MACnBV,EAAOW,KAAO,CAAC,UAAW,WAAWT,EAAM,aAE1C,IACDF,EAAOU,UAAY,MACnBV,EAAOW,KAAO,CAAC,UAAW,WAAWT,EAAM,aAE1C,QACA,QACA,UACK,IAAIG,WAAW,wEAEpB,IACDL,EAAOY,OAAS,CAAC,UAAW,WAAWV,EAAM,aAG5C,IACDF,EAAOa,OAAS,CAAC,UAAW,WAAWX,EAAM,aAE5C,QACA,UACK,IAAIG,WAAW,kEAEpB,IACDL,EAAOc,aAAeZ,EAAM,EAAI,QAAU,iBAEzC,QACA,QACA,QACA,QACA,QACA,UACK,IAAIG,WAAW,8EAEtB,KAEJL,EAKX,IAAIe,EAA2B,yBAC3BC,EAA8B,mBAClC,SAASC,EAA0BC,OAC3BlB,EAAS,UACbkB,EAAI5Q,QAAQ0Q,EAA6B,SAAUG,EAAGC,EAAIC,SAEpC,iBAAPA,GACPrB,EAAOsB,yBAA2BF,EAAG7R,OACrCyQ,EAAOuB,yBAA2BH,EAAG7R,QAGzB,MAAP8R,EACLrB,EAAOsB,yBAA2BF,EAAG7R,OAGtB,MAAV6R,EAAG,GACRpB,EAAOuB,yBAA2BH,EAAG7R,QAIrCyQ,EAAOsB,yBAA2BF,EAAG7R,OACrCyQ,EAAOuB,yBACHH,EAAG7R,QAAwB,iBAAP8R,EAAkBA,EAAG9R,OAAS,IAEnD,KAEJyQ,EAEX,SAASwB,EAAUN,UACPA,OACC,kBACM,CACHO,YAAa,YAEhB,wBACM,CACHC,aAAc,kBAEjB,oBACM,CACHD,YAAa,cAEhB,+BACM,CACHA,YAAa,SACbC,aAAc,kBAEjB,yBACM,CACHD,YAAa,kBAEhB,oCACM,CACHA,YAAa,aACbC,aAAc,kBAEjB,mBACM,CACHD,YAAa,UAI7B,SAASE,EAAqBC,OAEtBC,EAAWL,EAAUI,UACrBC,GAFS,GAUV,SAASC,EAA2CrN,WACnDuL,EAAS,GACJ+B,EAAK,EAAGC,EAAWvN,EAAQsN,EAAKC,EAASzS,OAAQwS,IAAM,KACxDE,EAAQD,EAASD,UACbE,EAAM1N,UACL,UACDyL,EAAO9K,MAAQ,uBAEd,WACD8K,EAAO9K,MAAQ,WACf8K,EAAOkC,SAAWD,EAAMhQ,QAAQ,gBAE/B,YACD+N,EAAOmC,aAAc,eAEpB,oBACDnC,EAAOoC,sBAAwB,eAE9B,eACDpC,EAAO9K,MAAQ,OACf8K,EAAOqC,KAAqBJ,EAAMhQ,QAAQ,GA/F1C3B,QAAQ,UAAW,iBAiGlB,gBACD0P,EAAOsC,SAAW,UAClBtC,EAAOuC,eAAiB,qBAEvB,eACDvC,EAAOsC,SAAW,UAClBtC,EAAOuC,eAAiB,oBAEvB,aACDvC,EAAShR,EAASA,EAASA,EAAS,GAAIgR,GAAS,CAAEsC,SAAU,eAAiBL,EAAMhQ,QAAQmF,OAAO,SAAUC,EAAKuK,UAAe5S,EAASA,EAAS,GAAIqI,GAAMsK,EAAqBC,KAAW,kBAE5L,cACD5B,EAAShR,EAASA,EAASA,EAAS,GAAIgR,GAAS,CAAEsC,SAAU,gBAAkBL,EAAMhQ,QAAQmF,OAAO,SAAUC,EAAKuK,UAAe5S,EAASA,EAAS,GAAIqI,GAAMsK,EAAqBC,KAAW,kBAE7L,kBACD5B,EAAOsC,SAAW,wBAGjB,oBACDtC,EAAOwC,gBAAkB,eACzBxC,EAAOyC,YAAc,sBAEpB,mBACDzC,EAAOwC,gBAAkB,OACzBxC,EAAOyC,YAAc,qBAEpB,uBACDzC,EAAOwC,gBAAkB,OACzBxC,EAAOyC,YAAc,oBAEpB,sBACDzC,EAAOwC,gBAAkB,qBAK7BzB,EAAyBlC,KAAKoD,EAAM1N,UACT,EAAvB0N,EAAMhQ,QAAQ1C,aACR,IAAI8Q,WAAW,iEAEzB4B,EAAM1N,KAAKjE,QAAQyQ,EAA0B,SAAUd,EAAOmB,EAAIC,SAEhD,MAAVpB,EACAD,EAAOoC,sBAAwB,EAGnB,MAAPf,EACLrB,EAAO0C,sBAAwBrB,EAAG9R,OAGnB,MAAV6R,EAAG,GACRpB,EAAOoC,sBAAwBhB,EAAG7R,QAIlCyQ,EAAO0C,sBAAwBtB,EAAG7R,OAClCyQ,EAAOoC,sBACHhB,EAAG7R,QAAwB,iBAAP8R,EAAkBA,EAAG9R,OAAS,IAEnD,KAEP0S,EAAMhQ,QAAQ1C,SACdyQ,EAAShR,EAASA,EAAS,GAAIgR,GAASiB,EAA0BgB,EAAMhQ,QAAQ,cAIpF+O,EAA4BnC,KAAKoD,EAAM1N,MACvCyL,EAAShR,EAASA,EAAS,GAAIgR,GAASiB,EAA0BgB,EAAM1N,gBAGxEsN,EAAWL,EAAUS,EAAM1N,MAC3BsN,IACA7B,EAAShR,EAASA,EAAS,GAAIgR,GAAS6B,YAGzC7B,EC5SJ,SAAS2C,EAAM3Q,EAAO4Q,OACrBC,EAAM9Q,EAASC,EAAO4Q,UACrBA,IAA0C,IAAlCA,EAAKE,0BFSf,SAASA,EAAyBD,GACrCA,EAAIE,QAAQ,SAAUrV,IAEbK,EAAgBL,IAAQG,EAAgBH,KAI7CY,OAAO0U,KAAKtV,EAAGuE,SAAS8Q,QAAQ,SAAUxL,WAClCD,EACAsK,EAAMlU,EAAGuE,QAAQsF,GAGjB0L,GAA0B,EAC1BC,OAAYhR,EACP9C,EAAI,EAAGA,EAAIwS,EAAIhP,MAAMrD,OAAQH,IAAK,KACnC+T,EAAOvB,EAAIhP,MAAMxD,MACjB3B,EAAiB0V,IAAStD,EAAqBhB,KAAKsE,EAAKvQ,OAAQ,CACjEqQ,EAAyB7T,EACzB8T,EAAYC,YAIhBD,EAAW,KACPE,EAAWF,EAAUtQ,MAAMtC,QAAQuP,EAAsB,MAAQnS,EAAGkF,MAAQ,aAC5EyQ,EAAStR,EAASqR,IACrB9L,EAAKsK,EAAIhP,OAAO0Q,OAAO7T,MAAM6H,EAAIiI,EAAe,CAAC0D,EAAwB,GAAII,IAElFP,EAAyBlB,EAAIhP,WEnCjCkQ,CAAyBD,GAEtBA,ECLX,IAAItD,EAAkD,eAC7C,IAAIpQ,EAAI,EAAGC,EAAI,EAAGoQ,EAAKlQ,UAAUC,OAAQH,EAAIoQ,EAAIpQ,IAAKD,GAAKG,UAAUF,GAAGG,OACxE,IAAIkQ,EAAIhR,MAAMU,GAAIuQ,EAAI,MAAGtQ,EAAI,EAAGA,EAAIoQ,EAAIpQ,QACpC,IAAIuQ,EAAIrQ,UAAUF,GAAI+B,EAAI,EAAGyO,EAAKD,EAAEpQ,OAAQ4B,EAAIyO,EAAIzO,IAAKuO,IAC1DD,EAAEC,GAAKC,EAAExO,UACVsO,GAGX,SAAS8D,EAAWC,UACTC,KAAKC,UAAUF,EAAO3S,IAAI,SAAUmB,UAChCA,GAA0B,WAAjB2R,EAAO3R,GAG/B,SAAsB4R,UACXtV,OAAO0U,KAAKY,GACdvS,OACAR,IAAI,SAAU6O,OACXpI,SACIA,EAAK,IAAOoI,GAAKkE,EAAIlE,GAAIpI,IARWuM,CAAa7R,GAASA,KAW1E,ICzBQ/D,EAoBmCC,EAgKvC4V,ED3JAC,EAA2B,SAAUC,EAAmBC,eAC1C,IAAVA,IAAoBA,EAAQ,IACzB,mBACC3M,EACA4M,EAAO,GACFnC,EAAK,EAAGA,EAAKzS,UAAUC,OAAQwS,IACpCmC,EAAKnC,GAAMzS,UAAUyS,OAErBoC,EAAUZ,EAAWW,GACrBE,EAASD,GAAWF,EAAME,UACzBC,IACDA,EAAS,KAAM9M,EAAK0M,GAAmBK,KAAK5U,MAAM6H,EAAIiI,EAAe,MAAC,GAAS2E,KAC3EC,IACAF,EAAME,GAAWC,IAGlBA,IC1CXjW,GACIF,EAAgB,SAAUG,EAAGC,UAC7BJ,EAAgBK,OAAOC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,IACvE,SAAUD,EAAGC,OAAU,IAAIK,KAAKL,EAAOA,EAAEM,eAAeD,KAAIN,EAAEM,GAAKL,EAAEK,MACpDN,EAAGC,IAErB,SAAUD,EAAGC,YAEPO,SAAYC,YAAcT,EADnCH,EAAcG,EAAGC,GAEjBD,EAAEU,UAAkB,OAANT,EAAaC,OAAOS,OAAOV,IAAMO,EAAGE,UAAYT,EAAES,UAAW,IAAIF,KAGnF2Q,EAAkD,eAC7C,IAAIpQ,EAAI,EAAGC,EAAI,EAAGoQ,EAAKlQ,UAAUC,OAAQH,EAAIoQ,EAAIpQ,IAAKD,GAAKG,UAAUF,GAAGG,OACxE,IAAIkQ,EAAIhR,MAAMU,GAAIuQ,EAAI,MAAGtQ,EAAI,EAAGA,EAAIoQ,EAAIpQ,QACpC,IAAIuQ,EAAIrQ,UAAUF,GAAI+B,EAAI,EAAGyO,EAAKD,EAAEpQ,OAAQ4B,EAAIyO,EAAIzO,IAAKuO,IAC1DD,EAAEC,GAAKC,EAAExO,UACVsO,GAGP6E,GAAuCpW,EAQzC0B,MAPEzB,EAAUmW,EAAapW,GAMhBoW,YALEA,EAAYC,EAAKC,OAClB5S,EAAQ1D,EAAOsB,KAAKE,KAAM6U,IAAQ7U,YACtCkC,EAAM4S,WAAaA,EACZ5S,EAsBR,SAAS6S,EAAc5B,EAAK6B,EAASC,EAAYC,EAASC,EAAQC,EAEzEC,MAEuB,IAAflC,EAAItT,QAAgB9B,EAAiBoV,EAAI,UAClC,CACH,CACIlV,KAAM,EACNiF,MAAOiQ,EAAI,GAAGjQ,gBNOGlF,EAGEA,EMN3BsS,EAAS,GACJ+B,EAAK,EAAGiD,EAAQnC,EAAKd,EAAKiD,EAAMzV,OAAQwS,IAAM,KAC/CrU,EAAKsX,EAAMjD,MAEXtU,EAAiBC,GACjBsS,EAAOhL,KAAK,CACRrH,KAAM,EACNiF,MAAOlF,EAAGkF,gBAMClF,ENZbC,OAASH,GAAK0F,WMqBhB+R,EAAUvX,EAAGkF,WAEXiS,GAAUI,KAAWJ,SACjB,IAAIP,EAAY,qCAAwCW,EAAU,qCAAyCF,EAAkB,SAEnInS,EAAQiS,EAAOI,MACGvX,EN7ChBC,OAASH,GAAKkG,YM6DFhG,ENvDZC,OAASH,GAAKkI,QMiEFhI,EN9DZC,OAASH,GAAKmI,QM4EAjI,ENlFdC,OAASH,GAAKiI,UMgGhB5H,EAAgBH,SACZkU,EAAMlU,EAAGuE,QAAQW,IAAUlF,EAAGuE,QAAQiT,aAEhC,IAAI7E,WAAW,uBAA0B3S,EAAGkF,MAAQ,OAAWA,EAAQ,mBAAuBtE,OAAO0U,KAAKtV,EAAGuE,SAASV,KAAK,QAAU,KAE/IyO,EAAOhL,KAAKvF,MAAMuQ,EAAQyE,EAAc7C,EAAIhP,MAAO8R,EAASC,EAAYC,EAASC,YAGjF9W,EAAgBL,QACZkU,OAAAA,EAAMlU,EAAGuE,QAAQ,IAAMW,IACjB,KACDuS,KAAKC,kBACA,IAAId,EAAY,uHAEtBe,EAAOV,EACNW,eAAeZ,EAAS,CAAE/W,KAAMD,EAAGwJ,aACnCpJ,OAAO8E,GAASlF,EAAGyJ,QAAU,IAClCyK,EAAMlU,EAAGuE,QAAQoT,IAAS3X,EAAGuE,QAAQiT,UAEpCtD,QACK,IAAIvB,WAAW,uBAA0B3S,EAAGkF,MAAQ,OAAWA,EAAQ,mBAAuBtE,OAAO0U,KAAKtV,EAAGuE,SAASV,KAAK,QAAU,KAE/IyO,EAAOhL,KAAKvF,MAAMuQ,EAAQyE,EAAc7C,EAAIhP,MAAO8R,EAASC,EAAYC,EAASC,EAAQjS,GAASlF,EAAGyJ,QAAU,eAnC3GjC,EAA4B,iBAAbxH,EAAGwH,MAChB0P,EAAQnP,OAAO/H,EAAGwH,QNnEHxH,EMoEEA,EAAGwH,QNnEJ,WAAdyO,EAAOjW,IAA+B,IAAZA,EAAGC,KMoE3BmU,EAA2CpU,EAAGwH,MAAMT,aACpDvC,EACV8N,EAAOhL,KAAK,CACRrH,KAAM,EACNiF,MAAO+R,EACFY,gBAAgBb,EAASxP,GACzBkP,OAAOxR,cAvBZsC,EAA4B,iBAAbxH,EAAGwH,MAChB0P,EAAQjP,KAAKjI,EAAGwH,QNlDCxH,EMmDEA,EAAGwH,QNlDN,WAAdyO,EAAOjW,IAA+B,IAAZA,EAAGC,KMmD3BoS,EAAsBrS,EAAGwH,MAAMmB,cAC/BnE,EACV8N,EAAOhL,KAAK,CACRrH,KAAM,EACNiF,MAAO+R,EACFa,kBAAkBd,EAASxP,GAC3BkP,OAAOxR,cAnBZsC,EAA4B,iBAAbxH,EAAGwH,MAAqB0P,EAAQlP,KAAKhI,EAAGwH,YAAShD,EACpE8N,EAAOhL,KAAK,CACRrH,KAAM,EACNiF,MAAO+R,EACFa,kBAAkBd,EAASxP,GAC3BkP,OAAOxR,UArBXA,GAA0B,iBAAVA,GAAuC,iBAAVA,IAC9CA,EACqB,iBAAVA,GAAuC,iBAAVA,EAC9B6S,OAAO7S,GACP,IAEdoN,EAAOhL,KAAK,CACRrH,KAAM,EACNiF,MAAOA,QAvBuB,iBAAvBkS,GACP9E,EAAOhL,KAAK,CACRrH,KAAM,EACNiF,MAAO+R,EAAWY,gBAAgBb,GAASN,OAAOU,YA/CtE,SAAsBlU,UACdA,EAAMrB,OAAS,EACRqB,EAEJA,EAAMwG,OAAO,SAAUC,EAAKvG,OAC3B4U,EAAWrO,EAAIA,EAAI9H,OAAS,UAC3BmW,GACiB,IAAlBA,EAAS/X,MACK,IAAdmD,EAAKnD,KAIL+X,EAAS9S,OAAS9B,EAAK8B,MAHvByE,EAAIrC,KAAKlE,GAKNuG,GACR,IA2HIsO,CAAa3F,GAcxB,IAAI4F,EAAkB,KAClBC,EAAc,iBACdC,EAAU,EAId,SAASC,EAA8BrV,EAAMsV,UAClCtV,EACFuV,MAAMJ,GACNK,OAAOC,SACPtV,IAAI,SAAUuV,UAA+B,MAAlBJ,EAAYI,GAAaJ,EAAYI,GAAKA,IACrEhP,OAAO,SAAUC,EAAK+O,UAClB/O,EAAI9H,QAGa,iBAAN6W,GACmB,iBAAxB/O,EAAIA,EAAI9H,OAAS,GACxB8H,EAAIA,EAAI9H,OAAS,IAAM6W,EAJvB/O,EAAIrC,KAAKoR,GASN/O,GACR,IAKP,IAAIgP,EAAmB,wEACnBC,EAAcC,KAAKC,MAAQ,KAC3BC,EAAgB,CAChB,OACA,OACA,KACA,MACA,QACA,KACA,MACA,QACA,OACA,OACA,QACA,SACA,QACA,OA+BG,SAASC,EAAkB7D,EAAK6B,EAASC,EAAYC,EAASC,EAErEE,OACQnU,EAAQ6T,EAAc5B,EAAK6B,EAASC,EAAYC,EAASC,OAAQ3S,EAAW6S,GAC5EiB,EAAc,GACdW,EAAmB/V,EAAMwG,OAAO,SAAUC,EAAKvG,MAC7B,IAAdA,EAAKnD,YACG0J,EAAOvG,EAAK8B,UAEpB2E,EAhFDgP,KAAKC,MAAQ,OAAQV,SAiFxBE,EAAYzO,GAAMzG,EAAK8B,MACfyE,GAAYuO,EAAkBrO,GAAKqO,GAC5C,QAEES,EAAiBxH,KAAK8H,UAChBZ,EAA8BY,EAAkBX,OAEtDnB,QACK,IAAIP,EAAY,uDAED,oBAAdsC,gBACD,IAAItC,EAAY,mDAKtBuC,GAFA/C,EADCA,GACW,IAAI8C,WAGfE,gBAAgB,0BAA6BR,EAAc,KAAQK,EAAmB,uBAAwB,aAC9GI,eAAeT,OACfO,QACK,IAAIvC,EAAY,0BAA4BqC,OAElDK,EAAe1Y,OAAO0U,KAAK6B,GAAQqB,OAAO,SAAUjB,WAAoB4B,EAAQI,qBAAqBhC,GAAS1V,aAE7GyX,EAAazX,cACPwW,EAA8BY,EAAkBX,OAEvDkB,EAAoBF,EAAad,OAAO,SAAUiB,UAAkBA,IAAYA,EAAQC,mBACxFF,EAAkB3X,aACZ,IAAI+U,EAAY,+DAAiE4C,EAAkB3V,KAAK,cAG3G9C,MAAMK,UAAUwC,MAClB9B,KAAKqX,EAAQQ,YACbjQ,OAAO,SAAUC,EAAKiQ,UAAgBjQ,EAAIkQ,OAzEnD,SAASC,EAAkB9Z,EAAIsY,EAAanB,OACpCsC,EAAUzZ,EAAGyZ,QACbM,EAAY/Z,EAAG+Z,UAAWC,EAAcha,EAAGga,YAAaL,EAAa3Z,EAAG2Z,eAEvEF,SACMpB,EAA8B2B,GAAe,GAAI1B,GAE5DmB,EAAUA,EAAQC,kBACdO,GAAiBlB,EAAcmB,QAAQT,GACvCU,EAAkBhD,EAAOsC,MACzBU,GAAmBF,QACb,IAAIrD,EAAY6C,EAAU,gFAE/BE,EAAW9X,aACL,CAACkY,OAERK,EAASrZ,MAAMK,UAAUwC,MAAM9B,KAAK6X,GAAYjQ,OAAO,SAAUC,EAAKiQ,UAC/DjQ,EAAIkQ,OAAOC,EAAkBF,EAAOtB,EAAanB,KACzD,WAEEgD,EAI0B,mBAApBA,EACA,CAACA,EAAgBpY,WAAM,EAAQqY,IAEnC,CAACD,GANGtI,EAAe,CAAC,IAAM4H,EAAU,KAAMW,EAAQ,CAAC,KAAOX,EAAU,MAoDrBK,CAAkBF,EAAOtB,EAAanB,KAAa,ICxS7G,IAAI7V,EAAsC,kBACtCA,EAAWV,OAAOW,QAAU,SAASC,OAC5B,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,QAEvC,IAAIV,KADTS,EAAIG,UAAUF,GACOd,OAAOQ,UAAUH,eAAea,KAAKL,EAAGT,KACzDQ,EAAER,GAAKS,EAAET,WAEVQ,IAEKO,MAAMC,KAAMJ,YAehC,SAASyY,EAAaC,EAAeC,UAC5BA,EAGE3Z,OAAO0U,KAAKgF,GAAe5Q,OAAO,SAAUC,EAAKqI,UACpDrI,EAAIqI,GAdZ,SAAqBwI,EAAIC,UAChBA,EAGEnZ,EAASA,EAASA,EAAS,GAAKkZ,GAAM,IAAOC,GAAM,IAAM7Z,OAAO0U,KAAKkF,GAAI9Q,OAAO,SAAUC,EAAKqI,UAClGrI,EAAIqI,GAAK1Q,EAASA,EAAS,GAAIkZ,EAAGxI,IAAMyI,EAAGzI,IAAM,IAC1CrI,GACR,KALQ6Q,EAYEE,CAAYJ,EAActI,GAAIuI,EAAQvI,IACxCrI,GACRrI,EAAS,GAAIgZ,IALLA,EAmBf,IAAIK,GA8CAA,GAAkBC,eAAgB,IAAInD,KAAKoD,cAAeC,kBAAkBC,OAC5EJ,GAAkBK,QAAU/F,EAI5B0F,GAAkBzD,QAAU,CACxBnP,OAAQ,CACJyM,SAAU,CACNhN,MAAO,YAEXyT,QAAS,CACLzT,MAAO,YAGfQ,KAAM,CACFkT,MAAO,CACHtI,MAAO,UACPC,IAAK,UACLH,KAAM,WAEVyI,OAAQ,CACJvI,MAAO,QACPC,IAAK,UACLH,KAAM,WAEV0I,KAAM,CACFxI,MAAO,OACPC,IAAK,UACLH,KAAM,WAEV2I,KAAM,CACFvI,QAAS,OACTF,MAAO,OACPC,IAAK,UACLH,KAAM,YAGdzK,KAAM,CACFiT,MAAO,CACHjI,KAAM,UACNC,OAAQ,WAEZiI,OAAQ,CACJlI,KAAM,UACNC,OAAQ,UACRC,OAAQ,WAEZiI,KAAM,CACFnI,KAAM,UACNC,OAAQ,UACRC,OAAQ,UACRC,aAAc,SAElBiI,KAAM,CACFpI,KAAM,UACNC,OAAQ,UACRC,OAAQ,UACRC,aAAc,WAInBuH,aA1GEA,GAAkB3W,EAASgT,EAASsE,EAAiBpG,OACtDhR,EAAQlC,aACI,IAAZgV,IAAsBA,EAAU2D,GAAkBC,oBACjDW,eAAiB,CAClBxT,OAAQ,GACRyT,SAAU,GACVC,YAAa,SAEZ/E,OAAS,SAAUS,UD+GzB,SAAwBhC,EAAK6B,EAASC,EAAYC,EAASC,EAElEE,OACQnU,EAAQ6T,EAAc5B,EAAK6B,EAASC,EAAYC,EAASC,OAAQ3S,EAAW6S,UAE3D,IAAjBnU,EAAMrB,OACCqB,EAAM,GAAGgC,MAEbhC,EAAMwG,OAAO,SAAUC,EAAKvG,UAAgBuG,EAAOvG,EAAK8B,OAAW,ICtH3DwW,CAAexX,EAAMyX,IAAKzX,EAAM8S,QAAS9S,EAAM+S,WAAY/S,EAAMgT,QAASC,EAAQjT,EAAMF,eAE9F+S,cAAgB,SAAUI,UACpBJ,EAAc7S,EAAMyX,IAAKzX,EAAM8S,QAAS9S,EAAM+S,WAAY/S,EAAMgT,QAASC,OAAQ3S,EAAWN,EAAMF,eAExGgV,kBAAoB,SAAU7B,UACxB6B,EAAkB9U,EAAMyX,IAAKzX,EAAM8S,QAAS9S,EAAM+S,WAAY/S,EAAMgT,QAASC,EAAQjT,EAAMF,eAEjG8W,gBAAkB,iBAAsB,CACzCC,OAAQtD,KAAKoD,aAAae,mBAAmB1X,EAAM8S,SAAS,UAE3D6E,OAAS,kBAAqB3X,EAAMyX,KAClB,iBAAZ3X,EAAsB,SACxBA,QAAUA,GACV2W,GAAkBK,cACb,IAAIc,UAAU,oFAGnBH,IAAMhB,GAAkBK,QAAQhX,EAAS,CAC1CoR,0BAA0B,cAIzBuG,IAAM3X,MAEVjD,MAAMsC,QAAQrB,KAAK2Z,WACd,IAAIG,UAAU,uDAInB5E,QAAUmD,EAAaM,GAAkBzD,QAASoE,QAElDtE,QAAUA,OACVC,WACA/B,GAAQA,EAAK+B,YAxDnB,SAAiCV,eACtB,IAAVA,IAAoBA,EAAQ,CAC5BxO,OAAQ,GACRyT,SAAU,GACVC,YAAa,KAEV,CACH5D,gBAAiBkE,EAAuBtE,KAAKoD,aAActE,EAAMxO,QACjE+P,kBAAmBiE,EAAuBtE,KAAKuE,eAAgBzF,EAAMiF,UACrE5D,eAAgBmE,EAAuBtE,KAAKC,YAAanB,EAAMkF,cA+C9BQ,CAAwBja,KAAKuZ,gBC9F/D,SAASW,GAAUC,EAAWnY,EAASoY,WAC9B,IAARA,IAAkBA,EAAMla,QACvBia,QACK,IAAIC,EAAIpY,GCWtB,IAAMqY,GAAgB,IACd,WACA,UACA,UACA,YACA,UAEFC,GAAqB,WAIpB,SAASC,GAAYC,EAAOC,EAA5B,OAAuCC,+BAAvC,EAAA,EAAkD,UAC9CD,EAAU/S,OAAO,SAACiT,EAAUxY,UAC3BA,KAAQqY,EACRG,EAASxY,GAAQqY,EAAMrY,GAElBA,KAAQuY,IACbC,EAASxY,GAAQuY,EAASvY,IAEvBwY,GACR,IAEA,SAASC,GAAqBC,GACjCX,GAAUW,EAAM,gHAGb,SAASC,GAAY9Y,EAAS+Y,OAC3BC,EAAOD,cAAiBA,EAAUE,OAAU,gCAC3BjZ,UAAUgZ,GAO9B,IAAME,GAAsB,CAC/BhG,QAAS,GACTiG,SAAU,GACVC,cAAU5Y,EACV6Y,cAAeC,WACf1C,cAAe,KACf2C,eAAgB,GAChBC,QAZG,SAA6BzT,MAc7B,SAAS0T,WACL,CACHjC,SAAU,GACVzT,OAAQ,GACR/D,QAAS,GACT0Z,aAAc,GACdjC,YAAa,GACbkC,KAAM,GACNC,aAAc,IAOf,SAASC,GAAT,OAA0BtH,+BAA1B,EAAA,EAdI,CACHiF,SAAU,GACVzT,OAAQ,GACR/D,QAAS,GACT0Z,aAAc,GACdjC,YAAa,GACbkC,KAAM,GACNC,aAAc,IAQZE,EAAqBrG,KAAKqG,mBAC1BC,EAAatG,KAAKsG,WAClBC,EAAevG,KAAKuG,mBACnB,CACHlG,kBAAmBiE,EAAuBtE,KAAKuE,eAAgBzF,EAAMiF,UACrE3D,gBAAiBkE,EAAuBtE,KAAKoD,aAActE,EAAMxO,QACjEkW,iBAAkBlC,EAAuBpB,EAAmBpE,EAAMvS,SAClEka,sBAAuBnC,EAAuB+B,EAAoBvH,EAAMmH,cACxE9F,eAAgBmE,EAAuBtE,KAAKC,YAAanB,EAAMkF,aAC/D0C,cAAepC,EAAuBgC,EAAYxH,EAAMoH,MACxDS,gBAAiBrC,EAAuBiC,EAAczH,EAAMqH,eAG7D,SAASS,GAAenH,EAASjX,EAAMkE,EAAMqZ,OAE5C9G,EADE4H,EAAapH,GAAWA,EAAQjX,MAElCqe,IACA5H,EAAS4H,EAAWna,IAEpBuS,SACOA,EAEX8G,EAAQV,gBAAkB7c,4BAAsBkE,8FCvFvCvD,OAAO2d,eAAeC,EAAQ,aAAa,CAACtZ,OAAM,QAC3DvE,EAAE,mBAAoB8d,QAAQA,OAAOC,IAAIhG,EAAE/X,EAAE8d,OAAOC,IAAI,iBAAiB,MAAMhe,EAAEC,EAAE8d,OAAOC,IAAI,gBAAgB,MAAMC,EAAEhe,EAAE8d,OAAOC,IAAI,kBAAkB,MAAME,EAAEje,EAAE8d,OAAOC,IAAI,qBAAqB,MAAMG,EAAEle,EAAE8d,OAAOC,IAAI,kBAAkB,MAAMI,EAAEne,EAAE8d,OAAOC,IAAI,kBAAkB,MAAM1M,EAAErR,EAAE8d,OAAOC,IAAI,iBAAiB,MAAMK,EAAEpe,EAAE8d,OAAOC,IAAI,oBAAoB,MAAMM,EAAEre,EAAE8d,OAAOC,IAAI,yBAAyB,MAAM/c,EAAEhB,EAAE8d,OAAOC,IAAI,qBAAqB,MAAM1d,EAAEL,EAAE8d,OAAOC,IAAI,kBAAkB,MAAMO,EAAEte,EAAE8d,OAAOC,IAAI,cACpf,MAAM3M,EAAEpR,EAAE8d,OAAOC,IAAI,cAAc,eAAeld,EAAEyQ,MAAM,aAAkBA,IAAG,OAAOA,EAAE,KAAKiN,EAAEjN,EAAEkN,gBAAgBD,QAAQxG,SAASzG,EAAEA,EAAEhS,WAAa8e,OAAOC,OAAOL,OAAOE,OAAOD,OAAO5d,SAASiR,iBAAiBA,EAAEA,GAAGA,EAAEkN,eAAiBnN,OAAOrQ,OAAOmd,SAAS7M,iBAAiBiN,QAAQnN,OAAOkN,OAAOve,SAASwe,aAAaE,EAAEnN,UAAUzQ,EAAEyQ,KAAK+M,EAAER,SAAehd,EAAEgd,YAAkBO,EAAEP,iBAAuBQ,EAAER,kBAAwBxM,EAAEwM,kBAAwBM,EAAEN,UAAgB9F,EAAE8F,aAAmB7c,EACxe6c,WAAiBG,EAAEH,OAAazM,EAAEyM,OAAaS,EAAET,SAAe9d,EAAE8d,WAAiBK,EAAEL,aAAmBI,EAAEJ,WAAiBxd,EAAEwd,qBAA2B,SAASvM,SAAS,iBAAkBA,GAAG,mBAAoBA,GAAGA,IAAI0M,GAAG1M,IAAI+M,GAAG/M,IAAI4M,GAAG5M,IAAI2M,GAAG3M,IAAIjR,GAAG,aAAkBiR,IAAG,OAAOA,IAAIA,EAAEkN,WAAWpN,GAAGE,EAAEkN,WAAWF,GAAGhN,EAAEkN,WAAWL,GAAG7M,EAAEkN,WAAWnN,GAAGC,EAAEkN,WAAWxd,IAAI6c,cAAoB,SAASvM,UAAUmN,EAAEnN,IAAIzQ,EAAEyQ,KAAK8M,GAAGP,mBAAyBY,EAAEZ,oBAA0B,SAASvM,UAAUzQ,EAAEyQ,KAAKD,GAChfwM,oBAA0B,SAASvM,UAAUzQ,EAAEyQ,KAAK6M,GAAGN,YAAkB,SAASvM,SAAS,aAAkBA,IAAG,OAAOA,GAAGA,EAAEkN,WAAWzG,GAAG8F,eAAqB,SAASvM,UAAUzQ,EAAEyQ,KAAKtQ,GAAG6c,aAAmB,SAASvM,UAAUzQ,EAAEyQ,KAAK0M,GAAGH,SAAe,SAASvM,UAAUzQ,EAAEyQ,KAAKF,GAAGyM,SAAe,SAASvM,UAAUzQ,EAAEyQ,KAAKgN,GAAGT,WAAiB,SAASvM,UAAUzQ,EAAEyQ,KAAKvR,GAAG8d,aAAmB,SAASvM,UAAUzQ,EAAEyQ,KAAK4M,GAAGL,eAAqB,SAASvM,UAAUzQ,EAAEyQ,KAAK2M,GACjdJ,aAAmB,SAASvM,UAAUzQ,EAAEyQ,KAAKjR,ggBCX3Cqe,UAAiBC,KCKfC,GAAgB,CAClBC,mBAAmB,EACnBC,aAAa,EACbC,cAAc,EACdC,cAAc,EACdC,aAAa,EACbC,iBAAiB,EACjBC,0BAA0B,EAC1BC,0BAA0B,EAC1BC,QAAQ,EACRC,WAAW,EACXhgB,MAAM,GAEJigB,GAAgB,CAClB/b,MAAM,EACNtC,QAAQ,EACRT,WAAW,EACX+e,QAAQ,EACRC,QAAQ,EACRxe,WAAW,EACXye,OAAO,GASLC,GAAe,WACL,EACZC,SAAS,EACTZ,cAAc,EACdC,aAAa,EACbK,WAAW,EACXhgB,MAAM,GAEJugB,GAAe,GAInB,SAASC,GAAWC,UAEdC,GAAQC,OAAOF,GACVJ,GAIFE,GAAaE,EAAS,WAAiBnB,GAVhDiB,GAAaG,GAAQE,YAhBK,WACZ,EACZC,QAAQ,EACRnB,cAAc,EACdC,aAAa,EACbK,WAAW,GAYbO,GAAaG,GAAQI,MAAQT,GAY7B,IAAI/B,GAAiB3d,OAAO2d,eACxByC,GAAsBpgB,OAAOogB,oBAC7BC,GAAwBrgB,OAAOqgB,sBAC/BC,GAA2BtgB,OAAOsgB,yBAClCC,GAAiBvgB,OAAOugB,eACxBC,GAAkBxgB,OAAOQ,UAC7B,YAA8BigB,EAAiBC,EAAiBC,MAC/B,iBAApBD,EAA8B,IAEnCF,GAAiB,KACfI,EAAqBL,GAAeG,GAEpCE,GAAsBA,IAAuBJ,IAC/CK,GAAqBJ,EAAiBG,EAAoBD,OAI1DjM,EAAO0L,GAAoBM,GAE3BL,KACF3L,EAAOA,EAAKuE,OAAOoH,GAAsBK,aAGvCI,EAAgBjB,GAAWY,GAC3BM,EAAgBlB,GAAWa,GAEtB5f,EAAI,EAAGA,EAAI4T,EAAKzT,SAAUH,EAAG,KAChCkgB,EAAMtM,EAAK5T,QAEVwe,GAAc0B,IAAUL,GAAaA,EAAUK,IAAWD,GAAiBA,EAAcC,IAAWF,GAAiBA,EAAcE,IAAO,KACzIC,EAAaX,GAAyBI,EAAiBM,OAIzDrD,GAAe8C,EAAiBO,EAAKC,GACrC,MAAOlD,cAKR0C,EAGT,IChGMI,GAAuBK,GAM7B,IAAMC,GAAczE,gBAAoB,MACtB0E,GAAyCD,GAAnDE,SACKC,GAD8CH,GAA3BG,SAEnBC,GAAUJ,GACR,SAASK,GAAWC,EAAkB9d,GAEhC,SAAX+d,EAAW9F,UAAUc,gBAAoB0E,GAAc,KAAM,SAACnF,UAC5D0F,GACA3F,GAAqBC,GAEjBS,gBAAoB+E,EAAkBzhB,OAAOW,OAAO,GAAIib,4HAC3DgG,EAAe3F,GACjB,CAAE4F,IAAKC,EAAalG,EAAMmG,aAAe,gBAP6Bpe,GAAW,OAAhFie,aAAAA,aAAe,aAAQE,WAAAA,oBAAoBH,eAAAA,uBASnDD,EAAS1C,iCAlBb,SAAwBgD,UACbA,EAAUhD,aAAegD,EAAUze,MAAQ,YAiBb0e,CAAeR,QACpDC,EAASD,iBAAmBA,EAEjBZ,GADPiB,EAC4BpF,aAAiB,SAACd,EAAOiG,UAASnF,gBAAoBgF,EAAU1hB,OAAOW,OAAO,GAAIib,EAAO,CAAEmG,aAAcF,OAE7GH,EAFwHD,GC7BxJ,IAcIS,GACOA,GASPC,GACOA,GAzBPC,GAAkC,SAAUvhB,EAAGkd,OAC3Cnd,EAAI,OACH,IAAIR,KAAKS,EAAOb,OAAOQ,UAAUH,eAAea,KAAKL,EAAGT,IAAM2d,EAAEzE,QAAQlZ,GAAK,IAC9EQ,EAAER,GAAKS,EAAET,OACJ,MAALS,GAAqD,mBAAjCb,OAAOqgB,sBACtB,CAAA,IAAIvf,EAAI,EAAb,IAAgBV,EAAIJ,OAAOqgB,sBAAsBxf,GAAIC,EAAIV,EAAEa,OAAQH,IAC3Did,EAAEzE,QAAQlZ,EAAEU,IAAM,GAAKd,OAAOQ,UAAU6hB,qBAAqBnhB,KAAKL,EAAGT,EAAEU,MACvEF,EAAER,EAAEU,IAAMD,EAAET,EAAEU,YAEnBF,IAMAshB,GAQQA,GAAhBA,IAA8B,IAPlB,WAAiB,gBAC5BA,GAAW,WAAiB,gBAC5BA,GAAW,aAAmB,kBAC9BA,GAAW,WAAiB,gBAG5BA,GAAW,kBAAwB,wBAG5BC,GAKaA,GAArBA,IAAwC,IAJvB,WAAiB,qBACjCA,GAAgB,WAAiB,qBACjCA,GAAgB,aAAmB,uBACnCA,GAAgB,WAAiB,qBAED,SAAvBG,GAAuB1G,UAAUc,gBAAoB6E,GAAQF,SAAU,KAAM,SAACpF,GACvFD,GAAqBC,OACb3X,EAAoBsX,EAApBtX,MAAOie,EAAa3G,EAAb2G,SAAoBC,EAAcJ,GAAOxG,EAAO,CAAC,QAAS,oBAClE2G,EAAStG,EAAKwG,oBAAoBne,EAAOke,MAG7C,SAASE,GAAsCnf,GAC3B,SAAjBof,EAAiB/G,UAAUc,gBAAoB6E,GAAQF,SAAU,KAAM,SAACpF,GAC1ED,GAAqBC,OACb3X,EAAoBsX,EAApBtX,MAAOie,EAAa3G,EAAb2G,SAAoBC,EAAcJ,GAAOxG,EAAO,CAAC,QAAS,aACnExU,EAAwB,iBAAV9C,EAAqB,IAAI2T,KAAK3T,GAAS,GAAKA,SAIzDie,EAHyB,eAAThf,EACjB0Y,EAAK2G,kBAAkBxb,EAAMob,GAC7BvG,EAAK4G,kBAAkBzb,EAAMob,aAGvCG,EAAe3D,YAAcmD,GAAiB5e,GACvCof,EAEJ,SAASG,GAAyBvf,GACnB,SAAZye,EAAYpG,UAAUc,gBAAoB6E,GAAQF,SAAU,KAAM,SAACpF,GACrED,GAAqBC,OACb3X,EAAoBsX,EAApBtX,MAAOie,EAAa3G,EAAb2G,SAAoBC,EAAcJ,GAAOxG,EAAO,CAAC,QAAS,aAEnEmH,EAAiB9G,EAAK1Y,GAAMe,EAAOke,MACjB,mBAAbD,SACAA,EAASQ,OAEdC,EAAO/G,EAAKQ,eAAiBC,kBAC5BA,gBAAoBsG,EAAM,KAAMD,YAE3Cf,EAAUhD,YAAckD,GAAY3e,GAC7Bye,EA3BXM,GAAqBtD,YAAc,2BCnC7BiE,GAAwB,CAC1B,gBACA,QACA,WACA,kBACA,OACA,cACA,cACA,uBACA,wBACA,wBACA,2BACA,2BAEA,iBACA,kBACA,eACA,WACA,cACA,OACA,eAEG,SAASC,KAA4CjM,EAArD,OAAwBkD,IAAAA,OAAQ7D,IAAAA,QAASsG,IAAAA,QAA6BjZ,+BAAtE,EAAA,EAAgF,GAC3EmS,EAAWnS,EAAXmS,OACFgG,EAAahG,GACf2H,GAAenH,EAAS,SAAUR,EAAQ8G,IAC1C,UAEG3F,EAAgBkD,EADCwB,GAAYhY,EAASsf,GAAuBnH,QC3BlEqH,GAA+B,CACjC,UACA,SAQG,SAASC,GAAmBC,EAAQ/F,EAAuBhZ,EAAOyP,OAAMpQ,yDAAU,GAEjFoQ,EADCA,GACM,SAEgB8C,KAAKqG,oBAE5BmG,EAAOzG,QAAQV,gJAZvB,WAAqDoB,EAArD,OAAwBnD,IAAAA,OAAQ7D,IAAAA,QAASsG,IAAAA,QAAmCjZ,+BAA5E,EAAA,EAAsF,GAC1EmS,EAAWnS,EAAXmS,OACFgG,IAAchG,GAAU2H,GAAenH,EAAS,WAAYR,EAAQ8G,IAAa,UAEhFU,EAAsBnD,EADLwB,GAAYhY,EAASwf,GAA8BrH,IAchEoH,CAAaG,EAAQ/F,EAAuB3Z,GAASmS,OAAOxR,EAAOyP,GAE9E,MAAOgK,GACHsF,EAAOzG,QAAQV,GAAY,kCAAmC6B,WAE3D5G,OAAO7S,GCrBlB,IAAMgf,GAA2B,CAC7B,gBACA,gBACA,WACA,SACA,UACA,MACA,OACA,QACA,MACA,OACA,SACA,SACA,gBAEG,SAASJ,KAAsD7jB,EAAM6X,EAArE,OAAwBiD,IAAAA,OAAQ7D,IAAAA,QAASsG,IAAAA,QAASJ,IAAAA,SAAsC7Y,+BAAxF,EAAA,EAAkG,GAC7FmS,EAAWnS,EAAXmS,OACFgG,EAAW9b,OAAOW,OAAOX,OAAOW,OAAO,GAAK6b,GAAY,CAAEA,SAAAA,IAAe1G,GAAU2H,GAAenH,EAASjX,EAAMyW,EAAQ8G,IAC3H2G,EAAkB5H,GAAYhY,EAAS2f,GAA0BxH,SACxD,SAATzc,GACCkkB,EAAgBlR,MAChBkR,EAAgBjR,QAChBiR,EAAgBhR,SAEjBgR,EAAkBvjB,OAAOW,OAAOX,OAAOW,OAAO,GAAI4iB,GAAkB,CAAElR,KAAM,UAAWC,OAAQ,aAE5F4E,EAAkBiD,EAAQoJ,OC/B/BC,GAAwB,CAC1B,gBACA,QCMJ,SAASC,GAAqBnP,EAAMkI,UACzBxc,OAAO0U,KAAKJ,GAAMxL,OAAO,SAACC,EAAKqI,UAClCrI,EAAIqI,GAAKpR,OAAOW,OAAO,CAAE6b,SAAAA,GAAYlI,EAAKlD,IACnCrI,GACR,IAEP,SAAS2a,GAAiBC,EAAOC,UAChB5jB,OAAO0U,KAAK1U,OAAOW,OAAOX,OAAOW,OAAO,GAAIgjB,GAAQC,IACrD9a,OAAO,SAACC,EAAKqI,UACrBrI,EAAIqI,GAAKpR,OAAOW,OAAOX,OAAOW,OAAO,GAAKgjB,EAAMvS,IAAM,IAAOwS,EAAMxS,IAAM,IAClErI,GACR,IAEP,SAAS8a,GAA+BC,EAAItH,OACnCA,SACMsH,MAELC,EAAYhK,EAAkBzD,eAC7BtW,OAAOW,OAAOX,OAAOW,OAAOX,OAAOW,OAAO,GAAIojB,GAAYD,GAAK,CAAE1c,KAAMsc,GAAiBD,GAAqBM,EAAU3c,KAAMoV,GAAWiH,GAAqBK,EAAG1c,MAAQ,GAAIoV,IAAYnV,KAAMqc,GAAiBD,GAAqBM,EAAU1c,KAAMmV,GAAWiH,GAAqBK,EAAGzc,MAAQ,GAAImV,MAEvS,IAAMwH,GAAqC,SAACxK,UAAWkD,sBAAAA,GAAoBA,WAAgB,eAASlD,MACpG,SAASyK,KAAgGC,OAAhF/J,IAAAA,OAAQ7D,IAAAA,QAASiG,IAAAA,SAAUvC,IAAAA,cAAe2C,IAAAA,eAAgBC,IAAAA,QAASJ,IAAAA,SAAoB2H,yDAAoB,CAAElb,GAAI,IAAMsN,yDAAS,GACpJtN,EAAuBkb,EAAvBlb,GAAImb,EAAmBD,EAAnBC,eAEZ9I,KAAYrS,EAAI,kEACV7F,EAAUmZ,GAAYA,EAASpF,OAAOlO,IAC5CqN,EAAUuN,GAA+BvN,EAASkG,GAClDG,EAAiBkH,GAA+BlH,EAAgBH,OAC5D6H,EAAwB,MACxBjhB,MAKIihB,EAHkBH,EAAM7G,iBAAiBja,EAAS+W,EAAQ7D,EAAS,CAC/DD,WAAY6N,IAEkB9L,kBAAkB7B,GAExD,MAAOwH,GACHnB,EAAQV,GAAY,qCAA8BjT,4BAAoBkR,QACjEiK,EAAiB,uCAAyC,IAAKrG,UAOnEqG,GACAjK,GAAUA,EAAOrB,gBAAkBkB,EAAclB,gBAClD8D,EAAQV,GAAY,4BAAqBjT,4BAAoBkR,QACxDiK,EAAiB,uCAAyC,UAGlEC,EAAsBpjB,QAAUmjB,MAG7BC,EADkBH,EAAM7G,iBAAiB+G,EAAgBpK,EAAe2C,GACtCvE,kBAAkB7B,GAExD,MAAOwH,GACHnB,EAAQV,wDAA0DjT,OAAO8U,WAG5EsG,EAAsBpjB,OAQU,IAAjCojB,EAAsBpjB,QACc,iBAA7BojB,EAAsB,GACtBA,EAAsB,IAAMD,GAAkBjN,OAAOlO,GAEzD+a,GAAmCK,IAXtCzH,EAAQV,GAAY,kCAA2BjT,iCAC1B7F,GAAWghB,EAAiB,SAAW,wBACrC,iBAAZhhB,EACAA,GAAWghB,GAAkBjN,OAAOlO,GAExCmb,GAAkBjN,OAAOlO,IAQjC,SAASmP,GAAkBiL,EAAQa,OAAuCI,yDAAY,UASlFL,GAAcZ,EAAQa,yDAToC,CAAEjb,GAAI,IAIjDjJ,OAAO0U,KAAK4P,GAAWxb,OAAO,SAACyb,EAAShhB,OACpDe,EAAQggB,EAAU/gB,UACxBghB,EAAQhhB,GAAyB,iBAAVe,EVnExB,SAAgBsO,UACX,GAAKA,GAAK5Q,QAAQ0Z,GAAoB,SAAA/J,UAAS8J,GAAc9J,EAAM/P,WAAW,MUkEtC4iB,CAAOlgB,GAASA,EACrDigB,GACR,KCzFP,YAA6BE,EAAMC,MAC7BD,IAASC,SACJ,MAGJD,IAASC,SACL,MAGLC,EAAQ3kB,OAAO0U,KAAK+P,GACpBG,EAAQ5kB,OAAO0U,KAAKgQ,GACpB9S,EAAM+S,EAAM1jB,UAEZ2jB,EAAM3jB,SAAW2Q,SACZ,MAGJ,IAAI9Q,EAAI,EAAGA,EAAI8Q,EAAK9Q,IAAK,KACxBkgB,EAAM2D,EAAM7jB,MAEZ2jB,EAAKzD,KAAS0D,EAAK1D,KAAShhB,OAAOQ,UAAUH,eAAea,KAAKwjB,EAAM1D,UAClE,SAIJ,EAGT,IC7BM6D,GAAsB,CACxB,gBACA,OACA,SAEE3M,GAAMD,KAAKC,MAIV,SAAS4M,KAAgCvH,EAAehH,OAAlC4D,IAAAA,OAAQyC,IAAAA,QAAkCjZ,yDAAU,GAC1DkT,KAAKsG,YAEpBP,EAAQV,yHAINqH,EAAkB5H,GAAYhY,EAASkhB,YAEnCE,EAAa,GACbC,EAAmBzO,EAAOhU,IAAI,SAACic,EAAG1d,MACnB,WAAbuU,EAAOmJ,UAKJrH,OAAOqH,OAJJvV,EAftB,SAAuBnI,mBACToX,eAAOpX,cAAKoX,IAcC+M,CAAcnkB,UACzBikB,EAAW9b,GAAMuV,EACVvV,WAIVjJ,OAAO0U,KAAKqQ,GAAY9jB,OAGfsc,EAAcpD,EAAQoJ,GAAiBpN,cAAc6O,GACtDlc,OAAO,SAACC,EAAK3J,OAChB8lB,EAAM9lB,EAAGkF,aACXygB,EAAWG,GACXnc,EAAIrC,KAAKqe,EAAWG,IAEgB,iBAAxBnc,EAAIA,EAAI9H,OAAS,GAC7B8H,EAAIA,EAAI9H,OAAS,IAAMikB,EAGvBnc,EAAIrC,KAAKwe,GAENnc,GACR,IAfQwU,EAAcpD,EAAQoJ,GAAiBzN,OAAOkP,GAiB7D,MAAOjH,GACHnB,EAAQV,GAAY,yBAA0B6B,WAE3CxH,EChDX,IAAM4O,GAAuB,CACzB,gBACA,QACA,OACA,YCWJ,IAAMC,GAAgBC,GACtB,SAASC,GAAkBjC,SAChB,CACHlJ,OAAQkJ,EAAOlJ,OACfqC,SAAU6G,EAAO7G,SACjBlG,QAAS+M,EAAO/M,QAChBmG,cAAe4G,EAAO5G,cACtBF,SAAU8G,EAAO9G,SACjBvC,cAAeqJ,EAAOrJ,cACtB2C,eAAgB0G,EAAO1G,eACvBC,QAASyG,EAAOzG,SAQjB,SAAS2I,GAAWlC,EAAQ1N,OACzBU,EAAa4G,GAAiBtH,GAC9B6P,EAAiBxlB,OAAOW,OAAOX,OAAOW,OAAO,GAAI2b,IAAsB+G,GACrElJ,EAAmCqL,EAAnCrL,OAAQH,EAA2BwL,EAA3BxL,cAAe4C,EAAY4I,EAAZ5I,eAC1BzC,GAWKtD,KAAKoD,aAAae,mBAAmBb,GAAQlZ,QAAU2b,EAC7DA,EAAQV,8CAAgD/B,4DAAwDH,4IAE1GnD,KAAKuE,eAAeJ,mBAAmBb,GAAQlZ,QACrD2b,GACAA,EAAQV,8CAAgD/B,8DAA0DH,4IAf9G4C,GACAA,EAAQV,iDAAmDlC,oHAO/DwL,EAAerL,OAASqL,EAAexL,eAAiB,MASrDha,OAAOW,OAAOX,OAAOW,OAAO,GAAI6kB,GAAiB,CAAEnP,WAAAA,EAAYoP,aRzBnE,SAAsBpC,EAAQpM,EAAiB3S,OAAOX,yDAAU,cAExDuf,GAAaG,EAAQpM,EAAiBtT,GAASmS,OAAOxR,GAEjE,MAAOyZ,GACHsF,EAAOzG,QAAQV,GAAY,2BAA4B6B,WAEpD5G,OAAO7S,IQkBmFyR,KAAK,KAAMyP,EAAgBnP,EAAWY,iBAAkBwL,oBRhBtJ,SAA6BY,EAAQpM,EAAiB3S,OAAOX,yDAAU,cAE/Duf,GAAaG,EAAQpM,EAAiBtT,GAASwS,cAAc7R,GAExE,MAAOyZ,GACHsF,EAAOzG,QAAQV,GAAY,2BAA4B6B,UAEpD,IQS2LhI,KAAK,KAAMyP,EAAgBnP,EAAWY,iBAAkBmM,mBAAoBA,GAAmBrN,KAAK,KAAMyP,EAAgBnP,EAAWiH,uBAAwBoI,WNtB5V,SAAoBrC,EAAQnM,EAAmB5S,OAAOX,yDAAU,GAC7DyD,EAAwB,iBAAV9C,EAAqB,IAAI2T,KAAK3T,GAAS,GAAKA,aAErD4e,GAAaG,EAAQ,OAAQnM,EAAmBvT,GAASmS,OAAO1O,GAE3E,MAAO2W,GACHsF,EAAOzG,QAAQV,GAAY,yBAA0B6B,WAElD5G,OAAO/P,IMcwW2O,KAAK,KAAMyP,EAAgBnP,EAAWa,mBAAoB0L,kBNF7a,SAA2BS,EAAQnM,EAAmB5S,OAAOX,yDAAU,GACpEyD,EAAwB,iBAAV9C,EAAqB,IAAI2T,KAAK3T,GAAS,GAAKA,aAErD4e,GAAaG,EAAQ,OAAQnM,EAAmBvT,GAASwS,cAAc/O,GAElF,MAAO2W,GACHsF,EAAOzG,QAAQV,GAAY,yBAA0B6B,UAElD,IMN8chI,KAAK,KAAMyP,EAAgBnP,EAAWa,mBAAoByO,WNZ5gB,SAAoBtC,EAAQnM,EAAmB5S,OAAOX,yDAAU,GAC7DyD,EAAwB,iBAAV9C,EAAqB,IAAI2T,KAAK3T,GAAS,GAAKA,aAErD4e,GAAaG,EAAQ,OAAQnM,EAAmBvT,GAASmS,OAAO1O,GAE3E,MAAO2W,GACHsF,EAAOzG,QAAQV,GAAY,yBAA0B6B,WAElD5G,OAAO/P,IMIwhB2O,KAAK,KAAMyP,EAAgBnP,EAAWa,mBAAoB2L,kBNQ7lB,SAA2BQ,EAAQnM,EAAmB5S,OAAOX,yDAAU,GACpEyD,EAAwB,iBAAV9C,EAAqB,IAAI2T,KAAK3T,GAAS,GAAKA,aAErD4e,GAAaG,EAAQ,OAAQnM,EAAmBvT,GAASwS,cAAc/O,GAElF,MAAO2W,GACHsF,EAAOzG,QAAQV,GAAY,yBAA0B6B,UAElD,IMhB8nBhI,KAAK,KAAMyP,EAAgBnP,EAAWa,mBAAoB0O,aLnD5rB,WAA2C5O,EAAgB1S,OAAnC6V,IAAAA,OAAQyC,IAAAA,QAAkCjZ,yDAAU,GAC1EkT,KAAKC,aACN8F,EAAQV,2HAINqH,EAAkB5H,GAAYhY,EAAS6f,eAElCxM,EAAemD,EAAQoJ,GAAiB/jB,OAAO8E,GAE1D,MAAOyZ,GACHnB,EAAQV,GAAY,2BAA4B6B,UAE7C,SKsCmtBhI,KAAK,KAAMyP,EAAgBnP,EAAWW,gBAAiBiN,cAAeA,GAAclO,KAAK,KAAMyP,EAAgBnP,GAAa+B,kBAAmBA,GAAkBrC,KAAK,KAAMyP,EAAgBnP,GAAayO,WAAYA,GAAW/O,KAAK,KAAMyP,EAAgBnP,EAAWkH,eAAgBsI,kBDjD7+B,WAAgDrI,EAAiBlZ,OAApC6V,IAAAA,OAAQyC,IAAAA,QAAmCjZ,yDAAU,GAChEkT,KAAKuG,cAEtBR,EAAQV,6HAINqH,EAAkB5H,GAAYhY,EAASwhB,eAElC3H,EAAgBrD,EAAQoJ,GAAiBuC,GAAGxhB,GAEvD,MAAOyZ,GACHnB,EAAQV,GAAY,iCAAkC6B,MCqC29BhI,KAAK,KAAMyP,EAAgBnP,EAAWmH,uBAE1iCuI,4EAEJ/kB,aACJ2U,MdFF,CACHiF,SAAU,GACVzT,OAAQ,GACR/D,QAAS,GACT0Z,aAAc,GACdjC,YAAa,GACbkC,KAAM,GACNC,aAAc,McJTkH,MAAQ,CACTvO,MAAOrS,EAAKqS,MACZsG,KAAMsJ,GAAWD,GAAkBhiB,EAAKsY,OAAQtY,EAAKqS,OACrDqQ,WAAYV,GAAkBhiB,EAAKsY,qBAPLc,4DAqBlCV,GAAqB5a,KAAK8iB,MAAMjI,MACzBS,gBAAoB4E,GAAU,CAAEhd,MAAOlD,KAAK8iB,MAAMjI,MAAQ7a,KAAKwa,MAAM2G,6DAZhD3G,SAASoK,IAAAA,WAAYrQ,IAAAA,MAC3C0N,EAASiC,GAAkB1J,UAC5BwJ,GAAcY,EAAY3C,GAMxB,KALI,CACHpH,KAAMsJ,GAAWlC,EAAQ1N,GACzBqQ,WAAY3C,eAUfrE,YAAc,kBACdD,aAAezC,GC3E5B,IAAM2J,GAAS,GACTC,GAAO,KAEb,SAASC,GAAWC,OACVC,EAAWC,KAAKC,IAAIH,UACtBC,EAAWJ,GACJ,SAEPI,EAAWH,GACJ,SAEPG,EATI,MAUG,OAEJ,MAEX,SAASG,GAAqBzS,UAClBA,OACC,gBACM,MACN,gBACMkS,OACN,cACMC,kBArBP,OA0BZ,SAASO,GAAeniB,EAAOyP,OACtBzP,SACM,SAEHyP,OACC,gBACMzP,MACN,gBACMA,EAAQ2hB,kBAER3hB,EAAQ4hB,IAG3B,IAAMQ,GAAsB,CAAC,SAAU,SAAU,QACjD,SAASC,GAAT,OAAsB5S,+BAAtB,EAAA,EAA6B,gBAClB2S,GAAoBE,SAAS7S,OAE3B8S,GAAb,sBACgBjL,mDACFA,KAEDkL,aAAe,OACf5C,MAAQ,CACT6C,SAAUzjB,EAAKsY,MAAM7H,KACrBiT,UAAW1jB,EAAKsY,MAAMtX,MACtB2iB,sBAAuBN,GAAarjB,EAAKsY,MAAM7H,MACzC0S,GAAenjB,EAAKsY,MAAMtX,MAAOhB,EAAKsY,MAAM7H,MAC5C,GAEVuH,IAAWM,EAAMsL,4BACVtL,EAAMsL,0BAA2BP,GAAa/K,EAAM7H,OAAQ,kEAbhC2I,+EAelBwK,IAAAA,wBAAyBnT,IAAAA,KAAUkT,IAAAA,yBACpDE,aAAa/lB,KAAK0lB,mBACbA,aAAe,KAEfI,GAA4BP,GAAa5S,QAIxCqT,EAAqBH,EAAwBC,EAC7CG,EAAWlB,GAAWiB,MAEX,QAAbC,OAGEC,EAAed,GAAqBa,GAEpCE,EAAgCH,EADpBA,EAAqBE,EAEjCE,EAAiEP,GAAjCM,EAChCA,EAAgCD,EAChCC,EACAE,EAAiBnB,KAAKC,IAAIiB,EAAgCP,QAC3DH,aAAeY,WAAW,kBAAMC,EAAKC,SAAS,CAC/CX,sBAAuBO,KACN,IAAjBC,sDAGCI,mBAAmBzmB,KAAKwa,MAAOxa,KAAK8iB,yDAGpC2D,mBAAmBzmB,KAAKwa,MAAOxa,KAAK8iB,sDAGzCiD,aAAa/lB,KAAK0lB,mBACbA,aAAe,wDAeZpK,gBAAoB6E,GAAQF,SAAU,KAAM,SAACpF,GACjDD,GAAqBC,OACbmH,EAA4CnH,EAA5CmH,mBAAmCJ,EAAS/G,EAAxBQ,gBAC+BqL,EAAKlM,MAAxD2G,IAAAA,SAAUje,IAAAA,MAAOyP,IAAAA,KAAMmT,IAAAA,wBACvBD,EAA0Ba,EAAK5D,MAA/B+C,sBACJc,EAAezjB,GAAS,EACxB0jB,EAAcjU,KACd4S,GAAa5S,IACoB,iBAA1BkT,GACPC,EAAyB,KAEnBI,EAAed,GADrBwB,EAAc7B,GAAWc,IAEzBc,EAAezB,KAAK2B,MAAMhB,EAAwBK,OAEhDY,EAAwB9E,EAAmB2E,EAAcC,EAAahoB,OAAOW,OAAO,GAAImnB,EAAKlM,cAC3E,mBAAb2G,EACAA,EAAS2F,GAEhBlF,EACOtG,gBAAoBsG,EAAM,KAAMkF,GAEpCA,uDAlCiBtM,EAAOsI,UAC/BtI,EAAM7H,OAASmQ,EAAM6C,UAAYnL,EAAMtX,QAAU4f,EAAM8C,UAChD,CACHA,UAAWpL,EAAMtX,MACjByiB,SAAUnL,EAAM7H,KAChBkT,sBAAuBN,GAAa/K,EAAM7H,MACpC0S,GAAe7K,EAAMtX,MAAOsX,EAAM7H,MAClC,GAGP,WA5Df,GAwFA8S,GAAsB7H,YAAc,wBACpC6H,GAAsB9H,aAAe,CACjCza,MAAO,EACPyP,KAAM,UC1Ic,SAAlBoU,GAAkBvM,OACZtX,EAAyEsX,EAAzEtX,MAAOsS,EAAkEgF,EAAlEhF,MAAO2L,EAA2D3G,EAA3D2G,WAA2D3G,EAAjDK,KAAQ2J,IAAAA,aAA6B5C,IAAfvG,cAEhD2L,EAAkBxM,EADDgK,EAAathB,EAAOsX,KACMhF,QACzB,mBAAb2L,EACAA,EAAS6F,GAEhBpF,EACOtG,gBAAoBsG,EAAM,KAAMoF,GAGpCA,EAEXD,GAAgBpJ,aAAe,CAC3B1f,KAAM,YAEV8oB,GAAgBnJ,YAAc,kBCDD,SAAvBqJ,GAAwBpH,EAAY1K,UAI/B0N,GAAcjkB,OAAOW,OAAOX,OAAOW,OAAO,GAAI2b,IAAsB,CAAEnC,OAAQ,OAAS8C,KAAoBgE,EAAY1K,UDFnH+R,GAASH,ICnBpB/F,GAAkC,SAAUvhB,EAAGkd,OAC3Cnd,EAAI,OACH,IAAIR,KAAKS,EAAOb,OAAOQ,UAAUH,eAAea,KAAKL,EAAGT,IAAM2d,EAAEzE,QAAQlZ,GAAK,IAC9EQ,EAAER,GAAKS,EAAET,OACJ,MAALS,GAAqD,mBAAjCb,OAAOqgB,sBACtB,CAAA,IAAIvf,EAAI,EAAb,IAAgBV,EAAIJ,OAAOqgB,sBAAsBxf,GAAIC,EAAIV,EAAEa,OAAQH,IAC3Did,EAAEzE,QAAQlZ,EAAEU,IAAM,GAAKd,OAAOQ,UAAU6hB,qBAAqBnhB,KAAKL,EAAGT,EAAEU,MACvEF,EAAER,EAAEU,IAAMD,EAAET,EAAEU,YAEnBF,GAOLwkB,GAAgBC,GAOhBkD,0FAAyB7L,8DACL8L,OACZxf,EAAK5H,KAAKwa,MAASrF,EAAWvN,EAAXuN,OAAekS,EAAarG,GAAOpZ,EAAI,CAAC,WACjD0f,EAAeF,EAAvBjS,OAAkCoS,EAAiBvG,GAAOoG,EAAW,CAAC,kBACrEpD,GAAcsD,EAAYnS,KAC9B6O,GAAcqD,EAAYE,sDAGvBjM,gBAAoB6E,GAAQF,SAAU,KAAM,SAACpF,GAC5C3Y,EAAKsY,MAAMwI,gBACZpI,GAAqBC,SAE+DA,GAAQ,OAAxFgI,cAAAA,aAAgBoE,SAAsB5L,cAAeuG,aAAOtG,eACsBpZ,EAAKsY,MAAvF3S,IAAAA,GAAItG,IAAAA,YAAayhB,IAAAA,eAAgB7N,IAAAA,OAAQgM,IAAAA,aAAU1J,QAASmJ,aAAYgB,IAE5E4F,EAAQ3E,EADO,CAAEhb,GAAAA,EAAItG,YAAAA,EAAayhB,eAAAA,GACA7N,UACjCpW,MAAMsC,QAAQmmB,KACfA,EAAQ,CAACA,IAEW,mBAAbrG,EACAA,iBAAYqG,IAEnB5G,EAGOtF,sBAAAA,GAAoBsF,EAAW,eAAS4G,KAE5CA,aAInBL,GAAiBvJ,YAAc,mBAC/BuJ,GAAiBxJ,aAAe,CAC5BxI,OAAQ,QCpDNsS,0FAA6BN,0DAEnB7L,gBAAoB6E,GAAQF,SAAU,KAAM,SAACpF,GAC5C3Y,EAAKsY,MAAMwI,gBACZpI,GAAqBC,OAEjB7D,EAAqC6D,EAArC7D,kBAAmBqE,EAAkBR,EAAlBQ,gBAC+CnZ,EAAKsY,MAAvE3S,IAAAA,GAAItG,IAAAA,YAAayhB,IAAAA,eAAwBE,IAAR/N,OAAmBgM,IAAAA,SAC7CP,EAAc1e,EAAKsY,MAA5B/C,QAGFmJ,EADCA,IACWvF,GAAiB,YAG3BqM,EAAuB1Q,EADV,CAAEnP,GAAAA,EAAItG,YAAAA,EAAayhB,eAAAA,GACqBE,MACnC,mBAAb/B,SACAA,EAASuG,OAUdC,EAAO,CAAEC,OAAQF,UAChBpM,gBAAoBsF,EAAW,CAAEiH,wBAAyBF,eAI7EF,GAAqB7J,YAAc,uBACnC6J,GAAqB9J,aAAe/e,OAAOW,OAAOX,OAAOW,OAAO,GAAI4nB,GAAiBxJ,cAAe,CAAElG,QAAS,aCjClGqQ,GAAgBpG,GAAyB,cACzCqG,GAAgBrG,GAAyB,cACzCsG,GAAkBtG,GAAyB,gBAC3CuG,GAAgBvG,GAAyB,cACzCwG,GAAuBxG,GAAyB,qBAChDyG,GAAqB7G,GAAsC,cAC3D8G,GAAqB9G,GAAsC,8YAdjE,SAAwB+G,UACpBA,4CCGDxN,EAAOyN,aAAWnI,WACxBvF,GAAqBC,GACdA"}