{"version":3,"file":"@intlify-GNM7FBVq.js","sources":["../../Vue/node_modules/@intlify/core-base/dist/core-base.esm-browser.js","../../Vue/node_modules/@intlify/shared/dist/shared.esm-browser.js"],"sourcesContent":["/*!\n * core-base v10.0.1\n * (c) 2024 kazuya kawaguchi\n * Released under the MIT License.\n */\n/**\n * Original Utilities\n * written by kazuya kawaguchi\n */\nconst inBrowser = typeof window !== 'undefined';\nlet mark;\nlet measure;\n{\n const perf = inBrowser && window.performance;\n if (perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n // @ts-ignore browser compat\n perf.clearMeasures) {\n mark = (tag) => {\n perf.mark(tag);\n };\n measure = (name, startTag, endTag) => {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n };\n }\n}\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\n/* eslint-disable */\nfunction format$1(message, ...args) {\n if (args.length === 1 && isObject(args[0])) {\n args = args[0];\n }\n if (!args || !args.hasOwnProperty) {\n args = {};\n }\n return message.replace(RE_ARGS, (match, identifier) => {\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\n });\n}\nconst generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });\nconst friendlyJSONstringify = (json) => JSON.stringify(json)\n .replace(/\\u2028/g, '\\\\u2028')\n .replace(/\\u2029/g, '\\\\u2029')\n .replace(/\\u0027/g, '\\\\u0027');\nconst isNumber = (val) => typeof val === 'number' && isFinite(val);\nconst isDate = (val) => toTypeString(val) === '[object Date]';\nconst isRegExp = (val) => toTypeString(val) === '[object RegExp]';\nconst isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0;\nconst assign = Object.assign;\nfunction escapeHtml(rawText) {\n return rawText\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n/* eslint-enable */\n/**\n * Useful Utilities By Evan you\n * Modified by kazuya kawaguchi\n * MIT License\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts\n */\nconst isArray = Array.isArray;\nconst isFunction = (val) => typeof val === 'function';\nconst isString = (val) => typeof val === 'string';\nconst isBoolean = (val) => typeof val === 'boolean';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isObject = (val) => val !== null && typeof val === 'object';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isPromise = (val) => {\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst isPlainObject = (val) => {\n if (!isObject(val))\n return false;\n const proto = Object.getPrototypeOf(val);\n return proto === null || proto.constructor === Object;\n};\n// for converting list and named values to displayed strings.\nconst toDisplayString = (val) => {\n return val == null\n ? ''\n : isArray(val) || (isPlainObject(val) && val.toString === objectToString)\n ? JSON.stringify(val, null, 2)\n : String(val);\n};\nfunction join(items, separator = '') {\n return items.reduce((str, item, index) => (index === 0 ? str + item : str + separator + item), '');\n}\nconst RANGE = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n const lines = source.split(/\\r?\\n/);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + 1;\n if (count >= start) {\n for (let j = i - RANGE; j <= i + RANGE || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(`${line}${' '.repeat(3 - String(line).length)}| ${lines[j]}`);\n const lineLength = lines[j].length;\n if (j === i) {\n // push underline\n const pad = start - (count - lineLength) + 1;\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\n }\n else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + '^'.repeat(length));\n }\n count += lineLength + 1;\n }\n }\n break;\n }\n }\n return res.join('\\n');\n}\n\nfunction warn(msg, err) {\n if (typeof console !== 'undefined') {\n console.warn(`[intlify] ` + msg);\n /* istanbul ignore if */\n if (err) {\n console.warn(err.stack);\n }\n }\n}\nconst hasWarned = {};\nfunction warnOnce(msg) {\n if (!hasWarned[msg]) {\n hasWarned[msg] = true;\n warn(msg);\n }\n}\n\nfunction createPosition(line, column, offset) {\n return { line, column, offset };\n}\nfunction createLocation(start, end, source) {\n const loc = { start, end };\n return loc;\n}\n\nconst CompileErrorCodes = {\n // tokenizer error codes\n EXPECTED_TOKEN: 1,\n INVALID_TOKEN_IN_PLACEHOLDER: 2,\n UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3,\n UNKNOWN_ESCAPE_SEQUENCE: 4,\n INVALID_UNICODE_ESCAPE_SEQUENCE: 5,\n UNBALANCED_CLOSING_BRACE: 6,\n UNTERMINATED_CLOSING_BRACE: 7,\n EMPTY_PLACEHOLDER: 8,\n NOT_ALLOW_NEST_PLACEHOLDER: 9,\n INVALID_LINKED_FORMAT: 10,\n // parser error codes\n MUST_HAVE_MESSAGES_IN_PLURAL: 11,\n UNEXPECTED_EMPTY_LINKED_MODIFIER: 12,\n UNEXPECTED_EMPTY_LINKED_KEY: 13,\n UNEXPECTED_LEXICAL_ANALYSIS: 14,\n // generator error codes\n UNHANDLED_CODEGEN_NODE_TYPE: 15,\n // minifier error codes\n UNHANDLED_MINIFIER_NODE_TYPE: 16\n};\n// Special value for higher-order compilers to pick up the last code\n// to avoid collision of error codes.\n// This should always be kept as the last item.\nconst COMPILE_ERROR_CODES_EXTEND_POINT = 17;\n/** @internal */\nconst errorMessages$1 = {\n // tokenizer error messages\n [CompileErrorCodes.EXPECTED_TOKEN]: `Expected token: '{0}'`,\n [CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]: `Invalid token in placeholder: '{0}'`,\n [CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]: `Unterminated single quote in placeholder`,\n [CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]: `Unknown escape sequence: \\\\{0}`,\n [CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]: `Invalid unicode escape sequence: {0}`,\n [CompileErrorCodes.UNBALANCED_CLOSING_BRACE]: `Unbalanced closing brace`,\n [CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]: `Unterminated closing brace`,\n [CompileErrorCodes.EMPTY_PLACEHOLDER]: `Empty placeholder`,\n [CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]: `Not allowed nest placeholder`,\n [CompileErrorCodes.INVALID_LINKED_FORMAT]: `Invalid linked format`,\n // parser error messages\n [CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]: `Plural must have messages`,\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]: `Unexpected empty linked modifier`,\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]: `Unexpected empty linked key`,\n [CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]: `Unexpected lexical analysis in token: '{0}'`,\n // generator error messages\n [CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE]: `unhandled codegen node type: '{0}'`,\n // minimizer error messages\n [CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE]: `unhandled mimifier node type: '{0}'`\n};\nfunction createCompileError(code, loc, options = {}) {\n const { domain, messages, args } = options;\n const msg = format$1((messages || errorMessages$1)[code] || '', ...(args || []))\n ;\n const error = new SyntaxError(String(msg));\n error.code = code;\n if (loc) {\n error.location = loc;\n }\n error.domain = domain;\n return error;\n}\n/** @internal */\nfunction defaultOnError(error) {\n throw error;\n}\n\n// eslint-disable-next-line no-useless-escape\nconst RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\nconst detectHtmlTag = (source) => RE_HTML_TAG.test(source);\n\nconst CHAR_SP = ' ';\nconst CHAR_CR = '\\r';\nconst CHAR_LF = '\\n';\nconst CHAR_LS = String.fromCharCode(0x2028);\nconst CHAR_PS = String.fromCharCode(0x2029);\nfunction createScanner(str) {\n const _buf = str;\n let _index = 0;\n let _line = 1;\n let _column = 1;\n let _peekOffset = 0;\n const isCRLF = (index) => _buf[index] === CHAR_CR && _buf[index + 1] === CHAR_LF;\n const isLF = (index) => _buf[index] === CHAR_LF;\n const isPS = (index) => _buf[index] === CHAR_PS;\n const isLS = (index) => _buf[index] === CHAR_LS;\n const isLineEnd = (index) => isCRLF(index) || isLF(index) || isPS(index) || isLS(index);\n const index = () => _index;\n const line = () => _line;\n const column = () => _column;\n const peekOffset = () => _peekOffset;\n const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset];\n const currentChar = () => charAt(_index);\n const currentPeek = () => charAt(_index + _peekOffset);\n function next() {\n _peekOffset = 0;\n if (isLineEnd(_index)) {\n _line++;\n _column = 0;\n }\n if (isCRLF(_index)) {\n _index++;\n }\n _index++;\n _column++;\n return _buf[_index];\n }\n function peek() {\n if (isCRLF(_index + _peekOffset)) {\n _peekOffset++;\n }\n _peekOffset++;\n return _buf[_index + _peekOffset];\n }\n function reset() {\n _index = 0;\n _line = 1;\n _column = 1;\n _peekOffset = 0;\n }\n function resetPeek(offset = 0) {\n _peekOffset = offset;\n }\n function skipToPeek() {\n const target = _index + _peekOffset;\n while (target !== _index) {\n next();\n }\n _peekOffset = 0;\n }\n return {\n index,\n line,\n column,\n peekOffset,\n charAt,\n currentChar,\n currentPeek,\n next,\n peek,\n reset,\n resetPeek,\n skipToPeek\n };\n}\n\nconst EOF = undefined;\nconst DOT = '.';\nconst LITERAL_DELIMITER = \"'\";\nconst ERROR_DOMAIN$3 = 'tokenizer';\nfunction createTokenizer(source, options = {}) {\n const location = options.location !== false;\n const _scnr = createScanner(source);\n const currentOffset = () => _scnr.index();\n const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index());\n const _initLoc = currentPosition();\n const _initOffset = currentOffset();\n const _context = {\n currentType: 13 /* TokenTypes.EOF */,\n offset: _initOffset,\n startLoc: _initLoc,\n endLoc: _initLoc,\n lastType: 13 /* TokenTypes.EOF */,\n lastOffset: _initOffset,\n lastStartLoc: _initLoc,\n lastEndLoc: _initLoc,\n braceNest: 0,\n inLinked: false,\n text: ''\n };\n const context = () => _context;\n const { onError } = options;\n function emitError(code, pos, offset, ...args) {\n const ctx = context();\n pos.column += offset;\n pos.offset += offset;\n if (onError) {\n const loc = location ? createLocation(ctx.startLoc, pos) : null;\n const err = createCompileError(code, loc, {\n domain: ERROR_DOMAIN$3,\n args\n });\n onError(err);\n }\n }\n function getToken(context, type, value) {\n context.endLoc = currentPosition();\n context.currentType = type;\n const token = { type };\n if (location) {\n token.loc = createLocation(context.startLoc, context.endLoc);\n }\n if (value != null) {\n token.value = value;\n }\n return token;\n }\n const getEndToken = (context) => getToken(context, 13 /* TokenTypes.EOF */);\n function eat(scnr, ch) {\n if (scnr.currentChar() === ch) {\n scnr.next();\n return ch;\n }\n else {\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\n return '';\n }\n }\n function peekSpaces(scnr) {\n let buf = '';\n while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) {\n buf += scnr.currentPeek();\n scnr.peek();\n }\n return buf;\n }\n function skipSpaces(scnr) {\n const buf = peekSpaces(scnr);\n scnr.skipToPeek();\n return buf;\n }\n function isIdentifierStart(ch) {\n if (ch === EOF) {\n return false;\n }\n const cc = ch.charCodeAt(0);\n return ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n cc === 95 // _\n );\n }\n function isNumberStart(ch) {\n if (ch === EOF) {\n return false;\n }\n const cc = ch.charCodeAt(0);\n return cc >= 48 && cc <= 57; // 0-9\n }\n function isNamedIdentifierStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = isIdentifierStart(scnr.currentPeek());\n scnr.resetPeek();\n return ret;\n }\n function isListIdentifierStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek();\n const ret = isNumberStart(ch);\n scnr.resetPeek();\n return ret;\n }\n function isLiteralStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === LITERAL_DELIMITER;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedDotStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 7 /* TokenTypes.LinkedAlias */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \".\" /* TokenChars.LinkedDot */;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedModifierStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 8 /* TokenTypes.LinkedDot */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = isIdentifierStart(scnr.currentPeek());\n scnr.resetPeek();\n return ret;\n }\n function isLinkedDelimiterStart(scnr, context) {\n const { currentType } = context;\n if (!(currentType === 7 /* TokenTypes.LinkedAlias */ ||\n currentType === 11 /* TokenTypes.LinkedModifier */)) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \":\" /* TokenChars.LinkedDelimiter */;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedReferStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 9 /* TokenTypes.LinkedDelimiter */) {\n return false;\n }\n const fn = () => {\n const ch = scnr.currentPeek();\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n return isIdentifierStart(scnr.peek());\n }\n else if (ch === \"@\" /* TokenChars.LinkedAlias */ ||\n ch === \"|\" /* TokenChars.Pipe */ ||\n ch === \":\" /* TokenChars.LinkedDelimiter */ ||\n ch === \".\" /* TokenChars.LinkedDot */ ||\n ch === CHAR_SP ||\n !ch) {\n return false;\n }\n else if (ch === CHAR_LF) {\n scnr.peek();\n return fn();\n }\n else {\n // other characters\n return isTextStart(scnr, false);\n }\n };\n const ret = fn();\n scnr.resetPeek();\n return ret;\n }\n function isPluralStart(scnr) {\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \"|\" /* TokenChars.Pipe */;\n scnr.resetPeek();\n return ret;\n }\n function isTextStart(scnr, reset = true) {\n const fn = (hasSpace = false, prev = '') => {\n const ch = scnr.currentPeek();\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n return hasSpace;\n }\n else if (ch === \"@\" /* TokenChars.LinkedAlias */ || !ch) {\n return hasSpace;\n }\n else if (ch === \"|\" /* TokenChars.Pipe */) {\n return !(prev === CHAR_SP || prev === CHAR_LF);\n }\n else if (ch === CHAR_SP) {\n scnr.peek();\n return fn(true, CHAR_SP);\n }\n else if (ch === CHAR_LF) {\n scnr.peek();\n return fn(true, CHAR_LF);\n }\n else {\n return true;\n }\n };\n const ret = fn();\n reset && scnr.resetPeek();\n return ret;\n }\n function takeChar(scnr, fn) {\n const ch = scnr.currentChar();\n if (ch === EOF) {\n return EOF;\n }\n if (fn(ch)) {\n scnr.next();\n return ch;\n }\n return null;\n }\n function isIdentifier(ch) {\n const cc = ch.charCodeAt(0);\n return ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n (cc >= 48 && cc <= 57) || // 0-9\n cc === 95 || // _\n cc === 36 // $\n );\n }\n function takeIdentifierChar(scnr) {\n return takeChar(scnr, isIdentifier);\n }\n function isNamedIdentifier(ch) {\n const cc = ch.charCodeAt(0);\n return ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n (cc >= 48 && cc <= 57) || // 0-9\n cc === 95 || // _\n cc === 36 || // $\n cc === 45 // -\n );\n }\n function takeNamedIdentifierChar(scnr) {\n return takeChar(scnr, isNamedIdentifier);\n }\n function isDigit(ch) {\n const cc = ch.charCodeAt(0);\n return cc >= 48 && cc <= 57; // 0-9\n }\n function takeDigit(scnr) {\n return takeChar(scnr, isDigit);\n }\n function isHexDigit(ch) {\n const cc = ch.charCodeAt(0);\n return ((cc >= 48 && cc <= 57) || // 0-9\n (cc >= 65 && cc <= 70) || // A-F\n (cc >= 97 && cc <= 102)); // a-f\n }\n function takeHexDigit(scnr) {\n return takeChar(scnr, isHexDigit);\n }\n function getDigits(scnr) {\n let ch = '';\n let num = '';\n while ((ch = takeDigit(scnr))) {\n num += ch;\n }\n return num;\n }\n function readText(scnr) {\n let buf = '';\n while (true) {\n const ch = scnr.currentChar();\n if (ch === \"{\" /* TokenChars.BraceLeft */ ||\n ch === \"}\" /* TokenChars.BraceRight */ ||\n ch === \"@\" /* TokenChars.LinkedAlias */ ||\n ch === \"|\" /* TokenChars.Pipe */ ||\n !ch) {\n break;\n }\n else if (ch === CHAR_SP || ch === CHAR_LF) {\n if (isTextStart(scnr)) {\n buf += ch;\n scnr.next();\n }\n else if (isPluralStart(scnr)) {\n break;\n }\n else {\n buf += ch;\n scnr.next();\n }\n }\n else {\n buf += ch;\n scnr.next();\n }\n }\n return buf;\n }\n function readNamedIdentifier(scnr) {\n skipSpaces(scnr);\n let ch = '';\n let name = '';\n while ((ch = takeNamedIdentifierChar(scnr))) {\n name += ch;\n }\n if (scnr.currentChar() === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n return name;\n }\n function readListIdentifier(scnr) {\n skipSpaces(scnr);\n let value = '';\n if (scnr.currentChar() === '-') {\n scnr.next();\n value += `-${getDigits(scnr)}`;\n }\n else {\n value += getDigits(scnr);\n }\n if (scnr.currentChar() === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n return value;\n }\n function isLiteral(ch) {\n return ch !== LITERAL_DELIMITER && ch !== CHAR_LF;\n }\n function readLiteral(scnr) {\n skipSpaces(scnr);\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n let ch = '';\n let literal = '';\n while ((ch = takeChar(scnr, isLiteral))) {\n if (ch === '\\\\') {\n literal += readEscapeSequence(scnr);\n }\n else {\n literal += ch;\n }\n }\n const current = scnr.currentChar();\n if (current === CHAR_LF || current === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0);\n // TODO: Is it correct really?\n if (current === CHAR_LF) {\n scnr.next();\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n }\n return literal;\n }\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n return literal;\n }\n function readEscapeSequence(scnr) {\n const ch = scnr.currentChar();\n switch (ch) {\n case '\\\\':\n case `\\'`: // eslint-disable-line no-useless-escape\n scnr.next();\n return `\\\\${ch}`;\n case 'u':\n return readUnicodeEscapeSequence(scnr, ch, 4);\n case 'U':\n return readUnicodeEscapeSequence(scnr, ch, 6);\n default:\n emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch);\n return '';\n }\n }\n function readUnicodeEscapeSequence(scnr, unicode, digits) {\n eat(scnr, unicode);\n let sequence = '';\n for (let i = 0; i < digits; i++) {\n const ch = takeHexDigit(scnr);\n if (!ch) {\n emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\\\${unicode}${sequence}${scnr.currentChar()}`);\n break;\n }\n sequence += ch;\n }\n return `\\\\${unicode}${sequence}`;\n }\n function isInvalidIdentifier(ch) {\n return (ch !== \"{\" /* TokenChars.BraceLeft */ &&\n ch !== \"}\" /* TokenChars.BraceRight */ &&\n ch !== CHAR_SP &&\n ch !== CHAR_LF);\n }\n function readInvalidIdentifier(scnr) {\n skipSpaces(scnr);\n let ch = '';\n let identifiers = '';\n while ((ch = takeChar(scnr, isInvalidIdentifier))) {\n identifiers += ch;\n }\n return identifiers;\n }\n function readLinkedModifier(scnr) {\n let ch = '';\n let name = '';\n while ((ch = takeIdentifierChar(scnr))) {\n name += ch;\n }\n return name;\n }\n function readLinkedRefer(scnr) {\n const fn = (buf) => {\n const ch = scnr.currentChar();\n if (ch === \"{\" /* TokenChars.BraceLeft */ ||\n ch === \"@\" /* TokenChars.LinkedAlias */ ||\n ch === \"|\" /* TokenChars.Pipe */ ||\n ch === \"(\" /* TokenChars.ParenLeft */ ||\n ch === \")\" /* TokenChars.ParenRight */ ||\n !ch) {\n return buf;\n }\n else if (ch === CHAR_SP) {\n return buf;\n }\n else if (ch === CHAR_LF || ch === DOT) {\n buf += ch;\n scnr.next();\n return fn(buf);\n }\n else {\n buf += ch;\n scnr.next();\n return fn(buf);\n }\n };\n return fn('');\n }\n function readPlural(scnr) {\n skipSpaces(scnr);\n const plural = eat(scnr, \"|\" /* TokenChars.Pipe */);\n skipSpaces(scnr);\n return plural;\n }\n // TODO: We need refactoring of token parsing ...\n function readTokenInPlaceholder(scnr, context) {\n let token = null;\n const ch = scnr.currentChar();\n switch (ch) {\n case \"{\" /* TokenChars.BraceLeft */:\n if (context.braceNest >= 1) {\n emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);\n }\n scnr.next();\n token = getToken(context, 2 /* TokenTypes.BraceLeft */, \"{\" /* TokenChars.BraceLeft */);\n skipSpaces(scnr);\n context.braceNest++;\n return token;\n case \"}\" /* TokenChars.BraceRight */:\n if (context.braceNest > 0 &&\n context.currentType === 2 /* TokenTypes.BraceLeft */) {\n emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);\n }\n scnr.next();\n token = getToken(context, 3 /* TokenTypes.BraceRight */, \"}\" /* TokenChars.BraceRight */);\n context.braceNest--;\n context.braceNest > 0 && skipSpaces(scnr);\n if (context.inLinked && context.braceNest === 0) {\n context.inLinked = false;\n }\n return token;\n case \"@\" /* TokenChars.LinkedAlias */:\n if (context.braceNest > 0) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n token = readTokenInLinked(scnr, context) || getEndToken(context);\n context.braceNest = 0;\n return token;\n default: {\n let validNamedIdentifier = true;\n let validListIdentifier = true;\n let validLiteral = true;\n if (isPluralStart(scnr)) {\n if (context.braceNest > 0) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n if (context.braceNest > 0 &&\n (context.currentType === 4 /* TokenTypes.Named */ ||\n context.currentType === 5 /* TokenTypes.List */ ||\n context.currentType === 6 /* TokenTypes.Literal */)) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n context.braceNest = 0;\n return readToken(scnr, context);\n }\n if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {\n token = getToken(context, 4 /* TokenTypes.Named */, readNamedIdentifier(scnr));\n skipSpaces(scnr);\n return token;\n }\n if ((validListIdentifier = isListIdentifierStart(scnr, context))) {\n token = getToken(context, 5 /* TokenTypes.List */, readListIdentifier(scnr));\n skipSpaces(scnr);\n return token;\n }\n if ((validLiteral = isLiteralStart(scnr, context))) {\n token = getToken(context, 6 /* TokenTypes.Literal */, readLiteral(scnr));\n skipSpaces(scnr);\n return token;\n }\n if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {\n // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...\n token = getToken(context, 12 /* TokenTypes.InvalidPlace */, readInvalidIdentifier(scnr));\n emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value);\n skipSpaces(scnr);\n return token;\n }\n break;\n }\n }\n return token;\n }\n // TODO: We need refactoring of token parsing ...\n function readTokenInLinked(scnr, context) {\n const { currentType } = context;\n let token = null;\n const ch = scnr.currentChar();\n if ((currentType === 7 /* TokenTypes.LinkedAlias */ ||\n currentType === 8 /* TokenTypes.LinkedDot */ ||\n currentType === 11 /* TokenTypes.LinkedModifier */ ||\n currentType === 9 /* TokenTypes.LinkedDelimiter */) &&\n (ch === CHAR_LF || ch === CHAR_SP)) {\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\n }\n switch (ch) {\n case \"@\" /* TokenChars.LinkedAlias */:\n scnr.next();\n token = getToken(context, 7 /* TokenTypes.LinkedAlias */, \"@\" /* TokenChars.LinkedAlias */);\n context.inLinked = true;\n return token;\n case \".\" /* TokenChars.LinkedDot */:\n skipSpaces(scnr);\n scnr.next();\n return getToken(context, 8 /* TokenTypes.LinkedDot */, \".\" /* TokenChars.LinkedDot */);\n case \":\" /* TokenChars.LinkedDelimiter */:\n skipSpaces(scnr);\n scnr.next();\n return getToken(context, 9 /* TokenTypes.LinkedDelimiter */, \":\" /* TokenChars.LinkedDelimiter */);\n default:\n if (isPluralStart(scnr)) {\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n if (isLinkedDotStart(scnr, context) ||\n isLinkedDelimiterStart(scnr, context)) {\n skipSpaces(scnr);\n return readTokenInLinked(scnr, context);\n }\n if (isLinkedModifierStart(scnr, context)) {\n skipSpaces(scnr);\n return getToken(context, 11 /* TokenTypes.LinkedModifier */, readLinkedModifier(scnr));\n }\n if (isLinkedReferStart(scnr, context)) {\n skipSpaces(scnr);\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n // scan the placeholder\n return readTokenInPlaceholder(scnr, context) || token;\n }\n else {\n return getToken(context, 10 /* TokenTypes.LinkedKey */, readLinkedRefer(scnr));\n }\n }\n if (currentType === 7 /* TokenTypes.LinkedAlias */) {\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\n }\n context.braceNest = 0;\n context.inLinked = false;\n return readToken(scnr, context);\n }\n }\n // TODO: We need refactoring of token parsing ...\n function readToken(scnr, context) {\n let token = { type: 13 /* TokenTypes.EOF */ };\n if (context.braceNest > 0) {\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\n }\n if (context.inLinked) {\n return readTokenInLinked(scnr, context) || getEndToken(context);\n }\n const ch = scnr.currentChar();\n switch (ch) {\n case \"{\" /* TokenChars.BraceLeft */:\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\n case \"}\" /* TokenChars.BraceRight */:\n emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);\n scnr.next();\n return getToken(context, 3 /* TokenTypes.BraceRight */, \"}\" /* TokenChars.BraceRight */);\n case \"@\" /* TokenChars.LinkedAlias */:\n return readTokenInLinked(scnr, context) || getEndToken(context);\n default: {\n if (isPluralStart(scnr)) {\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n if (isTextStart(scnr)) {\n return getToken(context, 0 /* TokenTypes.Text */, readText(scnr));\n }\n break;\n }\n }\n return token;\n }\n function nextToken() {\n const { currentType, offset, startLoc, endLoc } = _context;\n _context.lastType = currentType;\n _context.lastOffset = offset;\n _context.lastStartLoc = startLoc;\n _context.lastEndLoc = endLoc;\n _context.offset = currentOffset();\n _context.startLoc = currentPosition();\n if (_scnr.currentChar() === EOF) {\n return getToken(_context, 13 /* TokenTypes.EOF */);\n }\n return readToken(_scnr, _context);\n }\n return {\n nextToken,\n currentOffset,\n currentPosition,\n context\n };\n}\n\nconst ERROR_DOMAIN$2 = 'parser';\n// Backslash backslash, backslash quote, uHHHH, UHHHHHH.\nconst KNOWN_ESCAPES = /(?:\\\\\\\\|\\\\'|\\\\u([0-9a-fA-F]{4})|\\\\U([0-9a-fA-F]{6}))/g;\nfunction fromEscapeSequence(match, codePoint4, codePoint6) {\n switch (match) {\n case `\\\\\\\\`:\n return `\\\\`;\n // eslint-disable-next-line no-useless-escape\n case `\\\\\\'`:\n // eslint-disable-next-line no-useless-escape\n return `\\'`;\n default: {\n const codePoint = parseInt(codePoint4 || codePoint6, 16);\n if (codePoint <= 0xd7ff || codePoint >= 0xe000) {\n return String.fromCodePoint(codePoint);\n }\n // invalid ...\n // Replace them with U+FFFD REPLACEMENT CHARACTER.\n return '�';\n }\n }\n}\nfunction createParser(options = {}) {\n const location = options.location !== false;\n const { onError } = options;\n function emitError(tokenzer, code, start, offset, ...args) {\n const end = tokenzer.currentPosition();\n end.offset += offset;\n end.column += offset;\n if (onError) {\n const loc = location ? createLocation(start, end) : null;\n const err = createCompileError(code, loc, {\n domain: ERROR_DOMAIN$2,\n args\n });\n onError(err);\n }\n }\n function startNode(type, offset, loc) {\n const node = { type };\n if (location) {\n node.start = offset;\n node.end = offset;\n node.loc = { start: loc, end: loc };\n }\n return node;\n }\n function endNode(node, offset, pos, type) {\n if (location) {\n node.end = offset;\n if (node.loc) {\n node.loc.end = pos;\n }\n }\n }\n function parseText(tokenizer, value) {\n const context = tokenizer.context();\n const node = startNode(3 /* NodeTypes.Text */, context.offset, context.startLoc);\n node.value = value;\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseList(tokenizer, index) {\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n const node = startNode(5 /* NodeTypes.List */, offset, loc);\n node.index = parseInt(index, 10);\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseNamed(tokenizer, key) {\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n const node = startNode(4 /* NodeTypes.Named */, offset, loc);\n node.key = key;\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLiteral(tokenizer, value) {\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n const node = startNode(9 /* NodeTypes.Literal */, offset, loc);\n node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLinkedModifier(tokenizer) {\n const token = tokenizer.nextToken();\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc\n const node = startNode(8 /* NodeTypes.LinkedModifier */, offset, loc);\n if (token.type !== 11 /* TokenTypes.LinkedModifier */) {\n // empty modifier\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0);\n node.value = '';\n endNode(node, offset, loc);\n return {\n nextConsumeToken: token,\n node\n };\n }\n // check token\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.value = token.value || '';\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return {\n node\n };\n }\n function parseLinkedKey(tokenizer, value) {\n const context = tokenizer.context();\n const node = startNode(7 /* NodeTypes.LinkedKey */, context.offset, context.startLoc);\n node.value = value;\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLinked(tokenizer) {\n const context = tokenizer.context();\n const linkedNode = startNode(6 /* NodeTypes.Linked */, context.offset, context.startLoc);\n let token = tokenizer.nextToken();\n if (token.type === 8 /* TokenTypes.LinkedDot */) {\n const parsed = parseLinkedModifier(tokenizer);\n linkedNode.modifier = parsed.node;\n token = parsed.nextConsumeToken || tokenizer.nextToken();\n }\n // asset check token\n if (token.type !== 9 /* TokenTypes.LinkedDelimiter */) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n token = tokenizer.nextToken();\n // skip brace left\n if (token.type === 2 /* TokenTypes.BraceLeft */) {\n token = tokenizer.nextToken();\n }\n switch (token.type) {\n case 10 /* TokenTypes.LinkedKey */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseLinkedKey(tokenizer, token.value || '');\n break;\n case 4 /* TokenTypes.Named */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseNamed(tokenizer, token.value || '');\n break;\n case 5 /* TokenTypes.List */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseList(tokenizer, token.value || '');\n break;\n case 6 /* TokenTypes.Literal */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseLiteral(tokenizer, token.value || '');\n break;\n default: {\n // empty key\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);\n const nextContext = tokenizer.context();\n const emptyLinkedKeyNode = startNode(7 /* NodeTypes.LinkedKey */, nextContext.offset, nextContext.startLoc);\n emptyLinkedKeyNode.value = '';\n endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);\n linkedNode.key = emptyLinkedKeyNode;\n endNode(linkedNode, nextContext.offset, nextContext.startLoc);\n return {\n nextConsumeToken: token,\n node: linkedNode\n };\n }\n }\n endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition());\n return {\n node: linkedNode\n };\n }\n function parseMessage(tokenizer) {\n const context = tokenizer.context();\n const startOffset = context.currentType === 1 /* TokenTypes.Pipe */\n ? tokenizer.currentOffset()\n : context.offset;\n const startLoc = context.currentType === 1 /* TokenTypes.Pipe */\n ? context.endLoc\n : context.startLoc;\n const node = startNode(2 /* NodeTypes.Message */, startOffset, startLoc);\n node.items = [];\n let nextToken = null;\n do {\n const token = nextToken || tokenizer.nextToken();\n nextToken = null;\n switch (token.type) {\n case 0 /* TokenTypes.Text */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseText(tokenizer, token.value || ''));\n break;\n case 5 /* TokenTypes.List */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseList(tokenizer, token.value || ''));\n break;\n case 4 /* TokenTypes.Named */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseNamed(tokenizer, token.value || ''));\n break;\n case 6 /* TokenTypes.Literal */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseLiteral(tokenizer, token.value || ''));\n break;\n case 7 /* TokenTypes.LinkedAlias */: {\n const parsed = parseLinked(tokenizer);\n node.items.push(parsed.node);\n nextToken = parsed.nextConsumeToken || null;\n break;\n }\n }\n } while (context.currentType !== 13 /* TokenTypes.EOF */ &&\n context.currentType !== 1 /* TokenTypes.Pipe */);\n // adjust message node loc\n const endOffset = context.currentType === 1 /* TokenTypes.Pipe */\n ? context.lastOffset\n : tokenizer.currentOffset();\n const endLoc = context.currentType === 1 /* TokenTypes.Pipe */\n ? context.lastEndLoc\n : tokenizer.currentPosition();\n endNode(node, endOffset, endLoc);\n return node;\n }\n function parsePlural(tokenizer, offset, loc, msgNode) {\n const context = tokenizer.context();\n let hasEmptyMessage = msgNode.items.length === 0;\n const node = startNode(1 /* NodeTypes.Plural */, offset, loc);\n node.cases = [];\n node.cases.push(msgNode);\n do {\n const msg = parseMessage(tokenizer);\n if (!hasEmptyMessage) {\n hasEmptyMessage = msg.items.length === 0;\n }\n node.cases.push(msg);\n } while (context.currentType !== 13 /* TokenTypes.EOF */);\n if (hasEmptyMessage) {\n emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0);\n }\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseResource(tokenizer) {\n const context = tokenizer.context();\n const { offset, startLoc } = context;\n const msgNode = parseMessage(tokenizer);\n if (context.currentType === 13 /* TokenTypes.EOF */) {\n return msgNode;\n }\n else {\n return parsePlural(tokenizer, offset, startLoc, msgNode);\n }\n }\n function parse(source) {\n const tokenizer = createTokenizer(source, assign({}, options));\n const context = tokenizer.context();\n const node = startNode(0 /* NodeTypes.Resource */, context.offset, context.startLoc);\n if (location && node.loc) {\n node.loc.source = source;\n }\n node.body = parseResource(tokenizer);\n if (options.onCacheKey) {\n node.cacheKey = options.onCacheKey(source);\n }\n // assert whether achieved to EOF\n if (context.currentType !== 13 /* TokenTypes.EOF */) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || '');\n }\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n return { parse };\n}\nfunction getTokenCaption(token) {\n if (token.type === 13 /* TokenTypes.EOF */) {\n return 'EOF';\n }\n const name = (token.value || '').replace(/\\r?\\n/gu, '\\\\n');\n return name.length > 10 ? name.slice(0, 9) + '…' : name;\n}\n\nfunction createTransformer(ast, options = {} // eslint-disable-line\n) {\n const _context = {\n ast,\n helpers: new Set()\n };\n const context = () => _context;\n const helper = (name) => {\n _context.helpers.add(name);\n return name;\n };\n return { context, helper };\n}\nfunction traverseNodes(nodes, transformer) {\n for (let i = 0; i < nodes.length; i++) {\n traverseNode(nodes[i], transformer);\n }\n}\nfunction traverseNode(node, transformer) {\n // TODO: if we need pre-hook of transform, should be implemented to here\n switch (node.type) {\n case 1 /* NodeTypes.Plural */:\n traverseNodes(node.cases, transformer);\n transformer.helper(\"plural\" /* HelperNameMap.PLURAL */);\n break;\n case 2 /* NodeTypes.Message */:\n traverseNodes(node.items, transformer);\n break;\n case 6 /* NodeTypes.Linked */: {\n const linked = node;\n traverseNode(linked.key, transformer);\n transformer.helper(\"linked\" /* HelperNameMap.LINKED */);\n transformer.helper(\"type\" /* HelperNameMap.TYPE */);\n break;\n }\n case 5 /* NodeTypes.List */:\n transformer.helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */);\n transformer.helper(\"list\" /* HelperNameMap.LIST */);\n break;\n case 4 /* NodeTypes.Named */:\n transformer.helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */);\n transformer.helper(\"named\" /* HelperNameMap.NAMED */);\n break;\n }\n // TODO: if we need post-hook of transform, should be implemented to here\n}\n// transform AST\nfunction transform(ast, options = {} // eslint-disable-line\n) {\n const transformer = createTransformer(ast);\n transformer.helper(\"normalize\" /* HelperNameMap.NORMALIZE */);\n // traverse\n ast.body && traverseNode(ast.body, transformer);\n // set meta information\n const context = transformer.context();\n ast.helpers = Array.from(context.helpers);\n}\n\nfunction optimize(ast) {\n const body = ast.body;\n if (body.type === 2 /* NodeTypes.Message */) {\n optimizeMessageNode(body);\n }\n else {\n body.cases.forEach(c => optimizeMessageNode(c));\n }\n return ast;\n}\nfunction optimizeMessageNode(message) {\n if (message.items.length === 1) {\n const item = message.items[0];\n if (item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */) {\n message.static = item.value;\n delete item.value; // optimization for size\n }\n }\n else {\n const values = [];\n for (let i = 0; i < message.items.length; i++) {\n const item = message.items[i];\n if (!(item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */)) {\n break;\n }\n if (item.value == null) {\n break;\n }\n values.push(item.value);\n }\n if (values.length === message.items.length) {\n message.static = join(values);\n for (let i = 0; i < message.items.length; i++) {\n const item = message.items[i];\n if (item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */) {\n delete item.value; // optimization for size\n }\n }\n }\n }\n}\n\nconst ERROR_DOMAIN$1 = 'minifier';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nfunction minify(node) {\n node.t = node.type;\n switch (node.type) {\n case 0 /* NodeTypes.Resource */: {\n const resource = node;\n minify(resource.body);\n resource.b = resource.body;\n delete resource.body;\n break;\n }\n case 1 /* NodeTypes.Plural */: {\n const plural = node;\n const cases = plural.cases;\n for (let i = 0; i < cases.length; i++) {\n minify(cases[i]);\n }\n plural.c = cases;\n delete plural.cases;\n break;\n }\n case 2 /* NodeTypes.Message */: {\n const message = node;\n const items = message.items;\n for (let i = 0; i < items.length; i++) {\n minify(items[i]);\n }\n message.i = items;\n delete message.items;\n if (message.static) {\n message.s = message.static;\n delete message.static;\n }\n break;\n }\n case 3 /* NodeTypes.Text */:\n case 9 /* NodeTypes.Literal */:\n case 8 /* NodeTypes.LinkedModifier */:\n case 7 /* NodeTypes.LinkedKey */: {\n const valueNode = node;\n if (valueNode.value) {\n valueNode.v = valueNode.value;\n delete valueNode.value;\n }\n break;\n }\n case 6 /* NodeTypes.Linked */: {\n const linked = node;\n minify(linked.key);\n linked.k = linked.key;\n delete linked.key;\n if (linked.modifier) {\n minify(linked.modifier);\n linked.m = linked.modifier;\n delete linked.modifier;\n }\n break;\n }\n case 5 /* NodeTypes.List */: {\n const list = node;\n list.i = list.index;\n delete list.index;\n break;\n }\n case 4 /* NodeTypes.Named */: {\n const named = node;\n named.k = named.key;\n delete named.key;\n break;\n }\n default:\n {\n throw createCompileError(CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE, null, {\n domain: ERROR_DOMAIN$1,\n args: [node.type]\n });\n }\n }\n delete node.type;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nconst ERROR_DOMAIN = 'parser';\nfunction createCodeGenerator(ast, options) {\n const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options;\n const location = options.location !== false;\n const _context = {\n filename,\n code: '',\n column: 1,\n line: 1,\n offset: 0,\n map: undefined,\n breakLineCode,\n needIndent: _needIndent,\n indentLevel: 0\n };\n if (location && ast.loc) {\n _context.source = ast.loc.source;\n }\n const context = () => _context;\n function push(code, node) {\n _context.code += code;\n }\n function _newline(n, withBreakLine = true) {\n const _breakLineCode = withBreakLine ? breakLineCode : '';\n push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode);\n }\n function indent(withNewLine = true) {\n const level = ++_context.indentLevel;\n withNewLine && _newline(level);\n }\n function deindent(withNewLine = true) {\n const level = --_context.indentLevel;\n withNewLine && _newline(level);\n }\n function newline() {\n _newline(_context.indentLevel);\n }\n const helper = (key) => `_${key}`;\n const needIndent = () => _context.needIndent;\n return {\n context,\n push,\n indent,\n deindent,\n newline,\n helper,\n needIndent\n };\n}\nfunction generateLinkedNode(generator, node) {\n const { helper } = generator;\n generator.push(`${helper(\"linked\" /* HelperNameMap.LINKED */)}(`);\n generateNode(generator, node.key);\n if (node.modifier) {\n generator.push(`, `);\n generateNode(generator, node.modifier);\n generator.push(`, _type`);\n }\n else {\n generator.push(`, undefined, _type`);\n }\n generator.push(`)`);\n}\nfunction generateMessageNode(generator, node) {\n const { helper, needIndent } = generator;\n generator.push(`${helper(\"normalize\" /* HelperNameMap.NORMALIZE */)}([`);\n generator.indent(needIndent());\n const length = node.items.length;\n for (let i = 0; i < length; i++) {\n generateNode(generator, node.items[i]);\n if (i === length - 1) {\n break;\n }\n generator.push(', ');\n }\n generator.deindent(needIndent());\n generator.push('])');\n}\nfunction generatePluralNode(generator, node) {\n const { helper, needIndent } = generator;\n if (node.cases.length > 1) {\n generator.push(`${helper(\"plural\" /* HelperNameMap.PLURAL */)}([`);\n generator.indent(needIndent());\n const length = node.cases.length;\n for (let i = 0; i < length; i++) {\n generateNode(generator, node.cases[i]);\n if (i === length - 1) {\n break;\n }\n generator.push(', ');\n }\n generator.deindent(needIndent());\n generator.push(`])`);\n }\n}\nfunction generateResource(generator, node) {\n if (node.body) {\n generateNode(generator, node.body);\n }\n else {\n generator.push('null');\n }\n}\nfunction generateNode(generator, node) {\n const { helper } = generator;\n switch (node.type) {\n case 0 /* NodeTypes.Resource */:\n generateResource(generator, node);\n break;\n case 1 /* NodeTypes.Plural */:\n generatePluralNode(generator, node);\n break;\n case 2 /* NodeTypes.Message */:\n generateMessageNode(generator, node);\n break;\n case 6 /* NodeTypes.Linked */:\n generateLinkedNode(generator, node);\n break;\n case 8 /* NodeTypes.LinkedModifier */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 7 /* NodeTypes.LinkedKey */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 5 /* NodeTypes.List */:\n generator.push(`${helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */)}(${helper(\"list\" /* HelperNameMap.LIST */)}(${node.index}))`, node);\n break;\n case 4 /* NodeTypes.Named */:\n generator.push(`${helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */)}(${helper(\"named\" /* HelperNameMap.NAMED */)}(${JSON.stringify(node.key)}))`, node);\n break;\n case 9 /* NodeTypes.Literal */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 3 /* NodeTypes.Text */:\n generator.push(JSON.stringify(node.value), node);\n break;\n default:\n {\n throw createCompileError(CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE, null, {\n domain: ERROR_DOMAIN,\n args: [node.type]\n });\n }\n }\n}\n// generate code from AST\nconst generate = (ast, options = {}) => {\n const mode = isString(options.mode) ? options.mode : 'normal';\n const filename = isString(options.filename)\n ? options.filename\n : 'message.intl';\n const sourceMap = !!options.sourceMap;\n // prettier-ignore\n const breakLineCode = options.breakLineCode != null\n ? options.breakLineCode\n : mode === 'arrow'\n ? ';'\n : '\\n';\n const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow';\n const helpers = ast.helpers || [];\n const generator = createCodeGenerator(ast, {\n mode,\n filename,\n sourceMap,\n breakLineCode,\n needIndent\n });\n generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`);\n generator.indent(needIndent);\n if (helpers.length > 0) {\n generator.push(`const { ${join(helpers.map(s => `${s}: _${s}`), ', ')} } = ctx`);\n generator.newline();\n }\n generator.push(`return `);\n generateNode(generator, ast);\n generator.deindent(needIndent);\n generator.push(`}`);\n delete ast.helpers;\n const { code, map } = generator.context();\n return {\n ast,\n code,\n map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any\n };\n};\n\nfunction baseCompile$1(source, options = {}) {\n const assignedOptions = assign({}, options);\n const jit = !!assignedOptions.jit;\n const enalbeMinify = !!assignedOptions.minify;\n const enambeOptimize = assignedOptions.optimize == null ? true : assignedOptions.optimize;\n // parse source codes\n const parser = createParser(assignedOptions);\n const ast = parser.parse(source);\n if (!jit) {\n // transform ASTs\n transform(ast, assignedOptions);\n // generate javascript codes\n return generate(ast, assignedOptions);\n }\n else {\n // optimize ASTs\n enambeOptimize && optimize(ast);\n // minimize ASTs\n enalbeMinify && minify(ast);\n // In JIT mode, no ast transform, no code generation.\n return { ast, code: '' };\n }\n}\n\nfunction format(ast) {\n const msg = (ctx) => formatParts(ctx, ast);\n return msg;\n}\nfunction formatParts(ctx, ast) {\n const body = ast.b || ast.body;\n if ((body.t || body.type) === 1 /* NodeTypes.Plural */) {\n const plural = body;\n const cases = plural.c || plural.cases;\n return ctx.plural(cases.reduce((messages, c) => [\n ...messages,\n formatMessageParts(ctx, c)\n ], []));\n }\n else {\n return formatMessageParts(ctx, body);\n }\n}\nfunction formatMessageParts(ctx, node) {\n const _static = node.s || node.static;\n if (_static) {\n return ctx.type === 'text'\n ? _static\n : ctx.normalize([_static]);\n }\n else {\n const messages = (node.i || node.items).reduce((acm, c) => [...acm, formatMessagePart(ctx, c)], []);\n return ctx.normalize(messages);\n }\n}\nfunction formatMessagePart(ctx, node) {\n const type = node.t || node.type;\n switch (type) {\n case 3 /* NodeTypes.Text */: {\n const text = node;\n return (text.v || text.value);\n }\n case 9 /* NodeTypes.Literal */: {\n const literal = node;\n return (literal.v || literal.value);\n }\n case 4 /* NodeTypes.Named */: {\n const named = node;\n return ctx.interpolate(ctx.named(named.k || named.key));\n }\n case 5 /* NodeTypes.List */: {\n const list = node;\n return ctx.interpolate(ctx.list(list.i != null ? list.i : list.index));\n }\n case 6 /* NodeTypes.Linked */: {\n const linked = node;\n const modifier = linked.m || linked.modifier;\n return ctx.linked(formatMessagePart(ctx, linked.k || linked.key), modifier ? formatMessagePart(ctx, modifier) : undefined, ctx.type);\n }\n case 7 /* NodeTypes.LinkedKey */: {\n const linkedKey = node;\n return (linkedKey.v || linkedKey.value);\n }\n case 8 /* NodeTypes.LinkedModifier */: {\n const linkedModifier = node;\n return (linkedModifier.v || linkedModifier.value);\n }\n default:\n throw new Error(`unhandled node type on format message part: ${type}`);\n }\n}\n\nconst WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;\nfunction checkHtmlMessage(source, warnHtmlMessage) {\n if (warnHtmlMessage && detectHtmlTag(source)) {\n warn(format$1(WARN_MESSAGE, { source }));\n }\n}\nconst defaultOnCacheKey = (message) => message;\nlet compileCache = Object.create(null);\nfunction clearCompileCache() {\n compileCache = Object.create(null);\n}\nconst isMessageAST = (val) => isObject(val) &&\n (val.t === 0 || val.type === 0) &&\n ('b' in val || 'body' in val);\nfunction baseCompile(message, options = {}) {\n // error detecting on compile\n let detectError = false;\n const onError = options.onError || defaultOnError;\n options.onError = (err) => {\n detectError = true;\n onError(err);\n };\n // compile with mesasge-compiler\n return { ...baseCompile$1(message, options), detectError };\n}\n/* #__NO_SIDE_EFFECTS__ */\nfunction compile(message, context) {\n if (isString(message)) {\n // check HTML message\n const warnHtmlMessage = isBoolean(context.warnHtmlMessage)\n ? context.warnHtmlMessage\n : true;\n checkHtmlMessage(message, warnHtmlMessage);\n // check caches\n const onCacheKey = context.onCacheKey || defaultOnCacheKey;\n const cacheKey = onCacheKey(message);\n const cached = compileCache[cacheKey];\n if (cached) {\n return cached;\n }\n // compile with JIT mode\n const { ast, detectError } = baseCompile(message, {\n ...context,\n location: true,\n jit: true\n });\n // compose message function from AST\n const msg = format(ast);\n // if occurred compile error, don't cache\n return !detectError\n ? (compileCache[cacheKey] = msg)\n : msg;\n }\n else {\n if (!isMessageAST(message)) {\n warn(`the message that is resolve with key '${context.key}' is not supported for jit compilation`);\n return (() => message);\n }\n // AST case (passed from bundler)\n const cacheKey = message.cacheKey;\n if (cacheKey) {\n const cached = compileCache[cacheKey];\n if (cached) {\n return cached;\n }\n // compose message function from message (AST)\n return (compileCache[cacheKey] =\n format(message));\n }\n else {\n return format(message);\n }\n }\n}\n\nlet devtools = null;\nfunction setDevToolsHook(hook) {\n devtools = hook;\n}\nfunction getDevToolsHook() {\n return devtools;\n}\nfunction initI18nDevTools(i18n, version, meta) {\n // TODO: queue if devtools is undefined\n devtools &&\n devtools.emit('i18n:init', {\n timestamp: Date.now(),\n i18n,\n version,\n meta\n });\n}\nconst translateDevTools = \n/* #__PURE__*/ createDevToolsHook('function:translate');\nfunction createDevToolsHook(hook) {\n return (payloads) => devtools && devtools.emit(hook, payloads);\n}\n\nconst CoreErrorCodes = {\n INVALID_ARGUMENT: COMPILE_ERROR_CODES_EXTEND_POINT, // 17\n INVALID_DATE_ARGUMENT: 18,\n INVALID_ISO_DATE_ARGUMENT: 19,\n NOT_SUPPORT_NON_STRING_MESSAGE: 20,\n NOT_SUPPORT_LOCALE_PROMISE_VALUE: 21,\n NOT_SUPPORT_LOCALE_ASYNC_FUNCTION: 22,\n NOT_SUPPORT_LOCALE_TYPE: 23\n};\nconst CORE_ERROR_CODES_EXTEND_POINT = 24;\nfunction createCoreError(code) {\n return createCompileError(code, null, { messages: errorMessages } );\n}\n/** @internal */\nconst errorMessages = {\n [CoreErrorCodes.INVALID_ARGUMENT]: 'Invalid arguments',\n [CoreErrorCodes.INVALID_DATE_ARGUMENT]: 'The date provided is an invalid Date object.' +\n 'Make sure your Date represents a valid date.',\n [CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT]: 'The argument provided is not a valid ISO date string',\n [CoreErrorCodes.NOT_SUPPORT_NON_STRING_MESSAGE]: 'Not support non-string message',\n [CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE]: 'cannot support promise value',\n [CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION]: 'cannot support async function',\n [CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE]: 'cannot support locale type'\n};\n\n/** @internal */\nfunction getLocale(context, options) {\n return options.locale != null\n ? resolveLocale(options.locale)\n : resolveLocale(context.locale);\n}\nlet _resolveLocale;\n/** @internal */\nfunction resolveLocale(locale) {\n if (isString(locale)) {\n return locale;\n }\n else {\n if (isFunction(locale)) {\n if (locale.resolvedOnce && _resolveLocale != null) {\n return _resolveLocale;\n }\n else if (locale.constructor.name === 'Function') {\n const resolve = locale();\n if (isPromise(resolve)) {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE);\n }\n return (_resolveLocale = resolve);\n }\n else {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION);\n }\n }\n else {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE);\n }\n }\n}\n/**\n * Fallback with simple implemenation\n *\n * @remarks\n * A fallback locale function implemented with a simple fallback algorithm.\n *\n * Basically, it returns the value as specified in the `fallbackLocale` props, and is processed with the fallback inside intlify.\n *\n * @param ctx - A {@link CoreContext | context}\n * @param fallback - A {@link FallbackLocale | fallback locale}\n * @param start - A starting {@link Locale | locale}\n *\n * @returns Fallback locales\n *\n * @VueI18nGeneral\n */\nfunction fallbackWithSimple(ctx, fallback, start) {\n // prettier-ignore\n return [...new Set([\n start,\n ...(isArray(fallback)\n ? fallback\n : isObject(fallback)\n ? Object.keys(fallback)\n : isString(fallback)\n ? [fallback]\n : [start])\n ])];\n}\n/**\n * Fallback with locale chain\n *\n * @remarks\n * A fallback locale function implemented with a fallback chain algorithm. It's used in VueI18n as default.\n *\n * @param ctx - A {@link CoreContext | context}\n * @param fallback - A {@link FallbackLocale | fallback locale}\n * @param start - A starting {@link Locale | locale}\n *\n * @returns Fallback locales\n *\n * @VueI18nSee [Fallbacking](../guide/essentials/fallback)\n *\n * @VueI18nGeneral\n */\nfunction fallbackWithLocaleChain(ctx, fallback, start) {\n const startLocale = isString(start) ? start : DEFAULT_LOCALE;\n const context = ctx;\n if (!context.__localeChainCache) {\n context.__localeChainCache = new Map();\n }\n let chain = context.__localeChainCache.get(startLocale);\n if (!chain) {\n chain = [];\n // first block defined by start\n let block = [start];\n // while any intervening block found\n while (isArray(block)) {\n block = appendBlockToChain(chain, block, fallback);\n }\n // prettier-ignore\n // last block defined by default\n const defaults = isArray(fallback) || !isPlainObject(fallback)\n ? fallback\n : fallback['default']\n ? fallback['default']\n : null;\n // convert defaults to array\n block = isString(defaults) ? [defaults] : defaults;\n if (isArray(block)) {\n appendBlockToChain(chain, block, false);\n }\n context.__localeChainCache.set(startLocale, chain);\n }\n return chain;\n}\nfunction appendBlockToChain(chain, block, blocks) {\n let follow = true;\n for (let i = 0; i < block.length && isBoolean(follow); i++) {\n const locale = block[i];\n if (isString(locale)) {\n follow = appendLocaleToChain(chain, block[i], blocks);\n }\n }\n return follow;\n}\nfunction appendLocaleToChain(chain, locale, blocks) {\n let follow;\n const tokens = locale.split('-');\n do {\n const target = tokens.join('-');\n follow = appendItemToChain(chain, target, blocks);\n tokens.splice(-1, 1);\n } while (tokens.length && follow === true);\n return follow;\n}\nfunction appendItemToChain(chain, target, blocks) {\n let follow = false;\n if (!chain.includes(target)) {\n follow = true;\n if (target) {\n follow = target[target.length - 1] !== '!';\n const locale = target.replace(/!/g, '');\n chain.push(locale);\n if ((isArray(blocks) || isPlainObject(blocks)) &&\n blocks[locale] // eslint-disable-line @typescript-eslint/no-explicit-any\n ) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n follow = blocks[locale];\n }\n }\n }\n return follow;\n}\n\nconst pathStateMachine = [];\npathStateMachine[0 /* States.BEFORE_PATH */] = {\n [\"w\" /* PathCharTypes.WORKSPACE */]: [0 /* States.BEFORE_PATH */],\n [\"i\" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */]\n};\npathStateMachine[1 /* States.IN_PATH */] = {\n [\"w\" /* PathCharTypes.WORKSPACE */]: [1 /* States.IN_PATH */],\n [\".\" /* PathCharTypes.DOT */]: [2 /* States.BEFORE_IDENT */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */]\n};\npathStateMachine[2 /* States.BEFORE_IDENT */] = {\n [\"w\" /* PathCharTypes.WORKSPACE */]: [2 /* States.BEFORE_IDENT */],\n [\"i\" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"0\" /* PathCharTypes.ZERO */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */]\n};\npathStateMachine[3 /* States.IN_IDENT */] = {\n [\"i\" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"0\" /* PathCharTypes.ZERO */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"w\" /* PathCharTypes.WORKSPACE */]: [1 /* States.IN_PATH */, 1 /* Actions.PUSH */],\n [\".\" /* PathCharTypes.DOT */]: [2 /* States.BEFORE_IDENT */, 1 /* Actions.PUSH */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */, 1 /* Actions.PUSH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */, 1 /* Actions.PUSH */]\n};\npathStateMachine[4 /* States.IN_SUB_PATH */] = {\n [\"'\" /* PathCharTypes.SINGLE_QUOTE */]: [5 /* States.IN_SINGLE_QUOTE */, 0 /* Actions.APPEND */],\n [\"\\\"\" /* PathCharTypes.DOUBLE_QUOTE */]: [6 /* States.IN_DOUBLE_QUOTE */, 0 /* Actions.APPEND */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [\n 4 /* States.IN_SUB_PATH */,\n 2 /* Actions.INC_SUB_PATH_DEPTH */\n ],\n [\"]\" /* PathCharTypes.RIGHT_BRACKET */]: [1 /* States.IN_PATH */, 3 /* Actions.PUSH_SUB_PATH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,\n [\"l\" /* PathCharTypes.ELSE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */]\n};\npathStateMachine[5 /* States.IN_SINGLE_QUOTE */] = {\n [\"'\" /* PathCharTypes.SINGLE_QUOTE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,\n [\"l\" /* PathCharTypes.ELSE */]: [5 /* States.IN_SINGLE_QUOTE */, 0 /* Actions.APPEND */]\n};\npathStateMachine[6 /* States.IN_DOUBLE_QUOTE */] = {\n [\"\\\"\" /* PathCharTypes.DOUBLE_QUOTE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,\n [\"l\" /* PathCharTypes.ELSE */]: [6 /* States.IN_DOUBLE_QUOTE */, 0 /* Actions.APPEND */]\n};\n/**\n * Check if an expression is a literal value.\n */\nconst literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\nfunction isLiteral(exp) {\n return literalValueRE.test(exp);\n}\n/**\n * Strip quotes from a string\n */\nfunction stripQuotes(str) {\n const a = str.charCodeAt(0);\n const b = str.charCodeAt(str.length - 1);\n return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str;\n}\n/**\n * Determine the type of a character in a keypath.\n */\nfunction getPathCharType(ch) {\n if (ch === undefined || ch === null) {\n return \"o\" /* PathCharTypes.END_OF_FAIL */;\n }\n const code = ch.charCodeAt(0);\n switch (code) {\n case 0x5b: // [\n case 0x5d: // ]\n case 0x2e: // .\n case 0x22: // \"\n case 0x27: // '\n return ch;\n case 0x5f: // _\n case 0x24: // $\n case 0x2d: // -\n return \"i\" /* PathCharTypes.IDENT */;\n case 0x09: // Tab (HT)\n case 0x0a: // Newline (LF)\n case 0x0d: // Return (CR)\n case 0xa0: // No-break space (NBSP)\n case 0xfeff: // Byte Order Mark (BOM)\n case 0x2028: // Line Separator (LS)\n case 0x2029: // Paragraph Separator (PS)\n return \"w\" /* PathCharTypes.WORKSPACE */;\n }\n return \"i\" /* PathCharTypes.IDENT */;\n}\n/**\n * Format a subPath, return its plain form if it is\n * a literal string or number. Otherwise prepend the\n * dynamic indicator (*).\n */\nfunction formatSubPath(path) {\n const trimmed = path.trim();\n // invalid leading 0\n if (path.charAt(0) === '0' && isNaN(parseInt(path))) {\n return false;\n }\n return isLiteral(trimmed)\n ? stripQuotes(trimmed)\n : \"*\" /* PathCharTypes.ASTARISK */ + trimmed;\n}\n/**\n * Parse a string path into an array of segments\n */\nfunction parse(path) {\n const keys = [];\n let index = -1;\n let mode = 0 /* States.BEFORE_PATH */;\n let subPathDepth = 0;\n let c;\n let key; // eslint-disable-line\n let newChar;\n let type;\n let transition;\n let action;\n let typeMap;\n const actions = [];\n actions[0 /* Actions.APPEND */] = () => {\n if (key === undefined) {\n key = newChar;\n }\n else {\n key += newChar;\n }\n };\n actions[1 /* Actions.PUSH */] = () => {\n if (key !== undefined) {\n keys.push(key);\n key = undefined;\n }\n };\n actions[2 /* Actions.INC_SUB_PATH_DEPTH */] = () => {\n actions[0 /* Actions.APPEND */]();\n subPathDepth++;\n };\n actions[3 /* Actions.PUSH_SUB_PATH */] = () => {\n if (subPathDepth > 0) {\n subPathDepth--;\n mode = 4 /* States.IN_SUB_PATH */;\n actions[0 /* Actions.APPEND */]();\n }\n else {\n subPathDepth = 0;\n if (key === undefined) {\n return false;\n }\n key = formatSubPath(key);\n if (key === false) {\n return false;\n }\n else {\n actions[1 /* Actions.PUSH */]();\n }\n }\n };\n function maybeUnescapeQuote() {\n const nextChar = path[index + 1];\n if ((mode === 5 /* States.IN_SINGLE_QUOTE */ &&\n nextChar === \"'\" /* PathCharTypes.SINGLE_QUOTE */) ||\n (mode === 6 /* States.IN_DOUBLE_QUOTE */ &&\n nextChar === \"\\\"\" /* PathCharTypes.DOUBLE_QUOTE */)) {\n index++;\n newChar = '\\\\' + nextChar;\n actions[0 /* Actions.APPEND */]();\n return true;\n }\n }\n while (mode !== null) {\n index++;\n c = path[index];\n if (c === '\\\\' && maybeUnescapeQuote()) {\n continue;\n }\n type = getPathCharType(c);\n typeMap = pathStateMachine[mode];\n transition = typeMap[type] || typeMap[\"l\" /* PathCharTypes.ELSE */] || 8 /* States.ERROR */;\n // check parse error\n if (transition === 8 /* States.ERROR */) {\n return;\n }\n mode = transition[0];\n if (transition[1] !== undefined) {\n action = actions[transition[1]];\n if (action) {\n newChar = c;\n if (action() === false) {\n return;\n }\n }\n }\n // check parse finish\n if (mode === 7 /* States.AFTER_PATH */) {\n return keys;\n }\n }\n}\n// path token cache\nconst cache = new Map();\n/**\n * key-value message resolver\n *\n * @remarks\n * Resolves messages with the key-value structure. Note that messages with a hierarchical structure such as objects cannot be resolved\n *\n * @param obj - A target object to be resolved with path\n * @param path - A {@link Path | path} to resolve the value of message\n *\n * @returns A resolved {@link PathValue | path value}\n *\n * @VueI18nGeneral\n */\nfunction resolveWithKeyValue(obj, path) {\n return isObject(obj) ? obj[path] : null;\n}\n/**\n * message resolver\n *\n * @remarks\n * Resolves messages. messages with a hierarchical structure such as objects can be resolved. This resolver is used in VueI18n as default.\n *\n * @param obj - A target object to be resolved with path\n * @param path - A {@link Path | path} to resolve the value of message\n *\n * @returns A resolved {@link PathValue | path value}\n *\n * @VueI18nGeneral\n */\nfunction resolveValue(obj, path) {\n // check object\n if (!isObject(obj)) {\n return null;\n }\n // parse path\n let hit = cache.get(path);\n if (!hit) {\n hit = parse(path);\n if (hit) {\n cache.set(path, hit);\n }\n }\n // check hit\n if (!hit) {\n return null;\n }\n // resolve path value\n const len = hit.length;\n let last = obj;\n let i = 0;\n while (i < len) {\n const val = last[hit[i]];\n if (val === undefined) {\n return null;\n }\n if (isFunction(last)) {\n return null;\n }\n last = val;\n i++;\n }\n return last;\n}\n\nconst CoreWarnCodes = {\n NOT_FOUND_KEY: 1,\n FALLBACK_TO_TRANSLATE: 2,\n CANNOT_FORMAT_NUMBER: 3,\n FALLBACK_TO_NUMBER_FORMAT: 4,\n CANNOT_FORMAT_DATE: 5,\n FALLBACK_TO_DATE_FORMAT: 6,\n EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER: 7\n};\nconst CORE_WARN_CODES_EXTEND_POINT = 8;\n/** @internal */\nconst warnMessages = {\n [CoreWarnCodes.NOT_FOUND_KEY]: `Not found '{key}' key in '{locale}' locale messages.`,\n [CoreWarnCodes.FALLBACK_TO_TRANSLATE]: `Fall back to translate '{key}' key with '{target}' locale.`,\n [CoreWarnCodes.CANNOT_FORMAT_NUMBER]: `Cannot format a number value due to not supported Intl.NumberFormat.`,\n [CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT]: `Fall back to number format '{key}' key with '{target}' locale.`,\n [CoreWarnCodes.CANNOT_FORMAT_DATE]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`,\n [CoreWarnCodes.FALLBACK_TO_DATE_FORMAT]: `Fall back to datetime format '{key}' key with '{target}' locale.`,\n [CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER]: `This project is using Custom Message Compiler, which is an experimental feature. It may receive breaking changes or be removed in the future.`\n};\nfunction getWarnMessage(code, ...args) {\n return format$1(warnMessages[code], ...args);\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Intlify core-base version\n * @internal\n */\nconst VERSION = '10.0.1';\nconst NOT_REOSLVED = -1;\nconst DEFAULT_LOCALE = 'en-US';\nconst MISSING_RESOLVE_VALUE = '';\nconst capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`;\nfunction getDefaultLinkedModifiers() {\n return {\n upper: (val, type) => {\n // prettier-ignore\n return type === 'text' && isString(val)\n ? val.toUpperCase()\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\n ? val.children.toUpperCase()\n : val;\n },\n lower: (val, type) => {\n // prettier-ignore\n return type === 'text' && isString(val)\n ? val.toLowerCase()\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\n ? val.children.toLowerCase()\n : val;\n },\n capitalize: (val, type) => {\n // prettier-ignore\n return (type === 'text' && isString(val)\n ? capitalize(val)\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\n ? capitalize(val.children)\n : val);\n }\n };\n}\nlet _compiler;\nfunction registerMessageCompiler(compiler) {\n _compiler = compiler;\n}\nlet _resolver;\n/**\n * Register the message resolver\n *\n * @param resolver - A {@link MessageResolver} function\n *\n * @VueI18nGeneral\n */\nfunction registerMessageResolver(resolver) {\n _resolver = resolver;\n}\nlet _fallbacker;\n/**\n * Register the locale fallbacker\n *\n * @param fallbacker - A {@link LocaleFallbacker} function\n *\n * @VueI18nGeneral\n */\nfunction registerLocaleFallbacker(fallbacker) {\n _fallbacker = fallbacker;\n}\n// Additional Meta for Intlify DevTools\nlet _additionalMeta = null;\n/* #__NO_SIDE_EFFECTS__ */\nconst setAdditionalMeta = (meta) => {\n _additionalMeta = meta;\n};\n/* #__NO_SIDE_EFFECTS__ */\nconst getAdditionalMeta = () => _additionalMeta;\nlet _fallbackContext = null;\nconst setFallbackContext = (context) => {\n _fallbackContext = context;\n};\nconst getFallbackContext = () => _fallbackContext;\n// ID for CoreContext\nlet _cid = 0;\nfunction createCoreContext(options = {}) {\n // setup options\n const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;\n const version = isString(options.version) ? options.version : VERSION;\n const locale = isString(options.locale) || isFunction(options.locale)\n ? options.locale\n : DEFAULT_LOCALE;\n const _locale = isFunction(locale) ? DEFAULT_LOCALE : locale;\n const fallbackLocale = isArray(options.fallbackLocale) ||\n isPlainObject(options.fallbackLocale) ||\n isString(options.fallbackLocale) ||\n options.fallbackLocale === false\n ? options.fallbackLocale\n : _locale;\n const messages = isPlainObject(options.messages)\n ? options.messages\n : { [_locale]: {} };\n const datetimeFormats = isPlainObject(options.datetimeFormats)\n ? options.datetimeFormats\n : { [_locale]: {} }\n ;\n const numberFormats = isPlainObject(options.numberFormats)\n ? options.numberFormats\n : { [_locale]: {} }\n ;\n const modifiers = assign({}, options.modifiers || {}, getDefaultLinkedModifiers());\n const pluralRules = options.pluralRules || {};\n const missing = isFunction(options.missing) ? options.missing : null;\n const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\n ? options.missingWarn\n : true;\n const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\n ? options.fallbackWarn\n : true;\n const fallbackFormat = !!options.fallbackFormat;\n const unresolving = !!options.unresolving;\n const postTranslation = isFunction(options.postTranslation)\n ? options.postTranslation\n : null;\n const processor = isPlainObject(options.processor) ? options.processor : null;\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\n ? options.warnHtmlMessage\n : true;\n const escapeParameter = !!options.escapeParameter;\n const messageCompiler = isFunction(options.messageCompiler)\n ? options.messageCompiler\n : _compiler;\n if (isFunction(options.messageCompiler)) {\n warnOnce(getWarnMessage(CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER));\n }\n const messageResolver = isFunction(options.messageResolver)\n ? options.messageResolver\n : _resolver || resolveWithKeyValue;\n const localeFallbacker = isFunction(options.localeFallbacker)\n ? options.localeFallbacker\n : _fallbacker || fallbackWithSimple;\n const fallbackContext = isObject(options.fallbackContext)\n ? options.fallbackContext\n : undefined;\n // setup internal options\n const internalOptions = options;\n const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters)\n ? internalOptions.__datetimeFormatters\n : new Map()\n ;\n const __numberFormatters = isObject(internalOptions.__numberFormatters)\n ? internalOptions.__numberFormatters\n : new Map()\n ;\n const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {};\n _cid++;\n const context = {\n version,\n cid: _cid,\n locale,\n fallbackLocale,\n messages,\n modifiers,\n pluralRules,\n missing,\n missingWarn,\n fallbackWarn,\n fallbackFormat,\n unresolving,\n postTranslation,\n processor,\n warnHtmlMessage,\n escapeParameter,\n messageCompiler,\n messageResolver,\n localeFallbacker,\n fallbackContext,\n onWarn,\n __meta\n };\n {\n context.datetimeFormats = datetimeFormats;\n context.numberFormats = numberFormats;\n context.__datetimeFormatters = __datetimeFormatters;\n context.__numberFormatters = __numberFormatters;\n }\n // for vue-devtools timeline event\n {\n context.__v_emitter =\n internalOptions.__v_emitter != null\n ? internalOptions.__v_emitter\n : undefined;\n }\n // NOTE: experimental !!\n {\n initI18nDevTools(context, version, __meta);\n }\n return context;\n}\n/** @internal */\nfunction isTranslateFallbackWarn(fallback, key) {\n return fallback instanceof RegExp ? fallback.test(key) : fallback;\n}\n/** @internal */\nfunction isTranslateMissingWarn(missing, key) {\n return missing instanceof RegExp ? missing.test(key) : missing;\n}\n/** @internal */\nfunction handleMissing(context, key, locale, missingWarn, type) {\n const { missing, onWarn } = context;\n // for vue-devtools timeline event\n {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit('missing', {\n locale,\n key,\n type,\n groupId: `${type}:${key}`\n });\n }\n }\n if (missing !== null) {\n const ret = missing(context, locale, key, type);\n return isString(ret) ? ret : key;\n }\n else {\n if (isTranslateMissingWarn(missingWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.NOT_FOUND_KEY, { key, locale }));\n }\n return key;\n }\n}\n/** @internal */\nfunction updateFallbackLocale(ctx, locale, fallback) {\n const context = ctx;\n context.__localeChainCache = new Map();\n ctx.localeFallbacker(ctx, fallback, locale);\n}\n/** @internal */\nfunction isAlmostSameLocale(locale, compareLocale) {\n if (locale === compareLocale)\n return false;\n return locale.split('-')[0] === compareLocale.split('-')[0];\n}\n/** @internal */\nfunction isImplicitFallback(targetLocale, locales) {\n const index = locales.indexOf(targetLocale);\n if (index === -1) {\n return false;\n }\n for (let i = index + 1; i < locales.length; i++) {\n if (isAlmostSameLocale(targetLocale, locales[i])) {\n return true;\n }\n }\n return false;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst intlDefined = typeof Intl !== 'undefined';\nconst Availabilities = {\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\n};\n\n// implementation of `datetime` function\nfunction datetime(context, ...args) {\n const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\n const { __datetimeFormatters } = context;\n if (!Availabilities.dateTimeFormat) {\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_DATE));\n return MISSING_RESOLVE_VALUE;\n }\n const [key, value, options, overrides] = parseDateTimeArgs(...args);\n const missingWarn = isBoolean(options.missingWarn)\n ? options.missingWarn\n : context.missingWarn;\n const fallbackWarn = isBoolean(options.fallbackWarn)\n ? options.fallbackWarn\n : context.fallbackWarn;\n const part = !!options.part;\n const locale = getLocale(context, options);\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\n fallbackLocale, locale);\n if (!isString(key) || key === '') {\n return new Intl.DateTimeFormat(locale, overrides).format(value);\n }\n // resolve format\n let datetimeFormat = {};\n let targetLocale;\n let format = null;\n let from = locale;\n let to = null;\n const type = 'datetime format';\n for (let i = 0; i < locales.length; i++) {\n targetLocale = to = locales[i];\n if (locale !== targetLocale &&\n isTranslateFallbackWarn(fallbackWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_DATE_FORMAT, {\n key,\n target: targetLocale\n }));\n }\n // for vue-devtools timeline event\n if (locale !== targetLocale) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit('fallback', {\n type,\n key,\n from,\n to,\n groupId: `${type}:${key}`\n });\n }\n }\n datetimeFormat =\n datetimeFormats[targetLocale] || {};\n format = datetimeFormat[key];\n if (isPlainObject(format))\n break;\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\n from = to;\n }\n // checking format and target locale\n if (!isPlainObject(format) || !isString(targetLocale)) {\n return unresolving ? NOT_REOSLVED : key;\n }\n let id = `${targetLocale}__${key}`;\n if (!isEmptyObject(overrides)) {\n id = `${id}__${JSON.stringify(overrides)}`;\n }\n let formatter = __datetimeFormatters.get(id);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format, overrides));\n __datetimeFormatters.set(id, formatter);\n }\n return !part ? formatter.format(value) : formatter.formatToParts(value);\n}\n/** @internal */\nconst DATETIME_FORMAT_OPTIONS_KEYS = [\n 'localeMatcher',\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName',\n 'formatMatcher',\n 'hour12',\n 'timeZone',\n 'dateStyle',\n 'timeStyle',\n 'calendar',\n 'dayPeriod',\n 'numberingSystem',\n 'hourCycle',\n 'fractionalSecondDigits'\n];\n/** @internal */\nfunction parseDateTimeArgs(...args) {\n const [arg1, arg2, arg3, arg4] = args;\n const options = {};\n let overrides = {};\n let value;\n if (isString(arg1)) {\n // Only allow ISO strings - other date formats are often supported,\n // but may cause different results in different browsers.\n const matches = arg1.match(/(\\d{4}-\\d{2}-\\d{2})(T|\\s)?(.*)/);\n if (!matches) {\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\n }\n // Some browsers can not parse the iso datetime separated by space,\n // this is a compromise solution by replace the 'T'/' ' with 'T'\n const dateTime = matches[3]\n ? matches[3].trim().startsWith('T')\n ? `${matches[1].trim()}${matches[3].trim()}`\n : `${matches[1].trim()}T${matches[3].trim()}`\n : matches[1].trim();\n value = new Date(dateTime);\n try {\n // This will fail if the date is not valid\n value.toISOString();\n }\n catch {\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\n }\n }\n else if (isDate(arg1)) {\n if (isNaN(arg1.getTime())) {\n throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT);\n }\n value = arg1;\n }\n else if (isNumber(arg1)) {\n value = arg1;\n }\n else {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n if (isString(arg2)) {\n options.key = arg2;\n }\n else if (isPlainObject(arg2)) {\n Object.keys(arg2).forEach(key => {\n if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) {\n overrides[key] = arg2[key];\n }\n else {\n options[key] = arg2[key];\n }\n });\n }\n if (isString(arg3)) {\n options.locale = arg3;\n }\n else if (isPlainObject(arg3)) {\n overrides = arg3;\n }\n if (isPlainObject(arg4)) {\n overrides = arg4;\n }\n return [options.key || '', value, options, overrides];\n}\n/** @internal */\nfunction clearDateTimeFormat(ctx, locale, format) {\n const context = ctx;\n for (const key in format) {\n const id = `${locale}__${key}`;\n if (!context.__datetimeFormatters.has(id)) {\n continue;\n }\n context.__datetimeFormatters.delete(id);\n }\n}\n\n// implementation of `number` function\nfunction number(context, ...args) {\n const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\n const { __numberFormatters } = context;\n if (!Availabilities.numberFormat) {\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_NUMBER));\n return MISSING_RESOLVE_VALUE;\n }\n const [key, value, options, overrides] = parseNumberArgs(...args);\n const missingWarn = isBoolean(options.missingWarn)\n ? options.missingWarn\n : context.missingWarn;\n const fallbackWarn = isBoolean(options.fallbackWarn)\n ? options.fallbackWarn\n : context.fallbackWarn;\n const part = !!options.part;\n const locale = getLocale(context, options);\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\n fallbackLocale, locale);\n if (!isString(key) || key === '') {\n return new Intl.NumberFormat(locale, overrides).format(value);\n }\n // resolve format\n let numberFormat = {};\n let targetLocale;\n let format = null;\n let from = locale;\n let to = null;\n const type = 'number format';\n for (let i = 0; i < locales.length; i++) {\n targetLocale = to = locales[i];\n if (locale !== targetLocale &&\n isTranslateFallbackWarn(fallbackWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, {\n key,\n target: targetLocale\n }));\n }\n // for vue-devtools timeline event\n if (locale !== targetLocale) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit('fallback', {\n type,\n key,\n from,\n to,\n groupId: `${type}:${key}`\n });\n }\n }\n numberFormat =\n numberFormats[targetLocale] || {};\n format = numberFormat[key];\n if (isPlainObject(format))\n break;\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\n from = to;\n }\n // checking format and target locale\n if (!isPlainObject(format) || !isString(targetLocale)) {\n return unresolving ? NOT_REOSLVED : key;\n }\n let id = `${targetLocale}__${key}`;\n if (!isEmptyObject(overrides)) {\n id = `${id}__${JSON.stringify(overrides)}`;\n }\n let formatter = __numberFormatters.get(id);\n if (!formatter) {\n formatter = new Intl.NumberFormat(targetLocale, assign({}, format, overrides));\n __numberFormatters.set(id, formatter);\n }\n return !part ? formatter.format(value) : formatter.formatToParts(value);\n}\n/** @internal */\nconst NUMBER_FORMAT_OPTIONS_KEYS = [\n 'localeMatcher',\n 'style',\n 'currency',\n 'currencyDisplay',\n 'currencySign',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n 'compactDisplay',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n 'roundingMode',\n 'roundingPriority',\n 'roundingIncrement',\n 'trailingZeroDisplay'\n];\n/** @internal */\nfunction parseNumberArgs(...args) {\n const [arg1, arg2, arg3, arg4] = args;\n const options = {};\n let overrides = {};\n if (!isNumber(arg1)) {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n const value = arg1;\n if (isString(arg2)) {\n options.key = arg2;\n }\n else if (isPlainObject(arg2)) {\n Object.keys(arg2).forEach(key => {\n if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) {\n overrides[key] = arg2[key];\n }\n else {\n options[key] = arg2[key];\n }\n });\n }\n if (isString(arg3)) {\n options.locale = arg3;\n }\n else if (isPlainObject(arg3)) {\n overrides = arg3;\n }\n if (isPlainObject(arg4)) {\n overrides = arg4;\n }\n return [options.key || '', value, options, overrides];\n}\n/** @internal */\nfunction clearNumberFormat(ctx, locale, format) {\n const context = ctx;\n for (const key in format) {\n const id = `${locale}__${key}`;\n if (!context.__numberFormatters.has(id)) {\n continue;\n }\n context.__numberFormatters.delete(id);\n }\n}\n\nconst DEFAULT_MODIFIER = (str) => str;\nconst DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line\nconst DEFAULT_MESSAGE_DATA_TYPE = 'text';\nconst DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : join(values);\nconst DEFAULT_INTERPOLATE = toDisplayString;\nfunction pluralDefault(choice, choicesLength) {\n choice = Math.abs(choice);\n if (choicesLength === 2) {\n // prettier-ignore\n return choice\n ? choice > 1\n ? 1\n : 0\n : 1;\n }\n return choice ? Math.min(choice, 2) : 0;\n}\nfunction getPluralIndex(options) {\n // prettier-ignore\n const index = isNumber(options.pluralIndex)\n ? options.pluralIndex\n : -1;\n // prettier-ignore\n return options.named && (isNumber(options.named.count) || isNumber(options.named.n))\n ? isNumber(options.named.count)\n ? options.named.count\n : isNumber(options.named.n)\n ? options.named.n\n : index\n : index;\n}\nfunction normalizeNamed(pluralIndex, props) {\n if (!props.count) {\n props.count = pluralIndex;\n }\n if (!props.n) {\n props.n = pluralIndex;\n }\n}\nfunction createMessageContext(options = {}) {\n const locale = options.locale;\n const pluralIndex = getPluralIndex(options);\n const pluralRule = isObject(options.pluralRules) &&\n isString(locale) &&\n isFunction(options.pluralRules[locale])\n ? options.pluralRules[locale]\n : pluralDefault;\n const orgPluralRule = isObject(options.pluralRules) &&\n isString(locale) &&\n isFunction(options.pluralRules[locale])\n ? pluralDefault\n : undefined;\n const plural = (messages) => {\n return messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];\n };\n const _list = options.list || [];\n const list = (index) => _list[index];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _named = options.named || {};\n isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named);\n const named = (key) => _named[key];\n function message(key, useLinked) {\n // prettier-ignore\n const msg = isFunction(options.messages)\n ? options.messages(key, !!useLinked)\n : isObject(options.messages)\n ? options.messages[key]\n : false;\n return !msg\n ? options.parent\n ? options.parent.message(key) // resolve from parent messages\n : DEFAULT_MESSAGE\n : msg;\n }\n const _modifier = (name) => options.modifiers\n ? options.modifiers[name]\n : DEFAULT_MODIFIER;\n const normalize = isPlainObject(options.processor) && isFunction(options.processor.normalize)\n ? options.processor.normalize\n : DEFAULT_NORMALIZE;\n const interpolate = isPlainObject(options.processor) &&\n isFunction(options.processor.interpolate)\n ? options.processor.interpolate\n : DEFAULT_INTERPOLATE;\n const type = isPlainObject(options.processor) && isString(options.processor.type)\n ? options.processor.type\n : DEFAULT_MESSAGE_DATA_TYPE;\n const linked = (key, ...args) => {\n const [arg1, arg2] = args;\n let type = 'text';\n let modifier = '';\n if (args.length === 1) {\n if (isObject(arg1)) {\n modifier = arg1.modifier || modifier;\n type = arg1.type || type;\n }\n else if (isString(arg1)) {\n modifier = arg1 || modifier;\n }\n }\n else if (args.length === 2) {\n if (isString(arg1)) {\n modifier = arg1 || modifier;\n }\n if (isString(arg2)) {\n type = arg2 || type;\n }\n }\n const ret = message(key, true)(ctx);\n const msg = \n // The message in vnode resolved with linked are returned as an array by processor.nomalize\n type === 'vnode' && isArray(ret) && modifier\n ? ret[0]\n : ret;\n return modifier ? _modifier(modifier)(msg, type) : msg;\n };\n const ctx = {\n [\"list\" /* HelperNameMap.LIST */]: list,\n [\"named\" /* HelperNameMap.NAMED */]: named,\n [\"plural\" /* HelperNameMap.PLURAL */]: plural,\n [\"linked\" /* HelperNameMap.LINKED */]: linked,\n [\"message\" /* HelperNameMap.MESSAGE */]: message,\n [\"type\" /* HelperNameMap.TYPE */]: type,\n [\"interpolate\" /* HelperNameMap.INTERPOLATE */]: interpolate,\n [\"normalize\" /* HelperNameMap.NORMALIZE */]: normalize,\n [\"values\" /* HelperNameMap.VALUES */]: assign({}, _list, _named)\n };\n return ctx;\n}\n\nconst NOOP_MESSAGE_FUNCTION = () => '';\nconst isMessageFunction = (val) => isFunction(val);\n// implementation of `translate` function\nfunction translate(context, ...args) {\n const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context;\n const [key, options] = parseTranslateArgs(...args);\n const missingWarn = isBoolean(options.missingWarn)\n ? options.missingWarn\n : context.missingWarn;\n const fallbackWarn = isBoolean(options.fallbackWarn)\n ? options.fallbackWarn\n : context.fallbackWarn;\n const escapeParameter = isBoolean(options.escapeParameter)\n ? options.escapeParameter\n : context.escapeParameter;\n const resolvedMessage = !!options.resolvedMessage;\n // prettier-ignore\n const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) // default by function option\n ? !isBoolean(options.default)\n ? options.default\n : (!messageCompiler ? () => key : key)\n : fallbackFormat // default by `fallbackFormat` option\n ? (!messageCompiler ? () => key : key)\n : null;\n const enableDefaultMsg = fallbackFormat ||\n (defaultMsgOrKey != null &&\n (isString(defaultMsgOrKey) || isFunction(defaultMsgOrKey)));\n const locale = getLocale(context, options);\n // escape params\n escapeParameter && escapeParams(options);\n // resolve message format\n // eslint-disable-next-line prefer-const\n let [formatScope, targetLocale, message] = !resolvedMessage\n ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn)\n : [\n key,\n locale,\n messages[locale] || {}\n ];\n // NOTE:\n // Fix to work around `ssrTransfrom` bug in Vite.\n // https://github.com/vitejs/vite/issues/4306\n // To get around this, use temporary variables.\n // https://github.com/nuxt/framework/issues/1461#issuecomment-954606243\n let format = formatScope;\n // if you use default message, set it as message format!\n let cacheBaseKey = key;\n if (!resolvedMessage &&\n !(isString(format) ||\n isMessageAST(format) ||\n isMessageFunction(format))) {\n if (enableDefaultMsg) {\n format = defaultMsgOrKey;\n cacheBaseKey = format;\n }\n }\n // checking message format and target locale\n if (!resolvedMessage &&\n (!(isString(format) ||\n isMessageAST(format) ||\n isMessageFunction(format)) ||\n !isString(targetLocale))) {\n return unresolving ? NOT_REOSLVED : key;\n }\n // TODO: refactor\n if (isString(format) && context.messageCompiler == null) {\n warn(`The message format compilation is not supported in this build. ` +\n `Because message compiler isn't included. ` +\n `You need to pre-compilation all message format. ` +\n `So translate function return '${key}'.`);\n return key;\n }\n // setup compile error detecting\n let occurred = false;\n const onError = () => {\n occurred = true;\n };\n // compile message format\n const msg = !isMessageFunction(format)\n ? compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, onError)\n : format;\n // if occurred compile error, return the message format\n if (occurred) {\n return format;\n }\n // evaluate message with context\n const ctxOptions = getMessageContextOptions(context, targetLocale, message, options);\n const msgContext = createMessageContext(ctxOptions);\n const messaged = evaluateMessage(context, msg, msgContext);\n // if use post translation option, proceed it with handler\n const ret = postTranslation\n ? postTranslation(messaged, key)\n : messaged;\n // NOTE: experimental !!\n {\n // prettier-ignore\n const payloads = {\n timestamp: Date.now(),\n key: isString(key)\n ? key\n : isMessageFunction(format)\n ? format.key\n : '',\n locale: targetLocale || (isMessageFunction(format)\n ? format.locale\n : ''),\n format: isString(format)\n ? format\n : isMessageFunction(format)\n ? format.source\n : '',\n message: ret\n };\n payloads.meta = assign({}, context.__meta, getAdditionalMeta() || {});\n translateDevTools(payloads);\n }\n return ret;\n}\nfunction escapeParams(options) {\n if (isArray(options.list)) {\n options.list = options.list.map(item => isString(item) ? escapeHtml(item) : item);\n }\n else if (isObject(options.named)) {\n Object.keys(options.named).forEach(key => {\n if (isString(options.named[key])) {\n options.named[key] = escapeHtml(options.named[key]);\n }\n });\n }\n}\nfunction resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) {\n const { messages, onWarn, messageResolver: resolveValue, localeFallbacker } = context;\n const locales = localeFallbacker(context, fallbackLocale, locale); // eslint-disable-line @typescript-eslint/no-explicit-any\n let message = {};\n let targetLocale;\n let format = null;\n let from = locale;\n let to = null;\n const type = 'translate';\n for (let i = 0; i < locales.length; i++) {\n targetLocale = to = locales[i];\n if (locale !== targetLocale &&\n !isAlmostSameLocale(locale, targetLocale) &&\n isTranslateFallbackWarn(fallbackWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_TRANSLATE, {\n key,\n target: targetLocale\n }));\n }\n // for vue-devtools timeline event\n if (locale !== targetLocale) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit('fallback', {\n type,\n key,\n from,\n to,\n groupId: `${type}:${key}`\n });\n }\n }\n message =\n messages[targetLocale] || {};\n // for vue-devtools timeline event\n let start = null;\n let startTag;\n let endTag;\n if (inBrowser) {\n start = window.performance.now();\n startTag = 'intlify-message-resolve-start';\n endTag = 'intlify-message-resolve-end';\n mark && mark(startTag);\n }\n if ((format = resolveValue(message, key)) === null) {\n // if null, resolve with object key path\n format = message[key]; // eslint-disable-line @typescript-eslint/no-explicit-any\n }\n // for vue-devtools timeline event\n if (inBrowser) {\n const end = window.performance.now();\n const emitter = context.__v_emitter;\n if (emitter && start && format) {\n emitter.emit('message-resolve', {\n type: 'message-resolve',\n key,\n message: format,\n time: end - start,\n groupId: `${type}:${key}`\n });\n }\n if (startTag && endTag && mark && measure) {\n mark(endTag);\n measure('intlify message resolve', startTag, endTag);\n }\n }\n if (isString(format) || isMessageAST(format) || isMessageFunction(format)) {\n break;\n }\n if (!isImplicitFallback(targetLocale, locales)) {\n const missingRet = handleMissing(context, // eslint-disable-line @typescript-eslint/no-explicit-any\n key, targetLocale, missingWarn, type);\n if (missingRet !== key) {\n format = missingRet;\n }\n }\n from = to;\n }\n return [format, targetLocale, message];\n}\nfunction compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, onError) {\n const { messageCompiler, warnHtmlMessage } = context;\n if (isMessageFunction(format)) {\n const msg = format;\n msg.locale = msg.locale || targetLocale;\n msg.key = msg.key || key;\n return msg;\n }\n if (messageCompiler == null) {\n const msg = (() => format);\n msg.locale = targetLocale;\n msg.key = key;\n return msg;\n }\n // for vue-devtools timeline event\n let start = null;\n let startTag;\n let endTag;\n if (inBrowser) {\n start = window.performance.now();\n startTag = 'intlify-message-compilation-start';\n endTag = 'intlify-message-compilation-end';\n mark && mark(startTag);\n }\n const msg = messageCompiler(format, getCompileContext(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, onError));\n // for vue-devtools timeline event\n if (inBrowser) {\n const end = window.performance.now();\n const emitter = context.__v_emitter;\n if (emitter && start) {\n emitter.emit('message-compilation', {\n type: 'message-compilation',\n message: format,\n time: end - start,\n groupId: `${'translate'}:${key}`\n });\n }\n if (startTag && endTag && mark && measure) {\n mark(endTag);\n measure('intlify message compilation', startTag, endTag);\n }\n }\n msg.locale = targetLocale;\n msg.key = key;\n msg.source = format;\n return msg;\n}\nfunction evaluateMessage(context, msg, msgCtx) {\n // for vue-devtools timeline event\n let start = null;\n let startTag;\n let endTag;\n if (inBrowser) {\n start = window.performance.now();\n startTag = 'intlify-message-evaluation-start';\n endTag = 'intlify-message-evaluation-end';\n mark && mark(startTag);\n }\n const messaged = msg(msgCtx);\n // for vue-devtools timeline event\n if (inBrowser) {\n const end = window.performance.now();\n const emitter = context.__v_emitter;\n if (emitter && start) {\n emitter.emit('message-evaluation', {\n type: 'message-evaluation',\n value: messaged,\n time: end - start,\n groupId: `${'translate'}:${msg.key}`\n });\n }\n if (startTag && endTag && mark && measure) {\n mark(endTag);\n measure('intlify message evaluation', startTag, endTag);\n }\n }\n return messaged;\n}\n/** @internal */\nfunction parseTranslateArgs(...args) {\n const [arg1, arg2, arg3] = args;\n const options = {};\n if (!isString(arg1) &&\n !isNumber(arg1) &&\n !isMessageFunction(arg1) &&\n !isMessageAST(arg1)) {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n // prettier-ignore\n const key = isNumber(arg1)\n ? String(arg1)\n : isMessageFunction(arg1)\n ? arg1\n : arg1;\n if (isNumber(arg2)) {\n options.plural = arg2;\n }\n else if (isString(arg2)) {\n options.default = arg2;\n }\n else if (isPlainObject(arg2) && !isEmptyObject(arg2)) {\n options.named = arg2;\n }\n else if (isArray(arg2)) {\n options.list = arg2;\n }\n if (isNumber(arg3)) {\n options.plural = arg3;\n }\n else if (isString(arg3)) {\n options.default = arg3;\n }\n else if (isPlainObject(arg3)) {\n assign(options, arg3);\n }\n return [key, options];\n}\nfunction getCompileContext(context, locale, key, source, warnHtmlMessage, onError) {\n return {\n locale,\n key,\n warnHtmlMessage,\n onError: (err) => {\n onError && onError(err);\n {\n const _source = getSourceForCodeFrame(source);\n const message = `Message compilation error: ${err.message}`;\n const codeFrame = err.location &&\n _source &&\n generateCodeFrame(_source, err.location.start.offset, err.location.end.offset);\n const emitter = context.__v_emitter;\n if (emitter && _source) {\n emitter.emit('compile-error', {\n message: _source,\n error: err.message,\n start: err.location && err.location.start.offset,\n end: err.location && err.location.end.offset,\n groupId: `${'translate'}:${key}`\n });\n }\n console.error(codeFrame ? `${message}\\n${codeFrame}` : message);\n }\n },\n onCacheKey: (source) => generateFormatCacheKey(locale, key, source)\n };\n}\nfunction getSourceForCodeFrame(source) {\n if (isString(source)) {\n return source;\n }\n else {\n if (source.loc && source.loc.source) {\n return source.loc.source;\n }\n }\n}\nfunction getMessageContextOptions(context, locale, message, options) {\n const { modifiers, pluralRules, messageResolver: resolveValue, fallbackLocale, fallbackWarn, missingWarn, fallbackContext } = context;\n const resolveMessage = (key, useLinked) => {\n let val = resolveValue(message, key);\n // fallback\n if (val == null && (fallbackContext || useLinked)) {\n const [, , message] = resolveMessageFormat(fallbackContext || context, // NOTE: if has fallbackContext, fallback to root, else if use linked, fallback to local context\n key, locale, fallbackLocale, fallbackWarn, missingWarn);\n val = resolveValue(message, key);\n }\n if (isString(val) || isMessageAST(val)) {\n let occurred = false;\n const onError = () => {\n occurred = true;\n };\n const msg = compileMessageFormat(context, key, locale, val, key, onError);\n return !occurred\n ? msg\n : NOOP_MESSAGE_FUNCTION;\n }\n else if (isMessageFunction(val)) {\n return val;\n }\n else {\n // TODO: should be implemented warning message\n return NOOP_MESSAGE_FUNCTION;\n }\n };\n const ctxOptions = {\n locale,\n modifiers,\n pluralRules,\n messages: resolveMessage\n };\n if (context.processor) {\n ctxOptions.processor = context.processor;\n }\n if (options.list) {\n ctxOptions.list = options.list;\n }\n if (options.named) {\n ctxOptions.named = options.named;\n }\n if (isNumber(options.plural)) {\n ctxOptions.pluralIndex = options.plural;\n }\n return ctxOptions;\n}\n\nexport { CORE_ERROR_CODES_EXTEND_POINT, CORE_WARN_CODES_EXTEND_POINT, CompileErrorCodes, CoreErrorCodes, CoreWarnCodes, DATETIME_FORMAT_OPTIONS_KEYS, DEFAULT_LOCALE, DEFAULT_MESSAGE_DATA_TYPE, MISSING_RESOLVE_VALUE, NOT_REOSLVED, NUMBER_FORMAT_OPTIONS_KEYS, VERSION, clearCompileCache, clearDateTimeFormat, clearNumberFormat, compile, createCompileError, createCoreContext, createCoreError, createMessageContext, datetime, fallbackWithLocaleChain, fallbackWithSimple, getAdditionalMeta, getDevToolsHook, getFallbackContext, getLocale, getWarnMessage, handleMissing, initI18nDevTools, isAlmostSameLocale, isImplicitFallback, isMessageAST, isMessageFunction, isTranslateFallbackWarn, isTranslateMissingWarn, number, parse, parseDateTimeArgs, parseNumberArgs, parseTranslateArgs, registerLocaleFallbacker, registerMessageCompiler, registerMessageResolver, resolveLocale, resolveValue, resolveWithKeyValue, setAdditionalMeta, setDevToolsHook, setFallbackContext, translate, translateDevTools, updateFallbackLocale };\n","/*!\n * shared v10.0.1\n * (c) 2024 kazuya kawaguchi\n * Released under the MIT License.\n */\n/**\n * Original Utilities\n * written by kazuya kawaguchi\n */\nconst inBrowser = typeof window !== 'undefined';\nlet mark;\nlet measure;\n{\n const perf = inBrowser && window.performance;\n if (perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n // @ts-ignore browser compat\n perf.clearMeasures) {\n mark = (tag) => {\n perf.mark(tag);\n };\n measure = (name, startTag, endTag) => {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n };\n }\n}\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\n/* eslint-disable */\nfunction format(message, ...args) {\n if (args.length === 1 && isObject(args[0])) {\n args = args[0];\n }\n if (!args || !args.hasOwnProperty) {\n args = {};\n }\n return message.replace(RE_ARGS, (match, identifier) => {\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\n });\n}\nconst makeSymbol = (name, shareable = false) => !shareable ? Symbol(name) : Symbol.for(name);\nconst generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });\nconst friendlyJSONstringify = (json) => JSON.stringify(json)\n .replace(/\\u2028/g, '\\\\u2028')\n .replace(/\\u2029/g, '\\\\u2029')\n .replace(/\\u0027/g, '\\\\u0027');\nconst isNumber = (val) => typeof val === 'number' && isFinite(val);\nconst isDate = (val) => toTypeString(val) === '[object Date]';\nconst isRegExp = (val) => toTypeString(val) === '[object RegExp]';\nconst isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0;\nconst assign = Object.assign;\nlet _globalThis;\nconst getGlobalThis = () => {\n // prettier-ignore\n return (_globalThis ||\n (_globalThis =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {}));\n};\nfunction escapeHtml(rawText) {\n return rawText\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n}\n/* eslint-enable */\n/**\n * Useful Utilities By Evan you\n * Modified by kazuya kawaguchi\n * MIT License\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts\n */\nconst isArray = Array.isArray;\nconst isFunction = (val) => typeof val === 'function';\nconst isString = (val) => typeof val === 'string';\nconst isBoolean = (val) => typeof val === 'boolean';\nconst isSymbol = (val) => typeof val === 'symbol';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isObject = (val) => val !== null && typeof val === 'object';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isPromise = (val) => {\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst isPlainObject = (val) => {\n if (!isObject(val))\n return false;\n const proto = Object.getPrototypeOf(val);\n return proto === null || proto.constructor === Object;\n};\n// for converting list and named values to displayed strings.\nconst toDisplayString = (val) => {\n return val == null\n ? ''\n : isArray(val) || (isPlainObject(val) && val.toString === objectToString)\n ? JSON.stringify(val, null, 2)\n : String(val);\n};\nfunction join(items, separator = '') {\n return items.reduce((str, item, index) => (index === 0 ? str + item : str + separator + item), '');\n}\nconst RANGE = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n const lines = source.split(/\\r?\\n/);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + 1;\n if (count >= start) {\n for (let j = i - RANGE; j <= i + RANGE || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(`${line}${' '.repeat(3 - String(line).length)}| ${lines[j]}`);\n const lineLength = lines[j].length;\n if (j === i) {\n // push underline\n const pad = start - (count - lineLength) + 1;\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\n }\n else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + '^'.repeat(length));\n }\n count += lineLength + 1;\n }\n }\n break;\n }\n }\n return res.join('\\n');\n}\n\nfunction warn(msg, err) {\n if (typeof console !== 'undefined') {\n console.warn(`[intlify] ` + msg);\n /* istanbul ignore if */\n if (err) {\n console.warn(err.stack);\n }\n }\n}\nconst hasWarned = {};\nfunction warnOnce(msg) {\n if (!hasWarned[msg]) {\n hasWarned[msg] = true;\n warn(msg);\n }\n}\n\n/**\n * Event emitter, forked from the below:\n * - original repository url: https://github.com/developit/mitt\n * - code url: https://github.com/developit/mitt/blob/master/src/index.ts\n * - author: Jason Miller (https://github.com/developit)\n * - license: MIT\n */\n/**\n * Create a event emitter\n *\n * @returns An event emitter\n */\nfunction createEmitter() {\n const events = new Map();\n const emitter = {\n events,\n on(event, handler) {\n const handlers = events.get(event);\n const added = handlers && handlers.push(handler);\n if (!added) {\n events.set(event, [handler]);\n }\n },\n off(event, handler) {\n const handlers = events.get(event);\n if (handlers) {\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\n }\n },\n emit(event, payload) {\n (events.get(event) || [])\n .slice()\n .map(handler => handler(payload));\n (events.get('*') || [])\n .slice()\n .map(handler => handler(event, payload));\n }\n };\n return emitter;\n}\n\nconst isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val);\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction deepCopy(src, des) {\n // src and des should both be objects, and none of them can be a array\n if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) {\n throw new Error('Invalid value');\n }\n const stack = [{ src, des }];\n while (stack.length) {\n const { src, des } = stack.pop();\n Object.keys(src).forEach(key => {\n if (isNotObjectOrIsArray(src[key]) || isNotObjectOrIsArray(des[key])) {\n // replace with src[key] when:\n // src[key] or des[key] is not an object, or\n // src[key] or des[key] is an array\n des[key] = src[key];\n }\n else {\n // src[key] and des[key] are both objects, merge them\n stack.push({ src: src[key], des: des[key] });\n }\n });\n }\n}\n\nexport { assign, createEmitter, deepCopy, escapeHtml, format, friendlyJSONstringify, generateCodeFrame, generateFormatCacheKey, getGlobalThis, hasOwn, inBrowser, isArray, isBoolean, isDate, isEmptyObject, isFunction, isNumber, isObject, isPlainObject, isPromise, isRegExp, isString, isSymbol, join, makeSymbol, mark, measure, objectToString, toDisplayString, toTypeString, warn, warnOnce };\n"],"names":["inBrowser","mark","measure","perf","tag","name","startTag","endTag","RE_ARGS","format$1","message","args","isObject","match","identifier","generateFormatCacheKey","locale","key","source","friendlyJSONstringify","json","isNumber","val","isDate","toTypeString","isRegExp","isEmptyObject","isPlainObject","assign","escapeHtml","rawText","isArray","isFunction","isString","isBoolean","isPromise","objectToString","value","proto","toDisplayString","join","items","separator","str","item","index","RANGE","generateCodeFrame","start","end","lines","count","res","i","j","line","lineLength","pad","length","warn","msg","err","hasWarned","warnOnce","createPosition","column","offset","createLocation","CompileErrorCodes","COMPILE_ERROR_CODES_EXTEND_POINT","errorMessages$1","createCompileError","code","loc","options","domain","messages","error","defaultOnError","RE_HTML_TAG","detectHtmlTag","CHAR_SP","CHAR_CR","CHAR_LF","CHAR_LS","CHAR_PS","createScanner","_buf","_index","_line","_column","_peekOffset","isCRLF","isLF","isPS","isLS","isLineEnd","peekOffset","charAt","currentChar","currentPeek","next","peek","reset","resetPeek","skipToPeek","target","EOF","DOT","LITERAL_DELIMITER","ERROR_DOMAIN$3","createTokenizer","location","_scnr","currentOffset","currentPosition","_initLoc","_initOffset","_context","context","onError","emitError","pos","ctx","getToken","type","token","getEndToken","eat","scnr","ch","peekSpaces","buf","skipSpaces","isIdentifierStart","cc","isNumberStart","isNamedIdentifierStart","currentType","ret","isListIdentifierStart","isLiteralStart","isLinkedDotStart","isLinkedModifierStart","isLinkedDelimiterStart","isLinkedReferStart","fn","isTextStart","isPluralStart","hasSpace","prev","takeChar","isIdentifier","takeIdentifierChar","isNamedIdentifier","takeNamedIdentifierChar","isDigit","takeDigit","isHexDigit","takeHexDigit","getDigits","num","readText","readNamedIdentifier","readListIdentifier","isLiteral","readLiteral","literal","readEscapeSequence","current","readUnicodeEscapeSequence","unicode","digits","sequence","isInvalidIdentifier","readInvalidIdentifier","identifiers","readLinkedModifier","readLinkedRefer","readPlural","plural","readTokenInPlaceholder","readTokenInLinked","validNamedIdentifier","validListIdentifier","validLiteral","readToken","nextToken","startLoc","endLoc","ERROR_DOMAIN$2","KNOWN_ESCAPES","fromEscapeSequence","codePoint4","codePoint6","codePoint","createParser","tokenzer","startNode","node","endNode","parseText","tokenizer","parseList","parseNamed","parseLiteral","parseLinkedModifier","getTokenCaption","parseLinkedKey","parseLinked","linkedNode","parsed","nextContext","emptyLinkedKeyNode","parseMessage","startOffset","endOffset","parsePlural","msgNode","hasEmptyMessage","parseResource","parse","createTransformer","ast","traverseNodes","nodes","transformer","traverseNode","transform","optimize","body","optimizeMessageNode","c","values","ERROR_DOMAIN$1","minify","resource","cases","valueNode","linked","list","named","ERROR_DOMAIN","createCodeGenerator","sourceMap","filename","breakLineCode","_needIndent","push","_newline","n","withBreakLine","_breakLineCode","indent","withNewLine","level","deindent","newline","generateLinkedNode","generator","helper","generateNode","generateMessageNode","needIndent","generatePluralNode","generateResource","generate","mode","helpers","s","map","baseCompile$1","assignedOptions","jit","enalbeMinify","enambeOptimize","format","formatParts","formatMessageParts","_static","acm","formatMessagePart","text","modifier","linkedKey","linkedModifier","WARN_MESSAGE","checkHtmlMessage","warnHtmlMessage","defaultOnCacheKey","compileCache","clearCompileCache","isMessageAST","baseCompile","detectError","compile","cacheKey","cached","devtools","setDevToolsHook","hook","getDevToolsHook","initI18nDevTools","i18n","version","meta","translateDevTools","createDevToolsHook","payloads","CoreErrorCodes","CORE_ERROR_CODES_EXTEND_POINT","createCoreError","errorMessages","getLocale","resolveLocale","_resolveLocale","resolve","fallbackWithSimple","fallback","fallbackWithLocaleChain","startLocale","DEFAULT_LOCALE","chain","block","appendBlockToChain","defaults","blocks","follow","appendLocaleToChain","tokens","appendItemToChain","pathStateMachine","literalValueRE","exp","stripQuotes","a","b","getPathCharType","formatSubPath","path","trimmed","keys","subPathDepth","newChar","transition","action","typeMap","actions","maybeUnescapeQuote","nextChar","cache","resolveWithKeyValue","obj","resolveValue","hit","len","last","CoreWarnCodes","CORE_WARN_CODES_EXTEND_POINT","warnMessages","getWarnMessage","VERSION","NOT_REOSLVED","MISSING_RESOLVE_VALUE","capitalize","getDefaultLinkedModifiers","_compiler","registerMessageCompiler","compiler","_resolver","registerMessageResolver","resolver","_fallbacker","registerLocaleFallbacker","fallbacker","_additionalMeta","setAdditionalMeta","getAdditionalMeta","_fallbackContext","setFallbackContext","getFallbackContext","_cid","createCoreContext","onWarn","_locale","fallbackLocale","datetimeFormats","numberFormats","modifiers","pluralRules","missing","missingWarn","fallbackWarn","fallbackFormat","unresolving","postTranslation","processor","escapeParameter","messageCompiler","messageResolver","localeFallbacker","fallbackContext","internalOptions","__datetimeFormatters","__numberFormatters","__meta","isTranslateFallbackWarn","isTranslateMissingWarn","handleMissing","emitter","updateFallbackLocale","isAlmostSameLocale","compareLocale","isImplicitFallback","targetLocale","locales","intlDefined","Availabilities","datetime","overrides","parseDateTimeArgs","part","datetimeFormat","from","to","id","formatter","DATETIME_FORMAT_OPTIONS_KEYS","arg1","arg2","arg3","arg4","matches","dateTime","e","clearDateTimeFormat","number","parseNumberArgs","numberFormat","NUMBER_FORMAT_OPTIONS_KEYS","clearNumberFormat","DEFAULT_MODIFIER","DEFAULT_MESSAGE","DEFAULT_MESSAGE_DATA_TYPE","DEFAULT_NORMALIZE","DEFAULT_INTERPOLATE","pluralDefault","choice","choicesLength","getPluralIndex","normalizeNamed","pluralIndex","props","createMessageContext","pluralRule","orgPluralRule","_list","_named","useLinked","_modifier","normalize","interpolate","NOOP_MESSAGE_FUNCTION","isMessageFunction","translate","parseTranslateArgs","resolvedMessage","defaultMsgOrKey","enableDefaultMsg","escapeParams","formatScope","resolveMessageFormat","cacheBaseKey","occurred","compileMessageFormat","ctxOptions","getMessageContextOptions","msgContext","messaged","evaluateMessage","missingRet","getCompileContext","msgCtx","_source","getSourceForCodeFrame","codeFrame","makeSymbol","shareable","_globalThis","getGlobalThis","hasOwnProperty","hasOwn","isSymbol","createEmitter","events","event","handler","handlers","payload","isNotObjectOrIsArray","deepCopy","src","des","stack"],"mappings":"wpBAAA;AAAA;AAAA;AAAA;AAAA,IASA,MAAMA,GAAY,OAAO,OAAW,IACpC,IAAIC,EACAC,GACJ,CACI,MAAMC,EAAOH,IAAa,OAAO,YAC7BG,GACAA,EAAK,MACLA,EAAK,SACLA,EAAK,YAELA,EAAK,gBACLF,EAAQG,GAAQ,CACZD,EAAK,KAAKC,CAAG,CACzB,EACQF,GAAU,CAACG,EAAMC,EAAUC,IAAW,CAClCJ,EAAK,QAAQE,EAAMC,EAAUC,CAAM,EACnCJ,EAAK,WAAWG,CAAQ,EACxBH,EAAK,WAAWI,CAAM,CAClC,EAEA,CACA,MAAMC,GAAU,sBAEhB,SAASC,GAASC,KAAYC,EAAM,CAChC,OAAIA,EAAK,SAAW,GAAKC,EAASD,EAAK,CAAC,CAAC,IACrCA,EAAOA,EAAK,CAAC,IAEb,CAACA,GAAQ,CAACA,EAAK,kBACfA,EAAO,CAAA,GAEJD,EAAQ,QAAQF,GAAS,CAACK,EAAOC,IAC7BH,EAAK,eAAeG,CAAU,EAAIH,EAAKG,CAAU,EAAI,EAC/D,CACL,CACA,MAAMC,GAAyB,CAACC,EAAQC,EAAKC,IAAWC,GAAsB,CAAE,EAAGH,EAAQ,EAAGC,EAAK,EAAGC,CAAQ,CAAA,EACxGC,GAAyBC,GAAS,KAAK,UAAUA,CAAI,EACtD,QAAQ,UAAW,SAAS,EAC5B,QAAQ,UAAW,SAAS,EAC5B,QAAQ,UAAW,SAAS,EAC3BC,EAAYC,GAAQ,OAAOA,GAAQ,UAAY,SAASA,CAAG,EAC3DC,GAAUD,GAAQE,GAAaF,CAAG,IAAM,gBACxCG,GAAYH,GAAQE,GAAaF,CAAG,IAAM,kBAC1CI,GAAiBJ,GAAQK,EAAcL,CAAG,GAAK,OAAO,KAAKA,CAAG,EAAE,SAAW,EAC3EM,GAAS,OAAO,OACtB,SAASC,GAAWC,EAAS,CACzB,OAAOA,EACF,QAAQ,KAAM,MAAM,EACpB,QAAQ,KAAM,MAAM,EACpB,QAAQ,KAAM,QAAQ,EACtB,QAAQ,KAAM,QAAQ,CAC/B,CASA,MAAMC,EAAU,MAAM,QAChBC,EAAcV,GAAQ,OAAOA,GAAQ,WACrCW,EAAYX,GAAQ,OAAOA,GAAQ,SACnCY,EAAaZ,GAAQ,OAAOA,GAAQ,UAEpCV,EAAYU,GAAQA,IAAQ,MAAQ,OAAOA,GAAQ,SAEnDa,GAAab,GACRV,EAASU,CAAG,GAAKU,EAAWV,EAAI,IAAI,GAAKU,EAAWV,EAAI,KAAK,EAElEc,GAAiB,OAAO,UAAU,SAClCZ,GAAgBa,GAAUD,GAAe,KAAKC,CAAK,EACnDV,EAAiBL,GAAQ,CAC3B,GAAI,CAACV,EAASU,CAAG,EACb,MAAO,GACX,MAAMgB,EAAQ,OAAO,eAAehB,CAAG,EACvC,OAAOgB,IAAU,MAAQA,EAAM,cAAgB,MACnD,EAEMC,GAAmBjB,GACdA,GAAO,KACR,GACAS,EAAQT,CAAG,GAAMK,EAAcL,CAAG,GAAKA,EAAI,WAAac,GACpD,KAAK,UAAUd,EAAK,KAAM,CAAC,EAC3B,OAAOA,CAAG,EAExB,SAASkB,GAAKC,EAAOC,EAAY,GAAI,CACjC,OAAOD,EAAM,OAAO,CAACE,EAAKC,EAAMC,IAAWA,IAAU,EAAIF,EAAMC,EAAOD,EAAMD,EAAYE,EAAO,EAAE,CACrG,CACA,MAAME,GAAQ,EACd,SAASC,GAAkB7B,EAAQ8B,EAAQ,EAAGC,EAAM/B,EAAO,OAAQ,CAC/D,MAAMgC,EAAQhC,EAAO,MAAM,OAAO,EAClC,IAAIiC,EAAQ,EACZ,MAAMC,EAAM,CAAA,EACZ,QAASC,EAAI,EAAGA,EAAIH,EAAM,OAAQG,IAE9B,GADAF,GAASD,EAAMG,CAAC,EAAE,OAAS,EACvBF,GAASH,EAAO,CAChB,QAASM,EAAID,EAAIP,GAAOQ,GAAKD,EAAIP,IAASG,EAAME,EAAOG,IAAK,CACxD,GAAIA,EAAI,GAAKA,GAAKJ,EAAM,OACpB,SACJ,MAAMK,EAAOD,EAAI,EACjBF,EAAI,KAAK,GAAG,OAAAG,GAAO,WAAI,OAAO,EAAI,OAAOA,CAAI,EAAE,MAAM,EAAC,OAAM,OAAAL,EAAMI,CAAC,EAAG,EACtE,MAAME,EAAaN,EAAMI,CAAC,EAAE,OAC5B,GAAIA,IAAMD,EAAG,CAET,MAAMI,EAAMT,GAASG,EAAQK,GAAc,EACrCE,EAAS,KAAK,IAAI,EAAGT,EAAME,EAAQK,EAAaC,EAAMR,EAAMD,CAAK,EACvEI,EAAI,KAAK,SAAW,IAAI,OAAOK,CAAG,EAAI,IAAI,OAAOC,CAAM,CAAC,CAC3D,SACQJ,EAAID,EAAG,CACZ,GAAIJ,EAAME,EAAO,CACb,MAAMO,EAAS,KAAK,IAAI,KAAK,IAAIT,EAAME,EAAOK,CAAU,EAAG,CAAC,EAC5DJ,EAAI,KAAK,SAAW,IAAI,OAAOM,CAAM,CAAC,CACzC,CACDP,GAASK,EAAa,CACzB,CACJ,CACD,KACH,CAEL,OAAOJ,EAAI,KAAK,IAAI,CACxB,CAEA,SAASO,GAAKC,EAAKC,EAAK,CAChB,OAAO,QAAY,MACnB,QAAQ,KAAK,aAAeD,CAAG,EAE3BC,GACA,QAAQ,KAAKA,EAAI,KAAK,EAGlC,CACA,MAAMC,GAAY,CAAA,EAClB,SAASC,GAASH,EAAK,CACdE,GAAUF,CAAG,IACdE,GAAUF,CAAG,EAAI,GACjBD,GAAKC,CAAG,EAEhB,CAEA,SAASI,GAAeT,EAAMU,EAAQC,EAAQ,CAC1C,MAAO,CAAE,KAAAX,EAAM,OAAAU,EAAQ,OAAAC,EAC3B,CACA,SAASC,GAAenB,EAAOC,EAAK/B,EAAQ,CAExC,MADY,CAAE,MAAA8B,EAAO,IAAAC,EAEzB,CAEA,MAAMmB,EAAoB,CAEtB,eAAgB,EAChB,6BAA8B,EAC9B,yCAA0C,EAC1C,wBAAyB,EACzB,gCAAiC,EACjC,yBAA0B,EAC1B,2BAA4B,EAC5B,kBAAmB,EACnB,2BAA4B,EAC5B,sBAAuB,GAEvB,6BAA8B,GAC9B,iCAAkC,GAClC,4BAA6B,GAC7B,4BAA6B,GAE7B,4BAA6B,GAE7B,6BAA8B,EAClC,EAIMC,GAAmC,GAEnCC,GAAkB,CAEpB,CAACF,EAAkB,cAAc,EAAG,wBACpC,CAACA,EAAkB,4BAA4B,EAAG,sCAClD,CAACA,EAAkB,wCAAwC,EAAG,2CAC9D,CAACA,EAAkB,uBAAuB,EAAG,iCAC7C,CAACA,EAAkB,+BAA+B,EAAG,uCACrD,CAACA,EAAkB,wBAAwB,EAAG,2BAC9C,CAACA,EAAkB,0BAA0B,EAAG,6BAChD,CAACA,EAAkB,iBAAiB,EAAG,oBACvC,CAACA,EAAkB,0BAA0B,EAAG,+BAChD,CAACA,EAAkB,qBAAqB,EAAG,wBAE3C,CAACA,EAAkB,4BAA4B,EAAG,4BAClD,CAACA,EAAkB,gCAAgC,EAAG,mCACtD,CAACA,EAAkB,2BAA2B,EAAG,8BACjD,CAACA,EAAkB,2BAA2B,EAAG,8CAEjD,CAACA,EAAkB,2BAA2B,EAAG,qCAEjD,CAACA,EAAkB,4BAA4B,EAAG,qCACtD,EACA,SAASG,GAAmBC,EAAMC,EAAKC,EAAU,CAAA,EAAI,CACjD,KAAM,CAAE,OAAAC,EAAQ,SAAAC,EAAU,KAAAjE,CAAI,EAAK+D,EAC7Bd,EAAMnD,IAAUmE,GAAYN,IAAiBE,CAAI,GAAK,GAAI,GAAI7D,GAAQ,CAAA,CAAG,EAEzEkE,EAAQ,IAAI,YAAY,OAAOjB,CAAG,CAAC,EACzC,OAAAiB,EAAM,KAAOL,EACTC,IACAI,EAAM,SAAWJ,GAErBI,EAAM,OAASF,EACRE,CACX,CAEA,SAASC,GAAeD,EAAO,CAC3B,MAAMA,CACV,CAGA,MAAME,GAAc,0BACdC,GAAiB9D,GAAW6D,GAAY,KAAK7D,CAAM,EAEnD+D,EAAU,IACVC,GAAU,KACVC,EAAU,KACVC,GAAU,SACVC,GAAU,SAChB,SAASC,GAAc3C,EAAK,CACxB,MAAM4C,EAAO5C,EACb,IAAI6C,EAAS,EACTC,EAAQ,EACRC,EAAU,EACVC,EAAc,EAClB,MAAMC,EAAU/C,GAAU0C,EAAK1C,CAAK,IAAMqC,IAAWK,EAAK1C,EAAQ,CAAC,IAAMsC,EACnEU,EAAQhD,GAAU0C,EAAK1C,CAAK,IAAMsC,EAClCW,EAAQjD,GAAU0C,EAAK1C,CAAK,IAAMwC,GAClCU,EAAQlD,GAAU0C,EAAK1C,CAAK,IAAMuC,GAClCY,EAAanD,GAAU+C,EAAO/C,CAAK,GAAKgD,EAAKhD,CAAK,GAAKiD,EAAKjD,CAAK,GAAKkD,EAAKlD,CAAK,EAChFA,EAAQ,IAAM2C,EACdjC,EAAO,IAAMkC,EACbxB,EAAS,IAAMyB,EACfO,EAAa,IAAMN,EACnBO,EAAUhC,GAAW0B,EAAO1B,CAAM,GAAK4B,EAAK5B,CAAM,GAAK6B,EAAK7B,CAAM,EAAIiB,EAAUI,EAAKrB,CAAM,EAC3FiC,EAAc,IAAMD,EAAOV,CAAM,EACjCY,EAAc,IAAMF,EAAOV,EAASG,CAAW,EACrD,SAASU,GAAO,CACZ,OAAAV,EAAc,EACVK,EAAUR,CAAM,IAChBC,IACAC,EAAU,GAEVE,EAAOJ,CAAM,GACbA,IAEJA,IACAE,IACOH,EAAKC,CAAM,CACrB,CACD,SAASc,GAAO,CACZ,OAAIV,EAAOJ,EAASG,CAAW,GAC3BA,IAEJA,IACOJ,EAAKC,EAASG,CAAW,CACnC,CACD,SAASY,GAAQ,CACbf,EAAS,EACTC,EAAQ,EACRC,EAAU,EACVC,EAAc,CACjB,CACD,SAASa,EAAUtC,EAAS,EAAG,CAC3ByB,EAAczB,CACjB,CACD,SAASuC,GAAa,CAClB,MAAMC,EAASlB,EAASG,EACxB,KAAOe,IAAWlB,GACda,IAEJV,EAAc,CACjB,CACD,MAAO,CACH,MAAA9C,EACA,KAAAU,EACA,OAAAU,EACA,WAAAgC,EACA,OAAAC,EACA,YAAAC,EACA,YAAAC,EACA,KAAAC,EACA,KAAAC,EACA,MAAAC,EACA,UAAAC,EACA,WAAAC,CACR,CACA,CAEA,MAAME,EAAM,OACNC,GAAM,IACNC,GAAoB,IACpBC,GAAiB,YACvB,SAASC,GAAgB7F,EAAQwD,EAAU,GAAI,CAC3C,MAAMsC,EAAWtC,EAAQ,WAAa,GAChCuC,EAAQ3B,GAAcpE,CAAM,EAC5BgG,EAAgB,IAAMD,EAAM,QAC5BE,EAAkB,IAAMnD,GAAeiD,EAAM,KAAI,EAAIA,EAAM,OAAQ,EAAEA,EAAM,MAAO,CAAA,EAClFG,EAAWD,IACXE,EAAcH,IACdI,EAAW,CACb,YAAa,GACb,OAAQD,EACR,SAAUD,EACV,OAAQA,EACR,SAAU,GACV,WAAYC,EACZ,aAAcD,EACd,WAAYA,EACZ,UAAW,EACX,SAAU,GACV,KAAM,EACd,EACUG,EAAU,IAAMD,EAChB,CAAE,QAAAE,CAAS,EAAG9C,EACpB,SAAS+C,EAAUjD,EAAMkD,EAAKxD,KAAWvD,EAAM,CAC3C,MAAMgH,EAAMJ,IAGZ,GAFAG,EAAI,QAAUxD,EACdwD,EAAI,QAAUxD,EACVsD,EAAS,CACT,MAAM/C,EAAMuC,EAAW7C,GAAewD,EAAI,SAAUD,CAAG,EAAI,KACrD7D,EAAMU,GAAmBC,EAAMC,EAAK,CACtC,OAAQqC,GACR,KAAAnG,CAChB,CAAa,EACD6G,EAAQ3D,CAAG,CACd,CACJ,CACD,SAAS+D,EAASL,EAASM,EAAMxF,EAAO,CACpCkF,EAAQ,OAASJ,IACjBI,EAAQ,YAAcM,EACtB,MAAMC,EAAQ,CAAE,KAAAD,GAChB,OAAIb,IACAc,EAAM,IAAM3D,GAAeoD,EAAQ,SAAUA,EAAQ,MAAM,GAE3DlF,GAAS,OACTyF,EAAM,MAAQzF,GAEXyF,CACV,CACD,MAAMC,EAAeR,GAAYK,EAASL,EAAS,EAAE,EACrD,SAASS,EAAIC,EAAMC,EAAI,CACnB,OAAID,EAAK,YAAa,IAAKC,GACvBD,EAAK,KAAI,EACFC,IAGPT,EAAUrD,EAAkB,eAAgB+C,EAAe,EAAI,EAAGe,CAAE,EAC7D,GAEd,CACD,SAASC,EAAWF,EAAM,CACtB,IAAIG,EAAM,GACV,KAAOH,EAAK,gBAAkBhD,GAAWgD,EAAK,YAAa,IAAK9C,GAC5DiD,GAAOH,EAAK,cACZA,EAAK,KAAI,EAEb,OAAOG,CACV,CACD,SAASC,EAAWJ,EAAM,CACtB,MAAMG,EAAMD,EAAWF,CAAI,EAC3B,OAAAA,EAAK,WAAU,EACRG,CACV,CACD,SAASE,EAAkBJ,EAAI,CAC3B,GAAIA,IAAOvB,EACP,MAAO,GAEX,MAAM4B,EAAKL,EAAG,WAAW,CAAC,EAC1B,OAASK,GAAM,IAAMA,GAAM,KACtBA,GAAM,IAAMA,GAAM,IACnBA,IAAO,EAEd,CACD,SAASC,EAAcN,EAAI,CACvB,GAAIA,IAAOvB,EACP,MAAO,GAEX,MAAM4B,EAAKL,EAAG,WAAW,CAAC,EAC1B,OAAOK,GAAM,IAAMA,GAAM,EAC5B,CACD,SAASE,EAAuBR,EAAMV,EAAS,CAC3C,KAAM,CAAE,YAAAmB,CAAa,EAAGnB,EACxB,GAAImB,IAAgB,EAChB,MAAO,GAEXP,EAAWF,CAAI,EACf,MAAMU,EAAML,EAAkBL,EAAK,YAAa,CAAA,EAChD,OAAAA,EAAK,UAAS,EACPU,CACV,CACD,SAASC,EAAsBX,EAAMV,EAAS,CAC1C,KAAM,CAAE,YAAAmB,CAAa,EAAGnB,EACxB,GAAImB,IAAgB,EAChB,MAAO,GAEXP,EAAWF,CAAI,EACf,MAAMC,EAAKD,EAAK,gBAAkB,IAAMA,EAAK,KAAM,EAAGA,EAAK,cACrDU,EAAMH,EAAcN,CAAE,EAC5B,OAAAD,EAAK,UAAS,EACPU,CACV,CACD,SAASE,EAAeZ,EAAMV,EAAS,CACnC,KAAM,CAAE,YAAAmB,CAAa,EAAGnB,EACxB,GAAImB,IAAgB,EAChB,MAAO,GAEXP,EAAWF,CAAI,EACf,MAAMU,EAAMV,EAAK,YAAW,IAAOpB,GACnC,OAAAoB,EAAK,UAAS,EACPU,CACV,CACD,SAASG,EAAiBb,EAAMV,EAAS,CACrC,KAAM,CAAE,YAAAmB,CAAa,EAAGnB,EACxB,GAAImB,IAAgB,EAChB,MAAO,GAEXP,EAAWF,CAAI,EACf,MAAMU,EAAMV,EAAK,YAAW,IAAO,IACnC,OAAAA,EAAK,UAAS,EACPU,CACV,CACD,SAASI,EAAsBd,EAAMV,EAAS,CAC1C,KAAM,CAAE,YAAAmB,CAAa,EAAGnB,EACxB,GAAImB,IAAgB,EAChB,MAAO,GAEXP,EAAWF,CAAI,EACf,MAAMU,EAAML,EAAkBL,EAAK,YAAa,CAAA,EAChD,OAAAA,EAAK,UAAS,EACPU,CACV,CACD,SAASK,EAAuBf,EAAMV,EAAS,CAC3C,KAAM,CAAE,YAAAmB,CAAa,EAAGnB,EACxB,GAAI,EAAEmB,IAAgB,GAClBA,IAAgB,IAChB,MAAO,GAEXP,EAAWF,CAAI,EACf,MAAMU,EAAMV,EAAK,YAAW,IAAO,IACnC,OAAAA,EAAK,UAAS,EACPU,CACV,CACD,SAASM,EAAmBhB,EAAMV,EAAS,CACvC,KAAM,CAAE,YAAAmB,CAAa,EAAGnB,EACxB,GAAImB,IAAgB,EAChB,MAAO,GAEX,MAAMQ,EAAK,IAAM,CACb,MAAMhB,EAAKD,EAAK,cAChB,OAAIC,IAAO,IACAI,EAAkBL,EAAK,KAAI,CAAE,EAE/BC,IAAO,KACZA,IAAO,KACPA,IAAO,KACPA,IAAO,KACPA,IAAOjD,GACP,CAACiD,EACM,GAEFA,IAAO/C,GACZ8C,EAAK,KAAI,EACFiB,EAAE,GAIFC,EAAYlB,EAAM,EAAK,CAE9C,EACcU,EAAMO,IACZ,OAAAjB,EAAK,UAAS,EACPU,CACV,CACD,SAASS,EAAcnB,EAAM,CACzBE,EAAWF,CAAI,EACf,MAAMU,EAAMV,EAAK,YAAW,IAAO,IACnC,OAAAA,EAAK,UAAS,EACPU,CACV,CACD,SAASQ,EAAYlB,EAAM1B,EAAQ,GAAM,CACrC,MAAM2C,EAAK,CAACG,EAAW,GAAOC,EAAO,KAAO,CACxC,MAAMpB,EAAKD,EAAK,cAChB,OAAIC,IAAO,KAGFA,IAAO,KAAoC,CAACA,EAF1CmB,EAKFnB,IAAO,IACL,EAAEoB,IAASrE,GAAWqE,IAASnE,GAEjC+C,IAAOjD,GACZgD,EAAK,KAAI,EACFiB,EAAG,GAAMjE,CAAO,GAElBiD,IAAO/C,GACZ8C,EAAK,KAAI,EACFiB,EAAG,GAAM/D,CAAO,GAGhB,EAEvB,EACcwD,EAAMO,IACZ,OAAA3C,GAAS0B,EAAK,YACPU,CACV,CACD,SAASY,EAAStB,EAAMiB,EAAI,CACxB,MAAMhB,EAAKD,EAAK,cAChB,OAAIC,IAAOvB,EACAA,EAEPuC,EAAGhB,CAAE,GACLD,EAAK,KAAI,EACFC,GAEJ,IACV,CACD,SAASsB,GAAatB,EAAI,CACtB,MAAMK,EAAKL,EAAG,WAAW,CAAC,EAC1B,OAASK,GAAM,IAAMA,GAAM,KACtBA,GAAM,IAAMA,GAAM,IAClBA,GAAM,IAAMA,GAAM,IACnBA,IAAO,IACPA,IAAO,EAEd,CACD,SAASkB,GAAmBxB,EAAM,CAC9B,OAAOsB,EAAStB,EAAMuB,EAAY,CACrC,CACD,SAASE,GAAkBxB,EAAI,CAC3B,MAAMK,EAAKL,EAAG,WAAW,CAAC,EAC1B,OAASK,GAAM,IAAMA,GAAM,KACtBA,GAAM,IAAMA,GAAM,IAClBA,GAAM,IAAMA,GAAM,IACnBA,IAAO,IACPA,IAAO,IACPA,IAAO,EAEd,CACD,SAASoB,GAAwB1B,EAAM,CACnC,OAAOsB,EAAStB,EAAMyB,EAAiB,CAC1C,CACD,SAASE,GAAQ1B,EAAI,CACjB,MAAMK,EAAKL,EAAG,WAAW,CAAC,EAC1B,OAAOK,GAAM,IAAMA,GAAM,EAC5B,CACD,SAASsB,GAAU5B,EAAM,CACrB,OAAOsB,EAAStB,EAAM2B,EAAO,CAChC,CACD,SAASE,GAAW5B,EAAI,CACpB,MAAMK,EAAKL,EAAG,WAAW,CAAC,EAC1B,OAASK,GAAM,IAAMA,GAAM,IACtBA,GAAM,IAAMA,GAAM,IAClBA,GAAM,IAAMA,GAAM,GAC1B,CACD,SAASwB,GAAa9B,EAAM,CACxB,OAAOsB,EAAStB,EAAM6B,EAAU,CACnC,CACD,SAASE,GAAU/B,EAAM,CACrB,IAAIC,EAAK,GACL+B,EAAM,GACV,KAAQ/B,EAAK2B,GAAU5B,CAAI,GACvBgC,GAAO/B,EAEX,OAAO+B,CACV,CACD,SAASC,GAASjC,EAAM,CACpB,IAAIG,EAAM,GACV,OAAa,CACT,MAAMF,EAAKD,EAAK,cAChB,GAAIC,IAAO,KACPA,IAAO,KACPA,IAAO,KACPA,IAAO,KACP,CAACA,EACD,MAEC,GAAIA,IAAOjD,GAAWiD,IAAO/C,EAC9B,GAAIgE,EAAYlB,CAAI,EAChBG,GAAOF,EACPD,EAAK,KAAI,MAER,IAAImB,EAAcnB,CAAI,EACvB,MAGAG,GAAOF,EACPD,EAAK,KAAI,OAIbG,GAAOF,EACPD,EAAK,KAAI,CAEhB,CACD,OAAOG,CACV,CACD,SAAS+B,GAAoBlC,EAAM,CAC/BI,EAAWJ,CAAI,EACf,IAAIC,EAAK,GACL7H,EAAO,GACX,KAAQ6H,EAAKyB,GAAwB1B,CAAI,GACrC5H,GAAQ6H,EAEZ,OAAID,EAAK,YAAa,IAAKtB,GACvBc,EAAUrD,EAAkB,2BAA4B+C,EAAiB,EAAE,CAAC,EAEzE9G,CACV,CACD,SAAS+J,GAAmBnC,EAAM,CAC9BI,EAAWJ,CAAI,EACf,IAAI5F,EAAQ,GACZ,OAAI4F,EAAK,YAAa,IAAK,KACvBA,EAAK,KAAI,EACT5F,GAAS,IAAI,OAAA2H,GAAU/B,CAAI,IAG3B5F,GAAS2H,GAAU/B,CAAI,EAEvBA,EAAK,YAAa,IAAKtB,GACvBc,EAAUrD,EAAkB,2BAA4B+C,EAAiB,EAAE,CAAC,EAEzE9E,CACV,CACD,SAASgI,GAAUnC,EAAI,CACnB,OAAOA,IAAOrB,IAAqBqB,IAAO/C,CAC7C,CACD,SAASmF,GAAYrC,EAAM,CACvBI,EAAWJ,CAAI,EAEfD,EAAIC,EAAM,GAAI,EACd,IAAIC,EAAK,GACLqC,EAAU,GACd,KAAQrC,EAAKqB,EAAStB,EAAMoC,EAAS,GAC7BnC,IAAO,KACPqC,GAAWC,GAAmBvC,CAAI,EAGlCsC,GAAWrC,EAGnB,MAAMuC,EAAUxC,EAAK,cACrB,OAAIwC,IAAYtF,GAAWsF,IAAY9D,GACnCc,EAAUrD,EAAkB,yCAA0C+C,EAAiB,EAAE,CAAC,EAEtFsD,IAAYtF,IACZ8C,EAAK,KAAI,EAETD,EAAIC,EAAM,GAAI,GAEXsC,IAGXvC,EAAIC,EAAM,GAAI,EACPsC,EACV,CACD,SAASC,GAAmBvC,EAAM,CAC9B,MAAMC,EAAKD,EAAK,cAChB,OAAQC,EAAE,CACN,IAAK,KACL,IAAK,IACD,OAAAD,EAAK,KAAI,EACF,KAAK,OAAAC,GAChB,IAAK,IACD,OAAOwC,GAA0BzC,EAAMC,EAAI,CAAC,EAChD,IAAK,IACD,OAAOwC,GAA0BzC,EAAMC,EAAI,CAAC,EAChD,QACI,OAAAT,EAAUrD,EAAkB,wBAAyB+C,EAAe,EAAI,EAAGe,CAAE,EACtE,EACd,CACJ,CACD,SAASwC,GAA0BzC,EAAM0C,EAASC,EAAQ,CACtD5C,EAAIC,EAAM0C,CAAO,EACjB,IAAIE,EAAW,GACf,QAASxH,EAAI,EAAGA,EAAIuH,EAAQvH,IAAK,CAC7B,MAAM6E,EAAK6B,GAAa9B,CAAI,EAC5B,GAAI,CAACC,EAAI,CACLT,EAAUrD,EAAkB,gCAAiC+C,EAAiB,EAAE,EAAG,KAAK,OAAAwD,GAAU,OAAAE,GAAW,OAAA5C,EAAK,YAAa,EAAE,EACjI,KACH,CACD4C,GAAY3C,CACf,CACD,MAAO,KAAK,OAAAyC,GAAU,OAAAE,EACzB,CACD,SAASC,GAAoB5C,EAAI,CAC7B,OAAQA,IAAO,KACXA,IAAO,KACPA,IAAOjD,GACPiD,IAAO/C,CACd,CACD,SAAS4F,GAAsB9C,EAAM,CACjCI,EAAWJ,CAAI,EACf,IAAIC,EAAK,GACL8C,EAAc,GAClB,KAAQ9C,EAAKqB,EAAStB,EAAM6C,EAAmB,GAC3CE,GAAe9C,EAEnB,OAAO8C,CACV,CACD,SAASC,GAAmBhD,EAAM,CAC9B,IAAIC,EAAK,GACL7H,EAAO,GACX,KAAQ6H,EAAKuB,GAAmBxB,CAAI,GAChC5H,GAAQ6H,EAEZ,OAAO7H,CACV,CACD,SAAS6K,GAAgBjD,EAAM,CAC3B,MAAMiB,EAAMd,GAAQ,CAChB,MAAMF,EAAKD,EAAK,cAChB,OAAIC,IAAO,KACPA,IAAO,KACPA,IAAO,KACPA,IAAO,KACPA,IAAO,KACP,CAACA,GAGIA,IAAOjD,EAFLmD,GAMPA,GAAOF,EACPD,EAAK,KAAI,EACFiB,EAAGd,CAAG,EAO7B,EACQ,OAAOc,EAAG,EAAE,CACf,CACD,SAASiC,GAAWlD,EAAM,CACtBI,EAAWJ,CAAI,EACf,MAAMmD,EAASpD,EAAIC,EAAM,GAAG,EAC5B,OAAAI,EAAWJ,CAAI,EACRmD,CACV,CAED,SAASC,GAAuBpD,EAAMV,EAAS,CAC3C,IAAIO,EAAQ,KAEZ,OADWG,EAAK,cACN,CACN,IAAK,IACD,OAAIV,EAAQ,WAAa,GACrBE,EAAUrD,EAAkB,2BAA4B+C,EAAiB,EAAE,CAAC,EAEhFc,EAAK,KAAI,EACTH,EAAQF,EAASL,EAAS,EAA8B,GAAG,EAC3Dc,EAAWJ,CAAI,EACfV,EAAQ,YACDO,EACX,IAAK,IACD,OAAIP,EAAQ,UAAY,GACpBA,EAAQ,cAAgB,GACxBE,EAAUrD,EAAkB,kBAAmB+C,EAAiB,EAAE,CAAC,EAEvEc,EAAK,KAAI,EACTH,EAAQF,EAASL,EAAS,EAA+B,GAAG,EAC5DA,EAAQ,YACRA,EAAQ,UAAY,GAAKc,EAAWJ,CAAI,EACpCV,EAAQ,UAAYA,EAAQ,YAAc,IAC1CA,EAAQ,SAAW,IAEhBO,EACX,IAAK,IACD,OAAIP,EAAQ,UAAY,GACpBE,EAAUrD,EAAkB,2BAA4B+C,EAAiB,EAAE,CAAC,EAEhFW,EAAQwD,GAAkBrD,EAAMV,CAAO,GAAKQ,EAAYR,CAAO,EAC/DA,EAAQ,UAAY,EACbO,EACX,QAAS,CACL,IAAIyD,EAAuB,GACvBC,EAAsB,GACtBC,EAAe,GACnB,GAAIrC,EAAcnB,CAAI,EAClB,OAAIV,EAAQ,UAAY,GACpBE,EAAUrD,EAAkB,2BAA4B+C,EAAiB,EAAE,CAAC,EAEhFW,EAAQF,EAASL,EAAS,EAAyB4D,GAAWlD,CAAI,CAAC,EAEnEV,EAAQ,UAAY,EACpBA,EAAQ,SAAW,GACZO,EAEX,GAAIP,EAAQ,UAAY,IACnBA,EAAQ,cAAgB,GACrBA,EAAQ,cAAgB,GACxBA,EAAQ,cAAgB,GAC5B,OAAAE,EAAUrD,EAAkB,2BAA4B+C,EAAiB,EAAE,CAAC,EAC5EI,EAAQ,UAAY,EACbmE,GAAUzD,EAAMV,CAAO,EAElC,GAAKgE,EAAuB9C,EAAuBR,EAAMV,CAAO,EAC5D,OAAAO,EAAQF,EAASL,EAAS,EAA0B4C,GAAoBlC,CAAI,CAAC,EAC7EI,EAAWJ,CAAI,EACRH,EAEX,GAAK0D,EAAsB5C,EAAsBX,EAAMV,CAAO,EAC1D,OAAAO,EAAQF,EAASL,EAAS,EAAyB6C,GAAmBnC,CAAI,CAAC,EAC3EI,EAAWJ,CAAI,EACRH,EAEX,GAAK2D,EAAe5C,EAAeZ,EAAMV,CAAO,EAC5C,OAAAO,EAAQF,EAASL,EAAS,EAA4B+C,GAAYrC,CAAI,CAAC,EACvEI,EAAWJ,CAAI,EACRH,EAEX,GAAI,CAACyD,GAAwB,CAACC,GAAuB,CAACC,EAElD,OAAA3D,EAAQF,EAASL,EAAS,GAAkCwD,GAAsB9C,CAAI,CAAC,EACvFR,EAAUrD,EAAkB,6BAA8B+C,EAAiB,EAAE,EAAGW,EAAM,KAAK,EAC3FO,EAAWJ,CAAI,EACRH,EAEX,KACH,CACJ,CACD,OAAOA,CACV,CAED,SAASwD,GAAkBrD,EAAMV,EAAS,CACtC,KAAM,CAAE,YAAAmB,CAAa,EAAGnB,EACxB,IAAIO,EAAQ,KACZ,MAAMI,EAAKD,EAAK,cAQhB,QAPKS,IAAgB,GACjBA,IAAgB,GAChBA,IAAgB,IAChBA,IAAgB,KACfR,IAAO/C,GAAW+C,IAAOjD,IAC1BwC,EAAUrD,EAAkB,sBAAuB+C,EAAiB,EAAE,CAAC,EAEnEe,EAAE,CACN,IAAK,IACD,OAAAD,EAAK,KAAI,EACTH,EAAQF,EAASL,EAAS,EAAgC,GAAG,EAC7DA,EAAQ,SAAW,GACZO,EACX,IAAK,IACD,OAAAO,EAAWJ,CAAI,EACfA,EAAK,KAAI,EACFL,EAASL,EAAS,EAA8B,GAAG,EAC9D,IAAK,IACD,OAAAc,EAAWJ,CAAI,EACfA,EAAK,KAAI,EACFL,EAASL,EAAS,EAAoC,GAAG,EACpE,QACI,OAAI6B,EAAcnB,CAAI,GAClBH,EAAQF,EAASL,EAAS,EAAyB4D,GAAWlD,CAAI,CAAC,EAEnEV,EAAQ,UAAY,EACpBA,EAAQ,SAAW,GACZO,GAEPgB,EAAiBb,EAAMV,CAAO,GAC9ByB,EAAuBf,EAAMV,CAAO,GACpCc,EAAWJ,CAAI,EACRqD,GAAkBrD,EAAMV,CAAO,GAEtCwB,EAAsBd,EAAMV,CAAO,GACnCc,EAAWJ,CAAI,EACRL,EAASL,EAAS,GAAoC0D,GAAmBhD,CAAI,CAAC,GAErFgB,EAAmBhB,EAAMV,CAAO,GAChCc,EAAWJ,CAAI,EACXC,IAAO,IAEAmD,GAAuBpD,EAAMV,CAAO,GAAKO,EAGzCF,EAASL,EAAS,GAA+B2D,GAAgBjD,CAAI,CAAC,IAGjFS,IAAgB,GAChBjB,EAAUrD,EAAkB,sBAAuB+C,EAAiB,EAAE,CAAC,EAE3EI,EAAQ,UAAY,EACpBA,EAAQ,SAAW,GACZmE,GAAUzD,EAAMV,CAAO,EACrC,CACJ,CAED,SAASmE,GAAUzD,EAAMV,EAAS,CAC9B,IAAIO,EAAQ,CAAE,KAAM,IACpB,GAAIP,EAAQ,UAAY,EACpB,OAAO8D,GAAuBpD,EAAMV,CAAO,GAAKQ,EAAYR,CAAO,EAEvE,GAAIA,EAAQ,SACR,OAAO+D,GAAkBrD,EAAMV,CAAO,GAAKQ,EAAYR,CAAO,EAGlE,OADWU,EAAK,cACN,CACN,IAAK,IACD,OAAOoD,GAAuBpD,EAAMV,CAAO,GAAKQ,EAAYR,CAAO,EACvE,IAAK,IACD,OAAAE,EAAUrD,EAAkB,yBAA0B+C,EAAiB,EAAE,CAAC,EAC1Ec,EAAK,KAAI,EACFL,EAASL,EAAS,EAA+B,GAAG,EAC/D,IAAK,IACD,OAAO+D,GAAkBrD,EAAMV,CAAO,GAAKQ,EAAYR,CAAO,EAClE,QAAS,CACL,GAAI6B,EAAcnB,CAAI,EAClB,OAAAH,EAAQF,EAASL,EAAS,EAAyB4D,GAAWlD,CAAI,CAAC,EAEnEV,EAAQ,UAAY,EACpBA,EAAQ,SAAW,GACZO,EAEX,GAAIqB,EAAYlB,CAAI,EAChB,OAAOL,EAASL,EAAS,EAAyB2C,GAASjC,CAAI,CAAC,EAEpE,KACH,CACJ,CACD,OAAOH,CACV,CACD,SAAS6D,IAAY,CACjB,KAAM,CAAE,YAAAjD,EAAa,OAAAxE,EAAQ,SAAA0H,EAAU,OAAAC,CAAM,EAAKvE,EAOlD,OANAA,EAAS,SAAWoB,EACpBpB,EAAS,WAAapD,EACtBoD,EAAS,aAAesE,EACxBtE,EAAS,WAAauE,EACtBvE,EAAS,OAASJ,IAClBI,EAAS,SAAWH,IAChBF,EAAM,YAAa,IAAKN,EACjBiB,EAASN,EAAU,IAEvBoE,GAAUzE,EAAOK,CAAQ,CACnC,CACD,MAAO,CACH,UAAAqE,GACA,cAAAzE,EACA,gBAAAC,EACA,QAAAI,CACR,CACA,CAEA,MAAMuE,GAAiB,SAEjBC,GAAgB,wDACtB,SAASC,GAAmBnL,EAAOoL,EAAYC,EAAY,CACvD,OAAQrL,EAAK,CACT,IAAK,OACD,MAAO,KAEX,IAAK,MAED,MAAO,IACX,QAAS,CACL,MAAMsL,EAAY,SAASF,GAAcC,EAAY,EAAE,EACvD,OAAIC,GAAa,OAAUA,GAAa,MAC7B,OAAO,cAAcA,CAAS,EAIlC,GACV,CACJ,CACL,CACA,SAASC,GAAa1H,EAAU,GAAI,CAChC,MAAMsC,EAAWtC,EAAQ,WAAa,GAChC,CAAE,QAAA8C,CAAS,EAAG9C,EACpB,SAAS+C,EAAU4E,EAAU7H,EAAMxB,EAAOkB,KAAWvD,EAAM,CACvD,MAAMsC,EAAMoJ,EAAS,kBAGrB,GAFApJ,EAAI,QAAUiB,EACdjB,EAAI,QAAUiB,EACVsD,EAAS,CACT,MAAM/C,EAAMuC,EAAW7C,GAAenB,EAAOC,CAAG,EAAI,KAC9CY,EAAMU,GAAmBC,EAAMC,EAAK,CACtC,OAAQqH,GACR,KAAAnL,CAChB,CAAa,EACD6G,EAAQ3D,CAAG,CACd,CACJ,CACD,SAASyI,EAAUzE,EAAM3D,EAAQO,EAAK,CAClC,MAAM8H,EAAO,CAAE,KAAA1E,GACf,OAAIb,IACAuF,EAAK,MAAQrI,EACbqI,EAAK,IAAMrI,EACXqI,EAAK,IAAM,CAAE,MAAO9H,EAAK,IAAKA,IAE3B8H,CACV,CACD,SAASC,EAAQD,EAAMrI,EAAQwD,EAAKG,EAAM,CAClCb,IACAuF,EAAK,IAAMrI,EACPqI,EAAK,MACLA,EAAK,IAAI,IAAM7E,GAG1B,CACD,SAAS+E,EAAUC,EAAWrK,EAAO,CACjC,MAAMkF,EAAUmF,EAAU,UACpBH,EAAOD,EAAU,EAAwB/E,EAAQ,OAAQA,EAAQ,QAAQ,EAC/E,OAAAgF,EAAK,MAAQlK,EACbmK,EAAQD,EAAMG,EAAU,cAAe,EAAEA,EAAU,gBAAe,CAAE,EAC7DH,CACV,CACD,SAASI,EAAUD,EAAW7J,EAAO,CACjC,MAAM0E,EAAUmF,EAAU,UACpB,CAAE,WAAYxI,EAAQ,aAAcO,CAAG,EAAK8C,EAC5CgF,EAAOD,EAAU,EAAwBpI,EAAQO,CAAG,EAC1D,OAAA8H,EAAK,MAAQ,SAAS1J,EAAO,EAAE,EAC/B6J,EAAU,UAAS,EACnBF,EAAQD,EAAMG,EAAU,cAAe,EAAEA,EAAU,gBAAe,CAAE,EAC7DH,CACV,CACD,SAASK,EAAWF,EAAWzL,EAAK,CAChC,MAAMsG,EAAUmF,EAAU,UACpB,CAAE,WAAYxI,EAAQ,aAAcO,CAAG,EAAK8C,EAC5CgF,EAAOD,EAAU,EAAyBpI,EAAQO,CAAG,EAC3D,OAAA8H,EAAK,IAAMtL,EACXyL,EAAU,UAAS,EACnBF,EAAQD,EAAMG,EAAU,cAAe,EAAEA,EAAU,gBAAe,CAAE,EAC7DH,CACV,CACD,SAASM,EAAaH,EAAWrK,EAAO,CACpC,MAAMkF,EAAUmF,EAAU,UACpB,CAAE,WAAYxI,EAAQ,aAAcO,CAAG,EAAK8C,EAC5CgF,EAAOD,EAAU,EAA2BpI,EAAQO,CAAG,EAC7D,OAAA8H,EAAK,MAAQlK,EAAM,QAAQ0J,GAAeC,EAAkB,EAC5DU,EAAU,UAAS,EACnBF,EAAQD,EAAMG,EAAU,cAAe,EAAEA,EAAU,gBAAe,CAAE,EAC7DH,CACV,CACD,SAASO,EAAoBJ,EAAW,CACpC,MAAM5E,EAAQ4E,EAAU,YAClBnF,EAAUmF,EAAU,UACpB,CAAE,WAAYxI,EAAQ,aAAcO,CAAG,EAAK8C,EAC5CgF,EAAOD,EAAU,EAAkCpI,EAAQO,CAAG,EACpE,OAAIqD,EAAM,OAAS,IAEfL,EAAUiF,EAAWtI,EAAkB,iCAAkCmD,EAAQ,aAAc,CAAC,EAChGgF,EAAK,MAAQ,GACbC,EAAQD,EAAMrI,EAAQO,CAAG,EAClB,CACH,iBAAkBqD,EAClB,KAAAyE,CAChB,IAGYzE,EAAM,OAAS,MACfL,EAAUiF,EAAWtI,EAAkB,4BAA6BmD,EAAQ,aAAc,EAAGwF,EAAgBjF,CAAK,CAAC,EAEvHyE,EAAK,MAAQzE,EAAM,OAAS,GAC5B0E,EAAQD,EAAMG,EAAU,cAAe,EAAEA,EAAU,gBAAe,CAAE,EAC7D,CACH,KAAAH,CACZ,EACK,CACD,SAASS,EAAeN,EAAWrK,EAAO,CACtC,MAAMkF,EAAUmF,EAAU,UACpBH,EAAOD,EAAU,EAA6B/E,EAAQ,OAAQA,EAAQ,QAAQ,EACpF,OAAAgF,EAAK,MAAQlK,EACbmK,EAAQD,EAAMG,EAAU,cAAe,EAAEA,EAAU,gBAAe,CAAE,EAC7DH,CACV,CACD,SAASU,EAAYP,EAAW,CAC5B,MAAMnF,EAAUmF,EAAU,UACpBQ,EAAaZ,EAAU,EAA0B/E,EAAQ,OAAQA,EAAQ,QAAQ,EACvF,IAAIO,EAAQ4E,EAAU,YACtB,GAAI5E,EAAM,OAAS,EAA8B,CAC7C,MAAMqF,EAASL,EAAoBJ,CAAS,EAC5CQ,EAAW,SAAWC,EAAO,KAC7BrF,EAAQqF,EAAO,kBAAoBT,EAAU,UAAS,CACzD,CAUD,OARI5E,EAAM,OAAS,GACfL,EAAUiF,EAAWtI,EAAkB,4BAA6BmD,EAAQ,aAAc,EAAGwF,EAAgBjF,CAAK,CAAC,EAEvHA,EAAQ4E,EAAU,YAEd5E,EAAM,OAAS,IACfA,EAAQ4E,EAAU,aAEd5E,EAAM,KAAI,CACd,IAAK,IACGA,EAAM,OAAS,MACfL,EAAUiF,EAAWtI,EAAkB,4BAA6BmD,EAAQ,aAAc,EAAGwF,EAAgBjF,CAAK,CAAC,EAEvHoF,EAAW,IAAMF,EAAeN,EAAW5E,EAAM,OAAS,EAAE,EAC5D,MACJ,IAAK,GACGA,EAAM,OAAS,MACfL,EAAUiF,EAAWtI,EAAkB,4BAA6BmD,EAAQ,aAAc,EAAGwF,EAAgBjF,CAAK,CAAC,EAEvHoF,EAAW,IAAMN,EAAWF,EAAW5E,EAAM,OAAS,EAAE,EACxD,MACJ,IAAK,GACGA,EAAM,OAAS,MACfL,EAAUiF,EAAWtI,EAAkB,4BAA6BmD,EAAQ,aAAc,EAAGwF,EAAgBjF,CAAK,CAAC,EAEvHoF,EAAW,IAAMP,EAAUD,EAAW5E,EAAM,OAAS,EAAE,EACvD,MACJ,IAAK,GACGA,EAAM,OAAS,MACfL,EAAUiF,EAAWtI,EAAkB,4BAA6BmD,EAAQ,aAAc,EAAGwF,EAAgBjF,CAAK,CAAC,EAEvHoF,EAAW,IAAML,EAAaH,EAAW5E,EAAM,OAAS,EAAE,EAC1D,MACJ,QAAS,CAELL,EAAUiF,EAAWtI,EAAkB,4BAA6BmD,EAAQ,aAAc,CAAC,EAC3F,MAAM6F,EAAcV,EAAU,UACxBW,EAAqBf,EAAU,EAA6Bc,EAAY,OAAQA,EAAY,QAAQ,EAC1G,OAAAC,EAAmB,MAAQ,GAC3Bb,EAAQa,EAAoBD,EAAY,OAAQA,EAAY,QAAQ,EACpEF,EAAW,IAAMG,EACjBb,EAAQU,EAAYE,EAAY,OAAQA,EAAY,QAAQ,EACrD,CACH,iBAAkBtF,EAClB,KAAMoF,CAC1B,CACa,CACJ,CACD,OAAAV,EAAQU,EAAYR,EAAU,cAAe,EAAEA,EAAU,gBAAe,CAAE,EACnE,CACH,KAAMQ,CAClB,CACK,CACD,SAASI,EAAaZ,EAAW,CAC7B,MAAMnF,EAAUmF,EAAU,UACpBa,EAAchG,EAAQ,cAAgB,EACtCmF,EAAU,cAAe,EACzBnF,EAAQ,OACRqE,EAAWrE,EAAQ,cAAgB,EACnCA,EAAQ,OACRA,EAAQ,SACRgF,EAAOD,EAAU,EAA2BiB,EAAa3B,CAAQ,EACvEW,EAAK,MAAQ,GACb,IAAIZ,EAAY,KAChB,EAAG,CACC,MAAM7D,EAAQ6D,GAAae,EAAU,UAAS,EAE9C,OADAf,EAAY,KACJ7D,EAAM,KAAI,CACd,IAAK,GACGA,EAAM,OAAS,MACfL,EAAUiF,EAAWtI,EAAkB,4BAA6BmD,EAAQ,aAAc,EAAGwF,EAAgBjF,CAAK,CAAC,EAEvHyE,EAAK,MAAM,KAAKE,EAAUC,EAAW5E,EAAM,OAAS,EAAE,CAAC,EACvD,MACJ,IAAK,GACGA,EAAM,OAAS,MACfL,EAAUiF,EAAWtI,EAAkB,4BAA6BmD,EAAQ,aAAc,EAAGwF,EAAgBjF,CAAK,CAAC,EAEvHyE,EAAK,MAAM,KAAKI,EAAUD,EAAW5E,EAAM,OAAS,EAAE,CAAC,EACvD,MACJ,IAAK,GACGA,EAAM,OAAS,MACfL,EAAUiF,EAAWtI,EAAkB,4BAA6BmD,EAAQ,aAAc,EAAGwF,EAAgBjF,CAAK,CAAC,EAEvHyE,EAAK,MAAM,KAAKK,EAAWF,EAAW5E,EAAM,OAAS,EAAE,CAAC,EACxD,MACJ,IAAK,GACGA,EAAM,OAAS,MACfL,EAAUiF,EAAWtI,EAAkB,4BAA6BmD,EAAQ,aAAc,EAAGwF,EAAgBjF,CAAK,CAAC,EAEvHyE,EAAK,MAAM,KAAKM,EAAaH,EAAW5E,EAAM,OAAS,EAAE,CAAC,EAC1D,MACJ,IAAK,GAAgC,CACjC,MAAMqF,EAASF,EAAYP,CAAS,EACpCH,EAAK,MAAM,KAAKY,EAAO,IAAI,EAC3BxB,EAAYwB,EAAO,kBAAoB,KACvC,KACH,CACJ,CACb,OAAiB5F,EAAQ,cAAgB,IAC7BA,EAAQ,cAAgB,GAE5B,MAAMiG,EAAYjG,EAAQ,cAAgB,EACpCA,EAAQ,WACRmF,EAAU,cAAa,EACvBb,EAAStE,EAAQ,cAAgB,EACjCA,EAAQ,WACRmF,EAAU,gBAAe,EAC/B,OAAAF,EAAQD,EAAMiB,EAAW3B,CAAM,EACxBU,CACV,CACD,SAASkB,EAAYf,EAAWxI,EAAQO,EAAKiJ,EAAS,CAClD,MAAMnG,EAAUmF,EAAU,UAC1B,IAAIiB,EAAkBD,EAAQ,MAAM,SAAW,EAC/C,MAAMnB,EAAOD,EAAU,EAA0BpI,EAAQO,CAAG,EAC5D8H,EAAK,MAAQ,GACbA,EAAK,MAAM,KAAKmB,CAAO,EACvB,EAAG,CACC,MAAM9J,EAAM0J,EAAaZ,CAAS,EAC7BiB,IACDA,EAAkB/J,EAAI,MAAM,SAAW,GAE3C2I,EAAK,MAAM,KAAK3I,CAAG,CAC/B,OAAiB2D,EAAQ,cAAgB,IACjC,OAAIoG,GACAlG,EAAUiF,EAAWtI,EAAkB,6BAA8BK,EAAK,CAAC,EAE/E+H,EAAQD,EAAMG,EAAU,cAAe,EAAEA,EAAU,gBAAe,CAAE,EAC7DH,CACV,CACD,SAASqB,EAAclB,EAAW,CAC9B,MAAMnF,EAAUmF,EAAU,UACpB,CAAE,OAAAxI,EAAQ,SAAA0H,CAAU,EAAGrE,EACvBmG,EAAUJ,EAAaZ,CAAS,EACtC,OAAInF,EAAQ,cAAgB,GACjBmG,EAGAD,EAAYf,EAAWxI,EAAQ0H,EAAU8B,CAAO,CAE9D,CACD,SAASG,EAAM3M,EAAQ,CACnB,MAAMwL,EAAY3F,GAAgB7F,EAAQU,GAAO,CAAE,EAAE8C,CAAO,CAAC,EACvD6C,EAAUmF,EAAU,UACpBH,EAAOD,EAAU,EAA4B/E,EAAQ,OAAQA,EAAQ,QAAQ,EACnF,OAAIP,GAAYuF,EAAK,MACjBA,EAAK,IAAI,OAASrL,GAEtBqL,EAAK,KAAOqB,EAAclB,CAAS,EAC/BhI,EAAQ,aACR6H,EAAK,SAAW7H,EAAQ,WAAWxD,CAAM,GAGzCqG,EAAQ,cAAgB,IACxBE,EAAUiF,EAAWtI,EAAkB,4BAA6BmD,EAAQ,aAAc,EAAGrG,EAAOqG,EAAQ,MAAM,GAAK,EAAE,EAE7HiF,EAAQD,EAAMG,EAAU,cAAe,EAAEA,EAAU,gBAAe,CAAE,EAC7DH,CACV,CACD,MAAO,CAAE,MAAAsB,CAAK,CAClB,CACA,SAASd,EAAgBjF,EAAO,CAC5B,GAAIA,EAAM,OAAS,GACf,MAAO,MAEX,MAAMzH,GAAQyH,EAAM,OAAS,IAAI,QAAQ,UAAW,KAAK,EACzD,OAAOzH,EAAK,OAAS,GAAKA,EAAK,MAAM,EAAG,CAAC,EAAI,IAAMA,CACvD,CAEA,SAASyN,GAAkBC,EAAKrJ,EAAU,CAAE,EAC1C,CACE,MAAM4C,EAAW,CACb,IAAAyG,EACA,QAAS,IAAI,GACrB,EAMI,MAAO,CAAE,QALO,IAAMzG,EAKJ,OAJFjH,IACZiH,EAAS,QAAQ,IAAIjH,CAAI,EAClBA,GAGf,CACA,SAAS2N,GAAcC,EAAOC,EAAa,CACvC,QAAS7K,EAAI,EAAGA,EAAI4K,EAAM,OAAQ5K,IAC9B8K,GAAaF,EAAM5K,CAAC,EAAG6K,CAAW,CAE1C,CACA,SAASC,GAAa5B,EAAM2B,EAAa,CAErC,OAAQ3B,EAAK,KAAI,CACb,IAAK,GACDyB,GAAczB,EAAK,MAAO2B,CAAW,EACrCA,EAAY,OAAO,UACnB,MACJ,IAAK,GACDF,GAAczB,EAAK,MAAO2B,CAAW,EACrC,MACJ,IAAK,GAA0B,CAE3BC,GADe5B,EACK,IAAK2B,CAAW,EACpCA,EAAY,OAAO,UACnBA,EAAY,OAAO,QACnB,KACH,CACD,IAAK,GACDA,EAAY,OAAO,eACnBA,EAAY,OAAO,QACnB,MACJ,IAAK,GACDA,EAAY,OAAO,eACnBA,EAAY,OAAO,SACnB,KACP,CAEL,CAEA,SAASE,GAAUL,EAAKrJ,EAAU,CAAE,EAClC,CACE,MAAMwJ,EAAcJ,GAAkBC,CAAG,EACzCG,EAAY,OAAO,aAEnBH,EAAI,MAAQI,GAAaJ,EAAI,KAAMG,CAAW,EAE9C,MAAM3G,EAAU2G,EAAY,UAC5BH,EAAI,QAAU,MAAM,KAAKxG,EAAQ,OAAO,CAC5C,CAEA,SAAS8G,GAASN,EAAK,CACnB,MAAMO,EAAOP,EAAI,KACjB,OAAIO,EAAK,OAAS,EACdC,GAAoBD,CAAI,EAGxBA,EAAK,MAAM,QAAQE,GAAKD,GAAoBC,CAAC,CAAC,EAE3CT,CACX,CACA,SAASQ,GAAoB7N,EAAS,CAClC,GAAIA,EAAQ,MAAM,SAAW,EAAG,CAC5B,MAAMkC,EAAOlC,EAAQ,MAAM,CAAC,GACxBkC,EAAK,OAAS,GAA0BA,EAAK,OAAS,KACtDlC,EAAQ,OAASkC,EAAK,MACtB,OAAOA,EAAK,MAEnB,KACI,CACD,MAAM6L,EAAS,CAAA,EACf,QAASpL,EAAI,EAAGA,EAAI3C,EAAQ,MAAM,OAAQ2C,IAAK,CAC3C,MAAMT,EAAOlC,EAAQ,MAAM2C,CAAC,EAI5B,GAHI,EAAET,EAAK,OAAS,GAA0BA,EAAK,OAAS,IAGxDA,EAAK,OAAS,KACd,MAEJ6L,EAAO,KAAK7L,EAAK,KAAK,CACzB,CACD,GAAI6L,EAAO,SAAW/N,EAAQ,MAAM,OAAQ,CACxCA,EAAQ,OAAS8B,GAAKiM,CAAM,EAC5B,QAASpL,EAAI,EAAGA,EAAI3C,EAAQ,MAAM,OAAQ2C,IAAK,CAC3C,MAAMT,EAAOlC,EAAQ,MAAM2C,CAAC,GACxBT,EAAK,OAAS,GAA0BA,EAAK,OAAS,IACtD,OAAOA,EAAK,KAEnB,CACJ,CACJ,CACL,CAEA,MAAM8L,GAAiB,WAEvB,SAASC,GAAOpC,EAAM,CAElB,OADAA,EAAK,EAAIA,EAAK,KACNA,EAAK,KAAI,CACb,IAAK,GAA4B,CAC7B,MAAMqC,EAAWrC,EACjBoC,GAAOC,EAAS,IAAI,EACpBA,EAAS,EAAIA,EAAS,KACtB,OAAOA,EAAS,KAChB,KACH,CACD,IAAK,GAA0B,CAC3B,MAAMxD,EAASmB,EACTsC,EAAQzD,EAAO,MACrB,QAAS/H,EAAI,EAAGA,EAAIwL,EAAM,OAAQxL,IAC9BsL,GAAOE,EAAMxL,CAAC,CAAC,EAEnB+H,EAAO,EAAIyD,EACX,OAAOzD,EAAO,MACd,KACH,CACD,IAAK,GAA2B,CAC5B,MAAM1K,EAAU6L,EACV9J,EAAQ/B,EAAQ,MACtB,QAAS2C,EAAI,EAAGA,EAAIZ,EAAM,OAAQY,IAC9BsL,GAAOlM,EAAMY,CAAC,CAAC,EAEnB3C,EAAQ,EAAI+B,EACZ,OAAO/B,EAAQ,MACXA,EAAQ,SACRA,EAAQ,EAAIA,EAAQ,OACpB,OAAOA,EAAQ,QAEnB,KACH,CACD,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GAA6B,CAC9B,MAAMoO,EAAYvC,EACduC,EAAU,QACVA,EAAU,EAAIA,EAAU,MACxB,OAAOA,EAAU,OAErB,KACH,CACD,IAAK,GAA0B,CAC3B,MAAMC,EAASxC,EACfoC,GAAOI,EAAO,GAAG,EACjBA,EAAO,EAAIA,EAAO,IAClB,OAAOA,EAAO,IACVA,EAAO,WACPJ,GAAOI,EAAO,QAAQ,EACtBA,EAAO,EAAIA,EAAO,SAClB,OAAOA,EAAO,UAElB,KACH,CACD,IAAK,GAAwB,CACzB,MAAMC,EAAOzC,EACbyC,EAAK,EAAIA,EAAK,MACd,OAAOA,EAAK,MACZ,KACH,CACD,IAAK,GAAyB,CAC1B,MAAMC,EAAQ1C,EACd0C,EAAM,EAAIA,EAAM,IAChB,OAAOA,EAAM,IACb,KACH,CACD,QAEQ,MAAM1K,GAAmBH,EAAkB,6BAA8B,KAAM,CAC3E,OAAQsK,GACR,KAAM,CAACnC,EAAK,IAAI,CACpC,CAAiB,CAEZ,CACD,OAAOA,EAAK,IAChB,CAKA,MAAM2C,GAAe,SACrB,SAASC,GAAoBpB,EAAKrJ,EAAS,CACvC,KAAM,CAAE,UAAA0K,EAAW,SAAAC,EAAU,cAAAC,EAAe,WAAYC,CAAa,EAAG7K,EAClEsC,EAAWtC,EAAQ,WAAa,GAChC4C,EAAW,CACb,SAAA+H,EACA,KAAM,GACN,OAAQ,EACR,KAAM,EACN,OAAQ,EACR,IAAK,OACL,cAAAC,EACA,WAAYC,EACZ,YAAa,CACrB,EACQvI,GAAY+G,EAAI,MAChBzG,EAAS,OAASyG,EAAI,IAAI,QAE9B,MAAMxG,EAAU,IAAMD,EACtB,SAASkI,EAAKhL,EAAM+H,EAAM,CACtBjF,EAAS,MAAQ9C,CACpB,CACD,SAASiL,EAASC,EAAGC,EAAgB,GAAM,CACvC,MAAMC,EAAiBD,EAAgBL,EAAgB,GACvDE,EAAKD,EAAcK,EAAiB,KAAK,OAAOF,CAAC,EAAIE,CAAc,CACtE,CACD,SAASC,EAAOC,EAAc,GAAM,CAChC,MAAMC,EAAQ,EAAEzI,EAAS,YACzBwI,GAAeL,EAASM,CAAK,CAChC,CACD,SAASC,EAASF,EAAc,GAAM,CAClC,MAAMC,EAAQ,EAAEzI,EAAS,YACzBwI,GAAeL,EAASM,CAAK,CAChC,CACD,SAASE,GAAU,CACfR,EAASnI,EAAS,WAAW,CAChC,CAGD,MAAO,CACH,QAAAC,EACA,KAAAiI,EACA,OAAAK,EACA,SAAAG,EACA,QAAAC,EACA,OARYhP,GAAQ,IAAI,OAAAA,GASxB,WARe,IAAMqG,EAAS,UAStC,CACA,CACA,SAAS4I,GAAmBC,EAAW5D,EAAM,CACzC,KAAM,CAAE,OAAA6D,CAAQ,EAAGD,EACnBA,EAAU,KAAK,GAAG,OAAAC,EAAO,QAAoC,EAAA,IAAG,EAChEC,GAAaF,EAAW5D,EAAK,GAAG,EAC5BA,EAAK,UACL4D,EAAU,KAAK,IAAI,EACnBE,GAAaF,EAAW5D,EAAK,QAAQ,EACrC4D,EAAU,KAAK,SAAS,GAGxBA,EAAU,KAAK,oBAAoB,EAEvCA,EAAU,KAAK,GAAG,CACtB,CACA,SAASG,GAAoBH,EAAW5D,EAAM,CAC1C,KAAM,CAAE,OAAA6D,EAAQ,WAAAG,CAAY,EAAGJ,EAC/BA,EAAU,KAAK,GAAG,OAAAC,EAAO,WAA0C,EAAA,KAAI,EACvED,EAAU,OAAOI,EAAU,CAAE,EAC7B,MAAM7M,EAAS6I,EAAK,MAAM,OAC1B,QAASlJ,EAAI,EAAGA,EAAIK,IAChB2M,GAAaF,EAAW5D,EAAK,MAAMlJ,CAAC,CAAC,EACjCA,IAAMK,EAAS,GAFKL,IAKxB8M,EAAU,KAAK,IAAI,EAEvBA,EAAU,SAASI,EAAU,CAAE,EAC/BJ,EAAU,KAAK,IAAI,CACvB,CACA,SAASK,GAAmBL,EAAW5D,EAAM,CACzC,KAAM,CAAE,OAAA6D,EAAQ,WAAAG,CAAY,EAAGJ,EAC/B,GAAI5D,EAAK,MAAM,OAAS,EAAG,CACvB4D,EAAU,KAAK,GAAG,OAAAC,EAAO,QAAoC,EAAA,KAAI,EACjED,EAAU,OAAOI,EAAU,CAAE,EAC7B,MAAM7M,EAAS6I,EAAK,MAAM,OAC1B,QAASlJ,EAAI,EAAGA,EAAIK,IAChB2M,GAAaF,EAAW5D,EAAK,MAAMlJ,CAAC,CAAC,EACjCA,IAAMK,EAAS,GAFKL,IAKxB8M,EAAU,KAAK,IAAI,EAEvBA,EAAU,SAASI,EAAU,CAAE,EAC/BJ,EAAU,KAAK,IAAI,CACtB,CACL,CACA,SAASM,GAAiBN,EAAW5D,EAAM,CACnCA,EAAK,KACL8D,GAAaF,EAAW5D,EAAK,IAAI,EAGjC4D,EAAU,KAAK,MAAM,CAE7B,CACA,SAASE,GAAaF,EAAW5D,EAAM,CACnC,KAAM,CAAE,OAAA6D,CAAQ,EAAGD,EACnB,OAAQ5D,EAAK,KAAI,CACb,IAAK,GACDkE,GAAiBN,EAAW5D,CAAI,EAChC,MACJ,IAAK,GACDiE,GAAmBL,EAAW5D,CAAI,EAClC,MACJ,IAAK,GACD+D,GAAoBH,EAAW5D,CAAI,EACnC,MACJ,IAAK,GACD2D,GAAmBC,EAAW5D,CAAI,EAClC,MACJ,IAAK,GACD4D,EAAU,KAAK,KAAK,UAAU5D,EAAK,KAAK,EAAGA,CAAI,EAC/C,MACJ,IAAK,GACD4D,EAAU,KAAK,KAAK,UAAU5D,EAAK,KAAK,EAAGA,CAAI,EAC/C,MACJ,IAAK,GACD4D,EAAU,KAAK,GAAG,OAAAC,EAAO,aAAa,EAAiC,KAAI,OAAAA,EAAO,MAAgC,EAAA,KAAI,OAAA7D,EAAK,MAAK,MAAMA,CAAI,EAC1I,MACJ,IAAK,GACD4D,EAAU,KAAK,GAAG,OAAAC,EAAO,eAA8C,KAAI,OAAAA,EAAO,OAAO,EAA2B,KAAI,YAAK,UAAU7D,EAAK,GAAG,EAAC,MAAMA,CAAI,EAC1J,MACJ,IAAK,GACD4D,EAAU,KAAK,KAAK,UAAU5D,EAAK,KAAK,EAAGA,CAAI,EAC/C,MACJ,IAAK,GACD4D,EAAU,KAAK,KAAK,UAAU5D,EAAK,KAAK,EAAGA,CAAI,EAC/C,MACJ,QAEQ,MAAMhI,GAAmBH,EAAkB,4BAA6B,KAAM,CAC1E,OAAQ8K,GACR,KAAM,CAAC3C,EAAK,IAAI,CACpC,CAAiB,CAEZ,CACL,CAEA,MAAMmE,GAAW,CAAC3C,EAAKrJ,EAAU,KAAO,CACpC,MAAMiM,EAAO1O,EAASyC,EAAQ,IAAI,EAAIA,EAAQ,KAAO,SAC/C2K,EAAWpN,EAASyC,EAAQ,QAAQ,EACpCA,EAAQ,SACR,eACA0K,EAAY,CAAC,CAAC1K,EAAQ,UAEtB4K,EAAgB5K,EAAQ,eAAiB,KACzCA,EAAQ,cACRiM,IAAS,QACL,IACA,KACJJ,EAAa7L,EAAQ,WAAaA,EAAQ,WAAaiM,IAAS,QAChEC,EAAU7C,EAAI,SAAW,GACzBoC,EAAYhB,GAAoBpB,EAAK,CACvC,KAAA4C,EACA,SAAAtB,EACA,UAAAD,EACA,cAAAE,EACA,WAAAiB,CACR,CAAK,EACDJ,EAAU,KAAKQ,IAAS,SAAW,2BAA6B,YAAY,EAC5ER,EAAU,OAAOI,CAAU,EACvBK,EAAQ,OAAS,IACjBT,EAAU,KAAK,WAAW3N,OAAAA,GAAKoO,EAAQ,IAAIC,GAAK,GAAG,OAAAA,EAAC,OAAM,OAAAA,EAAG,EAAG,IAAI,EAAC,WAAU,EAC/EV,EAAU,QAAO,GAErBA,EAAU,KAAK,SAAS,EACxBE,GAAaF,EAAWpC,CAAG,EAC3BoC,EAAU,SAASI,CAAU,EAC7BJ,EAAU,KAAK,GAAG,EAClB,OAAOpC,EAAI,QACX,KAAM,CAAE,KAAAvJ,EAAM,IAAAsM,CAAK,EAAGX,EAAU,QAAO,EACvC,MAAO,CACH,IAAApC,EACA,KAAAvJ,EACA,IAAKsM,EAAMA,EAAI,OAAQ,EAAG,MAClC,CACA,EAEA,SAASC,GAAc7P,EAAQwD,EAAU,GAAI,CACzC,MAAMsM,EAAkBpP,GAAO,CAAE,EAAE8C,CAAO,EACpCuM,EAAM,CAAC,CAACD,EAAgB,IACxBE,EAAe,CAAC,CAACF,EAAgB,OACjCG,EAAiBH,EAAgB,UAAY,KAAO,GAAOA,EAAgB,SAG3EjD,EADS3B,GAAa4E,CAAe,EACxB,MAAM9P,CAAM,EAC/B,OAAK+P,GAQDE,GAAkB9C,GAASN,CAAG,EAE9BmD,GAAgBvC,GAAOZ,CAAG,EAEnB,CAAE,IAAAA,EAAK,KAAM,MAVpBK,GAAUL,EAAKiD,CAAe,EAEvBN,GAAS3C,EAAKiD,CAAe,EAU5C,CAEA,SAASI,GAAOrD,EAAK,CAEjB,OADapG,GAAQ0J,GAAY1J,EAAKoG,CAAG,CAE7C,CACA,SAASsD,GAAY1J,EAAKoG,EAAK,CAC3B,MAAMO,EAAOP,EAAI,GAAKA,EAAI,KAC1B,IAAKO,EAAK,GAAKA,EAAK,QAAU,EAA0B,CACpD,MAAMlD,EAASkD,EACTO,EAAQzD,EAAO,GAAKA,EAAO,MACjC,OAAOzD,EAAI,OAAOkH,EAAM,OAAO,CAACjK,EAAU4J,IAAM,CAC5C,GAAG5J,EACH0M,GAAmB3J,EAAK6G,CAAC,CACrC,EAAW,CAAA,CAAE,CAAC,CACT,KAEG,QAAO8C,GAAmB3J,EAAK2G,CAAI,CAE3C,CACA,SAASgD,GAAmB3J,EAAK4E,EAAM,CACnC,MAAMgF,EAAUhF,EAAK,GAAKA,EAAK,OAC/B,GAAIgF,EACA,OAAO5J,EAAI,OAAS,OACd4J,EACA5J,EAAI,UAAU,CAAC4J,CAAO,CAAC,EAE5B,CACD,MAAM3M,GAAY2H,EAAK,GAAKA,EAAK,OAAO,OAAO,CAACiF,EAAKhD,IAAM,CAAC,GAAGgD,EAAKC,GAAkB9J,EAAK6G,CAAC,CAAC,EAAG,CAAA,CAAE,EAClG,OAAO7G,EAAI,UAAU/C,CAAQ,CAChC,CACL,CACA,SAAS6M,GAAkB9J,EAAK4E,EAAM,CAClC,MAAM1E,EAAO0E,EAAK,GAAKA,EAAK,KAC5B,OAAQ1E,EAAI,CACR,IAAK,GAAwB,CACzB,MAAM6J,EAAOnF,EACb,OAAQmF,EAAK,GAAKA,EAAK,KAC1B,CACD,IAAK,GAA2B,CAC5B,MAAMnH,EAAUgC,EAChB,OAAQhC,EAAQ,GAAKA,EAAQ,KAChC,CACD,IAAK,GAAyB,CAC1B,MAAM0E,EAAQ1C,EACd,OAAO5E,EAAI,YAAYA,EAAI,MAAMsH,EAAM,GAAKA,EAAM,GAAG,CAAC,CACzD,CACD,IAAK,GAAwB,CACzB,MAAMD,EAAOzC,EACb,OAAO5E,EAAI,YAAYA,EAAI,KAAKqH,EAAK,GAAK,KAAOA,EAAK,EAAIA,EAAK,KAAK,CAAC,CACxE,CACD,IAAK,GAA0B,CAC3B,MAAMD,EAASxC,EACToF,EAAW5C,EAAO,GAAKA,EAAO,SACpC,OAAOpH,EAAI,OAAO8J,GAAkB9J,EAAKoH,EAAO,GAAKA,EAAO,GAAG,EAAG4C,EAAWF,GAAkB9J,EAAKgK,CAAQ,EAAI,OAAWhK,EAAI,IAAI,CACtI,CACD,IAAK,GAA6B,CAC9B,MAAMiK,EAAYrF,EAClB,OAAQqF,EAAU,GAAKA,EAAU,KACpC,CACD,IAAK,GAAkC,CACnC,MAAMC,EAAiBtF,EACvB,OAAQsF,EAAe,GAAKA,EAAe,KAC9C,CACD,QACI,MAAM,IAAI,MAAM,+CAA+C,OAAAhK,EAAM,CAC5E,CACL,CAEA,MAAMiK,GAAe,uFACrB,SAASC,GAAiB7Q,EAAQ8Q,EAAiB,CAC3CA,GAAmBhN,GAAc9D,CAAM,GACvCyC,GAAKlD,GAASqR,GAAc,CAAE,OAAA5Q,CAAM,CAAE,CAAC,CAE/C,CACA,MAAM+Q,GAAqBvR,GAAYA,EACvC,IAAIwR,GAAe,OAAO,OAAO,IAAI,EACrC,SAASC,IAAoB,CACzBD,GAAe,OAAO,OAAO,IAAI,CACrC,CACA,MAAME,GAAgB9Q,GAAQV,EAASU,CAAG,IACrCA,EAAI,IAAM,GAAKA,EAAI,OAAS,KAC5B,MAAOA,GAAO,SAAUA,GAC7B,SAAS+Q,GAAY3R,EAASgE,EAAU,GAAI,CAExC,IAAI4N,EAAc,GAClB,MAAM9K,EAAU9C,EAAQ,SAAWI,GACnC,OAAAJ,EAAQ,QAAWb,GAAQ,CACvByO,EAAc,GACd9K,EAAQ3D,CAAG,CACnB,EAEW,CAAE,GAAGkN,GAAcrQ,EAASgE,CAAO,EAAG,YAAA4N,CAAW,CAC5D,CAEA,SAASC,GAAQ7R,EAAS6G,EAAS,CAC/B,GAAItF,EAASvB,CAAO,EAAG,CAEnB,MAAMsR,EAAkB9P,EAAUqF,EAAQ,eAAe,EACnDA,EAAQ,gBACR,GACNwK,GAAiBrR,EAASsR,CAAe,EAGzC,MAAMQ,GADajL,EAAQ,YAAc0K,IACbvR,CAAO,EAC7B+R,EAASP,GAAaM,CAAQ,EACpC,GAAIC,EACA,OAAOA,EAGX,KAAM,CAAE,IAAA1E,EAAK,YAAAuE,GAAgBD,GAAY3R,EAAS,CAC9C,GAAG6G,EACH,SAAU,GACV,IAAK,EACjB,CAAS,EAEK3D,EAAMwN,GAAOrD,CAAG,EAEtB,OAAQuE,EAEF1O,EADCsO,GAAaM,CAAQ,EAAI5O,CAEnC,KACI,CACD,GAAI,CAACwO,GAAa1R,CAAO,EACrBiD,OAAAA,GAAK,yCAAyC,OAAA4D,EAAQ,IAAG,yCAAwC,EACzF,IAAM7G,EAGlB,MAAM8R,EAAW9R,EAAQ,SACzB,GAAI8R,EAAU,CACV,MAAMC,EAASP,GAAaM,CAAQ,EACpC,OAAIC,IAIIP,GAAaM,CAAQ,EACzBpB,GAAO1Q,CAAO,EACrB,KAEG,QAAO0Q,GAAO1Q,CAAO,CAE5B,CACL,CAEA,IAAIgS,GAAW,KACf,SAASC,GAAgBC,EAAM,CAC3BF,GAAWE,CACf,CACA,SAASC,IAAkB,CACvB,OAAOH,EACX,CACA,SAASI,GAAiBC,EAAMC,EAASC,EAAM,CAE3CP,IACIA,GAAS,KAAK,YAAa,CACvB,UAAW,KAAK,IAAK,EACrB,KAAAK,EACA,QAAAC,EACA,KAAAC,CACZ,CAAS,CACT,CACA,MAAMC,GACSC,GAAmB,oBAAoB,EACtD,SAASA,GAAmBP,EAAM,CAC9B,OAAQQ,GAAaV,IAAYA,GAAS,KAAKE,EAAMQ,CAAQ,CACjE,CAEA,MAAMC,EAAiB,CACnB,iBAAkBhP,GAClB,sBAAuB,GACvB,0BAA2B,GAC3B,+BAAgC,GAChC,iCAAkC,GAClC,kCAAmC,GACnC,wBAAyB,EAC7B,EACMiP,GAAgC,GACtC,SAASC,EAAgB/O,EAAM,CAC3B,OAAOD,GAAmBC,EAAM,KAAM,CAAE,SAAUgP,EAAa,EACnE,CAEA,MAAMA,GAAgB,CAClB,CAACH,EAAe,gBAAgB,EAAG,oBACnC,CAACA,EAAe,qBAAqB,EAAG,2FAExC,CAACA,EAAe,yBAAyB,EAAG,uDAC5C,CAACA,EAAe,8BAA8B,EAAG,iCACjD,CAACA,EAAe,gCAAgC,EAAG,+BACnD,CAACA,EAAe,iCAAiC,EAAG,gCACpD,CAACA,EAAe,uBAAuB,EAAG,4BAC9C,EAGA,SAASI,GAAUlM,EAAS7C,EAAS,CACjC,OAAOA,EAAQ,QAAU,KACnBgP,GAAchP,EAAQ,MAAM,EAC5BgP,GAAcnM,EAAQ,MAAM,CACtC,CACA,IAAIoM,GAEJ,SAASD,GAAc1S,EAAQ,CAC3B,GAAIiB,EAASjB,CAAM,EACf,OAAOA,EAGP,GAAIgB,EAAWhB,CAAM,EAAG,CACpB,GAAIA,EAAO,cAAgB2S,IAAkB,KACzC,OAAOA,GAEN,GAAI3S,EAAO,YAAY,OAAS,WAAY,CAC7C,MAAM4S,EAAU5S,IAChB,GAAImB,GAAUyR,CAAO,EACjB,MAAML,EAAgBF,EAAe,gCAAgC,EAEzE,OAAQM,GAAiBC,CAC5B,KAEG,OAAML,EAAgBF,EAAe,iCAAiC,CAE7E,KAEG,OAAME,EAAgBF,EAAe,uBAAuB,CAGxE,CAiBA,SAASQ,GAAmBlM,EAAKmM,EAAU9Q,EAAO,CAE9C,MAAO,CAAC,GAAG,IAAI,IAAI,CACXA,EACA,GAAIjB,EAAQ+R,CAAQ,EACdA,EACAlT,EAASkT,CAAQ,EACb,OAAO,KAAKA,CAAQ,EACpB7R,EAAS6R,CAAQ,EACb,CAACA,CAAQ,EACT,CAAC9Q,CAAK,CACvB,CAAA,CAAC,CACV,CAiBA,SAAS+Q,GAAwBpM,EAAKmM,EAAU9Q,EAAO,CACnD,MAAMgR,EAAc/R,EAASe,CAAK,EAAIA,EAAQiR,GACxC1M,EAAUI,EACXJ,EAAQ,qBACTA,EAAQ,mBAAqB,IAAI,KAErC,IAAI2M,EAAQ3M,EAAQ,mBAAmB,IAAIyM,CAAW,EACtD,GAAI,CAACE,EAAO,CACRA,EAAQ,CAAA,EAER,IAAIC,EAAQ,CAACnR,CAAK,EAElB,KAAOjB,EAAQoS,CAAK,GAChBA,EAAQC,GAAmBF,EAAOC,EAAOL,CAAQ,EAIrD,MAAMO,EAAWtS,EAAQ+R,CAAQ,GAAK,CAACnS,EAAcmS,CAAQ,EACvDA,EACAA,EAAS,QACLA,EAAS,QACT,KAEVK,EAAQlS,EAASoS,CAAQ,EAAI,CAACA,CAAQ,EAAIA,EACtCtS,EAAQoS,CAAK,GACbC,GAAmBF,EAAOC,EAAO,EAAK,EAE1C5M,EAAQ,mBAAmB,IAAIyM,EAAaE,CAAK,CACpD,CACD,OAAOA,CACX,CACA,SAASE,GAAmBF,EAAOC,EAAOG,EAAQ,CAC9C,IAAIC,EAAS,GACb,QAAS,EAAI,EAAG,EAAIJ,EAAM,QAAUjS,EAAUqS,CAAM,EAAG,IAAK,CACxD,MAAMvT,EAASmT,EAAM,CAAC,EAClBlS,EAASjB,CAAM,IACfuT,EAASC,GAAoBN,EAAOC,EAAM,CAAC,EAAGG,CAAM,EAE3D,CACD,OAAOC,CACX,CACA,SAASC,GAAoBN,EAAOlT,EAAQsT,EAAQ,CAChD,IAAIC,EACJ,MAAME,EAASzT,EAAO,MAAM,GAAG,EAC/B,EAAG,CACC,MAAM0F,EAAS+N,EAAO,KAAK,GAAG,EAC9BF,EAASG,GAAkBR,EAAOxN,EAAQ4N,CAAM,EAChDG,EAAO,OAAO,GAAI,CAAC,CACtB,OAAQA,EAAO,QAAUF,IAAW,IACrC,OAAOA,CACX,CACA,SAASG,GAAkBR,EAAOxN,EAAQ4N,EAAQ,CAC9C,IAAIC,EAAS,GACb,GAAI,CAACL,EAAM,SAASxN,CAAM,IACtB6N,EAAS,GACL7N,GAAQ,CACR6N,EAAS7N,EAAOA,EAAO,OAAS,CAAC,IAAM,IACvC,MAAM1F,EAAS0F,EAAO,QAAQ,KAAM,EAAE,EACtCwN,EAAM,KAAKlT,CAAM,GACZe,EAAQuS,CAAM,GAAK3S,EAAc2S,CAAM,IACxCA,EAAOtT,CAAM,IAGbuT,EAASD,EAAOtT,CAAM,EAE7B,CAEL,OAAOuT,CACX,CAEA,MAAMI,GAAmB,CAAA,EACzBA,GAAiB,CAAC,EAA6B,CAC1C,EAAoC,CAAC,CAA2B,EAChE,EAAgC,CAAC,EAAyB,CAAuB,EACjF,IAAuC,CAAC,CAA2B,EACnE,EAAsC,CAAC,CAA0B,CACtE,EACAA,GAAiB,CAAC,EAAyB,CACtC,EAAoC,CAAC,CAAuB,EAC5D,IAA8B,CAAC,CAA4B,EAC3D,IAAuC,CAAC,CAA2B,EACnE,EAAsC,CAAC,CAA0B,CACtE,EACAA,GAAiB,CAAC,EAA8B,CAC3C,EAAoC,CAAC,CAA4B,EACjE,EAAgC,CAAC,EAAyB,CAAuB,EACjF,EAA+B,CAAC,EAAyB,CAAuB,CACrF,EACAA,GAAiB,CAAC,EAA0B,CACvC,EAAgC,CAAC,EAAyB,CAAuB,EACjF,EAA+B,CAAC,EAAyB,CAAuB,EAChF,EAAoC,CAAC,EAAwB,CAAqB,EAClF,IAA8B,CAAC,EAA6B,CAAqB,EACjF,IAAuC,CAAC,EAA4B,CAAqB,EACzF,EAAsC,CAAC,EAA2B,CAAqB,CAC5F,EACAA,GAAiB,CAAC,EAA6B,CAC1C,IAAuC,CAAC,EAAgC,CAAuB,EAC/F,IAAwC,CAAC,EAAgC,CAAuB,EAChG,IAAuC,CACpC,EACA,CACH,EACA,IAAwC,CAAC,EAAwB,CAA8B,EAC/F,EAAsC,EACtC,EAA+B,CAAC,EAA4B,CAAuB,CACxF,EACAA,GAAiB,CAAC,EAAiC,CAC9C,IAAuC,CAAC,EAA4B,CAAuB,EAC3F,EAAsC,EACtC,EAA+B,CAAC,EAAgC,CAAuB,CAC5F,EACAA,GAAiB,CAAC,EAAiC,CAC9C,IAAwC,CAAC,EAA4B,CAAuB,EAC5F,EAAsC,EACtC,EAA+B,CAAC,EAAgC,CAAuB,CAC5F,EAIA,MAAMC,GAAiB,kDACvB,SAASvK,GAAUwK,EAAK,CACpB,OAAOD,GAAe,KAAKC,CAAG,CAClC,CAIA,SAASC,GAAYnS,EAAK,CACtB,MAAMoS,EAAIpS,EAAI,WAAW,CAAC,EACpBqS,EAAIrS,EAAI,WAAWA,EAAI,OAAS,CAAC,EACvC,OAAOoS,IAAMC,IAAMD,IAAM,IAAQA,IAAM,IAAQpS,EAAI,MAAM,EAAG,EAAE,EAAIA,CACtE,CAIA,SAASsS,GAAgB/M,EAAI,CACzB,GAAwBA,GAAO,KAC3B,MAAO,IAGX,OADaA,EAAG,WAAW,CAAC,EAChB,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACD,OAAOA,EACX,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAO,IACX,IAAK,GACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,OACL,IAAK,MACL,IAAK,MACD,MAAO,GACd,CACD,MAAO,GACX,CAMA,SAASgN,GAAcC,EAAM,CACzB,MAAMC,EAAUD,EAAK,OAErB,OAAIA,EAAK,OAAO,CAAC,IAAM,KAAO,MAAM,SAASA,CAAI,CAAC,EACvC,GAEJ9K,GAAU+K,CAAO,EAClBN,GAAYM,CAAO,EACnB,IAAmCA,CAC7C,CAIA,SAASvH,GAAMsH,EAAM,CACjB,MAAME,EAAO,CAAA,EACb,IAAIxS,EAAQ,GACR8N,EAAO,EACP2E,EAAe,EACf9G,EACAvN,EACAsU,EACA1N,EACA2N,EACAC,EACAC,EACJ,MAAMC,EAAU,CAAA,EAChBA,EAAQ,CAAC,EAAyB,IAAM,CAChC1U,IAAQ,OACRA,EAAMsU,EAGNtU,GAAOsU,CAEnB,EACII,EAAQ,CAAC,EAAuB,IAAM,CAC9B1U,IAAQ,SACRoU,EAAK,KAAKpU,CAAG,EACbA,EAAM,OAElB,EACI0U,EAAQ,CAAC,EAAqC,IAAM,CAChDA,EAAQ,CAAC,IACTL,GACR,EACIK,EAAQ,CAAC,EAAgC,IAAM,CAC3C,GAAIL,EAAe,EACfA,IACA3E,EAAO,EACPgF,EAAQ,CAAC,QAER,CAMD,GALAL,EAAe,EACXrU,IAAQ,SAGZA,EAAMiU,GAAcjU,CAAG,EACnBA,IAAQ,IACR,MAAO,GAGP0U,EAAQ,CAAC,GAEhB,CACT,EACI,SAASC,GAAqB,CAC1B,MAAMC,EAAWV,EAAKtS,EAAQ,CAAC,EAC/B,GAAK8N,IAAS,GACVkF,IAAa,KACZlF,IAAS,GACNkF,IAAa,IACjB,OAAAhT,IACA0S,EAAU,KAAOM,EACjBF,EAAQ,CAAC,IACF,EAEd,CACD,KAAOhF,IAAS,MAGZ,GAFA9N,IACA2L,EAAI2G,EAAKtS,CAAK,EACV,EAAA2L,IAAM,MAAQoH,KAWlB,IARA/N,EAAOoN,GAAgBzG,CAAC,EACxBkH,EAAUf,GAAiBhE,CAAI,EAC/B6E,EAAaE,EAAQ7N,CAAI,GAAK6N,EAAQ,GAAiC,EAEnEF,IAAe,IAGnB7E,EAAO6E,EAAW,CAAC,EACfA,EAAW,CAAC,IAAM,SAClBC,EAASE,EAAQH,EAAW,CAAC,CAAC,EAC1BC,IACAF,EAAU/G,EACNiH,EAAQ,IAAK,MACb,OAKZ,GAAI9E,IAAS,EACT,OAAO0E,EAGnB,CAEA,MAAMS,GAAQ,IAAI,IAclB,SAASC,GAAoBC,EAAKb,EAAM,CACpC,OAAOvU,EAASoV,CAAG,EAAIA,EAAIb,CAAI,EAAI,IACvC,CAcA,SAASc,GAAaD,EAAKb,EAAM,CAE7B,GAAI,CAACvU,EAASoV,CAAG,EACb,OAAO,KAGX,IAAIE,EAAMJ,GAAM,IAAIX,CAAI,EAQxB,GAPKe,IACDA,EAAMrI,GAAMsH,CAAI,EACZe,GACAJ,GAAM,IAAIX,EAAMe,CAAG,GAIvB,CAACA,EACD,OAAO,KAGX,MAAMC,EAAMD,EAAI,OAChB,IAAIE,EAAOJ,EACP3S,EAAI,EACR,KAAOA,EAAI8S,GAAK,CACZ,MAAM7U,EAAM8U,EAAKF,EAAI7S,CAAC,CAAC,EAIvB,GAHI/B,IAAQ,QAGRU,EAAWoU,CAAI,EACf,OAAO,KAEXA,EAAO9U,EACP+B,GACH,CACD,OAAO+S,CACX,CAEA,MAAMC,EAAgB,CAClB,cAAe,EACf,sBAAuB,EACvB,qBAAsB,EACtB,0BAA2B,EAC3B,mBAAoB,EACpB,wBAAyB,EACzB,qCAAsC,CAC1C,EACMC,GAA+B,EAE/BC,GAAe,CACjB,CAACF,EAAc,aAAa,EAAG,uDAC/B,CAACA,EAAc,qBAAqB,EAAG,6DACvC,CAACA,EAAc,oBAAoB,EAAG,uEACtC,CAACA,EAAc,yBAAyB,EAAG,iEAC3C,CAACA,EAAc,kBAAkB,EAAG,uEACpC,CAACA,EAAc,uBAAuB,EAAG,mEACzC,CAACA,EAAc,oCAAoC,EAAG,+IAC1D,EACA,SAASG,EAAehS,KAAS7D,EAAM,CACnC,OAAOF,GAAS8V,GAAa/R,CAAI,EAAG,GAAG7D,CAAI,CAC/C,CAOA,MAAM8V,GAAU,SACVC,GAAe,GACfzC,GAAiB,QACjB0C,GAAwB,GACxBC,GAAcjU,GAAQ,GAAG,OAAAA,EAAI,OAAO,CAAC,EAAE,kBAAiB,GAAK,OAAAA,EAAI,OAAO,CAAC,GAC/E,SAASkU,IAA4B,CACjC,MAAO,CACH,MAAO,CAACvV,EAAKuG,IAEFA,IAAS,QAAU5F,EAASX,CAAG,EAChCA,EAAI,YAAa,EACjBuG,IAAS,SAAWjH,EAASU,CAAG,GAAK,gBAAiBA,EAClDA,EAAI,SAAS,YAAa,EAC1BA,EAEd,MAAO,CAACA,EAAKuG,IAEFA,IAAS,QAAU5F,EAASX,CAAG,EAChCA,EAAI,YAAa,EACjBuG,IAAS,SAAWjH,EAASU,CAAG,GAAK,gBAAiBA,EAClDA,EAAI,SAAS,YAAa,EAC1BA,EAEd,WAAY,CAACA,EAAKuG,IAENA,IAAS,QAAU5F,EAASX,CAAG,EACjCsV,GAAWtV,CAAG,EACduG,IAAS,SAAWjH,EAASU,CAAG,GAAK,gBAAiBA,EAClDsV,GAAWtV,EAAI,QAAQ,EACvBA,CAEtB,CACA,CACA,IAAIwV,GACJ,SAASC,GAAwBC,EAAU,CACvCF,GAAYE,CAChB,CACA,IAAIC,GAQJ,SAASC,GAAwBC,EAAU,CACvCF,GAAYE,CAChB,CACA,IAAIC,GAQJ,SAASC,GAAyBC,EAAY,CAC1CF,GAAcE,CAClB,CAEA,IAAIC,GAAkB,KAEtB,MAAMC,GAAqBvE,GAAS,CAChCsE,GAAkBtE,CACtB,EAEMwE,GAAoB,IAAMF,GAChC,IAAIG,GAAmB,KACvB,MAAMC,GAAsBpQ,GAAY,CACpCmQ,GAAmBnQ,CACvB,EACMqQ,GAAqB,IAAMF,GAEjC,IAAIG,GAAO,EACX,SAASC,GAAkBpT,EAAU,GAAI,CAErC,MAAMqT,EAAS/V,EAAW0C,EAAQ,MAAM,EAAIA,EAAQ,OAASf,GACvDqP,EAAU/Q,EAASyC,EAAQ,OAAO,EAAIA,EAAQ,QAAU+R,GACxDzV,EAASiB,EAASyC,EAAQ,MAAM,GAAK1C,EAAW0C,EAAQ,MAAM,EAC9DA,EAAQ,OACRuP,GACA+D,EAAUhW,EAAWhB,CAAM,EAAIiT,GAAiBjT,EAChDiX,EAAiBlW,EAAQ2C,EAAQ,cAAc,GACjD/C,EAAc+C,EAAQ,cAAc,GACpCzC,EAASyC,EAAQ,cAAc,GAC/BA,EAAQ,iBAAmB,GACzBA,EAAQ,eACRsT,EACApT,EAAWjD,EAAc+C,EAAQ,QAAQ,EACzCA,EAAQ,SACR,CAAE,CAACsT,CAAO,EAAG,CAAA,GACbE,EAAkBvW,EAAc+C,EAAQ,eAAe,EACnDA,EAAQ,gBACR,CAAE,CAACsT,CAAO,EAAG,EAAI,EAErBG,EAAgBxW,EAAc+C,EAAQ,aAAa,EAC/CA,EAAQ,cACR,CAAE,CAACsT,CAAO,EAAG,EAAI,EAErBI,EAAYxW,GAAO,GAAI8C,EAAQ,WAAa,CAAE,EAAEmS,GAAyB,CAAE,EAC3EwB,EAAc3T,EAAQ,aAAe,GACrC4T,EAAUtW,EAAW0C,EAAQ,OAAO,EAAIA,EAAQ,QAAU,KAC1D6T,EAAcrW,EAAUwC,EAAQ,WAAW,GAAKjD,GAASiD,EAAQ,WAAW,EAC5EA,EAAQ,YACR,GACA8T,EAAetW,EAAUwC,EAAQ,YAAY,GAAKjD,GAASiD,EAAQ,YAAY,EAC/EA,EAAQ,aACR,GACA+T,EAAiB,CAAC,CAAC/T,EAAQ,eAC3BgU,EAAc,CAAC,CAAChU,EAAQ,YACxBiU,EAAkB3W,EAAW0C,EAAQ,eAAe,EACpDA,EAAQ,gBACR,KACAkU,EAAYjX,EAAc+C,EAAQ,SAAS,EAAIA,EAAQ,UAAY,KACnEsN,EAAkB9P,EAAUwC,EAAQ,eAAe,EACnDA,EAAQ,gBACR,GACAmU,EAAkB,CAAC,CAACnU,EAAQ,gBAC5BoU,EAAkB9W,EAAW0C,EAAQ,eAAe,EACpDA,EAAQ,gBACRoS,GACF9U,EAAW0C,EAAQ,eAAe,GAClCX,GAASyS,EAAeH,EAAc,oCAAoC,CAAC,EAE/E,MAAM0C,EAAkB/W,EAAW0C,EAAQ,eAAe,EACpDA,EAAQ,gBACRuS,IAAalB,GACbiD,EAAmBhX,EAAW0C,EAAQ,gBAAgB,EACtDA,EAAQ,iBACR0S,IAAevD,GACfoF,EAAkBrY,EAAS8D,EAAQ,eAAe,EAClDA,EAAQ,gBACR,OAEAwU,EAAkBxU,EAClByU,EAAuBvY,EAASsY,EAAgB,oBAAoB,EAChEA,EAAgB,qBAChB,IAAI,IAERE,EAAqBxY,EAASsY,EAAgB,kBAAkB,EAC5DA,EAAgB,mBAChB,IAAI,IAERG,EAASzY,EAASsY,EAAgB,MAAM,EAAIA,EAAgB,OAAS,GAC3ErB,KACA,MAAMtQ,EAAU,CACZ,QAAAyL,EACA,IAAK6E,GACL,OAAA7W,EACA,eAAAiX,EACA,SAAArT,EACA,UAAAwT,EACA,YAAAC,EACA,QAAAC,EACA,YAAAC,EACA,aAAAC,EACA,eAAAC,EACA,YAAAC,EACA,gBAAAC,EACA,UAAAC,EACA,gBAAA5G,EACA,gBAAA6G,EACA,gBAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,gBAAAC,EACA,OAAAlB,EACA,OAAAsB,CACR,EAEQ,OAAA9R,EAAQ,gBAAkB2Q,EAC1B3Q,EAAQ,cAAgB4Q,EACxB5Q,EAAQ,qBAAuB4R,EAC/B5R,EAAQ,mBAAqB6R,EAI7B7R,EAAQ,YACJ2R,EAAgB,aAAe,KACzBA,EAAgB,YAChB,OAIVpG,GAAiBvL,EAASyL,EAASqG,CAAM,EAEtC9R,CACX,CAEA,SAAS+R,GAAwBxF,EAAU7S,EAAK,CAC5C,OAAO6S,aAAoB,OAASA,EAAS,KAAK7S,CAAG,EAAI6S,CAC7D,CAEA,SAASyF,GAAuBjB,EAASrX,EAAK,CAC1C,OAAOqX,aAAmB,OAASA,EAAQ,KAAKrX,CAAG,EAAIqX,CAC3D,CAEA,SAASkB,GAAcjS,EAAStG,EAAKD,EAAQuX,EAAa1Q,EAAM,CAC5D,KAAM,CAAE,QAAAyQ,EAAS,OAAAP,CAAQ,EAAGxQ,EAE5B,CACI,MAAMkS,EAAUlS,EAAQ,YACpBkS,GACAA,EAAQ,KAAK,UAAW,CACpB,OAAAzY,EACA,IAAAC,EACA,KAAA4G,EACA,QAAS,GAAG,OAAAA,EAAI,KAAI,OAAA5G,EACpC,CAAa,CAER,CACD,GAAIqX,IAAY,KAAM,CAClB,MAAM3P,EAAM2P,EAAQ/Q,EAASvG,EAAQC,EAAK4G,CAAI,EAC9C,OAAO5F,EAAS0G,CAAG,EAAIA,EAAM1H,CAChC,KAEG,QAAIsY,GAAuBhB,EAAatX,CAAG,GACvC8W,EAAOvB,EAAeH,EAAc,cAAe,CAAE,IAAApV,EAAK,OAAAD,CAAQ,CAAA,CAAC,EAEhEC,CAEf,CAEA,SAASyY,GAAqB/R,EAAK3G,EAAQ8S,EAAU,CACjD,MAAMvM,EAAUI,EAChBJ,EAAQ,mBAAqB,IAAI,IACjCI,EAAI,iBAAiBA,EAAKmM,EAAU9S,CAAM,CAC9C,CAEA,SAAS2Y,GAAmB3Y,EAAQ4Y,EAAe,CAC/C,OAAI5Y,IAAW4Y,EACJ,GACJ5Y,EAAO,MAAM,GAAG,EAAE,CAAC,IAAM4Y,EAAc,MAAM,GAAG,EAAE,CAAC,CAC9D,CAEA,SAASC,GAAmBC,EAAcC,EAAS,CAC/C,MAAMlX,EAAQkX,EAAQ,QAAQD,CAAY,EAC1C,GAAIjX,IAAU,GACV,MAAO,GAEX,QAASQ,EAAIR,EAAQ,EAAGQ,EAAI0W,EAAQ,OAAQ1W,IACxC,GAAIsW,GAAmBG,EAAcC,EAAQ1W,CAAC,CAAC,EAC3C,MAAO,GAGf,MAAO,EACX,CAGA,MAAM2W,GAAc,OAAO,KAAS,IAC9BC,GAAiB,CACnB,eAAgBD,IAAe,OAAO,KAAK,eAAmB,IAC9D,aAAcA,IAAe,OAAO,KAAK,aAAiB,GAC9D,EAGA,SAASE,GAAS3S,KAAY5G,EAAM,CAChC,KAAM,CAAE,gBAAAuX,EAAiB,YAAAQ,EAAa,eAAAT,EAAgB,OAAAF,EAAQ,iBAAAiB,CAAkB,EAAGzR,EAC7E,CAAE,qBAAA4R,CAAsB,EAAG5R,EACjC,GAAI,CAAC0S,GAAe,eAChB,OAAAlC,EAAOvB,EAAeH,EAAc,kBAAkB,CAAC,EAChDM,GAEX,KAAM,CAAC1V,EAAKoB,EAAOqC,EAASyV,CAAS,EAAIC,GAAkB,GAAGzZ,CAAI,EAC5D4X,EAAcrW,EAAUwC,EAAQ,WAAW,EAC3CA,EAAQ,YACR6C,EAAQ,YACRiR,EAAetW,EAAUwC,EAAQ,YAAY,EAC7CA,EAAQ,aACR6C,EAAQ,aACR8S,EAAO,CAAC,CAAC3V,EAAQ,KACjB1D,EAASyS,GAAUlM,EAAS7C,CAAO,EACnCqV,EAAUf,EAAiBzR,EACjC0Q,EAAgBjX,CAAM,EACtB,GAAI,CAACiB,EAAShB,CAAG,GAAKA,IAAQ,GAC1B,OAAO,IAAI,KAAK,eAAeD,EAAQmZ,CAAS,EAAE,OAAO9X,CAAK,EAGlE,IAAIiY,EAAiB,CAAA,EACjBR,EACA1I,EAAS,KACTmJ,EAAOvZ,EACPwZ,EAAK,KACT,MAAM3S,EAAO,kBACb,QAASxE,EAAI,EAAGA,EAAI0W,EAAQ,OAAQ1W,IAAK,CAUrC,GATAyW,EAAeU,EAAKT,EAAQ1W,CAAC,EACzBrC,IAAW8Y,GACXR,GAAwBd,EAAcvX,CAAG,GACzC8W,EAAOvB,EAAeH,EAAc,wBAAyB,CACzD,IAAApV,EACA,OAAQ6Y,CACX,CAAA,CAAC,EAGF9Y,IAAW8Y,EAAc,CACzB,MAAML,EAAUlS,EAAQ,YACpBkS,GACAA,EAAQ,KAAK,WAAY,CACrB,KAAA5R,EACA,IAAA5G,EACA,KAAAsZ,EACA,GAAAC,EACA,QAAS,GAAG,OAAA3S,EAAI,KAAI,OAAA5G,EACxC,CAAiB,CAER,CAID,GAHAqZ,EACIpC,EAAgB4B,CAAY,GAAK,GACrC1I,EAASkJ,EAAerZ,CAAG,EACvBU,EAAcyP,CAAM,EACpB,MACJoI,GAAcjS,EAAStG,EAAK6Y,EAAcvB,EAAa1Q,CAAI,EAC3D0S,EAAOC,CACV,CAED,GAAI,CAAC7Y,EAAcyP,CAAM,GAAK,CAACnP,EAAS6X,CAAY,EAChD,OAAOpB,EAAchC,GAAezV,EAExC,IAAIwZ,EAAK,GAAG,OAAAX,EAAY,MAAK,OAAA7Y,GACxBS,GAAcyY,CAAS,IACxBM,EAAK,GAAG,OAAAA,EAAE,MAAK,YAAK,UAAUN,CAAS,IAE3C,IAAIO,EAAYvB,EAAqB,IAAIsB,CAAE,EAC3C,OAAKC,IACDA,EAAY,IAAI,KAAK,eAAeZ,EAAclY,GAAO,GAAIwP,EAAQ+I,CAAS,CAAC,EAC/EhB,EAAqB,IAAIsB,EAAIC,CAAS,GAElCL,EAAiCK,EAAU,cAAcrY,CAAK,EAAvDqY,EAAU,OAAOrY,CAAK,CACzC,CAEA,MAAMsY,GAA+B,CACjC,gBACA,UACA,MACA,OACA,QACA,MACA,OACA,SACA,SACA,eACA,gBACA,SACA,WACA,YACA,YACA,WACA,YACA,kBACA,YACA,wBACJ,EAEA,SAASP,MAAqBzZ,EAAM,CAChC,KAAM,CAACia,EAAMC,EAAMC,EAAMC,CAAI,EAAIpa,EAC3B+D,EAAU,CAAA,EAChB,IAAIyV,EAAY,CAAA,EACZ9X,EACJ,GAAIJ,EAAS2Y,CAAI,EAAG,CAGhB,MAAMI,EAAUJ,EAAK,MAAM,gCAAgC,EAC3D,GAAI,CAACI,EACD,MAAMzH,EAAgBF,EAAe,yBAAyB,EAIlE,MAAM4H,EAAWD,EAAQ,CAAC,EACpBA,EAAQ,CAAC,EAAE,KAAI,EAAG,WAAW,GAAG,EAC5B,GAAG,OAAAA,EAAQ,CAAC,EAAE,KAAI,GAAK,OAAAA,EAAQ,CAAC,EAAE,KAAI,GACtC,GAAG,OAAAA,EAAQ,CAAC,EAAE,KAAM,EAAA,KAAI,OAAAA,EAAQ,CAAC,EAAE,KAAI,GAC3CA,EAAQ,CAAC,EAAE,OACjB3Y,EAAQ,IAAI,KAAK4Y,CAAQ,EACzB,GAAI,CAEA5Y,EAAM,YAAW,CACpB,OACK6Y,EAAA,CACF,MAAM3H,EAAgBF,EAAe,yBAAyB,CACjE,CACJ,SACQ9R,GAAOqZ,CAAI,EAAG,CACnB,GAAI,MAAMA,EAAK,QAAO,CAAE,EACpB,MAAMrH,EAAgBF,EAAe,qBAAqB,EAE9DhR,EAAQuY,CACX,SACQvZ,EAASuZ,CAAI,EAClBvY,EAAQuY,MAGR,OAAMrH,EAAgBF,EAAe,gBAAgB,EAEzD,OAAIpR,EAAS4Y,CAAI,EACbnW,EAAQ,IAAMmW,EAETlZ,EAAckZ,CAAI,GACvB,OAAO,KAAKA,CAAI,EAAE,QAAQ5Z,GAAO,CACzB0Z,GAA6B,SAAS1Z,CAAG,EACzCkZ,EAAUlZ,CAAG,EAAI4Z,EAAK5Z,CAAG,EAGzByD,EAAQzD,CAAG,EAAI4Z,EAAK5Z,CAAG,CAEvC,CAAS,EAEDgB,EAAS6Y,CAAI,EACbpW,EAAQ,OAASoW,EAEZnZ,EAAcmZ,CAAI,IACvBX,EAAYW,GAEZnZ,EAAcoZ,CAAI,IAClBZ,EAAYY,GAET,CAACrW,EAAQ,KAAO,GAAIrC,EAAOqC,EAASyV,CAAS,CACxD,CAEA,SAASgB,GAAoBxT,EAAK3G,EAAQoQ,EAAQ,CAC9C,MAAM7J,EAAUI,EAChB,UAAW1G,KAAOmQ,EAAQ,CACtB,MAAMqJ,EAAK,GAAG,OAAAzZ,EAAM,MAAK,OAAAC,GACpBsG,EAAQ,qBAAqB,IAAIkT,CAAE,GAGxClT,EAAQ,qBAAqB,OAAOkT,CAAE,CACzC,CACL,CAGA,SAASW,GAAO7T,KAAY5G,EAAM,CAC9B,KAAM,CAAE,cAAAwX,EAAe,YAAAO,EAAa,eAAAT,EAAgB,OAAAF,EAAQ,iBAAAiB,CAAkB,EAAGzR,EAC3E,CAAE,mBAAA6R,CAAoB,EAAG7R,EAC/B,GAAI,CAAC0S,GAAe,aAChB,OAAAlC,EAAOvB,EAAeH,EAAc,oBAAoB,CAAC,EAClDM,GAEX,KAAM,CAAC1V,EAAKoB,EAAOqC,EAASyV,CAAS,EAAIkB,GAAgB,GAAG1a,CAAI,EAC1D4X,EAAcrW,EAAUwC,EAAQ,WAAW,EAC3CA,EAAQ,YACR6C,EAAQ,YACRiR,EAAetW,EAAUwC,EAAQ,YAAY,EAC7CA,EAAQ,aACR6C,EAAQ,aACR8S,EAAO,CAAC,CAAC3V,EAAQ,KACjB1D,EAASyS,GAAUlM,EAAS7C,CAAO,EACnCqV,EAAUf,EAAiBzR,EACjC0Q,EAAgBjX,CAAM,EACtB,GAAI,CAACiB,EAAShB,CAAG,GAAKA,IAAQ,GAC1B,OAAO,IAAI,KAAK,aAAaD,EAAQmZ,CAAS,EAAE,OAAO9X,CAAK,EAGhE,IAAIiZ,EAAe,CAAA,EACfxB,EACA1I,EAAS,KACTmJ,EAAOvZ,EACPwZ,EAAK,KACT,MAAM3S,EAAO,gBACb,QAASxE,EAAI,EAAGA,EAAI0W,EAAQ,OAAQ1W,IAAK,CAUrC,GATAyW,EAAeU,EAAKT,EAAQ1W,CAAC,EACzBrC,IAAW8Y,GACXR,GAAwBd,EAAcvX,CAAG,GACzC8W,EAAOvB,EAAeH,EAAc,0BAA2B,CAC3D,IAAApV,EACA,OAAQ6Y,CACX,CAAA,CAAC,EAGF9Y,IAAW8Y,EAAc,CACzB,MAAML,EAAUlS,EAAQ,YACpBkS,GACAA,EAAQ,KAAK,WAAY,CACrB,KAAA5R,EACA,IAAA5G,EACA,KAAAsZ,EACA,GAAAC,EACA,QAAS,GAAG,OAAA3S,EAAI,KAAI,OAAA5G,EACxC,CAAiB,CAER,CAID,GAHAqa,EACInD,EAAc2B,CAAY,GAAK,GACnC1I,EAASkK,EAAara,CAAG,EACrBU,EAAcyP,CAAM,EACpB,MACJoI,GAAcjS,EAAStG,EAAK6Y,EAAcvB,EAAa1Q,CAAI,EAC3D0S,EAAOC,CACV,CAED,GAAI,CAAC7Y,EAAcyP,CAAM,GAAK,CAACnP,EAAS6X,CAAY,EAChD,OAAOpB,EAAchC,GAAezV,EAExC,IAAIwZ,EAAK,GAAG,OAAAX,EAAY,MAAK,OAAA7Y,GACxBS,GAAcyY,CAAS,IACxBM,EAAK,GAAG,OAAAA,EAAE,MAAK,YAAK,UAAUN,CAAS,IAE3C,IAAIO,EAAYtB,EAAmB,IAAIqB,CAAE,EACzC,OAAKC,IACDA,EAAY,IAAI,KAAK,aAAaZ,EAAclY,GAAO,GAAIwP,EAAQ+I,CAAS,CAAC,EAC7Ef,EAAmB,IAAIqB,EAAIC,CAAS,GAEhCL,EAAiCK,EAAU,cAAcrY,CAAK,EAAvDqY,EAAU,OAAOrY,CAAK,CACzC,CAEA,MAAMkZ,GAA6B,CAC/B,gBACA,QACA,WACA,kBACA,eACA,cACA,uBACA,wBACA,wBACA,2BACA,2BACA,iBACA,WACA,cACA,OACA,cACA,eACA,mBACA,oBACA,qBACJ,EAEA,SAASF,MAAmB1a,EAAM,CAC9B,KAAM,CAACia,EAAMC,EAAMC,EAAMC,CAAI,EAAIpa,EAC3B+D,EAAU,CAAA,EAChB,IAAIyV,EAAY,CAAA,EAChB,GAAI,CAAC9Y,EAASuZ,CAAI,EACd,MAAMrH,EAAgBF,EAAe,gBAAgB,EAEzD,MAAMhR,EAAQuY,EACd,OAAI3Y,EAAS4Y,CAAI,EACbnW,EAAQ,IAAMmW,EAETlZ,EAAckZ,CAAI,GACvB,OAAO,KAAKA,CAAI,EAAE,QAAQ5Z,GAAO,CACzBsa,GAA2B,SAASta,CAAG,EACvCkZ,EAAUlZ,CAAG,EAAI4Z,EAAK5Z,CAAG,EAGzByD,EAAQzD,CAAG,EAAI4Z,EAAK5Z,CAAG,CAEvC,CAAS,EAEDgB,EAAS6Y,CAAI,EACbpW,EAAQ,OAASoW,EAEZnZ,EAAcmZ,CAAI,IACvBX,EAAYW,GAEZnZ,EAAcoZ,CAAI,IAClBZ,EAAYY,GAET,CAACrW,EAAQ,KAAO,GAAIrC,EAAOqC,EAASyV,CAAS,CACxD,CAEA,SAASqB,GAAkB7T,EAAK3G,EAAQoQ,EAAQ,CAC5C,MAAM7J,EAAUI,EAChB,UAAW1G,KAAOmQ,EAAQ,CACtB,MAAMqJ,EAAK,GAAG,OAAAzZ,EAAM,MAAK,OAAAC,GACpBsG,EAAQ,mBAAmB,IAAIkT,CAAE,GAGtClT,EAAQ,mBAAmB,OAAOkT,CAAE,CACvC,CACL,CAEA,MAAMgB,GAAoB9Y,GAAQA,EAC5B+Y,GAAmB/T,GAAQ,GAC3BgU,GAA4B,OAC5BC,GAAqBnN,GAAWA,EAAO,SAAW,EAAI,GAAKjM,GAAKiM,CAAM,EACtEoN,GAAsBtZ,GAC5B,SAASuZ,GAAcC,EAAQC,EAAe,CAE1C,OADAD,EAAS,KAAK,IAAIA,CAAM,EACpBC,IAAkB,EAEXD,EACDA,EAAS,EACL,EACA,EACJ,EAEHA,EAAS,KAAK,IAAIA,EAAQ,CAAC,EAAI,CAC1C,CACA,SAASE,GAAevX,EAAS,CAE7B,MAAM7B,EAAQxB,EAASqD,EAAQ,WAAW,EACpCA,EAAQ,YACR,GAEN,OAAOA,EAAQ,QAAUrD,EAASqD,EAAQ,MAAM,KAAK,GAAKrD,EAASqD,EAAQ,MAAM,CAAC,GAC5ErD,EAASqD,EAAQ,MAAM,KAAK,EACxBA,EAAQ,MAAM,MACdrD,EAASqD,EAAQ,MAAM,CAAC,EACpBA,EAAQ,MAAM,EACd7B,EACRA,CACV,CACA,SAASqZ,GAAeC,EAAaC,EAAO,CACnCA,EAAM,QACPA,EAAM,MAAQD,GAEbC,EAAM,IACPA,EAAM,EAAID,EAElB,CACA,SAASE,GAAqB3X,EAAU,GAAI,CACxC,MAAM1D,EAAS0D,EAAQ,OACjByX,EAAcF,GAAevX,CAAO,EACpC4X,EAAa1b,EAAS8D,EAAQ,WAAW,GAC3CzC,EAASjB,CAAM,GACfgB,EAAW0C,EAAQ,YAAY1D,CAAM,CAAC,EACpC0D,EAAQ,YAAY1D,CAAM,EAC1B8a,GACAS,EAAgB3b,EAAS8D,EAAQ,WAAW,GAC9CzC,EAASjB,CAAM,GACfgB,EAAW0C,EAAQ,YAAY1D,CAAM,CAAC,EACpC8a,GACA,OACA1Q,EAAUxG,GACLA,EAAS0X,EAAWH,EAAavX,EAAS,OAAQ2X,CAAa,CAAC,EAErEC,EAAQ9X,EAAQ,MAAQ,GACxBsK,EAAQnM,GAAU2Z,EAAM3Z,CAAK,EAE7B4Z,EAAS/X,EAAQ,OAAS,GAChCrD,EAASqD,EAAQ,WAAW,GAAKwX,GAAeC,EAAaM,CAAM,EACnE,MAAMxN,EAAShO,GAAQwb,EAAOxb,CAAG,EACjC,SAASP,EAAQO,EAAKyb,EAAW,CAE7B,MAAM9Y,EAAM5B,EAAW0C,EAAQ,QAAQ,EACjCA,EAAQ,SAASzD,EAAK,CAAC,CAACyb,CAAS,EACjC9b,EAAS8D,EAAQ,QAAQ,EACrBA,EAAQ,SAASzD,CAAG,EACpB,GACV,OAAQ2C,IACFc,EAAQ,OACJA,EAAQ,OAAO,QAAQzD,CAAG,EAC1Bya,GAEb,CACD,MAAMiB,EAAatc,GAASqE,EAAQ,UAC9BA,EAAQ,UAAUrE,CAAI,EACtBob,GACAmB,EAAYjb,EAAc+C,EAAQ,SAAS,GAAK1C,EAAW0C,EAAQ,UAAU,SAAS,EACtFA,EAAQ,UAAU,UAClBkX,GACAiB,EAAclb,EAAc+C,EAAQ,SAAS,GAC/C1C,EAAW0C,EAAQ,UAAU,WAAW,EACtCA,EAAQ,UAAU,YAClBmX,GACAhU,EAAOlG,EAAc+C,EAAQ,SAAS,GAAKzC,EAASyC,EAAQ,UAAU,IAAI,EAC1EA,EAAQ,UAAU,KAClBiX,GA8BAhU,EAAM,CACP,KAAkCqH,EAClC,MAAoCC,EACpC,OAAsC7D,EACtC,OAjCU,CAACnK,KAAQN,IAAS,CAC7B,KAAM,CAACia,EAAMC,CAAI,EAAIla,EACrB,IAAIkH,EAAO,OACP8J,EAAW,GACXhR,EAAK,SAAW,EACZC,EAASga,CAAI,GACbjJ,EAAWiJ,EAAK,UAAYjJ,EAC5B9J,EAAO+S,EAAK,MAAQ/S,GAEf5F,EAAS2Y,CAAI,IAClBjJ,EAAWiJ,GAAQjJ,GAGlBhR,EAAK,SAAW,IACjBsB,EAAS2Y,CAAI,IACbjJ,EAAWiJ,GAAQjJ,GAEnB1P,EAAS4Y,CAAI,IACbhT,EAAOgT,GAAQhT,IAGvB,MAAMc,EAAMjI,EAAQO,EAAK,EAAI,EAAE0G,CAAG,EAC5B/D,EAENiE,IAAS,SAAW9F,EAAQ4G,CAAG,GAAKgJ,EAC9BhJ,EAAI,CAAC,EACLA,EACN,OAAOgJ,EAAWgL,EAAUhL,CAAQ,EAAE/N,EAAKiE,CAAI,EAAIjE,CAC3D,EAMS,QAAwClD,EACxC,KAAkCmH,EAClC,YAAgDgV,EAChD,UAA4CD,EAC5C,OAAsChb,GAAO,GAAI4a,EAAOC,CAAM,CACvE,EACI,OAAO9U,CACX,CAEA,MAAMmV,GAAwB,IAAM,GAC9BC,EAAqBzb,GAAQU,EAAWV,CAAG,EAEjD,SAAS0b,GAAUzV,KAAY5G,EAAM,CACjC,KAAM,CAAE,eAAA8X,EAAgB,gBAAAE,EAAiB,YAAAD,EAAa,gBAAAI,EAAiB,eAAAb,EAAgB,SAAArT,CAAU,EAAG2C,EAC9F,CAACtG,EAAKyD,CAAO,EAAIuY,GAAmB,GAAGtc,CAAI,EAC3C4X,EAAcrW,EAAUwC,EAAQ,WAAW,EAC3CA,EAAQ,YACR6C,EAAQ,YACRiR,EAAetW,EAAUwC,EAAQ,YAAY,EAC7CA,EAAQ,aACR6C,EAAQ,aACRsR,EAAkB3W,EAAUwC,EAAQ,eAAe,EACnDA,EAAQ,gBACR6C,EAAQ,gBACR2V,EAAkB,CAAC,CAACxY,EAAQ,gBAE5ByY,EAAkBlb,EAASyC,EAAQ,OAAO,GAAKxC,EAAUwC,EAAQ,OAAO,EACvExC,EAAUwC,EAAQ,OAAO,EAEpBoU,EAA8B7X,EAAZ,IAAMA,EAD1ByD,EAAQ,QAEZ+T,EACMK,EAA8B7X,EAAZ,IAAMA,EAC1B,KACJmc,EAAmB3E,GACpB0E,GAAmB,OACflb,EAASkb,CAAe,GAAKnb,EAAWmb,CAAe,GAC1Dnc,EAASyS,GAAUlM,EAAS7C,CAAO,EAEzCmU,GAAmBwE,GAAa3Y,CAAO,EAGvC,GAAI,CAAC4Y,EAAaxD,EAAcpZ,CAAO,EAAKwc,EAEtC,CACEjc,EACAD,EACA4D,EAAS5D,CAAM,GAAK,CAAE,CAClC,EALUuc,GAAqBhW,EAAStG,EAAKD,EAAQiX,EAAgBO,EAAcD,CAAW,EAWtFnH,EAASkM,EAETE,EAAevc,EAWnB,GAVI,CAACic,GACD,EAAEjb,EAASmP,CAAM,GACbgB,GAAahB,CAAM,GACnB2L,EAAkB3L,CAAM,IACxBgM,IACAhM,EAAS+L,EACTK,EAAepM,GAInB,CAAC8L,IACA,EAAEjb,EAASmP,CAAM,GACdgB,GAAahB,CAAM,GACnB2L,EAAkB3L,CAAM,IACxB,CAACnP,EAAS6X,CAAY,GAC1B,OAAOpB,EAAchC,GAAezV,EAGxC,GAAIgB,EAASmP,CAAM,GAAK7J,EAAQ,iBAAmB,KAC/C5D,OAAAA,GAAK,2JAGD,iCAAiC,OAAA1C,EAAG,KAAI,EACrCA,EAGX,IAAIwc,EAAW,GACf,MAAMjW,EAAU,IAAM,CAClBiW,EAAW,EACnB,EAEU7Z,EAAOmZ,EAAkB3L,CAAM,EAE/BA,EADAsM,GAAqBnW,EAAStG,EAAK6Y,EAAc1I,EAAQoM,EAAchW,CAAO,EAGpF,GAAIiW,EACA,OAAOrM,EAGX,MAAMuM,EAAaC,GAAyBrW,EAASuS,EAAcpZ,EAASgE,CAAO,EAC7EmZ,EAAaxB,GAAqBsB,CAAU,EAC5CG,EAAWC,GAAgBxW,EAAS3D,EAAKia,CAAU,EAEnDlV,EAAMgQ,EACNA,EAAgBmF,EAAU7c,CAAG,EAC7B6c,EAEN,CAEI,MAAM1K,GAAW,CACb,UAAW,KAAK,IAAK,EACrB,IAAKnR,EAAShB,CAAG,EACXA,EACA8b,EAAkB3L,CAAM,EACpBA,EAAO,IACP,GACV,OAAQ0I,IAAiBiD,EAAkB3L,CAAM,EAC3CA,EAAO,OACP,IACN,OAAQnP,EAASmP,CAAM,EACjBA,EACA2L,EAAkB3L,CAAM,EACpBA,EAAO,OACP,GACV,QAASzI,CACrB,EACQyK,GAAS,KAAOxR,GAAO,CAAE,EAAE2F,EAAQ,OAAQkQ,MAAuB,CAAA,CAAE,EACpEvE,GAAkBE,EAAQ,CAC7B,CACD,OAAOzK,CACX,CACA,SAAS0U,GAAa3Y,EAAS,CACvB3C,EAAQ2C,EAAQ,IAAI,EACpBA,EAAQ,KAAOA,EAAQ,KAAK,IAAI9B,GAAQX,EAASW,CAAI,EAAIf,GAAWe,CAAI,EAAIA,CAAI,EAE3EhC,EAAS8D,EAAQ,KAAK,GAC3B,OAAO,KAAKA,EAAQ,KAAK,EAAE,QAAQzD,GAAO,CAClCgB,EAASyC,EAAQ,MAAMzD,CAAG,CAAC,IAC3ByD,EAAQ,MAAMzD,CAAG,EAAIY,GAAW6C,EAAQ,MAAMzD,CAAG,CAAC,EAElE,CAAS,CAET,CACA,SAASsc,GAAqBhW,EAAStG,EAAKD,EAAQiX,EAAgBO,EAAcD,EAAa,CAC3F,KAAM,CAAE,SAAA3T,EAAU,OAAAmT,EAAQ,gBAAiB9B,EAAc,iBAAA+C,CAAkB,EAAGzR,EACxEwS,EAAUf,EAAiBzR,EAAS0Q,EAAgBjX,CAAM,EAChE,IAAIN,EAAU,CAAA,EACVoZ,EACA1I,EAAS,KACTmJ,EAAOvZ,EACPwZ,EAAK,KACT,MAAM3S,EAAO,YACb,QAASxE,EAAI,EAAGA,EAAI0W,EAAQ,OAAQ1W,IAAK,CAWrC,GAVAyW,EAAeU,EAAKT,EAAQ1W,CAAC,EACzBrC,IAAW8Y,GACX,CAACH,GAAmB3Y,EAAQ8Y,CAAY,GACxCR,GAAwBd,EAAcvX,CAAG,GACzC8W,EAAOvB,EAAeH,EAAc,sBAAuB,CACvD,IAAApV,EACA,OAAQ6Y,CACX,CAAA,CAAC,EAGF9Y,IAAW8Y,EAAc,CACzB,MAAML,EAAUlS,EAAQ,YACpBkS,GACAA,EAAQ,KAAK,WAAY,CACrB,KAAA5R,EACA,IAAA5G,EACA,KAAAsZ,EACA,GAAAC,EACA,QAAS,GAAG,OAAA3S,EAAI,KAAI,OAAA5G,EACxC,CAAiB,CAER,CACDP,EACIkE,EAASkV,CAAY,GAAK,GAE9B,IAAI9W,EAAQ,KACR1C,EACAC,EAYJ,GAXIP,KACAgD,EAAQ,OAAO,YAAY,MAC3B1C,EAAW,gCACXC,EAAS,8BACTN,GAAQA,EAAKK,CAAQ,IAEpB8Q,EAAS6E,EAAavV,EAASO,CAAG,KAAO,OAE1CmQ,EAAS1Q,EAAQO,CAAG,GAGpBjB,GAAW,CACX,MAAMiD,EAAM,OAAO,YAAY,IAAG,EAC5BwW,EAAUlS,EAAQ,YACpBkS,GAAWzW,GAASoO,GACpBqI,EAAQ,KAAK,kBAAmB,CAC5B,KAAM,kBACN,IAAAxY,EACA,QAASmQ,EACT,KAAMnO,EAAMD,EACZ,QAAS,GAAG,OAAA6E,EAAI,KAAI,OAAA5G,EACxC,CAAiB,EAEDX,GAAYC,GAAUN,GAAQC,KAC9BD,EAAKM,CAAM,EACXL,GAAQ,0BAA2BI,EAAUC,CAAM,EAE1D,CACD,GAAI0B,EAASmP,CAAM,GAAKgB,GAAahB,CAAM,GAAK2L,EAAkB3L,CAAM,EACpE,MAEJ,GAAI,CAACyI,GAAmBC,EAAcC,CAAO,EAAG,CAC5C,MAAMiE,EAAaxE,GAAcjS,EACjCtG,EAAK6Y,EAAcvB,EAAa1Q,CAAI,EAChCmW,IAAe/c,IACfmQ,EAAS4M,EAEhB,CACDzD,EAAOC,CACV,CACD,MAAO,CAACpJ,EAAQ0I,EAAcpZ,CAAO,CACzC,CACA,SAASgd,GAAqBnW,EAAStG,EAAK6Y,EAAc1I,EAAQoM,EAAchW,EAAS,CACrF,KAAM,CAAE,gBAAAsR,EAAiB,gBAAA9G,CAAiB,EAAGzK,EAC7C,GAAIwV,EAAkB3L,CAAM,EAAG,CAC3B,MAAMxN,EAAMwN,EACZ,OAAAxN,EAAI,OAASA,EAAI,QAAUkW,EAC3BlW,EAAI,IAAMA,EAAI,KAAO3C,EACd2C,CACV,CACD,GAAIkV,GAAmB,KAAM,CACzB,MAAMlV,EAAO,IAAMwN,EACnB,OAAAxN,EAAI,OAASkW,EACblW,EAAI,IAAM3C,EACH2C,CACV,CAED,IAAIZ,EAAQ,KACR1C,EACAC,EACAP,KACAgD,EAAQ,OAAO,YAAY,MAC3B1C,EAAW,oCACXC,EAAS,kCACTN,GAAQA,EAAKK,CAAQ,GAEzB,MAAMsD,EAAMkV,EAAgB1H,EAAQ6M,GAAkB1W,EAASuS,EAAc0D,EAAcpM,EAAQY,EAAiBxK,CAAO,CAAC,EAE5H,GAAIxH,GAAW,CACX,MAAMiD,EAAM,OAAO,YAAY,IAAG,EAC5BwW,EAAUlS,EAAQ,YACpBkS,GAAWzW,GACXyW,EAAQ,KAAK,sBAAuB,CAChC,KAAM,sBACN,QAASrI,EACT,KAAMnO,EAAMD,EACZ,QAAS,aAAkB,OAAA/B,EAC3C,CAAa,EAEDX,GAAYC,GAAUN,GAAQC,KAC9BD,EAAKM,CAAM,EACXL,GAAQ,8BAA+BI,EAAUC,CAAM,EAE9D,CACD,OAAAqD,EAAI,OAASkW,EACblW,EAAI,IAAM3C,EACV2C,EAAI,OAASwN,EACNxN,CACX,CACA,SAASma,GAAgBxW,EAAS3D,EAAKsa,EAAQ,CAE3C,IAAIlb,EAAQ,KACR1C,EACAC,EACAP,KACAgD,EAAQ,OAAO,YAAY,MAC3B1C,EAAW,mCACXC,EAAS,iCACTN,GAAQA,EAAKK,CAAQ,GAEzB,MAAMwd,EAAWla,EAAIsa,CAAM,EAE3B,GAAIle,GAAW,CACX,MAAMiD,EAAM,OAAO,YAAY,IAAG,EAC5BwW,EAAUlS,EAAQ,YACpBkS,GAAWzW,GACXyW,EAAQ,KAAK,qBAAsB,CAC/B,KAAM,qBACN,MAAOqE,EACP,KAAM7a,EAAMD,EACZ,QAAS,aAAkB,OAAAY,EAAI,IAC/C,CAAa,EAEDtD,GAAYC,GAAUN,GAAQC,KAC9BD,EAAKM,CAAM,EACXL,GAAQ,6BAA8BI,EAAUC,CAAM,EAE7D,CACD,OAAOud,CACX,CAEA,SAASb,MAAsBtc,EAAM,CACjC,KAAM,CAACia,EAAMC,EAAMC,CAAI,EAAIna,EACrB+D,EAAU,CAAA,EAChB,GAAI,CAACzC,EAAS2Y,CAAI,GACd,CAACvZ,EAASuZ,CAAI,GACd,CAACmC,EAAkBnC,CAAI,GACvB,CAACxI,GAAawI,CAAI,EAClB,MAAMrH,EAAgBF,EAAe,gBAAgB,EAGzD,MAAMpS,EAAMI,EAASuZ,CAAI,EACnB,OAAOA,CAAI,GACXmC,EAAkBnC,CAAI,EAClBA,GAEV,OAAIvZ,EAASwZ,CAAI,EACbnW,EAAQ,OAASmW,EAEZ5Y,EAAS4Y,CAAI,EAClBnW,EAAQ,QAAUmW,EAEblZ,EAAckZ,CAAI,GAAK,CAACnZ,GAAcmZ,CAAI,EAC/CnW,EAAQ,MAAQmW,EAEX9Y,EAAQ8Y,CAAI,IACjBnW,EAAQ,KAAOmW,GAEfxZ,EAASyZ,CAAI,EACbpW,EAAQ,OAASoW,EAEZ7Y,EAAS6Y,CAAI,EAClBpW,EAAQ,QAAUoW,EAEbnZ,EAAcmZ,CAAI,GACvBlZ,GAAO8C,EAASoW,CAAI,EAEjB,CAAC7Z,EAAKyD,CAAO,CACxB,CACA,SAASuZ,GAAkB1W,EAASvG,EAAQC,EAAKC,EAAQ8Q,EAAiBxK,EAAS,CAC/E,MAAO,CACH,OAAAxG,EACA,IAAAC,EACA,gBAAA+Q,EACA,QAAUnO,GAAQ,CACd2D,GAAWA,EAAQ3D,CAAG,EACtB,CACI,MAAMsa,EAAUC,GAAsBld,CAAM,EACtCR,EAAU,8BAA8B,OAAAmD,EAAI,SAC5Cwa,EAAYxa,EAAI,UAClBsa,GACApb,GAAkBob,EAASta,EAAI,SAAS,MAAM,OAAQA,EAAI,SAAS,IAAI,MAAM,EAC3E4V,EAAUlS,EAAQ,YACpBkS,GAAW0E,GACX1E,EAAQ,KAAK,gBAAiB,CAC1B,QAAS0E,EACT,MAAOta,EAAI,QACX,MAAOA,EAAI,UAAYA,EAAI,SAAS,MAAM,OAC1C,IAAKA,EAAI,UAAYA,EAAI,SAAS,IAAI,OACtC,QAAS,aAAkB,OAAA5C,EACnD,CAAqB,EAEL,QAAQ,MAAMod,EAAY,GAAG,OAAA3d,EAAO,MAAK,OAAA2d,GAAc3d,CAAO,CACjE,CACJ,EACD,WAAaQ,GAAWH,GAAuBC,EAAQC,EAAKC,CAAM,CAC1E,CACA,CACA,SAASkd,GAAsBld,EAAQ,CACnC,GAAIe,EAASf,CAAM,EACf,OAAOA,EAGP,GAAIA,EAAO,KAAOA,EAAO,IAAI,OACzB,OAAOA,EAAO,IAAI,MAG9B,CACA,SAAS0c,GAAyBrW,EAASvG,EAAQN,EAASgE,EAAS,CACjE,KAAM,CAAE,UAAA0T,EAAW,YAAAC,EAAa,gBAAiBpC,EAAc,eAAAgC,EAAgB,aAAAO,EAAc,YAAAD,EAAa,gBAAAU,CAAiB,EAAG1R,EA2BxHoW,EAAa,CACf,OAAA3c,EACA,UAAAoX,EACA,YAAAC,EACA,SA9BmB,CAACpX,EAAKyb,IAAc,CACvC,IAAIpb,EAAM2U,EAAavV,EAASO,CAAG,EAEnC,GAAIK,GAAO,OAAS2X,GAAmByD,GAAY,CAC/C,KAAM,GAAKhc,CAAO,EAAI6c,GAAqBtE,GAAmB1R,EAC9DtG,EAAKD,EAAQiX,EAAgBO,EAAcD,CAAW,EACtDjX,EAAM2U,EAAavV,EAASO,CAAG,CAClC,CACD,GAAIgB,EAASX,CAAG,GAAK8Q,GAAa9Q,CAAG,EAAG,CACpC,IAAImc,EAAW,GAIf,MAAM7Z,EAAM8Z,GAAqBnW,EAAStG,EAAKD,EAAQM,EAAKL,EAH5C,IAAM,CAClBwc,EAAW,EAC3B,CACoF,EACxE,OAAQA,EAEFX,GADAlZ,CAET,KACI,QAAImZ,EAAkBzb,CAAG,EACnBA,EAIAwb,EAEnB,CAMA,EACI,OAAIvV,EAAQ,YACRoW,EAAW,UAAYpW,EAAQ,WAE/B7C,EAAQ,OACRiZ,EAAW,KAAOjZ,EAAQ,MAE1BA,EAAQ,QACRiZ,EAAW,MAAQjZ,EAAQ,OAE3BrD,EAASqD,EAAQ,MAAM,IACvBiZ,EAAW,YAAcjZ,EAAQ,QAE9BiZ,CACX,6rCCv0GA;AAAA;AAAA;AAAA;AAAA,IASA,MAAM3d,GAAY,OAAO,OAAW,IACpC,IAAIC,GACAC,GACJ,CACI,MAAMC,EAAOH,IAAa,OAAO,YAC7BG,GACAA,EAAK,MACLA,EAAK,SACLA,EAAK,YAELA,EAAK,gBACLF,GAAQG,GAAQ,CACZD,EAAK,KAAKC,CAAG,CACzB,EACQF,GAAU,CAACG,EAAMC,EAAUC,IAAW,CAClCJ,EAAK,QAAQE,EAAMC,EAAUC,CAAM,EACnCJ,EAAK,WAAWG,CAAQ,EACxBH,EAAK,WAAWI,CAAM,CAClC,EAEA,CACA,MAAMC,GAAU,sBAEhB,SAAS4Q,GAAO1Q,KAAYC,EAAM,CAC9B,OAAIA,EAAK,SAAW,GAAKC,GAASD,EAAK,CAAC,CAAC,IACrCA,EAAOA,EAAK,CAAC,IAEb,CAACA,GAAQ,CAACA,EAAK,kBACfA,EAAO,CAAA,GAEJD,EAAQ,QAAQF,GAAS,CAACK,EAAOC,IAC7BH,EAAK,eAAeG,CAAU,EAAIH,EAAKG,CAAU,EAAI,EAC/D,CACL,CACA,MAAMwd,GAAa,CAACje,EAAMke,EAAY,KAAWA,EAA2B,OAAO,IAAIle,CAAI,EAA9B,OAAOA,CAAI,EAClEU,GAAyB,CAACC,EAAQC,EAAKC,IAAWC,GAAsB,CAAE,EAAGH,EAAQ,EAAGC,EAAK,EAAGC,CAAQ,CAAA,EACxGC,GAAyBC,GAAS,KAAK,UAAUA,CAAI,EACtD,QAAQ,UAAW,SAAS,EAC5B,QAAQ,UAAW,SAAS,EAC5B,QAAQ,UAAW,SAAS,EAC3BC,GAAYC,GAAQ,OAAOA,GAAQ,UAAY,SAASA,CAAG,EAC3DC,GAAUD,GAAQE,GAAaF,CAAG,IAAM,gBACxCG,GAAYH,GAAQE,GAAaF,CAAG,IAAM,kBAC1CI,GAAiBJ,GAAQK,GAAcL,CAAG,GAAK,OAAO,KAAKA,CAAG,EAAE,SAAW,EAC3EM,GAAS,OAAO,OACtB,IAAI4c,GACJ,MAAMC,GAAgB,IAEVD,KACHA,GACG,OAAO,WAAe,IAChB,WACA,OAAO,KAAS,IACZ,KACA,OAAO,OAAW,IACd,OACA,OAAO,OAAW,IACd,OACA,CAAA,GAE9B,SAAS3c,GAAWC,EAAS,CACzB,OAAOA,EACF,QAAQ,KAAM,MAAM,EACpB,QAAQ,KAAM,MAAM,EACpB,QAAQ,KAAM,QAAQ,EACtB,QAAQ,KAAM,QAAQ,CAC/B,CACA,MAAM4c,GAAiB,OAAO,UAAU,eACxC,SAASC,GAAO3I,EAAK/U,EAAK,CACtB,OAAOyd,GAAe,KAAK1I,EAAK/U,CAAG,CACvC,CASA,MAAMc,GAAU,MAAM,QAChBC,GAAcV,GAAQ,OAAOA,GAAQ,WACrCW,GAAYX,GAAQ,OAAOA,GAAQ,SACnCY,GAAaZ,GAAQ,OAAOA,GAAQ,UACpCsd,GAAYtd,GAAQ,OAAOA,GAAQ,SAEnCV,GAAYU,GAAQA,IAAQ,MAAQ,OAAOA,GAAQ,SAEnDa,GAAab,GACRV,GAASU,CAAG,GAAKU,GAAWV,EAAI,IAAI,GAAKU,GAAWV,EAAI,KAAK,EAElEc,GAAiB,OAAO,UAAU,SAClCZ,GAAgBa,GAAUD,GAAe,KAAKC,CAAK,EACnDV,GAAiBL,GAAQ,CAC3B,GAAI,CAACV,GAASU,CAAG,EACb,MAAO,GACX,MAAMgB,EAAQ,OAAO,eAAehB,CAAG,EACvC,OAAOgB,IAAU,MAAQA,EAAM,cAAgB,MACnD,EAEMC,GAAmBjB,GACdA,GAAO,KACR,GACAS,GAAQT,CAAG,GAAMK,GAAcL,CAAG,GAAKA,EAAI,WAAac,GACpD,KAAK,UAAUd,EAAK,KAAM,CAAC,EAC3B,OAAOA,CAAG,EAExB,SAASkB,GAAKC,EAAOC,EAAY,GAAI,CACjC,OAAOD,EAAM,OAAO,CAACE,EAAKC,EAAMC,IAAWA,IAAU,EAAIF,EAAMC,EAAOD,EAAMD,EAAYE,EAAO,EAAE,CACrG,CACA,MAAME,GAAQ,EACd,SAASC,GAAkB7B,EAAQ8B,EAAQ,EAAGC,EAAM/B,EAAO,OAAQ,CAC/D,MAAMgC,EAAQhC,EAAO,MAAM,OAAO,EAClC,IAAIiC,EAAQ,EACZ,MAAMC,EAAM,CAAA,EACZ,QAASC,EAAI,EAAGA,EAAIH,EAAM,OAAQG,IAE9B,GADAF,GAASD,EAAMG,CAAC,EAAE,OAAS,EACvBF,GAASH,EAAO,CAChB,QAASM,EAAID,EAAIP,GAAOQ,GAAKD,EAAIP,IAASG,EAAME,EAAOG,IAAK,CACxD,GAAIA,EAAI,GAAKA,GAAKJ,EAAM,OACpB,SACJ,MAAMK,EAAOD,EAAI,EACjBF,EAAI,KAAK,GAAG,OAAAG,GAAO,WAAI,OAAO,EAAI,OAAOA,CAAI,EAAE,MAAM,EAAC,OAAM,OAAAL,EAAMI,CAAC,EAAG,EACtE,MAAME,EAAaN,EAAMI,CAAC,EAAE,OAC5B,GAAIA,IAAMD,EAAG,CAET,MAAMI,EAAMT,GAASG,EAAQK,GAAc,EACrCE,EAAS,KAAK,IAAI,EAAGT,EAAME,EAAQK,EAAaC,EAAMR,EAAMD,CAAK,EACvEI,EAAI,KAAK,SAAW,IAAI,OAAOK,CAAG,EAAI,IAAI,OAAOC,CAAM,CAAC,CAC3D,SACQJ,EAAID,EAAG,CACZ,GAAIJ,EAAME,EAAO,CACb,MAAMO,EAAS,KAAK,IAAI,KAAK,IAAIT,EAAME,EAAOK,CAAU,EAAG,CAAC,EAC5DJ,EAAI,KAAK,SAAW,IAAI,OAAOM,CAAM,CAAC,CACzC,CACDP,GAASK,EAAa,CACzB,CACJ,CACD,KACH,CAEL,OAAOJ,EAAI,KAAK,IAAI,CACxB,CAEA,SAASO,GAAKC,EAAKC,EAAK,CAChB,OAAO,QAAY,MACnB,QAAQ,KAAK,aAAeD,CAAG,EAE3BC,GACA,QAAQ,KAAKA,EAAI,KAAK,EAGlC,CACA,MAAMC,GAAY,CAAA,EAClB,SAASC,GAASH,EAAK,CACdE,GAAUF,CAAG,IACdE,GAAUF,CAAG,EAAI,GACjBD,GAAKC,CAAG,EAEhB,CAcA,SAASib,IAAgB,CACrB,MAAMC,EAAS,IAAI,IAyBnB,MAxBgB,CACZ,OAAAA,EACA,GAAGC,EAAOC,EAAS,CACf,MAAMC,EAAWH,EAAO,IAAIC,CAAK,EACnBE,GAAYA,EAAS,KAAKD,CAAO,GAE3CF,EAAO,IAAIC,EAAO,CAACC,CAAO,CAAC,CAElC,EACD,IAAID,EAAOC,EAAS,CAChB,MAAMC,EAAWH,EAAO,IAAIC,CAAK,EAC7BE,GACAA,EAAS,OAAOA,EAAS,QAAQD,CAAO,IAAM,EAAG,CAAC,CAEzD,EACD,KAAKD,EAAOG,EAAS,EAChBJ,EAAO,IAAIC,CAAK,GAAK,CAAE,GACnB,MAAO,EACP,IAAIC,GAAWA,EAAQE,CAAO,CAAC,GACnCJ,EAAO,IAAI,GAAG,GAAK,CAAE,GACjB,MAAO,EACP,IAAIE,GAAWA,EAAQD,EAAOG,CAAO,CAAC,CAC9C,CACT,CAEA,CAEA,MAAMC,GAAwB7d,GAAQ,CAACV,GAASU,CAAG,GAAKS,GAAQT,CAAG,EAEnE,SAAS8d,GAASC,EAAKC,EAAK,CAExB,GAAIH,GAAqBE,CAAG,GAAKF,GAAqBG,CAAG,EACrD,MAAM,IAAI,MAAM,eAAe,EAEnC,MAAMC,EAAQ,CAAC,CAAE,IAAAF,EAAK,IAAAC,CAAK,CAAA,EAC3B,KAAOC,EAAM,QAAQ,CACjB,KAAM,CAAE,IAAAF,EAAK,IAAAC,CAAK,EAAGC,EAAM,IAAG,EAC9B,OAAO,KAAKF,CAAG,EAAE,QAAQpe,GAAO,CACxBke,GAAqBE,EAAIpe,CAAG,CAAC,GAAKke,GAAqBG,EAAIre,CAAG,CAAC,EAI/Dqe,EAAIre,CAAG,EAAIoe,EAAIpe,CAAG,EAIlBse,EAAM,KAAK,CAAE,IAAKF,EAAIpe,CAAG,EAAG,IAAKqe,EAAIre,CAAG,CAAC,CAAE,CAE3D,CAAS,CACJ,CACL","x_google_ignoreList":[0,1]}