UNPKG

1.45 MBSource Map (JSON)View Raw
1{"version":3,"file":"rollup.browser.js","sources":["../node_modules/sourcemap-codec/dist/sourcemap-codec.es.js","../node_modules/magic-string/dist/magic-string.es.js","../browser/path.ts","../src/utils/reservedNames.ts","../src/utils/getOrCreate.ts","../src/ast/utils/PathTracker.ts","../src/ast/nodes/shared/Expression.ts","../src/ast/variables/Variable.ts","../src/ast/variables/ExternalVariable.ts","../src/utils/blank.ts","../src/utils/identifierHelpers.ts","../src/utils/printStringList.ts","../src/utils/relativeId.ts","../src/ExternalModule.ts","../node_modules/locate-character/dist/locate-character.es.js","../node_modules/rollup-pluginutils/src/extractAssignedNames.ts","../src/ast/ExecutionContext.ts","../node_modules/acorn-walk/dist/walk.mjs","../src/ast/nodes/NodeType.ts","../src/utils/sourceMappingURL.ts","../src/utils/pureComments.ts","../src/ast/keys.ts","../src/ast/nodes/shared/Node.ts","../src/ast/nodes/ExportAllDeclaration.ts","../src/utils/treeshakeNode.ts","../src/utils/renderHelpers.ts","../src/utils/systemJsRendering.ts","../src/utils/base64.ts","../src/utils/safeName.ts","../src/ast/CallOptions.ts","../src/ast/values.ts","../src/ast/variables/LocalVariable.ts","../src/ast/scopes/Scope.ts","../src/ast/scopes/ChildScope.ts","../node_modules/is-reference/src/index.js","../src/ast/nodes/shared/knownGlobals.ts","../src/ast/variables/GlobalVariable.ts","../src/ast/nodes/Identifier.ts","../src/ast/nodes/shared/MethodBase.ts","../src/ast/NodeEvents.ts","../src/ast/nodes/MethodDefinition.ts","../src/ast/nodes/shared/ObjectEntity.ts","../src/ast/nodes/shared/ObjectMember.ts","../src/ast/nodes/shared/MethodTypes.ts","../src/ast/nodes/shared/ObjectPrototype.ts","../src/ast/nodes/shared/ClassNode.ts","../src/ast/nodes/ClassDeclaration.ts","../src/ast/variables/ArgumentsVariable.ts","../src/ast/variables/ThisVariable.ts","../src/ast/nodes/SpreadElement.ts","../src/ast/scopes/ParameterScope.ts","../src/ast/scopes/ReturnValueScope.ts","../src/ast/scopes/FunctionScope.ts","../src/ast/nodes/RestElement.ts","../src/ast/nodes/shared/FunctionNode.ts","../src/ast/nodes/FunctionDeclaration.ts","../src/ast/nodes/ExportDefaultDeclaration.ts","../src/ast/nodes/Literal.ts","../src/ast/nodes/Program.ts","../src/ast/nodes/TemplateLiteral.ts","../src/utils/reassignedExportsMember.ts","../src/ast/nodes/VariableDeclaration.ts","../src/ast/nodes/shared/ArrayPrototype.ts","../src/ast/scopes/BlockScope.ts","../src/ast/nodes/ExpressionStatement.ts","../src/ast/nodes/BlockStatement.ts","../src/ast/nodes/ArrowFunctionExpression.ts","../src/ast/nodes/AssignmentExpression.ts","../src/ast/nodes/BinaryExpression.ts","../src/ast/nodes/MemberExpression.ts","../src/ast/scopes/CatchScope.ts","../src/ast/scopes/ClassBodyScope.ts","../src/ast/nodes/shared/MultiExpression.ts","../src/ast/nodes/ExportNamedDeclaration.ts","../src/ast/scopes/TrackingScope.ts","../src/ast/nodes/IfStatement.ts","../src/ast/nodes/ImportDeclaration.ts","../src/utils/interopHelpers.ts","../src/ast/nodes/ImportExpression.ts","../src/utils/getCodeFrame.ts","../src/utils/error.ts","../src/ast/nodes/MetaProperty.ts","../src/ast/nodes/SwitchCase.ts","../src/ast/variables/UndefinedVariable.ts","../src/ast/variables/ExportDefaultVariable.ts","../src/ast/scopes/ModuleScope.ts","../src/ast/nodes/UnaryExpression.ts","../src/ast/nodes/index.ts","../src/ast/nodes/ArrayExpression.ts","../src/ast/nodes/ArrayPattern.ts","../src/ast/nodes/AssignmentPattern.ts","../src/ast/nodes/AwaitExpression.ts","../src/ast/nodes/BreakStatement.ts","../src/ast/nodes/CallExpression.ts","../src/ast/nodes/CatchClause.ts","../src/ast/nodes/ChainExpression.ts","../src/ast/nodes/ClassBody.ts","../src/ast/nodes/ClassExpression.ts","../src/ast/nodes/ConditionalExpression.ts","../src/ast/nodes/ContinueStatement.ts","../src/ast/nodes/DoWhileStatement.ts","../src/ast/nodes/EmptyStatement.ts","../src/ast/nodes/ExportSpecifier.ts","../src/ast/nodes/ForInStatement.ts","../src/ast/nodes/ForOfStatement.ts","../src/ast/nodes/ForStatement.ts","../src/ast/nodes/FunctionExpression.ts","../src/ast/nodes/ImportDefaultSpecifier.ts","../src/ast/nodes/ImportNamespaceSpecifier.ts","../src/ast/nodes/ImportSpecifier.ts","../src/ast/nodes/LabeledStatement.ts","../src/ast/nodes/LogicalExpression.ts","../src/ast/nodes/NewExpression.ts","../src/ast/nodes/ObjectExpression.ts","../src/ast/nodes/ObjectPattern.ts","../src/ast/nodes/PrivateIdentifier.ts","../src/ast/nodes/Property.ts","../src/ast/nodes/PropertyDefinition.ts","../src/ast/nodes/ReturnStatement.ts","../src/ast/nodes/SequenceExpression.ts","../src/ast/nodes/Super.ts","../src/ast/nodes/SwitchStatement.ts","../src/ast/nodes/TaggedTemplateExpression.ts","../src/ast/nodes/TemplateElement.ts","../src/ast/nodes/ThisExpression.ts","../src/ast/nodes/ThrowStatement.ts","../src/ast/nodes/TryStatement.ts","../src/ast/nodes/UnknownNode.ts","../src/ast/nodes/UpdateExpression.ts","../src/ast/nodes/VariableDeclarator.ts","../src/ast/nodes/WhileStatement.ts","../src/ast/nodes/YieldExpression.ts","../src/utils/variableNames.ts","../src/ast/variables/ExportShimVariable.ts","../src/ast/variables/NamespaceVariable.ts","../src/ast/variables/SyntheticNamedExportVariable.ts","../src/utils/getId.ts","../src/utils/timers.ts","../src/utils/traverseStaticDependencies.ts","../src/Module.ts","../src/utils/getOriginalLocation.ts","../src/finalisers/shared/removeJsExtension.ts","../src/finalisers/shared/getCompleteAmdId.ts","../src/finalisers/shared/getExportBlock.ts","../src/finalisers/shared/getInteropBlock.ts","../src/finalisers/shared/removeExtensionFromRelativeAmdId.ts","../src/finalisers/shared/warnOnBuiltins.ts","../src/finalisers/shared/sanitize.ts","../src/finalisers/shared/setupNamespace.ts","../src/finalisers/shared/trimEmptyImports.ts","../src/finalisers/iife.ts","../src/finalisers/system.ts","../src/finalisers/umd.ts","../src/finalisers/index.ts","../src/finalisers/amd.ts","../src/finalisers/cjs.ts","../src/finalisers/es.ts","../src/utils/collapseSourcemaps.ts","../node_modules/minimalistic-assert/index.js","../node_modules/inherits/inherits_browser.js","../node_modules/hash.js/lib/hash/utils.js","../node_modules/hash.js/lib/hash/common.js","../node_modules/hash.js/lib/hash/sha/common.js","../node_modules/hash.js/lib/hash/sha/256.js","../browser/crypto.ts","../src/utils/deconflictChunk.ts","../src/utils/escapeId.ts","../src/utils/getExportMode.ts","../src/utils/getIndentString.ts","../src/utils/getStaticDependencies.ts","../src/utils/decodedSourcemap.ts","../src/utils/renderNamePattern.ts","../src/Chunk.ts","../src/utils/exportNames.ts","../src/utils/renderChunk.ts","../src/utils/buildPhase.ts","../src/utils/FileEmitter.ts","../src/utils/addons.ts","../src/utils/chunkAssignment.ts","../src/utils/executionOrder.ts","../src/Bundle.ts","../src/utils/commondir.ts","../node_modules/acorn/dist/acorn.mjs","../browser/error.ts","../browser/fs.ts","../src/utils/queue.ts","../browser/resolveId.ts","../src/utils/resolveIdViaPlugins.ts","../src/utils/pluginUtils.ts","../src/utils/PluginCache.ts","../src/utils/transform.ts","../src/ModuleLoader.ts","../src/ast/scopes/GlobalScope.ts","../src/utils/PluginContext.ts","../src/utils/PluginDriver.ts","../src/Graph.ts","../src/utils/ensureArray.ts","../src/utils/options/options.ts","../src/utils/options/normalizeInputOptions.ts","../src/utils/sanitizeFileName.ts","../src/utils/options/normalizeOutputOptions.ts","../src/rollup/rollup.ts"],"sourcesContent":["var charToInteger = {};\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nfor (var i = 0; i < chars.length; i++) {\n charToInteger[chars.charCodeAt(i)] = i;\n}\nfunction decode(mappings) {\n var decoded = [];\n var line = [];\n var segment = [\n 0,\n 0,\n 0,\n 0,\n 0,\n ];\n var j = 0;\n for (var i = 0, shift = 0, value = 0; i < mappings.length; i++) {\n var c = mappings.charCodeAt(i);\n if (c === 44) { // \",\"\n segmentify(line, segment, j);\n j = 0;\n }\n else if (c === 59) { // \";\"\n segmentify(line, segment, j);\n j = 0;\n decoded.push(line);\n line = [];\n segment[0] = 0;\n }\n else {\n var integer = charToInteger[c];\n if (integer === undefined) {\n throw new Error('Invalid character (' + String.fromCharCode(c) + ')');\n }\n var hasContinuationBit = integer & 32;\n integer &= 31;\n value += integer << shift;\n if (hasContinuationBit) {\n shift += 5;\n }\n else {\n var shouldNegate = value & 1;\n value >>>= 1;\n if (shouldNegate) {\n value = value === 0 ? -0x80000000 : -value;\n }\n segment[j] += value;\n j++;\n value = shift = 0; // reset\n }\n }\n }\n segmentify(line, segment, j);\n decoded.push(line);\n return decoded;\n}\nfunction segmentify(line, segment, j) {\n // This looks ugly, but we're creating specialized arrays with a specific\n // length. This is much faster than creating a new array (which v8 expands to\n // a capacity of 17 after pushing the first item), or slicing out a subarray\n // (which is slow). Length 4 is assumed to be the most frequent, followed by\n // length 5 (since not everything will have an associated name), followed by\n // length 1 (it's probably rare for a source substring to not have an\n // associated segment data).\n if (j === 4)\n line.push([segment[0], segment[1], segment[2], segment[3]]);\n else if (j === 5)\n line.push([segment[0], segment[1], segment[2], segment[3], segment[4]]);\n else if (j === 1)\n line.push([segment[0]]);\n}\nfunction encode(decoded) {\n var sourceFileIndex = 0; // second field\n var sourceCodeLine = 0; // third field\n var sourceCodeColumn = 0; // fourth field\n var nameIndex = 0; // fifth field\n var mappings = '';\n for (var i = 0; i < decoded.length; i++) {\n var line = decoded[i];\n if (i > 0)\n mappings += ';';\n if (line.length === 0)\n continue;\n var generatedCodeColumn = 0; // first field\n var lineMappings = [];\n for (var _i = 0, line_1 = line; _i < line_1.length; _i++) {\n var segment = line_1[_i];\n var segmentMappings = encodeInteger(segment[0] - generatedCodeColumn);\n generatedCodeColumn = segment[0];\n if (segment.length > 1) {\n segmentMappings +=\n encodeInteger(segment[1] - sourceFileIndex) +\n encodeInteger(segment[2] - sourceCodeLine) +\n encodeInteger(segment[3] - sourceCodeColumn);\n sourceFileIndex = segment[1];\n sourceCodeLine = segment[2];\n sourceCodeColumn = segment[3];\n }\n if (segment.length === 5) {\n segmentMappings += encodeInteger(segment[4] - nameIndex);\n nameIndex = segment[4];\n }\n lineMappings.push(segmentMappings);\n }\n mappings += lineMappings.join(',');\n }\n return mappings;\n}\nfunction encodeInteger(num) {\n var result = '';\n num = num < 0 ? (-num << 1) | 1 : num << 1;\n do {\n var clamped = num & 31;\n num >>>= 5;\n if (num > 0) {\n clamped |= 32;\n }\n result += chars[clamped];\n } while (num > 0);\n return result;\n}\n\nexport { decode, encode };\n//# sourceMappingURL=sourcemap-codec.es.js.map\n","import { encode } from 'sourcemap-codec';\n\nvar BitSet = function BitSet(arg) {\n\tthis.bits = arg instanceof BitSet ? arg.bits.slice() : [];\n};\n\nBitSet.prototype.add = function add (n) {\n\tthis.bits[n >> 5] |= 1 << (n & 31);\n};\n\nBitSet.prototype.has = function has (n) {\n\treturn !!(this.bits[n >> 5] & (1 << (n & 31)));\n};\n\nvar Chunk = function Chunk(start, end, content) {\n\tthis.start = start;\n\tthis.end = end;\n\tthis.original = content;\n\n\tthis.intro = '';\n\tthis.outro = '';\n\n\tthis.content = content;\n\tthis.storeName = false;\n\tthis.edited = false;\n\n\t// we make these non-enumerable, for sanity while debugging\n\tObject.defineProperties(this, {\n\t\tprevious: { writable: true, value: null },\n\t\tnext: { writable: true, value: null }\n\t});\n};\n\nChunk.prototype.appendLeft = function appendLeft (content) {\n\tthis.outro += content;\n};\n\nChunk.prototype.appendRight = function appendRight (content) {\n\tthis.intro = this.intro + content;\n};\n\nChunk.prototype.clone = function clone () {\n\tvar chunk = new Chunk(this.start, this.end, this.original);\n\n\tchunk.intro = this.intro;\n\tchunk.outro = this.outro;\n\tchunk.content = this.content;\n\tchunk.storeName = this.storeName;\n\tchunk.edited = this.edited;\n\n\treturn chunk;\n};\n\nChunk.prototype.contains = function contains (index) {\n\treturn this.start < index && index < this.end;\n};\n\nChunk.prototype.eachNext = function eachNext (fn) {\n\tvar chunk = this;\n\twhile (chunk) {\n\t\tfn(chunk);\n\t\tchunk = chunk.next;\n\t}\n};\n\nChunk.prototype.eachPrevious = function eachPrevious (fn) {\n\tvar chunk = this;\n\twhile (chunk) {\n\t\tfn(chunk);\n\t\tchunk = chunk.previous;\n\t}\n};\n\nChunk.prototype.edit = function edit (content, storeName, contentOnly) {\n\tthis.content = content;\n\tif (!contentOnly) {\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\t}\n\tthis.storeName = storeName;\n\n\tthis.edited = true;\n\n\treturn this;\n};\n\nChunk.prototype.prependLeft = function prependLeft (content) {\n\tthis.outro = content + this.outro;\n};\n\nChunk.prototype.prependRight = function prependRight (content) {\n\tthis.intro = content + this.intro;\n};\n\nChunk.prototype.split = function split (index) {\n\tvar sliceIndex = index - this.start;\n\n\tvar originalBefore = this.original.slice(0, sliceIndex);\n\tvar originalAfter = this.original.slice(sliceIndex);\n\n\tthis.original = originalBefore;\n\n\tvar newChunk = new Chunk(index, this.end, originalAfter);\n\tnewChunk.outro = this.outro;\n\tthis.outro = '';\n\n\tthis.end = index;\n\n\tif (this.edited) {\n\t\t// TODO is this block necessary?...\n\t\tnewChunk.edit('', false);\n\t\tthis.content = '';\n\t} else {\n\t\tthis.content = originalBefore;\n\t}\n\n\tnewChunk.next = this.next;\n\tif (newChunk.next) { newChunk.next.previous = newChunk; }\n\tnewChunk.previous = this;\n\tthis.next = newChunk;\n\n\treturn newChunk;\n};\n\nChunk.prototype.toString = function toString () {\n\treturn this.intro + this.content + this.outro;\n};\n\nChunk.prototype.trimEnd = function trimEnd (rx) {\n\tthis.outro = this.outro.replace(rx, '');\n\tif (this.outro.length) { return true; }\n\n\tvar trimmed = this.content.replace(rx, '');\n\n\tif (trimmed.length) {\n\t\tif (trimmed !== this.content) {\n\t\t\tthis.split(this.start + trimmed.length).edit('', undefined, true);\n\t\t}\n\t\treturn true;\n\n\t} else {\n\t\tthis.edit('', undefined, true);\n\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) { return true; }\n\t}\n};\n\nChunk.prototype.trimStart = function trimStart (rx) {\n\tthis.intro = this.intro.replace(rx, '');\n\tif (this.intro.length) { return true; }\n\n\tvar trimmed = this.content.replace(rx, '');\n\n\tif (trimmed.length) {\n\t\tif (trimmed !== this.content) {\n\t\t\tthis.split(this.end - trimmed.length);\n\t\t\tthis.edit('', undefined, true);\n\t\t}\n\t\treturn true;\n\n\t} else {\n\t\tthis.edit('', undefined, true);\n\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) { return true; }\n\t}\n};\n\nvar btoa = function () {\n\tthrow new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.');\n};\nif (typeof window !== 'undefined' && typeof window.btoa === 'function') {\n\tbtoa = function (str) { return window.btoa(unescape(encodeURIComponent(str))); };\n} else if (typeof Buffer === 'function') {\n\tbtoa = function (str) { return Buffer.from(str, 'utf-8').toString('base64'); };\n}\n\nvar SourceMap = function SourceMap(properties) {\n\tthis.version = 3;\n\tthis.file = properties.file;\n\tthis.sources = properties.sources;\n\tthis.sourcesContent = properties.sourcesContent;\n\tthis.names = properties.names;\n\tthis.mappings = encode(properties.mappings);\n};\n\nSourceMap.prototype.toString = function toString () {\n\treturn JSON.stringify(this);\n};\n\nSourceMap.prototype.toUrl = function toUrl () {\n\treturn 'data:application/json;charset=utf-8;base64,' + btoa(this.toString());\n};\n\nfunction guessIndent(code) {\n\tvar lines = code.split('\\n');\n\n\tvar tabbed = lines.filter(function (line) { return /^\\t+/.test(line); });\n\tvar spaced = lines.filter(function (line) { return /^ {2,}/.test(line); });\n\n\tif (tabbed.length === 0 && spaced.length === 0) {\n\t\treturn null;\n\t}\n\n\t// More lines tabbed than spaced? Assume tabs, and\n\t// default to tabs in the case of a tie (or nothing\n\t// to go on)\n\tif (tabbed.length >= spaced.length) {\n\t\treturn '\\t';\n\t}\n\n\t// Otherwise, we need to guess the multiple\n\tvar min = spaced.reduce(function (previous, current) {\n\t\tvar numSpaces = /^ +/.exec(current)[0].length;\n\t\treturn Math.min(numSpaces, previous);\n\t}, Infinity);\n\n\treturn new Array(min + 1).join(' ');\n}\n\nfunction getRelativePath(from, to) {\n\tvar fromParts = from.split(/[/\\\\]/);\n\tvar toParts = to.split(/[/\\\\]/);\n\n\tfromParts.pop(); // get dirname\n\n\twhile (fromParts[0] === toParts[0]) {\n\t\tfromParts.shift();\n\t\ttoParts.shift();\n\t}\n\n\tif (fromParts.length) {\n\t\tvar i = fromParts.length;\n\t\twhile (i--) { fromParts[i] = '..'; }\n\t}\n\n\treturn fromParts.concat(toParts).join('/');\n}\n\nvar toString = Object.prototype.toString;\n\nfunction isObject(thing) {\n\treturn toString.call(thing) === '[object Object]';\n}\n\nfunction getLocator(source) {\n\tvar originalLines = source.split('\\n');\n\tvar lineOffsets = [];\n\n\tfor (var i = 0, pos = 0; i < originalLines.length; i++) {\n\t\tlineOffsets.push(pos);\n\t\tpos += originalLines[i].length + 1;\n\t}\n\n\treturn function locate(index) {\n\t\tvar i = 0;\n\t\tvar j = lineOffsets.length;\n\t\twhile (i < j) {\n\t\t\tvar m = (i + j) >> 1;\n\t\t\tif (index < lineOffsets[m]) {\n\t\t\t\tj = m;\n\t\t\t} else {\n\t\t\t\ti = m + 1;\n\t\t\t}\n\t\t}\n\t\tvar line = i - 1;\n\t\tvar column = index - lineOffsets[line];\n\t\treturn { line: line, column: column };\n\t};\n}\n\nvar Mappings = function Mappings(hires) {\n\tthis.hires = hires;\n\tthis.generatedCodeLine = 0;\n\tthis.generatedCodeColumn = 0;\n\tthis.raw = [];\n\tthis.rawSegments = this.raw[this.generatedCodeLine] = [];\n\tthis.pending = null;\n};\n\nMappings.prototype.addEdit = function addEdit (sourceIndex, content, loc, nameIndex) {\n\tif (content.length) {\n\t\tvar segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\tif (nameIndex >= 0) {\n\t\t\tsegment.push(nameIndex);\n\t\t}\n\t\tthis.rawSegments.push(segment);\n\t} else if (this.pending) {\n\t\tthis.rawSegments.push(this.pending);\n\t}\n\n\tthis.advance(content);\n\tthis.pending = null;\n};\n\nMappings.prototype.addUneditedChunk = function addUneditedChunk (sourceIndex, chunk, original, loc, sourcemapLocations) {\n\tvar originalCharIndex = chunk.start;\n\tvar first = true;\n\n\twhile (originalCharIndex < chunk.end) {\n\t\tif (this.hires || first || sourcemapLocations.has(originalCharIndex)) {\n\t\t\tthis.rawSegments.push([this.generatedCodeColumn, sourceIndex, loc.line, loc.column]);\n\t\t}\n\n\t\tif (original[originalCharIndex] === '\\n') {\n\t\t\tloc.line += 1;\n\t\t\tloc.column = 0;\n\t\t\tthis.generatedCodeLine += 1;\n\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\tthis.generatedCodeColumn = 0;\n\t\t\tfirst = true;\n\t\t} else {\n\t\t\tloc.column += 1;\n\t\t\tthis.generatedCodeColumn += 1;\n\t\t\tfirst = false;\n\t\t}\n\n\t\toriginalCharIndex += 1;\n\t}\n\n\tthis.pending = null;\n};\n\nMappings.prototype.advance = function advance (str) {\n\tif (!str) { return; }\n\n\tvar lines = str.split('\\n');\n\n\tif (lines.length > 1) {\n\t\tfor (var i = 0; i < lines.length - 1; i++) {\n\t\t\tthis.generatedCodeLine++;\n\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t}\n\t\tthis.generatedCodeColumn = 0;\n\t}\n\n\tthis.generatedCodeColumn += lines[lines.length - 1].length;\n};\n\nvar n = '\\n';\n\nvar warned = {\n\tinsertLeft: false,\n\tinsertRight: false,\n\tstoreName: false\n};\n\nvar MagicString = function MagicString(string, options) {\n\tif ( options === void 0 ) options = {};\n\n\tvar chunk = new Chunk(0, string.length, string);\n\n\tObject.defineProperties(this, {\n\t\toriginal: { writable: true, value: string },\n\t\toutro: { writable: true, value: '' },\n\t\tintro: { writable: true, value: '' },\n\t\tfirstChunk: { writable: true, value: chunk },\n\t\tlastChunk: { writable: true, value: chunk },\n\t\tlastSearchedChunk: { writable: true, value: chunk },\n\t\tbyStart: { writable: true, value: {} },\n\t\tbyEnd: { writable: true, value: {} },\n\t\tfilename: { writable: true, value: options.filename },\n\t\tindentExclusionRanges: { writable: true, value: options.indentExclusionRanges },\n\t\tsourcemapLocations: { writable: true, value: new BitSet() },\n\t\tstoredNames: { writable: true, value: {} },\n\t\tindentStr: { writable: true, value: guessIndent(string) }\n\t});\n\n\tthis.byStart[0] = chunk;\n\tthis.byEnd[string.length] = chunk;\n};\n\nMagicString.prototype.addSourcemapLocation = function addSourcemapLocation (char) {\n\tthis.sourcemapLocations.add(char);\n};\n\nMagicString.prototype.append = function append (content) {\n\tif (typeof content !== 'string') { throw new TypeError('outro content must be a string'); }\n\n\tthis.outro += content;\n\treturn this;\n};\n\nMagicString.prototype.appendLeft = function appendLeft (index, content) {\n\tif (typeof content !== 'string') { throw new TypeError('inserted content must be a string'); }\n\n\tthis._split(index);\n\n\tvar chunk = this.byEnd[index];\n\n\tif (chunk) {\n\t\tchunk.appendLeft(content);\n\t} else {\n\t\tthis.intro += content;\n\t}\n\treturn this;\n};\n\nMagicString.prototype.appendRight = function appendRight (index, content) {\n\tif (typeof content !== 'string') { throw new TypeError('inserted content must be a string'); }\n\n\tthis._split(index);\n\n\tvar chunk = this.byStart[index];\n\n\tif (chunk) {\n\t\tchunk.appendRight(content);\n\t} else {\n\t\tthis.outro += content;\n\t}\n\treturn this;\n};\n\nMagicString.prototype.clone = function clone () {\n\tvar cloned = new MagicString(this.original, { filename: this.filename });\n\n\tvar originalChunk = this.firstChunk;\n\tvar clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone());\n\n\twhile (originalChunk) {\n\t\tcloned.byStart[clonedChunk.start] = clonedChunk;\n\t\tcloned.byEnd[clonedChunk.end] = clonedChunk;\n\n\t\tvar nextOriginalChunk = originalChunk.next;\n\t\tvar nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();\n\n\t\tif (nextClonedChunk) {\n\t\t\tclonedChunk.next = nextClonedChunk;\n\t\t\tnextClonedChunk.previous = clonedChunk;\n\n\t\t\tclonedChunk = nextClonedChunk;\n\t\t}\n\n\t\toriginalChunk = nextOriginalChunk;\n\t}\n\n\tcloned.lastChunk = clonedChunk;\n\n\tif (this.indentExclusionRanges) {\n\t\tcloned.indentExclusionRanges = this.indentExclusionRanges.slice();\n\t}\n\n\tcloned.sourcemapLocations = new BitSet(this.sourcemapLocations);\n\n\tcloned.intro = this.intro;\n\tcloned.outro = this.outro;\n\n\treturn cloned;\n};\n\nMagicString.prototype.generateDecodedMap = function generateDecodedMap (options) {\n\t\tvar this$1 = this;\n\n\toptions = options || {};\n\n\tvar sourceIndex = 0;\n\tvar names = Object.keys(this.storedNames);\n\tvar mappings = new Mappings(options.hires);\n\n\tvar locate = getLocator(this.original);\n\n\tif (this.intro) {\n\t\tmappings.advance(this.intro);\n\t}\n\n\tthis.firstChunk.eachNext(function (chunk) {\n\t\tvar loc = locate(chunk.start);\n\n\t\tif (chunk.intro.length) { mappings.advance(chunk.intro); }\n\n\t\tif (chunk.edited) {\n\t\t\tmappings.addEdit(\n\t\t\t\tsourceIndex,\n\t\t\t\tchunk.content,\n\t\t\t\tloc,\n\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1\n\t\t\t);\n\t\t} else {\n\t\t\tmappings.addUneditedChunk(sourceIndex, chunk, this$1.original, loc, this$1.sourcemapLocations);\n\t\t}\n\n\t\tif (chunk.outro.length) { mappings.advance(chunk.outro); }\n\t});\n\n\treturn {\n\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : null,\n\t\tsources: [options.source ? getRelativePath(options.file || '', options.source) : null],\n\t\tsourcesContent: options.includeContent ? [this.original] : [null],\n\t\tnames: names,\n\t\tmappings: mappings.raw\n\t};\n};\n\nMagicString.prototype.generateMap = function generateMap (options) {\n\treturn new SourceMap(this.generateDecodedMap(options));\n};\n\nMagicString.prototype.getIndentString = function getIndentString () {\n\treturn this.indentStr === null ? '\\t' : this.indentStr;\n};\n\nMagicString.prototype.indent = function indent (indentStr, options) {\n\tvar pattern = /^[^\\r\\n]/gm;\n\n\tif (isObject(indentStr)) {\n\t\toptions = indentStr;\n\t\tindentStr = undefined;\n\t}\n\n\tindentStr = indentStr !== undefined ? indentStr : this.indentStr || '\\t';\n\n\tif (indentStr === '') { return this; } // noop\n\n\toptions = options || {};\n\n\t// Process exclusion ranges\n\tvar isExcluded = {};\n\n\tif (options.exclude) {\n\t\tvar exclusions =\n\t\t\ttypeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude;\n\t\texclusions.forEach(function (exclusion) {\n\t\t\tfor (var i = exclusion[0]; i < exclusion[1]; i += 1) {\n\t\t\t\tisExcluded[i] = true;\n\t\t\t}\n\t\t});\n\t}\n\n\tvar shouldIndentNextCharacter = options.indentStart !== false;\n\tvar replacer = function (match) {\n\t\tif (shouldIndentNextCharacter) { return (\"\" + indentStr + match); }\n\t\tshouldIndentNextCharacter = true;\n\t\treturn match;\n\t};\n\n\tthis.intro = this.intro.replace(pattern, replacer);\n\n\tvar charIndex = 0;\n\tvar chunk = this.firstChunk;\n\n\twhile (chunk) {\n\t\tvar end = chunk.end;\n\n\t\tif (chunk.edited) {\n\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\tchunk.content = chunk.content.replace(pattern, replacer);\n\n\t\t\t\tif (chunk.content.length) {\n\t\t\t\t\tshouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\\n';\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tcharIndex = chunk.start;\n\n\t\t\twhile (charIndex < end) {\n\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\tvar char = this.original[charIndex];\n\n\t\t\t\t\tif (char === '\\n') {\n\t\t\t\t\t\tshouldIndentNextCharacter = true;\n\t\t\t\t\t} else if (char !== '\\r' && shouldIndentNextCharacter) {\n\t\t\t\t\t\tshouldIndentNextCharacter = false;\n\n\t\t\t\t\t\tif (charIndex === chunk.start) {\n\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis._splitChunk(chunk, charIndex);\n\t\t\t\t\t\t\tchunk = chunk.next;\n\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcharIndex += 1;\n\t\t\t}\n\t\t}\n\n\t\tcharIndex = chunk.end;\n\t\tchunk = chunk.next;\n\t}\n\n\tthis.outro = this.outro.replace(pattern, replacer);\n\n\treturn this;\n};\n\nMagicString.prototype.insert = function insert () {\n\tthrow new Error('magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)');\n};\n\nMagicString.prototype.insertLeft = function insertLeft (index, content) {\n\tif (!warned.insertLeft) {\n\t\tconsole.warn('magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead'); // eslint-disable-line no-console\n\t\twarned.insertLeft = true;\n\t}\n\n\treturn this.appendLeft(index, content);\n};\n\nMagicString.prototype.insertRight = function insertRight (index, content) {\n\tif (!warned.insertRight) {\n\t\tconsole.warn('magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead'); // eslint-disable-line no-console\n\t\twarned.insertRight = true;\n\t}\n\n\treturn this.prependRight(index, content);\n};\n\nMagicString.prototype.move = function move (start, end, index) {\n\tif (index >= start && index <= end) { throw new Error('Cannot move a selection inside itself'); }\n\n\tthis._split(start);\n\tthis._split(end);\n\tthis._split(index);\n\n\tvar first = this.byStart[start];\n\tvar last = this.byEnd[end];\n\n\tvar oldLeft = first.previous;\n\tvar oldRight = last.next;\n\n\tvar newRight = this.byStart[index];\n\tif (!newRight && last === this.lastChunk) { return this; }\n\tvar newLeft = newRight ? newRight.previous : this.lastChunk;\n\n\tif (oldLeft) { oldLeft.next = oldRight; }\n\tif (oldRight) { oldRight.previous = oldLeft; }\n\n\tif (newLeft) { newLeft.next = first; }\n\tif (newRight) { newRight.previous = last; }\n\n\tif (!first.previous) { this.firstChunk = last.next; }\n\tif (!last.next) {\n\t\tthis.lastChunk = first.previous;\n\t\tthis.lastChunk.next = null;\n\t}\n\n\tfirst.previous = newLeft;\n\tlast.next = newRight || null;\n\n\tif (!newLeft) { this.firstChunk = first; }\n\tif (!newRight) { this.lastChunk = last; }\n\treturn this;\n};\n\nMagicString.prototype.overwrite = function overwrite (start, end, content, options) {\n\tif (typeof content !== 'string') { throw new TypeError('replacement content must be a string'); }\n\n\twhile (start < 0) { start += this.original.length; }\n\twhile (end < 0) { end += this.original.length; }\n\n\tif (end > this.original.length) { throw new Error('end is out of bounds'); }\n\tif (start === end)\n\t\t{ throw new Error('Cannot overwrite a zero-length range – use appendLeft or prependRight instead'); }\n\n\tthis._split(start);\n\tthis._split(end);\n\n\tif (options === true) {\n\t\tif (!warned.storeName) {\n\t\t\tconsole.warn('The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string'); // eslint-disable-line no-console\n\t\t\twarned.storeName = true;\n\t\t}\n\n\t\toptions = { storeName: true };\n\t}\n\tvar storeName = options !== undefined ? options.storeName : false;\n\tvar contentOnly = options !== undefined ? options.contentOnly : false;\n\n\tif (storeName) {\n\t\tvar original = this.original.slice(start, end);\n\t\tthis.storedNames[original] = true;\n\t}\n\n\tvar first = this.byStart[start];\n\tvar last = this.byEnd[end];\n\n\tif (first) {\n\t\tif (end > first.end && first.next !== this.byStart[first.end]) {\n\t\t\tthrow new Error('Cannot overwrite across a split point');\n\t\t}\n\n\t\tfirst.edit(content, storeName, contentOnly);\n\n\t\tif (first !== last) {\n\t\t\tvar chunk = first.next;\n\t\t\twhile (chunk !== last) {\n\t\t\t\tchunk.edit('', false);\n\t\t\t\tchunk = chunk.next;\n\t\t\t}\n\n\t\t\tchunk.edit('', false);\n\t\t}\n\t} else {\n\t\t// must be inserting at the end\n\t\tvar newChunk = new Chunk(start, end, '').edit(content, storeName);\n\n\t\t// TODO last chunk in the array may not be the last chunk, if it's moved...\n\t\tlast.next = newChunk;\n\t\tnewChunk.previous = last;\n\t}\n\treturn this;\n};\n\nMagicString.prototype.prepend = function prepend (content) {\n\tif (typeof content !== 'string') { throw new TypeError('outro content must be a string'); }\n\n\tthis.intro = content + this.intro;\n\treturn this;\n};\n\nMagicString.prototype.prependLeft = function prependLeft (index, content) {\n\tif (typeof content !== 'string') { throw new TypeError('inserted content must be a string'); }\n\n\tthis._split(index);\n\n\tvar chunk = this.byEnd[index];\n\n\tif (chunk) {\n\t\tchunk.prependLeft(content);\n\t} else {\n\t\tthis.intro = content + this.intro;\n\t}\n\treturn this;\n};\n\nMagicString.prototype.prependRight = function prependRight (index, content) {\n\tif (typeof content !== 'string') { throw new TypeError('inserted content must be a string'); }\n\n\tthis._split(index);\n\n\tvar chunk = this.byStart[index];\n\n\tif (chunk) {\n\t\tchunk.prependRight(content);\n\t} else {\n\t\tthis.outro = content + this.outro;\n\t}\n\treturn this;\n};\n\nMagicString.prototype.remove = function remove (start, end) {\n\twhile (start < 0) { start += this.original.length; }\n\twhile (end < 0) { end += this.original.length; }\n\n\tif (start === end) { return this; }\n\n\tif (start < 0 || end > this.original.length) { throw new Error('Character is out of bounds'); }\n\tif (start > end) { throw new Error('end must be greater than start'); }\n\n\tthis._split(start);\n\tthis._split(end);\n\n\tvar chunk = this.byStart[start];\n\n\twhile (chunk) {\n\t\tchunk.intro = '';\n\t\tchunk.outro = '';\n\t\tchunk.edit('');\n\n\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t}\n\treturn this;\n};\n\nMagicString.prototype.lastChar = function lastChar () {\n\tif (this.outro.length)\n\t\t{ return this.outro[this.outro.length - 1]; }\n\tvar chunk = this.lastChunk;\n\tdo {\n\t\tif (chunk.outro.length)\n\t\t\t{ return chunk.outro[chunk.outro.length - 1]; }\n\t\tif (chunk.content.length)\n\t\t\t{ return chunk.content[chunk.content.length - 1]; }\n\t\tif (chunk.intro.length)\n\t\t\t{ return chunk.intro[chunk.intro.length - 1]; }\n\t} while (chunk = chunk.previous);\n\tif (this.intro.length)\n\t\t{ return this.intro[this.intro.length - 1]; }\n\treturn '';\n};\n\nMagicString.prototype.lastLine = function lastLine () {\n\tvar lineIndex = this.outro.lastIndexOf(n);\n\tif (lineIndex !== -1)\n\t\t{ return this.outro.substr(lineIndex + 1); }\n\tvar lineStr = this.outro;\n\tvar chunk = this.lastChunk;\n\tdo {\n\t\tif (chunk.outro.length > 0) {\n\t\t\tlineIndex = chunk.outro.lastIndexOf(n);\n\t\t\tif (lineIndex !== -1)\n\t\t\t\t{ return chunk.outro.substr(lineIndex + 1) + lineStr; }\n\t\t\tlineStr = chunk.outro + lineStr;\n\t\t}\n\n\t\tif (chunk.content.length > 0) {\n\t\t\tlineIndex = chunk.content.lastIndexOf(n);\n\t\t\tif (lineIndex !== -1)\n\t\t\t\t{ return chunk.content.substr(lineIndex + 1) + lineStr; }\n\t\t\tlineStr = chunk.content + lineStr;\n\t\t}\n\n\t\tif (chunk.intro.length > 0) {\n\t\t\tlineIndex = chunk.intro.lastIndexOf(n);\n\t\t\tif (lineIndex !== -1)\n\t\t\t\t{ return chunk.intro.substr(lineIndex + 1) + lineStr; }\n\t\t\tlineStr = chunk.intro + lineStr;\n\t\t}\n\t} while (chunk = chunk.previous);\n\tlineIndex = this.intro.lastIndexOf(n);\n\tif (lineIndex !== -1)\n\t\t{ return this.intro.substr(lineIndex + 1) + lineStr; }\n\treturn this.intro + lineStr;\n};\n\nMagicString.prototype.slice = function slice (start, end) {\n\t\tif ( start === void 0 ) start = 0;\n\t\tif ( end === void 0 ) end = this.original.length;\n\n\twhile (start < 0) { start += this.original.length; }\n\twhile (end < 0) { end += this.original.length; }\n\n\tvar result = '';\n\n\t// find start chunk\n\tvar chunk = this.firstChunk;\n\twhile (chunk && (chunk.start > start || chunk.end <= start)) {\n\t\t// found end chunk before start\n\t\tif (chunk.start < end && chunk.end >= end) {\n\t\t\treturn result;\n\t\t}\n\n\t\tchunk = chunk.next;\n\t}\n\n\tif (chunk && chunk.edited && chunk.start !== start)\n\t\t{ throw new Error((\"Cannot use replaced character \" + start + \" as slice start anchor.\")); }\n\n\tvar startChunk = chunk;\n\twhile (chunk) {\n\t\tif (chunk.intro && (startChunk !== chunk || chunk.start === start)) {\n\t\t\tresult += chunk.intro;\n\t\t}\n\n\t\tvar containsEnd = chunk.start < end && chunk.end >= end;\n\t\tif (containsEnd && chunk.edited && chunk.end !== end)\n\t\t\t{ throw new Error((\"Cannot use replaced character \" + end + \" as slice end anchor.\")); }\n\n\t\tvar sliceStart = startChunk === chunk ? start - chunk.start : 0;\n\t\tvar sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;\n\n\t\tresult += chunk.content.slice(sliceStart, sliceEnd);\n\n\t\tif (chunk.outro && (!containsEnd || chunk.end === end)) {\n\t\t\tresult += chunk.outro;\n\t\t}\n\n\t\tif (containsEnd) {\n\t\t\tbreak;\n\t\t}\n\n\t\tchunk = chunk.next;\n\t}\n\n\treturn result;\n};\n\n// TODO deprecate this? not really very useful\nMagicString.prototype.snip = function snip (start, end) {\n\tvar clone = this.clone();\n\tclone.remove(0, start);\n\tclone.remove(end, clone.original.length);\n\n\treturn clone;\n};\n\nMagicString.prototype._split = function _split (index) {\n\tif (this.byStart[index] || this.byEnd[index]) { return; }\n\n\tvar chunk = this.lastSearchedChunk;\n\tvar searchForward = index > chunk.end;\n\n\twhile (chunk) {\n\t\tif (chunk.contains(index)) { return this._splitChunk(chunk, index); }\n\n\t\tchunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];\n\t}\n};\n\nMagicString.prototype._splitChunk = function _splitChunk (chunk, index) {\n\tif (chunk.edited && chunk.content.length) {\n\t\t// zero-length edited chunks are a special case (overlapping replacements)\n\t\tvar loc = getLocator(this.original)(index);\n\t\tthrow new Error(\n\t\t\t(\"Cannot split a chunk that has already been edited (\" + (loc.line) + \":\" + (loc.column) + \" – \\\"\" + (chunk.original) + \"\\\")\")\n\t\t);\n\t}\n\n\tvar newChunk = chunk.split(index);\n\n\tthis.byEnd[index] = chunk;\n\tthis.byStart[index] = newChunk;\n\tthis.byEnd[newChunk.end] = newChunk;\n\n\tif (chunk === this.lastChunk) { this.lastChunk = newChunk; }\n\n\tthis.lastSearchedChunk = chunk;\n\treturn true;\n};\n\nMagicString.prototype.toString = function toString () {\n\tvar str = this.intro;\n\n\tvar chunk = this.firstChunk;\n\twhile (chunk) {\n\t\tstr += chunk.toString();\n\t\tchunk = chunk.next;\n\t}\n\n\treturn str + this.outro;\n};\n\nMagicString.prototype.isEmpty = function isEmpty () {\n\tvar chunk = this.firstChunk;\n\tdo {\n\t\tif (chunk.intro.length && chunk.intro.trim() ||\n\t\t\t\tchunk.content.length && chunk.content.trim() ||\n\t\t\t\tchunk.outro.length && chunk.outro.trim())\n\t\t\t{ return false; }\n\t} while (chunk = chunk.next);\n\treturn true;\n};\n\nMagicString.prototype.length = function length () {\n\tvar chunk = this.firstChunk;\n\tvar length = 0;\n\tdo {\n\t\tlength += chunk.intro.length + chunk.content.length + chunk.outro.length;\n\t} while (chunk = chunk.next);\n\treturn length;\n};\n\nMagicString.prototype.trimLines = function trimLines () {\n\treturn this.trim('[\\\\r\\\\n]');\n};\n\nMagicString.prototype.trim = function trim (charType) {\n\treturn this.trimStart(charType).trimEnd(charType);\n};\n\nMagicString.prototype.trimEndAborted = function trimEndAborted (charType) {\n\tvar rx = new RegExp((charType || '\\\\s') + '+$');\n\n\tthis.outro = this.outro.replace(rx, '');\n\tif (this.outro.length) { return true; }\n\n\tvar chunk = this.lastChunk;\n\n\tdo {\n\t\tvar end = chunk.end;\n\t\tvar aborted = chunk.trimEnd(rx);\n\n\t\t// if chunk was trimmed, we have a new lastChunk\n\t\tif (chunk.end !== end) {\n\t\t\tif (this.lastChunk === chunk) {\n\t\t\t\tthis.lastChunk = chunk.next;\n\t\t\t}\n\n\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t}\n\n\t\tif (aborted) { return true; }\n\t\tchunk = chunk.previous;\n\t} while (chunk);\n\n\treturn false;\n};\n\nMagicString.prototype.trimEnd = function trimEnd (charType) {\n\tthis.trimEndAborted(charType);\n\treturn this;\n};\nMagicString.prototype.trimStartAborted = function trimStartAborted (charType) {\n\tvar rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\n\tthis.intro = this.intro.replace(rx, '');\n\tif (this.intro.length) { return true; }\n\n\tvar chunk = this.firstChunk;\n\n\tdo {\n\t\tvar end = chunk.end;\n\t\tvar aborted = chunk.trimStart(rx);\n\n\t\tif (chunk.end !== end) {\n\t\t\t// special case...\n\t\t\tif (chunk === this.lastChunk) { this.lastChunk = chunk.next; }\n\n\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t}\n\n\t\tif (aborted) { return true; }\n\t\tchunk = chunk.next;\n\t} while (chunk);\n\n\treturn false;\n};\n\nMagicString.prototype.trimStart = function trimStart (charType) {\n\tthis.trimStartAborted(charType);\n\treturn this;\n};\n\nvar hasOwnProp = Object.prototype.hasOwnProperty;\n\nvar Bundle = function Bundle(options) {\n\tif ( options === void 0 ) options = {};\n\n\tthis.intro = options.intro || '';\n\tthis.separator = options.separator !== undefined ? options.separator : '\\n';\n\tthis.sources = [];\n\tthis.uniqueSources = [];\n\tthis.uniqueSourceIndexByFilename = {};\n};\n\nBundle.prototype.addSource = function addSource (source) {\n\tif (source instanceof MagicString) {\n\t\treturn this.addSource({\n\t\t\tcontent: source,\n\t\t\tfilename: source.filename,\n\t\t\tseparator: this.separator\n\t\t});\n\t}\n\n\tif (!isObject(source) || !source.content) {\n\t\tthrow new Error('bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`');\n\t}\n\n\t['filename', 'indentExclusionRanges', 'separator'].forEach(function (option) {\n\t\tif (!hasOwnProp.call(source, option)) { source[option] = source.content[option]; }\n\t});\n\n\tif (source.separator === undefined) {\n\t\t// TODO there's a bunch of this sort of thing, needs cleaning up\n\t\tsource.separator = this.separator;\n\t}\n\n\tif (source.filename) {\n\t\tif (!hasOwnProp.call(this.uniqueSourceIndexByFilename, source.filename)) {\n\t\t\tthis.uniqueSourceIndexByFilename[source.filename] = this.uniqueSources.length;\n\t\t\tthis.uniqueSources.push({ filename: source.filename, content: source.content.original });\n\t\t} else {\n\t\t\tvar uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]];\n\t\t\tif (source.content.original !== uniqueSource.content) {\n\t\t\t\tthrow new Error((\"Illegal source: same filename (\" + (source.filename) + \"), different contents\"));\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.sources.push(source);\n\treturn this;\n};\n\nBundle.prototype.append = function append (str, options) {\n\tthis.addSource({\n\t\tcontent: new MagicString(str),\n\t\tseparator: (options && options.separator) || ''\n\t});\n\n\treturn this;\n};\n\nBundle.prototype.clone = function clone () {\n\tvar bundle = new Bundle({\n\t\tintro: this.intro,\n\t\tseparator: this.separator\n\t});\n\n\tthis.sources.forEach(function (source) {\n\t\tbundle.addSource({\n\t\t\tfilename: source.filename,\n\t\t\tcontent: source.content.clone(),\n\t\t\tseparator: source.separator\n\t\t});\n\t});\n\n\treturn bundle;\n};\n\nBundle.prototype.generateDecodedMap = function generateDecodedMap (options) {\n\t\tvar this$1 = this;\n\t\tif ( options === void 0 ) options = {};\n\n\tvar names = [];\n\tthis.sources.forEach(function (source) {\n\t\tObject.keys(source.content.storedNames).forEach(function (name) {\n\t\t\tif (!~names.indexOf(name)) { names.push(name); }\n\t\t});\n\t});\n\n\tvar mappings = new Mappings(options.hires);\n\n\tif (this.intro) {\n\t\tmappings.advance(this.intro);\n\t}\n\n\tthis.sources.forEach(function (source, i) {\n\t\tif (i > 0) {\n\t\t\tmappings.advance(this$1.separator);\n\t\t}\n\n\t\tvar sourceIndex = source.filename ? this$1.uniqueSourceIndexByFilename[source.filename] : -1;\n\t\tvar magicString = source.content;\n\t\tvar locate = getLocator(magicString.original);\n\n\t\tif (magicString.intro) {\n\t\t\tmappings.advance(magicString.intro);\n\t\t}\n\n\t\tmagicString.firstChunk.eachNext(function (chunk) {\n\t\t\tvar loc = locate(chunk.start);\n\n\t\t\tif (chunk.intro.length) { mappings.advance(chunk.intro); }\n\n\t\t\tif (source.filename) {\n\t\t\t\tif (chunk.edited) {\n\t\t\t\t\tmappings.addEdit(\n\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\tchunk.content,\n\t\t\t\t\t\tloc,\n\t\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tmappings.addUneditedChunk(\n\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\tchunk,\n\t\t\t\t\t\tmagicString.original,\n\t\t\t\t\t\tloc,\n\t\t\t\t\t\tmagicString.sourcemapLocations\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmappings.advance(chunk.content);\n\t\t\t}\n\n\t\t\tif (chunk.outro.length) { mappings.advance(chunk.outro); }\n\t\t});\n\n\t\tif (magicString.outro) {\n\t\t\tmappings.advance(magicString.outro);\n\t\t}\n\t});\n\n\treturn {\n\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : null,\n\t\tsources: this.uniqueSources.map(function (source) {\n\t\t\treturn options.file ? getRelativePath(options.file, source.filename) : source.filename;\n\t\t}),\n\t\tsourcesContent: this.uniqueSources.map(function (source) {\n\t\t\treturn options.includeContent ? source.content : null;\n\t\t}),\n\t\tnames: names,\n\t\tmappings: mappings.raw\n\t};\n};\n\nBundle.prototype.generateMap = function generateMap (options) {\n\treturn new SourceMap(this.generateDecodedMap(options));\n};\n\nBundle.prototype.getIndentString = function getIndentString () {\n\tvar indentStringCounts = {};\n\n\tthis.sources.forEach(function (source) {\n\t\tvar indentStr = source.content.indentStr;\n\n\t\tif (indentStr === null) { return; }\n\n\t\tif (!indentStringCounts[indentStr]) { indentStringCounts[indentStr] = 0; }\n\t\tindentStringCounts[indentStr] += 1;\n\t});\n\n\treturn (\n\t\tObject.keys(indentStringCounts).sort(function (a, b) {\n\t\t\treturn indentStringCounts[a] - indentStringCounts[b];\n\t\t})[0] || '\\t'\n\t);\n};\n\nBundle.prototype.indent = function indent (indentStr) {\n\t\tvar this$1 = this;\n\n\tif (!arguments.length) {\n\t\tindentStr = this.getIndentString();\n\t}\n\n\tif (indentStr === '') { return this; } // noop\n\n\tvar trailingNewline = !this.intro || this.intro.slice(-1) === '\\n';\n\n\tthis.sources.forEach(function (source, i) {\n\t\tvar separator = source.separator !== undefined ? source.separator : this$1.separator;\n\t\tvar indentStart = trailingNewline || (i > 0 && /\\r?\\n$/.test(separator));\n\n\t\tsource.content.indent(indentStr, {\n\t\t\texclude: source.indentExclusionRanges,\n\t\t\tindentStart: indentStart //: trailingNewline || /\\r?\\n$/.test( separator ) //true///\\r?\\n/.test( separator )\n\t\t});\n\n\t\ttrailingNewline = source.content.lastChar() === '\\n';\n\t});\n\n\tif (this.intro) {\n\t\tthis.intro =\n\t\t\tindentStr +\n\t\t\tthis.intro.replace(/^[^\\n]/gm, function (match, index) {\n\t\t\t\treturn index > 0 ? indentStr + match : match;\n\t\t\t});\n\t}\n\n\treturn this;\n};\n\nBundle.prototype.prepend = function prepend (str) {\n\tthis.intro = str + this.intro;\n\treturn this;\n};\n\nBundle.prototype.toString = function toString () {\n\t\tvar this$1 = this;\n\n\tvar body = this.sources\n\t\t.map(function (source, i) {\n\t\t\tvar separator = source.separator !== undefined ? source.separator : this$1.separator;\n\t\t\tvar str = (i > 0 ? separator : '') + source.content.toString();\n\n\t\t\treturn str;\n\t\t})\n\t\t.join('');\n\n\treturn this.intro + body;\n};\n\nBundle.prototype.isEmpty = function isEmpty () {\n\tif (this.intro.length && this.intro.trim())\n\t\t{ return false; }\n\tif (this.sources.some(function (source) { return !source.content.isEmpty(); }))\n\t\t{ return false; }\n\treturn true;\n};\n\nBundle.prototype.length = function length () {\n\treturn this.sources.reduce(function (length, source) { return length + source.content.length(); }, this.intro.length);\n};\n\nBundle.prototype.trimLines = function trimLines () {\n\treturn this.trim('[\\\\r\\\\n]');\n};\n\nBundle.prototype.trim = function trim (charType) {\n\treturn this.trimStart(charType).trimEnd(charType);\n};\n\nBundle.prototype.trimStart = function trimStart (charType) {\n\tvar rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\tthis.intro = this.intro.replace(rx, '');\n\n\tif (!this.intro) {\n\t\tvar source;\n\t\tvar i = 0;\n\n\t\tdo {\n\t\t\tsource = this.sources[i++];\n\t\t\tif (!source) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} while (!source.content.trimStartAborted(charType));\n\t}\n\n\treturn this;\n};\n\nBundle.prototype.trimEnd = function trimEnd (charType) {\n\tvar rx = new RegExp((charType || '\\\\s') + '+$');\n\n\tvar source;\n\tvar i = this.sources.length - 1;\n\n\tdo {\n\t\tsource = this.sources[i--];\n\t\tif (!source) {\n\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\tbreak;\n\t\t}\n\t} while (!source.content.trimEndAborted(charType));\n\n\treturn this;\n};\n\nexport default MagicString;\nexport { Bundle, SourceMap };\n//# sourceMappingURL=magic-string.es.js.map\n","export const absolutePath = /^(?:\\/|(?:[A-Za-z]:)?[\\\\|/])/;\nexport const relativePath = /^\\.?\\.\\//;\n\nexport function isAbsolute(path: string): boolean {\n\treturn absolutePath.test(path);\n}\n\nexport function isRelative(path: string): boolean {\n\treturn relativePath.test(path);\n}\n\nexport function normalize(path: string): string {\n\treturn path.replace(/\\\\/g, '/');\n}\n\nexport function basename(path: string): string {\n\treturn path.split(/[/\\\\]/).pop() || '';\n}\n\nexport function dirname(path: string): string {\n\tconst match = /[/\\\\][^/\\\\]*$/.exec(path);\n\tif (!match) return '.';\n\n\tconst dir = path.slice(0, -match[0].length);\n\n\t// If `dir` is the empty string, we're at root.\n\treturn dir ? dir : '/';\n}\n\nexport function extname(path: string): string {\n\tconst match = /\\.[^.]+$/.exec(basename(path)!);\n\tif (!match) return '';\n\treturn match[0];\n}\n\nexport function relative(from: string, to: string): string {\n\tconst fromParts = from.split(/[/\\\\]/).filter(Boolean);\n\tconst toParts = to.split(/[/\\\\]/).filter(Boolean);\n\n\tif (fromParts[0] === '.') fromParts.shift();\n\tif (toParts[0] === '.') toParts.shift();\n\n\twhile (fromParts[0] && toParts[0] && fromParts[0] === toParts[0]) {\n\t\tfromParts.shift();\n\t\ttoParts.shift();\n\t}\n\n\twhile (toParts[0] === '..' && fromParts.length > 0) {\n\t\ttoParts.shift();\n\t\tfromParts.pop();\n\t}\n\n\twhile (fromParts.pop()) {\n\t\ttoParts.unshift('..');\n\t}\n\n\treturn toParts.join('/');\n}\n\nexport function resolve(...paths: string[]): string {\n\tconst firstPathSegment = paths.shift();\n\tif (!firstPathSegment) {\n\t\treturn '/';\n\t}\n\tlet resolvedParts = firstPathSegment.split(/[/\\\\]/);\n\n\tfor (const path of paths) {\n\t\tif (isAbsolute(path)) {\n\t\t\tresolvedParts = path.split(/[/\\\\]/);\n\t\t} else {\n\t\t\tconst parts = path.split(/[/\\\\]/);\n\n\t\t\twhile (parts[0] === '.' || parts[0] === '..') {\n\t\t\t\tconst part = parts.shift();\n\t\t\t\tif (part === '..') {\n\t\t\t\t\tresolvedParts.pop();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tresolvedParts.push(...parts);\n\t\t}\n\t}\n\n\treturn resolvedParts.join('/');\n}\n","export interface NameCollection {\n\t[name: string]: true | null;\n\t__proto__: null;\n}\n\nexport const RESERVED_NAMES: NameCollection = {\n\t__proto__: null,\n\tawait: true,\n\tbreak: true,\n\tcase: true,\n\tcatch: true,\n\tclass: true,\n\tconst: true,\n\tcontinue: true,\n\tdebugger: true,\n\tdefault: true,\n\tdelete: true,\n\tdo: true,\n\telse: true,\n\tenum: true,\n\teval: true,\n\texport: true,\n\textends: true,\n\tfalse: true,\n\tfinally: true,\n\tfor: true,\n\tfunction: true,\n\tif: true,\n\timplements: true,\n\timport: true,\n\tin: true,\n\tinstanceof: true,\n\tinterface: true,\n\tlet: true,\n\tnew: true,\n\tnull: true,\n\tpackage: true,\n\tprivate: true,\n\tprotected: true,\n\tpublic: true,\n\treturn: true,\n\tstatic: true,\n\tsuper: true,\n\tswitch: true,\n\tthis: true,\n\tthrow: true,\n\ttrue: true,\n\ttry: true,\n\ttypeof: true,\n\tundefined: true,\n\tvar: true,\n\tvoid: true,\n\twhile: true,\n\twith: true,\n\tyield: true\n};\n","export function getOrCreate<K, V>(map: Map<K, V>, key: K, init: () => V): V {\n\tconst existing = map.get(key);\n\tif (existing) {\n\t\treturn existing;\n\t}\n\tconst value = init();\n\tmap.set(key, value);\n\treturn value;\n}\n","import { getOrCreate } from '../../utils/getOrCreate';\nimport { Entity } from '../Entity';\n\nexport const UnknownKey = Symbol('Unknown Key');\nexport const UnknownInteger = Symbol('Unknown Integer');\nexport type ObjectPathKey = string | typeof UnknownKey | typeof UnknownInteger;\n\nexport type ObjectPath = ObjectPathKey[];\nexport const EMPTY_PATH: ObjectPath = [];\nexport const UNKNOWN_PATH: ObjectPath = [UnknownKey];\nexport const UNKNOWN_INTEGER_PATH: ObjectPath = [UnknownInteger];\n\nconst EntitiesKey = Symbol('Entities');\ninterface EntityPaths {\n\t[pathSegment: string]: EntityPaths;\n\t[EntitiesKey]: Set<Entity>;\n\t[UnknownInteger]?: EntityPaths;\n\t[UnknownKey]?: EntityPaths;\n}\n\nexport class PathTracker {\n\tprivate entityPaths: EntityPaths = Object.create(null, {\n\t\t[EntitiesKey]: { value: new Set<Entity>() }\n\t});\n\n\ttrackEntityAtPathAndGetIfTracked(path: ObjectPath, entity: Entity): boolean {\n\t\tconst trackedEntities = this.getEntities(path);\n\t\tif (trackedEntities.has(entity)) return true;\n\t\ttrackedEntities.add(entity);\n\t\treturn false;\n\t}\n\n\twithTrackedEntityAtPath<T>(\n\t\tpath: ObjectPath,\n\t\tentity: Entity,\n\t\tonUntracked: () => T,\n\t\treturnIfTracked: T\n\t): T {\n\t\tconst trackedEntities = this.getEntities(path);\n\t\tif (trackedEntities.has(entity)) return returnIfTracked;\n\t\ttrackedEntities.add(entity);\n\t\tconst result = onUntracked();\n\t\ttrackedEntities.delete(entity);\n\t\treturn result;\n\t}\n\n\tprivate getEntities(path: ObjectPath): Set<Entity> {\n\t\tlet currentPaths = this.entityPaths;\n\t\tfor (const pathSegment of path) {\n\t\t\tcurrentPaths = currentPaths[pathSegment] =\n\t\t\t\tcurrentPaths[pathSegment] ||\n\t\t\t\tObject.create(null, { [EntitiesKey]: { value: new Set<Entity>() } });\n\t\t}\n\t\treturn currentPaths[EntitiesKey];\n\t}\n}\n\nexport const SHARED_RECURSION_TRACKER = new PathTracker();\n\ninterface DiscriminatedEntityPaths {\n\t[pathSegment: string]: DiscriminatedEntityPaths;\n\t[EntitiesKey]: Map<unknown, Set<Entity>>;\n\t[UnknownInteger]?: DiscriminatedEntityPaths;\n\t[UnknownKey]?: DiscriminatedEntityPaths;\n}\n\nexport class DiscriminatedPathTracker {\n\tprivate entityPaths: DiscriminatedEntityPaths = Object.create(null, {\n\t\t[EntitiesKey]: { value: new Map<unknown, Set<Entity>>() }\n\t});\n\n\ttrackEntityAtPathAndGetIfTracked(\n\t\tpath: ObjectPath,\n\t\tdiscriminator: unknown,\n\t\tentity: Entity\n\t): boolean {\n\t\tlet currentPaths = this.entityPaths;\n\t\tfor (const pathSegment of path) {\n\t\t\tcurrentPaths = currentPaths[pathSegment] =\n\t\t\t\tcurrentPaths[pathSegment] ||\n\t\t\t\tObject.create(null, { [EntitiesKey]: { value: new Map<unknown, Set<Entity>>() } });\n\t\t}\n\t\tconst trackedEntities = getOrCreate(currentPaths[EntitiesKey], discriminator, () => new Set());\n\t\tif (trackedEntities.has(entity)) return true;\n\t\ttrackedEntities.add(entity);\n\t\treturn false;\n\t}\n}\n","import { CallOptions } from '../../CallOptions';\nimport { DeoptimizableEntity } from '../../DeoptimizableEntity';\nimport { WritableEntity } from '../../Entity';\nimport { HasEffectsContext, InclusionContext } from '../../ExecutionContext';\nimport { NodeEvent } from '../../NodeEvents';\nimport { ObjectPath, PathTracker, UNKNOWN_PATH } from '../../utils/PathTracker';\nimport { LiteralValue } from '../Literal';\nimport SpreadElement from '../SpreadElement';\nimport { ExpressionNode, IncludeChildren } from './Node';\n\nexport const UnknownValue = Symbol('Unknown Value');\n\nexport type LiteralValueOrUnknown = LiteralValue | typeof UnknownValue;\n\nexport class ExpressionEntity implements WritableEntity {\n\tincluded = false;\n\n\tdeoptimizePath(_path: ObjectPath): void {}\n\n\tdeoptimizeThisOnEventAtPath(\n\t\t_event: NodeEvent,\n\t\t_path: ObjectPath,\n\t\tthisParameter: ExpressionEntity,\n\t\t_recursionTracker: PathTracker\n\t): void {\n\t\tthisParameter.deoptimizePath(UNKNOWN_PATH);\n\t}\n\n\t/**\n\t * If possible it returns a stringifyable literal value for this node that can be used\n\t * for inlining or comparing values.\n\t * Otherwise it should return UnknownValue.\n\t */\n\tgetLiteralValueAtPath(\n\t\t_path: ObjectPath,\n\t\t_recursionTracker: PathTracker,\n\t\t_origin: DeoptimizableEntity\n\t): LiteralValueOrUnknown {\n\t\treturn UnknownValue;\n\t}\n\n\tgetReturnExpressionWhenCalledAtPath(\n\t\t_path: ObjectPath,\n\t\t_callOptions: CallOptions,\n\t\t_recursionTracker: PathTracker,\n\t\t_origin: DeoptimizableEntity\n\t): ExpressionEntity {\n\t\treturn UNKNOWN_EXPRESSION;\n\t}\n\n\thasEffectsWhenAccessedAtPath(_path: ObjectPath, _context: HasEffectsContext): boolean {\n\t\treturn true;\n\t}\n\n\thasEffectsWhenAssignedAtPath(_path: ObjectPath, _context: HasEffectsContext): boolean {\n\t\treturn true;\n\t}\n\n\thasEffectsWhenCalledAtPath(\n\t\t_path: ObjectPath,\n\t\t_callOptions: CallOptions,\n\t\t_context: HasEffectsContext\n\t): boolean {\n\t\treturn true;\n\t}\n\n\tinclude(_context: InclusionContext, _includeChildrenRecursively: IncludeChildren): void {\n\t\tthis.included = true;\n\t}\n\n\tincludeCallArguments(context: InclusionContext, args: (ExpressionNode | SpreadElement)[]): void {\n\t\tfor (const arg of args) {\n\t\t\targ.include(context, false);\n\t\t}\n\t}\n}\n\nexport const UNKNOWN_EXPRESSION: ExpressionEntity =\n\tnew (class UnknownExpression extends ExpressionEntity {})();\n","import ExternalModule from '../../ExternalModule';\nimport Module from '../../Module';\nimport { RESERVED_NAMES } from '../../utils/reservedNames';\nimport { HasEffectsContext } from '../ExecutionContext';\nimport Identifier from '../nodes/Identifier';\nimport { ExpressionEntity } from '../nodes/shared/Expression';\nimport { ObjectPath } from '../utils/PathTracker';\n\nexport default class Variable extends ExpressionEntity {\n\talwaysRendered = false;\n\tinitReached = false;\n\tisId = false;\n\t// both NamespaceVariable and ExternalVariable can be namespaces\n\tisNamespace?: boolean;\n\tisReassigned = false;\n\tkind: string | null = null;\n\tmodule?: Module | ExternalModule;\n\trenderBaseName: string | null = null;\n\trenderName: string | null = null;\n\n\tconstructor(public name: string) {\n\t\tsuper();\n\t}\n\n\t/**\n\t * Binds identifiers that reference this variable to this variable.\n\t * Necessary to be able to change variable names.\n\t */\n\taddReference(_identifier: Identifier): void {}\n\n\tgetBaseVariableName(): string {\n\t\treturn this.renderBaseName || this.renderName || this.name;\n\t}\n\n\tgetName(): string {\n\t\tconst name = this.renderName || this.name;\n\t\treturn this.renderBaseName\n\t\t\t? `${this.renderBaseName}${RESERVED_NAMES[name] ? `['${name}']` : `.${name}`}`\n\t\t\t: name;\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath, _context: HasEffectsContext): boolean {\n\t\treturn path.length > 0;\n\t}\n\n\t/**\n\t * Marks this variable as being part of the bundle, which is usually the case when one of\n\t * its identifiers becomes part of the bundle. Returns true if it has not been included\n\t * previously.\n\t * Once a variable is included, it should take care all its declarations are included.\n\t */\n\tinclude(): void {\n\t\tthis.included = true;\n\t}\n\n\tmarkCalledFromTryStatement(): void {}\n\n\tsetRenderNames(baseName: string | null, name: string | null): void {\n\t\tthis.renderBaseName = baseName;\n\t\tthis.renderName = name;\n\t}\n}\n","import ExternalModule from '../../ExternalModule';\nimport Identifier from '../nodes/Identifier';\nimport { ObjectPath } from '../utils/PathTracker';\nimport Variable from './Variable';\n\nexport default class ExternalVariable extends Variable {\n\tisNamespace: boolean;\n\tmodule: ExternalModule;\n\treferenced: boolean;\n\n\tconstructor(module: ExternalModule, name: string) {\n\t\tsuper(name);\n\t\tthis.module = module;\n\t\tthis.isNamespace = name === '*';\n\t\tthis.referenced = false;\n\t}\n\n\taddReference(identifier: Identifier): void {\n\t\tthis.referenced = true;\n\t\tif (this.name === 'default' || this.name === '*') {\n\t\t\tthis.module.suggestName(identifier.name);\n\t\t}\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath): boolean {\n\t\treturn path.length > (this.isNamespace ? 1 : 0);\n\t}\n\n\tinclude(): void {\n\t\tif (!this.included) {\n\t\t\tthis.included = true;\n\t\t\tthis.module.used = true;\n\t\t}\n\t}\n}\n","export const BLANK: Record<string, any> = Object.freeze(Object.create(null));\nexport const EMPTY_OBJECT = Object.freeze({});\nexport const EMPTY_ARRAY = Object.freeze([]);\n","export const reservedWords =\n\t'break case class catch const continue debugger default delete do else export extends finally for function if import in instanceof let new return super switch this throw try typeof var void while with yield enum await implements package protected static interface private public'.split(\n\t\t' '\n\t);\nconst builtins =\n\t'Infinity NaN undefined null true false eval uneval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Symbol Error EvalError InternalError RangeError ReferenceError SyntaxError TypeError URIError Number Math Date String RegExp Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array Map Set WeakMap WeakSet SIMD ArrayBuffer DataView JSON Promise Generator GeneratorFunction Reflect Proxy Intl'.split(\n\t\t' '\n\t);\n\nconst blacklisted = new Set(reservedWords.concat(builtins));\n\nconst illegalCharacters = /[^$_a-zA-Z0-9]/g;\n\nconst startsWithDigit = (str: string) => /\\d/.test(str[0]);\n\nexport function isLegal(str: string): boolean {\n\tif (startsWithDigit(str) || blacklisted.has(str)) {\n\t\treturn false;\n\t}\n\treturn !illegalCharacters.test(str);\n}\n\nexport function makeLegal(str: string): string {\n\tstr = str.replace(/-(\\w)/g, (_, letter) => letter.toUpperCase()).replace(illegalCharacters, '_');\n\n\tif (startsWithDigit(str) || blacklisted.has(str)) str = `_${str}`;\n\n\treturn str || '_';\n}\n","export function printQuotedStringList(list: string[], verbs?: [string, string]): string {\n\tconst isSingleItem = list.length <= 1;\n\tconst quotedList = list.map(item => `\"${item}\"`);\n\tlet output = isSingleItem\n\t\t? quotedList[0]\n\t\t: `${quotedList.slice(0, -1).join(', ')} and ${quotedList.slice(-1)[0]}`;\n\tif (verbs) {\n\t\toutput += ` ${isSingleItem ? verbs[0] : verbs[1]}`;\n\t}\n\treturn output;\n}\n","import { basename, extname, isAbsolute, relative, resolve } from './path';\n\nexport function getAliasName(id: string): string {\n\tconst base = basename(id);\n\treturn base.substr(0, base.length - extname(id).length);\n}\n\nexport default function relativeId(id: string): string {\n\tif (!isAbsolute(id)) return id;\n\treturn relative(resolve(), id);\n}\n\nexport function isPathFragment(name: string): boolean {\n\t// starting with \"/\", \"./\", \"../\", \"C:/\"\n\treturn (\n\t\tname[0] === '/' || (name[0] === '.' && (name[1] === '/' || name[1] === '.')) || isAbsolute(name)\n\t);\n}\n","import ExternalVariable from './ast/variables/ExternalVariable';\nimport {\n\tCustomPluginOptions,\n\tModuleInfo,\n\tNormalizedInputOptions,\n\tNormalizedOutputOptions\n} from './rollup/types';\nimport { EMPTY_ARRAY } from './utils/blank';\nimport { makeLegal } from './utils/identifierHelpers';\nimport { normalize, relative } from './utils/path';\nimport { printQuotedStringList } from './utils/printStringList';\nimport relativeId from './utils/relativeId';\n\nexport default class ExternalModule {\n\tchunk: void;\n\tdeclarations: { [name: string]: ExternalVariable };\n\tdefaultVariableName = '';\n\tdynamicImporters: string[] = [];\n\texecIndex: number;\n\texportedVariables: Map<ExternalVariable, string>;\n\timporters: string[] = [];\n\tinfo: ModuleInfo;\n\tmostCommonSuggestion = 0;\n\tnameSuggestions: { [name: string]: number };\n\tnamespaceVariableName = '';\n\treexported = false;\n\trenderPath: string = undefined as never;\n\tsuggestedVariableName: string;\n\tused = false;\n\tvariableName = '';\n\n\tconstructor(\n\t\tprivate readonly options: NormalizedInputOptions,\n\t\tpublic readonly id: string,\n\t\thasModuleSideEffects: boolean | 'no-treeshake',\n\t\tmeta: CustomPluginOptions,\n\t\tpublic renormalizeRenderPath: boolean\n\t) {\n\t\tthis.execIndex = Infinity;\n\t\tthis.suggestedVariableName = makeLegal(id.split(/[\\\\/]/).pop()!);\n\t\tthis.nameSuggestions = Object.create(null);\n\t\tthis.declarations = Object.create(null);\n\t\tthis.exportedVariables = new Map();\n\n\t\tconst { importers, dynamicImporters } = this;\n\t\tthis.info = {\n\t\t\tast: null,\n\t\t\tcode: null,\n\t\t\tdynamicallyImportedIds: EMPTY_ARRAY,\n\t\t\tget dynamicImporters() {\n\t\t\t\treturn dynamicImporters.sort();\n\t\t\t},\n\t\t\thasModuleSideEffects,\n\t\t\tid,\n\t\t\timplicitlyLoadedAfterOneOf: EMPTY_ARRAY,\n\t\t\timplicitlyLoadedBefore: EMPTY_ARRAY,\n\t\t\timportedIds: EMPTY_ARRAY,\n\t\t\tget importers() {\n\t\t\t\treturn importers.sort();\n\t\t\t},\n\t\t\tisEntry: false,\n\t\t\tisExternal: true,\n\t\t\tmeta,\n\t\t\tsyntheticNamedExports: false\n\t\t};\n\t}\n\n\tgetVariableForExportName(name: string): ExternalVariable {\n\t\tlet declaration = this.declarations[name];\n\t\tif (declaration) return declaration;\n\n\t\tthis.declarations[name] = declaration = new ExternalVariable(this, name);\n\t\tthis.exportedVariables.set(declaration, name);\n\t\treturn declaration;\n\t}\n\n\tsetRenderPath(options: NormalizedOutputOptions, inputBase: string): string {\n\t\tthis.renderPath =\n\t\t\ttypeof options.paths === 'function' ? options.paths(this.id) : options.paths[this.id];\n\t\tif (!this.renderPath) {\n\t\t\tthis.renderPath = this.renormalizeRenderPath\n\t\t\t\t? normalize(relative(inputBase, this.id))\n\t\t\t\t: this.id;\n\t\t}\n\t\treturn this.renderPath;\n\t}\n\n\tsuggestName(name: string): void {\n\t\tif (!this.nameSuggestions[name]) this.nameSuggestions[name] = 0;\n\t\tthis.nameSuggestions[name] += 1;\n\n\t\tif (this.nameSuggestions[name] > this.mostCommonSuggestion) {\n\t\t\tthis.mostCommonSuggestion = this.nameSuggestions[name];\n\t\t\tthis.suggestedVariableName = name;\n\t\t}\n\t}\n\n\twarnUnusedImports(): void {\n\t\tconst unused = Object.keys(this.declarations).filter(name => {\n\t\t\tif (name === '*') return false;\n\t\t\tconst declaration = this.declarations[name];\n\t\t\treturn !declaration.included && !this.reexported && !declaration.referenced;\n\t\t});\n\t\tif (unused.length === 0) return;\n\n\t\tconst importersSet = new Set<string>();\n\t\tfor (const name of unused) {\n\t\t\tconst { importers } = this.declarations[name].module;\n\t\t\tfor (const importer of importers) {\n\t\t\t\timportersSet.add(importer);\n\t\t\t}\n\t\t}\n\t\tconst importersArray = [...importersSet];\n\t\tthis.options.onwarn({\n\t\t\tcode: 'UNUSED_EXTERNAL_IMPORT',\n\t\t\tmessage: `${printQuotedStringList(unused, ['is', 'are'])} imported from external module \"${\n\t\t\t\tthis.id\n\t\t\t}\" but never used in ${printQuotedStringList(\n\t\t\t\timportersArray.map(importer => relativeId(importer))\n\t\t\t)}.`,\n\t\t\tnames: unused,\n\t\t\tsource: this.id,\n\t\t\tsources: importersArray\n\t\t});\n\t}\n}\n","function getLocator(source, options) {\n if (options === void 0) { options = {}; }\n var offsetLine = options.offsetLine || 0;\n var offsetColumn = options.offsetColumn || 0;\n var originalLines = source.split('\\n');\n var start = 0;\n var lineRanges = originalLines.map(function (line, i) {\n var end = start + line.length + 1;\n var range = { start: start, end: end, line: i };\n start = end;\n return range;\n });\n var i = 0;\n function rangeContains(range, index) {\n return range.start <= index && index < range.end;\n }\n function getLocation(range, index) {\n return { line: offsetLine + range.line, column: offsetColumn + index - range.start, character: index };\n }\n function locate(search, startIndex) {\n if (typeof search === 'string') {\n search = source.indexOf(search, startIndex || 0);\n }\n var range = lineRanges[i];\n var d = search >= range.end ? 1 : -1;\n while (range) {\n if (rangeContains(range, search))\n return getLocation(range, search);\n i += d;\n range = lineRanges[i];\n }\n }\n ;\n return locate;\n}\nfunction locate(source, search, options) {\n if (typeof options === 'number') {\n throw new Error('locate takes a { startIndex, offsetLine, offsetColumn } object as the third argument');\n }\n return getLocator(source, options)(search, options && options.startIndex);\n}\n\nexport { getLocator, locate };","import { Node } from 'estree-walker';\n\ninterface Extractors {\n\t[key: string]: (names: Array<string>, param: Node) => void;\n}\n\nconst extractors: Extractors = {\n\tArrayPattern(names: Array<string>, param: Node) {\n\t\tfor (const element of param.elements) {\n\t\t\tif (element) extractors[element.type](names, element);\n\t\t}\n\t},\n\n\tAssignmentPattern(names: Array<string>, param: Node) {\n\t\textractors[param.left.type](names, param.left);\n\t},\n\n\tIdentifier(names: Array<string>, param: Node) {\n\t\tnames.push(param.name);\n\t},\n\n\tMemberExpression() {},\n\n\tObjectPattern(names: Array<string>, param: Node) {\n\t\tfor (const prop of param.properties) {\n\t\t\tif (prop.type === 'RestElement') {\n\t\t\t\textractors.RestElement(names, prop);\n\t\t\t} else {\n\t\t\t\textractors[prop.value.type](names, prop.value);\n\t\t\t}\n\t\t}\n\t},\n\n\tRestElement(names: Array<string>, param: Node) {\n\t\textractors[param.argument.type](names, param.argument);\n\t}\n};\n\nconst extractAssignedNames = function extractAssignedNames(param: Node): Array<string> {\n\tconst names: Array<string> = [];\n\n\textractors[param.type](names, param);\n\treturn names;\n};\n\nexport { extractAssignedNames as default };\n","import { Entity } from './Entity';\nimport { ExpressionEntity } from './nodes/shared/Expression';\nimport { DiscriminatedPathTracker, PathTracker } from './utils/PathTracker';\nimport ThisVariable from './variables/ThisVariable';\n\ninterface ExecutionContextIgnore {\n\tbreaks: boolean;\n\tcontinues: boolean;\n\tlabels: Set<string>;\n\treturnYield: boolean;\n}\n\nexport const BROKEN_FLOW_NONE = 0;\nexport const BROKEN_FLOW_BREAK_CONTINUE = 1;\nexport const BROKEN_FLOW_ERROR_RETURN_LABEL = 2;\n\ninterface ControlFlowContext {\n\tbrokenFlow: number;\n\tincludedLabels: Set<string>;\n}\n\nexport interface InclusionContext extends ControlFlowContext {\n\tincludedCallArguments: Set<Entity>;\n}\n\nexport interface HasEffectsContext extends ControlFlowContext {\n\taccessed: PathTracker;\n\tassigned: PathTracker;\n\tbrokenFlow: number;\n\tcalled: DiscriminatedPathTracker;\n\tignore: ExecutionContextIgnore;\n\tinstantiated: DiscriminatedPathTracker;\n\treplacedVariableInits: Map<ThisVariable, ExpressionEntity>;\n}\n\nexport function createInclusionContext(): InclusionContext {\n\treturn {\n\t\tbrokenFlow: BROKEN_FLOW_NONE,\n\t\tincludedCallArguments: new Set(),\n\t\tincludedLabels: new Set()\n\t};\n}\n\nexport function createHasEffectsContext(): HasEffectsContext {\n\treturn {\n\t\taccessed: new PathTracker(),\n\t\tassigned: new PathTracker(),\n\t\tbrokenFlow: BROKEN_FLOW_NONE,\n\t\tcalled: new DiscriminatedPathTracker(),\n\t\tignore: {\n\t\t\tbreaks: false,\n\t\t\tcontinues: false,\n\t\t\tlabels: new Set(),\n\t\t\treturnYield: false\n\t\t},\n\t\tincludedLabels: new Set(),\n\t\tinstantiated: new DiscriminatedPathTracker(),\n\t\treplacedVariableInits: new Map()\n\t};\n}\n","// AST walker module for Mozilla Parser API compatible trees\n\n// A simple walk is one where you simply specify callbacks to be\n// called on specific nodes. The last two arguments are optional. A\n// simple use would be\n//\n// walk.simple(myTree, {\n// Expression: function(node) { ... }\n// });\n//\n// to do something with all expressions. All Parser API node types\n// can be used to identify node types, as well as Expression and\n// Statement, which denote categories of nodes.\n//\n// The base argument can be used to pass a custom (recursive)\n// walker, and state can be used to give this walked an initial\n// state.\n\nfunction simple(node, visitors, baseVisitor, state, override) {\n if (!baseVisitor) { baseVisitor = base\n ; }(function c(node, st, override) {\n var type = override || node.type, found = visitors[type];\n baseVisitor[type](node, st, c);\n if (found) { found(node, st); }\n })(node, state, override);\n}\n\n// An ancestor walk keeps an array of ancestor nodes (including the\n// current node) and passes them to the callback as third parameter\n// (and also as state parameter when no other state is present).\nfunction ancestor(node, visitors, baseVisitor, state, override) {\n var ancestors = [];\n if (!baseVisitor) { baseVisitor = base\n ; }(function c(node, st, override) {\n var type = override || node.type, found = visitors[type];\n var isNew = node !== ancestors[ancestors.length - 1];\n if (isNew) { ancestors.push(node); }\n baseVisitor[type](node, st, c);\n if (found) { found(node, st || ancestors, ancestors); }\n if (isNew) { ancestors.pop(); }\n })(node, state, override);\n}\n\n// A recursive walk is one where your functions override the default\n// walkers. They can modify and replace the state parameter that's\n// threaded through the walk, and can opt how and whether to walk\n// their child nodes (by calling their third argument on these\n// nodes).\nfunction recursive(node, state, funcs, baseVisitor, override) {\n var visitor = funcs ? make(funcs, baseVisitor || undefined) : baseVisitor\n ;(function c(node, st, override) {\n visitor[override || node.type](node, st, c);\n })(node, state, override);\n}\n\nfunction makeTest(test) {\n if (typeof test === \"string\")\n { return function (type) { return type === test; } }\n else if (!test)\n { return function () { return true; } }\n else\n { return test }\n}\n\nvar Found = function Found(node, state) { this.node = node; this.state = state; };\n\n// A full walk triggers the callback on each node\nfunction full(node, callback, baseVisitor, state, override) {\n if (!baseVisitor) { baseVisitor = base; }\n var last\n ;(function c(node, st, override) {\n var type = override || node.type;\n baseVisitor[type](node, st, c);\n if (last !== node) {\n callback(node, st, type);\n last = node;\n }\n })(node, state, override);\n}\n\n// An fullAncestor walk is like an ancestor walk, but triggers\n// the callback on each node\nfunction fullAncestor(node, callback, baseVisitor, state) {\n if (!baseVisitor) { baseVisitor = base; }\n var ancestors = [], last\n ;(function c(node, st, override) {\n var type = override || node.type;\n var isNew = node !== ancestors[ancestors.length - 1];\n if (isNew) { ancestors.push(node); }\n baseVisitor[type](node, st, c);\n if (last !== node) {\n callback(node, st || ancestors, ancestors, type);\n last = node;\n }\n if (isNew) { ancestors.pop(); }\n })(node, state);\n}\n\n// Find a node with a given start, end, and type (all are optional,\n// null can be used as wildcard). Returns a {node, state} object, or\n// undefined when it doesn't find a matching node.\nfunction findNodeAt(node, start, end, test, baseVisitor, state) {\n if (!baseVisitor) { baseVisitor = base; }\n test = makeTest(test);\n try {\n (function c(node, st, override) {\n var type = override || node.type;\n if ((start == null || node.start <= start) &&\n (end == null || node.end >= end))\n { baseVisitor[type](node, st, c); }\n if ((start == null || node.start === start) &&\n (end == null || node.end === end) &&\n test(type, node))\n { throw new Found(node, st) }\n })(node, state);\n } catch (e) {\n if (e instanceof Found) { return e }\n throw e\n }\n}\n\n// Find the innermost node of a given type that contains the given\n// position. Interface similar to findNodeAt.\nfunction findNodeAround(node, pos, test, baseVisitor, state) {\n test = makeTest(test);\n if (!baseVisitor) { baseVisitor = base; }\n try {\n (function c(node, st, override) {\n var type = override || node.type;\n if (node.start > pos || node.end < pos) { return }\n baseVisitor[type](node, st, c);\n if (test(type, node)) { throw new Found(node, st) }\n })(node, state);\n } catch (e) {\n if (e instanceof Found) { return e }\n throw e\n }\n}\n\n// Find the outermost matching node after a given position.\nfunction findNodeAfter(node, pos, test, baseVisitor, state) {\n test = makeTest(test);\n if (!baseVisitor) { baseVisitor = base; }\n try {\n (function c(node, st, override) {\n if (node.end < pos) { return }\n var type = override || node.type;\n if (node.start >= pos && test(type, node)) { throw new Found(node, st) }\n baseVisitor[type](node, st, c);\n })(node, state);\n } catch (e) {\n if (e instanceof Found) { return e }\n throw e\n }\n}\n\n// Find the outermost matching node before a given position.\nfunction findNodeBefore(node, pos, test, baseVisitor, state) {\n test = makeTest(test);\n if (!baseVisitor) { baseVisitor = base; }\n var max\n ;(function c(node, st, override) {\n if (node.start > pos) { return }\n var type = override || node.type;\n if (node.end <= pos && (!max || max.node.end < node.end) && test(type, node))\n { max = new Found(node, st); }\n baseVisitor[type](node, st, c);\n })(node, state);\n return max\n}\n\n// Used to create a custom walker. Will fill in all missing node\n// type properties with the defaults.\nfunction make(funcs, baseVisitor) {\n var visitor = Object.create(baseVisitor || base);\n for (var type in funcs) { visitor[type] = funcs[type]; }\n return visitor\n}\n\nfunction skipThrough(node, st, c) { c(node, st); }\nfunction ignore(_node, _st, _c) {}\n\n// Node walkers.\n\nvar base = {};\n\nbase.Program = base.BlockStatement = function (node, st, c) {\n for (var i = 0, list = node.body; i < list.length; i += 1)\n {\n var stmt = list[i];\n\n c(stmt, st, \"Statement\");\n }\n};\nbase.Statement = skipThrough;\nbase.EmptyStatement = ignore;\nbase.ExpressionStatement = base.ParenthesizedExpression = base.ChainExpression =\n function (node, st, c) { return c(node.expression, st, \"Expression\"); };\nbase.IfStatement = function (node, st, c) {\n c(node.test, st, \"Expression\");\n c(node.consequent, st, \"Statement\");\n if (node.alternate) { c(node.alternate, st, \"Statement\"); }\n};\nbase.LabeledStatement = function (node, st, c) { return c(node.body, st, \"Statement\"); };\nbase.BreakStatement = base.ContinueStatement = ignore;\nbase.WithStatement = function (node, st, c) {\n c(node.object, st, \"Expression\");\n c(node.body, st, \"Statement\");\n};\nbase.SwitchStatement = function (node, st, c) {\n c(node.discriminant, st, \"Expression\");\n for (var i$1 = 0, list$1 = node.cases; i$1 < list$1.length; i$1 += 1) {\n var cs = list$1[i$1];\n\n if (cs.test) { c(cs.test, st, \"Expression\"); }\n for (var i = 0, list = cs.consequent; i < list.length; i += 1)\n {\n var cons = list[i];\n\n c(cons, st, \"Statement\");\n }\n }\n};\nbase.SwitchCase = function (node, st, c) {\n if (node.test) { c(node.test, st, \"Expression\"); }\n for (var i = 0, list = node.consequent; i < list.length; i += 1)\n {\n var cons = list[i];\n\n c(cons, st, \"Statement\");\n }\n};\nbase.ReturnStatement = base.YieldExpression = base.AwaitExpression = function (node, st, c) {\n if (node.argument) { c(node.argument, st, \"Expression\"); }\n};\nbase.ThrowStatement = base.SpreadElement =\n function (node, st, c) { return c(node.argument, st, \"Expression\"); };\nbase.TryStatement = function (node, st, c) {\n c(node.block, st, \"Statement\");\n if (node.handler) { c(node.handler, st); }\n if (node.finalizer) { c(node.finalizer, st, \"Statement\"); }\n};\nbase.CatchClause = function (node, st, c) {\n if (node.param) { c(node.param, st, \"Pattern\"); }\n c(node.body, st, \"Statement\");\n};\nbase.WhileStatement = base.DoWhileStatement = function (node, st, c) {\n c(node.test, st, \"Expression\");\n c(node.body, st, \"Statement\");\n};\nbase.ForStatement = function (node, st, c) {\n if (node.init) { c(node.init, st, \"ForInit\"); }\n if (node.test) { c(node.test, st, \"Expression\"); }\n if (node.update) { c(node.update, st, \"Expression\"); }\n c(node.body, st, \"Statement\");\n};\nbase.ForInStatement = base.ForOfStatement = function (node, st, c) {\n c(node.left, st, \"ForInit\");\n c(node.right, st, \"Expression\");\n c(node.body, st, \"Statement\");\n};\nbase.ForInit = function (node, st, c) {\n if (node.type === \"VariableDeclaration\") { c(node, st); }\n else { c(node, st, \"Expression\"); }\n};\nbase.DebuggerStatement = ignore;\n\nbase.FunctionDeclaration = function (node, st, c) { return c(node, st, \"Function\"); };\nbase.VariableDeclaration = function (node, st, c) {\n for (var i = 0, list = node.declarations; i < list.length; i += 1)\n {\n var decl = list[i];\n\n c(decl, st);\n }\n};\nbase.VariableDeclarator = function (node, st, c) {\n c(node.id, st, \"Pattern\");\n if (node.init) { c(node.init, st, \"Expression\"); }\n};\n\nbase.Function = function (node, st, c) {\n if (node.id) { c(node.id, st, \"Pattern\"); }\n for (var i = 0, list = node.params; i < list.length; i += 1)\n {\n var param = list[i];\n\n c(param, st, \"Pattern\");\n }\n c(node.body, st, node.expression ? \"Expression\" : \"Statement\");\n};\n\nbase.Pattern = function (node, st, c) {\n if (node.type === \"Identifier\")\n { c(node, st, \"VariablePattern\"); }\n else if (node.type === \"MemberExpression\")\n { c(node, st, \"MemberPattern\"); }\n else\n { c(node, st); }\n};\nbase.VariablePattern = ignore;\nbase.MemberPattern = skipThrough;\nbase.RestElement = function (node, st, c) { return c(node.argument, st, \"Pattern\"); };\nbase.ArrayPattern = function (node, st, c) {\n for (var i = 0, list = node.elements; i < list.length; i += 1) {\n var elt = list[i];\n\n if (elt) { c(elt, st, \"Pattern\"); }\n }\n};\nbase.ObjectPattern = function (node, st, c) {\n for (var i = 0, list = node.properties; i < list.length; i += 1) {\n var prop = list[i];\n\n if (prop.type === \"Property\") {\n if (prop.computed) { c(prop.key, st, \"Expression\"); }\n c(prop.value, st, \"Pattern\");\n } else if (prop.type === \"RestElement\") {\n c(prop.argument, st, \"Pattern\");\n }\n }\n};\n\nbase.Expression = skipThrough;\nbase.ThisExpression = base.Super = base.MetaProperty = ignore;\nbase.ArrayExpression = function (node, st, c) {\n for (var i = 0, list = node.elements; i < list.length; i += 1) {\n var elt = list[i];\n\n if (elt) { c(elt, st, \"Expression\"); }\n }\n};\nbase.ObjectExpression = function (node, st, c) {\n for (var i = 0, list = node.properties; i < list.length; i += 1)\n {\n var prop = list[i];\n\n c(prop, st);\n }\n};\nbase.FunctionExpression = base.ArrowFunctionExpression = base.FunctionDeclaration;\nbase.SequenceExpression = function (node, st, c) {\n for (var i = 0, list = node.expressions; i < list.length; i += 1)\n {\n var expr = list[i];\n\n c(expr, st, \"Expression\");\n }\n};\nbase.TemplateLiteral = function (node, st, c) {\n for (var i = 0, list = node.quasis; i < list.length; i += 1)\n {\n var quasi = list[i];\n\n c(quasi, st);\n }\n\n for (var i$1 = 0, list$1 = node.expressions; i$1 < list$1.length; i$1 += 1)\n {\n var expr = list$1[i$1];\n\n c(expr, st, \"Expression\");\n }\n};\nbase.TemplateElement = ignore;\nbase.UnaryExpression = base.UpdateExpression = function (node, st, c) {\n c(node.argument, st, \"Expression\");\n};\nbase.BinaryExpression = base.LogicalExpression = function (node, st, c) {\n c(node.left, st, \"Expression\");\n c(node.right, st, \"Expression\");\n};\nbase.AssignmentExpression = base.AssignmentPattern = function (node, st, c) {\n c(node.left, st, \"Pattern\");\n c(node.right, st, \"Expression\");\n};\nbase.ConditionalExpression = function (node, st, c) {\n c(node.test, st, \"Expression\");\n c(node.consequent, st, \"Expression\");\n c(node.alternate, st, \"Expression\");\n};\nbase.NewExpression = base.CallExpression = function (node, st, c) {\n c(node.callee, st, \"Expression\");\n if (node.arguments)\n { for (var i = 0, list = node.arguments; i < list.length; i += 1)\n {\n var arg = list[i];\n\n c(arg, st, \"Expression\");\n } }\n};\nbase.MemberExpression = function (node, st, c) {\n c(node.object, st, \"Expression\");\n if (node.computed) { c(node.property, st, \"Expression\"); }\n};\nbase.ExportNamedDeclaration = base.ExportDefaultDeclaration = function (node, st, c) {\n if (node.declaration)\n { c(node.declaration, st, node.type === \"ExportNamedDeclaration\" || node.declaration.id ? \"Statement\" : \"Expression\"); }\n if (node.source) { c(node.source, st, \"Expression\"); }\n};\nbase.ExportAllDeclaration = function (node, st, c) {\n if (node.exported)\n { c(node.exported, st); }\n c(node.source, st, \"Expression\");\n};\nbase.ImportDeclaration = function (node, st, c) {\n for (var i = 0, list = node.specifiers; i < list.length; i += 1)\n {\n var spec = list[i];\n\n c(spec, st);\n }\n c(node.source, st, \"Expression\");\n};\nbase.ImportExpression = function (node, st, c) {\n c(node.source, st, \"Expression\");\n};\nbase.ImportSpecifier = base.ImportDefaultSpecifier = base.ImportNamespaceSpecifier = base.Identifier = base.PrivateIdentifier = base.Literal = ignore;\n\nbase.TaggedTemplateExpression = function (node, st, c) {\n c(node.tag, st, \"Expression\");\n c(node.quasi, st, \"Expression\");\n};\nbase.ClassDeclaration = base.ClassExpression = function (node, st, c) { return c(node, st, \"Class\"); };\nbase.Class = function (node, st, c) {\n if (node.id) { c(node.id, st, \"Pattern\"); }\n if (node.superClass) { c(node.superClass, st, \"Expression\"); }\n c(node.body, st);\n};\nbase.ClassBody = function (node, st, c) {\n for (var i = 0, list = node.body; i < list.length; i += 1)\n {\n var elt = list[i];\n\n c(elt, st);\n }\n};\nbase.MethodDefinition = base.PropertyDefinition = base.Property = function (node, st, c) {\n if (node.computed) { c(node.key, st, \"Expression\"); }\n if (node.value) { c(node.value, st, \"Expression\"); }\n};\n\nexport { ancestor, base, findNodeAfter, findNodeAround, findNodeAt, findNodeBefore, full, fullAncestor, make, recursive, simple };\n","export type tArrayExpression = 'ArrayExpression';\nexport type tArrayPattern = 'ArrayPattern';\nexport type tArrowFunctionExpression = 'ArrowFunctionExpression';\nexport type tAssignmentExpression = 'AssignmentExpression';\nexport type tAssignmentPattern = 'AssignmentPattern';\nexport type tAwaitExpression = 'AwaitExpression';\nexport type tBinaryExpression = 'BinaryExpression';\nexport type tBlockStatement = 'BlockStatement';\nexport type tBreakStatement = 'BreakStatement';\nexport type tCallExpression = 'CallExpression';\nexport type tCatchClause = 'CatchClause';\nexport type tChainExpression = 'ChainExpression';\nexport type tClassBody = 'ClassBody';\nexport type tClassDeclaration = 'ClassDeclaration';\nexport type tClassExpression = 'ClassExpression';\nexport type tConditionalExpression = 'ConditionalExpression';\nexport type tContinueStatement = 'ContinueStatement';\nexport type tDoWhileStatement = 'DoWhileStatement';\nexport type tEmptyStatement = 'EmptyStatement';\nexport type tExportAllDeclaration = 'ExportAllDeclaration';\nexport type tExportDefaultDeclaration = 'ExportDefaultDeclaration';\nexport type tExportNamedDeclaration = 'ExportNamedDeclaration';\nexport type tExportSpecifier = 'ExportSpecifier';\nexport type tExpressionStatement = 'ExpressionStatement';\nexport type tForStatement = 'ForStatement';\nexport type tForInStatement = 'ForInStatement';\nexport type tForOfStatement = 'ForOfStatement';\nexport type tFunctionDeclaration = 'FunctionDeclaration';\nexport type tFunctionExpression = 'FunctionExpression';\nexport type tIdentifier = 'Identifier';\nexport type tIfStatement = 'IfStatement';\nexport type tImport = 'Import';\nexport type tImportDeclaration = 'ImportDeclaration';\nexport type tImportExpression = 'ImportExpression';\nexport type tImportDefaultSpecifier = 'ImportDefaultSpecifier';\nexport type tImportNamespaceSpecifier = 'ImportNamespaceSpecifier';\nexport type tImportSpecifier = 'ImportSpecifier';\nexport type tLabeledStatement = 'LabeledStatement';\nexport type tLiteral = 'Literal';\nexport type tLogicalExpression = 'LogicalExpression';\nexport type tMemberExpression = 'MemberExpression';\nexport type tMetaProperty = 'MetaProperty';\nexport type tMethodDefinition = 'MethodDefinition';\nexport type tNewExpression = 'NewExpression';\nexport type tObjectExpression = 'ObjectExpression';\nexport type tObjectPattern = 'ObjectPattern';\nexport type tPrivateIdentifier = 'PrivateIdentifier';\nexport type tProgram = 'Program';\nexport type tProperty = 'Property';\nexport type tPropertyDefinition = 'PropertyDefinition';\nexport type tRestElement = 'RestElement';\nexport type tReturnStatement = 'ReturnStatement';\nexport type tSequenceExpression = 'SequenceExpression';\nexport type tSpreadElement = 'SpreadElement';\nexport type tSuper = 'Super';\nexport type tSwitchCase = 'SwitchCase';\nexport type tSwitchStatement = 'SwitchStatement';\nexport type tTaggedTemplateExpression = 'TaggedTemplateExpression';\nexport type tTemplateElement = 'TemplateElement';\nexport type tTemplateLiteral = 'TemplateLiteral';\nexport type tThisExpression = 'ThisExpression';\nexport type tThrowStatement = 'ThrowStatement';\nexport type tTryStatement = 'TryStatement';\nexport type tUnaryExpression = 'UnaryExpression';\nexport type tUpdateExpression = 'UpdateExpression';\nexport type tVariableDeclarator = 'VariableDeclarator';\nexport type tVariableDeclaration = 'VariableDeclaration';\nexport type tWhileStatement = 'WhileStatement';\nexport type tYieldExpression = 'YieldExpression';\n\nexport const ArrayExpression: tArrayExpression = 'ArrayExpression';\nexport const ArrayPattern: tArrayPattern = 'ArrayPattern';\nexport const ArrowFunctionExpression: tArrowFunctionExpression = 'ArrowFunctionExpression';\nexport const AssignmentExpression: tAssignmentExpression = 'AssignmentExpression';\nexport const AssignmentPattern: tAssignmentPattern = 'AssignmentPattern';\nexport const AwaitExpression: tAwaitExpression = 'AwaitExpression';\nexport const BinaryExpression: tBinaryExpression = 'BinaryExpression';\nexport const BlockStatement: tBlockStatement = 'BlockStatement';\nexport const BreakStatement: tBreakStatement = 'BreakStatement';\nexport const CallExpression: tCallExpression = 'CallExpression';\nexport const CatchClause: tCatchClause = 'CatchClause';\nexport const ChainExpression: tChainExpression = 'ChainExpression';\nexport const ClassBody: tClassBody = 'ClassBody';\nexport const ClassDeclaration: tClassDeclaration = 'ClassDeclaration';\nexport const ClassExpression: tClassExpression = 'ClassExpression';\nexport const ConditionalExpression: tConditionalExpression = 'ConditionalExpression';\nexport const ContinueStatement: tContinueStatement = 'ContinueStatement';\nexport const DoWhileStatement: tDoWhileStatement = 'DoWhileStatement';\nexport const EmptyStatement: tEmptyStatement = 'EmptyStatement';\nexport const ExportAllDeclaration: tExportAllDeclaration = 'ExportAllDeclaration';\nexport const ExportDefaultDeclaration: tExportDefaultDeclaration = 'ExportDefaultDeclaration';\nexport const ExportNamedDeclaration: tExportNamedDeclaration = 'ExportNamedDeclaration';\nexport const ExportSpecifier: tExportSpecifier = 'ExportSpecifier';\nexport const ExpressionStatement: tExpressionStatement = 'ExpressionStatement';\nexport const ForStatement: tForStatement = 'ForStatement';\nexport const ForInStatement: tForInStatement = 'ForInStatement';\nexport const ForOfStatement: tForOfStatement = 'ForOfStatement';\nexport const FunctionDeclaration: tFunctionDeclaration = 'FunctionDeclaration';\nexport const FunctionExpression: tFunctionExpression = 'FunctionExpression';\nexport const Identifier: tIdentifier = 'Identifier';\nexport const IfStatement: tIfStatement = 'IfStatement';\nexport const Import: tImport = 'Import';\nexport const ImportDeclaration: tImportDeclaration = 'ImportDeclaration';\nexport const ImportExpression: tImportExpression = 'ImportExpression';\nexport const ImportDefaultSpecifier: tImportDefaultSpecifier = 'ImportDefaultSpecifier';\nexport const ImportNamespaceSpecifier: tImportNamespaceSpecifier = 'ImportNamespaceSpecifier';\nexport const ImportSpecifier: tImportSpecifier = 'ImportSpecifier';\nexport const LabeledStatement: tLabeledStatement = 'LabeledStatement';\nexport const Literal: tLiteral = 'Literal';\nexport const LogicalExpression: tLogicalExpression = 'LogicalExpression';\nexport const MemberExpression: tMemberExpression = 'MemberExpression';\nexport const MetaProperty: tMetaProperty = 'MetaProperty';\nexport const MethodDefinition: tMethodDefinition = 'MethodDefinition';\nexport const NewExpression: tNewExpression = 'NewExpression';\nexport const ObjectExpression: tObjectExpression = 'ObjectExpression';\nexport const ObjectPattern: tObjectPattern = 'ObjectPattern';\nexport const PrivateIdentifier: tPrivateIdentifier = 'PrivateIdentifier';\nexport const Program: tProgram = 'Program';\nexport const Property: tProperty = 'Property';\nexport const PropertyDefinition: tPropertyDefinition = 'PropertyDefinition';\nexport const RestElement: tRestElement = 'RestElement';\nexport const ReturnStatement: tReturnStatement = 'ReturnStatement';\nexport const SequenceExpression: tSequenceExpression = 'SequenceExpression';\nexport const SpreadElement: tSpreadElement = 'SpreadElement';\nexport const Super: tSuper = 'Super';\nexport const SwitchCase: tSwitchCase = 'SwitchCase';\nexport const SwitchStatement: tSwitchStatement = 'SwitchStatement';\nexport const TaggedTemplateExpression: tTaggedTemplateExpression = 'TaggedTemplateExpression';\nexport const TemplateElement: tTemplateElement = 'TemplateElement';\nexport const TemplateLiteral: tTemplateLiteral = 'TemplateLiteral';\nexport const ThisExpression: tThisExpression = 'ThisExpression';\nexport const ThrowStatement: tThrowStatement = 'ThrowStatement';\nexport const TryStatement: tTryStatement = 'TryStatement';\nexport const UnaryExpression: tUnaryExpression = 'UnaryExpression';\nexport const UpdateExpression: tUpdateExpression = 'UpdateExpression';\nexport const VariableDeclarator: tVariableDeclarator = 'VariableDeclarator';\nexport const VariableDeclaration: tVariableDeclaration = 'VariableDeclaration';\nexport const WhileStatement: tWhileStatement = 'WhileStatement';\nexport const YieldExpression: tYieldExpression = 'YieldExpression';\n","// this looks ridiculous, but it prevents sourcemap tooling from mistaking\n// this for an actual sourceMappingURL\nexport let SOURCEMAPPING_URL = 'sourceMa';\nSOURCEMAPPING_URL += 'ppingURL';\n\nconst whiteSpaceNoNewline =\n\t'[ \\\\f\\\\r\\\\t\\\\v\\\\u00a0\\\\u1680\\\\u2000-\\\\u200a\\\\u2028\\\\u2029\\\\u202f\\\\u205f\\\\u3000\\\\ufeff]';\n\nexport const SOURCEMAPPING_URL_RE = new RegExp(`^#${whiteSpaceNoNewline}+${SOURCEMAPPING_URL}=.+`);\n","import * as acorn from 'acorn';\nimport { BaseWalker, base as basicWalker } from 'acorn-walk';\nimport {\n\tBinaryExpression,\n\tCallExpression,\n\tChainExpression,\n\tConditionalExpression,\n\tExpressionStatement,\n\tLogicalExpression,\n\tNewExpression,\n\tSequenceExpression\n} from '../ast/nodes/NodeType';\nimport { SOURCEMAPPING_URL_RE } from './sourceMappingURL';\n\n// patch up acorn-walk until class-fields are officially supported\nbasicWalker.PropertyDefinition = function (node: any, st: any, c: any) {\n\tif (node.computed) {\n\t\tc(node.key, st, 'Expression');\n\t}\n\tif (node.value) {\n\t\tc(node.value, st, 'Expression');\n\t}\n};\n\ninterface CommentState {\n\tannotationIndex: number;\n\tannotations: acorn.Comment[];\n\tcode: string;\n}\n\nexport const ANNOTATION_KEY = '_rollupAnnotations';\nexport const INVALID_COMMENT_KEY = '_rollupRemoved';\n\ninterface NodeWithComments extends acorn.Node {\n\t[ANNOTATION_KEY]?: acorn.Comment[];\n\t[INVALID_COMMENT_KEY]?: acorn.Comment[];\n}\n\nfunction handlePureAnnotationsOfNode(\n\tnode: acorn.Node,\n\tstate: CommentState,\n\ttype: string = node.type\n) {\n\tconst { annotations } = state;\n\tlet comment = annotations[state.annotationIndex];\n\twhile (comment && node.start >= comment.end) {\n\t\tmarkPureNode(node, comment, state.code);\n\t\tcomment = annotations[++state.annotationIndex];\n\t}\n\tif (comment && comment.end <= node.end) {\n\t\t(basicWalker as BaseWalker<CommentState>)[type](node, state, handlePureAnnotationsOfNode);\n\t\twhile ((comment = annotations[state.annotationIndex]) && comment.end <= node.end) {\n\t\t\t++state.annotationIndex;\n\t\t\tannotateNode(node, comment, false);\n\t\t}\n\t}\n}\n\nconst neitherWithespaceNorBrackets = /[^\\s(]/g;\nconst noWhitespace = /\\S/g;\n\nfunction markPureNode(node: NodeWithComments, comment: acorn.Comment, code: string) {\n\tconst annotatedNodes = [];\n\tlet invalidAnnotation: boolean | undefined;\n\tconst codeInBetween = code.slice(comment.end, node.start);\n\tif (doesNotMatchOutsideComment(codeInBetween, neitherWithespaceNorBrackets)) {\n\t\tconst parentStart = node.start;\n\t\twhile (true) {\n\t\t\tannotatedNodes.push(node);\n\t\t\tswitch (node.type) {\n\t\t\t\tcase ExpressionStatement:\n\t\t\t\tcase ChainExpression:\n\t\t\t\t\tnode = (node as any).expression;\n\t\t\t\t\tcontinue;\n\t\t\t\tcase SequenceExpression:\n\t\t\t\t\t// if there are parentheses, the annotation would apply to the entire expression\n\t\t\t\t\tif (doesNotMatchOutsideComment(code.slice(parentStart, node.start), noWhitespace)) {\n\t\t\t\t\t\tnode = (node as any).expressions[0];\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tinvalidAnnotation = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase ConditionalExpression:\n\t\t\t\t\t// if there are parentheses, the annotation would apply to the entire expression\n\t\t\t\t\tif (doesNotMatchOutsideComment(code.slice(parentStart, node.start), noWhitespace)) {\n\t\t\t\t\t\tnode = (node as any).test;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tinvalidAnnotation = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LogicalExpression:\n\t\t\t\tcase BinaryExpression:\n\t\t\t\t\t// if there are parentheses, the annotation would apply to the entire expression\n\t\t\t\t\tif (doesNotMatchOutsideComment(code.slice(parentStart, node.start), noWhitespace)) {\n\t\t\t\t\t\tnode = (node as any).left;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tinvalidAnnotation = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase CallExpression:\n\t\t\t\tcase NewExpression:\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tinvalidAnnotation = true;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t} else {\n\t\tinvalidAnnotation = true;\n\t}\n\tif (invalidAnnotation) {\n\t\tannotateNode(node, comment, false);\n\t} else {\n\t\tfor (const node of annotatedNodes) {\n\t\t\tannotateNode(node, comment, true);\n\t\t}\n\t}\n}\n\nfunction doesNotMatchOutsideComment(code: string, forbiddenChars: RegExp): boolean {\n\tlet nextMatch: RegExpExecArray | null;\n\twhile ((nextMatch = forbiddenChars.exec(code)) !== null) {\n\t\tif (nextMatch[0] === '/') {\n\t\t\tconst charCodeAfterSlash = code.charCodeAt(forbiddenChars.lastIndex);\n\t\t\tif (charCodeAfterSlash === 42 /*\"*\"*/) {\n\t\t\t\tforbiddenChars.lastIndex = code.indexOf('*/', forbiddenChars.lastIndex + 1) + 2;\n\t\t\t\tcontinue;\n\t\t\t} else if (charCodeAfterSlash === 47 /*\"/\"*/) {\n\t\t\t\tforbiddenChars.lastIndex = code.indexOf('\\n', forbiddenChars.lastIndex + 1) + 1;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\tforbiddenChars.lastIndex = 0;\n\t\treturn false;\n\t}\n\treturn true;\n}\n\nconst pureCommentRegex = /[@#]__PURE__/;\n\nexport function addAnnotations(\n\tcomments: acorn.Comment[],\n\tesTreeAst: acorn.Node,\n\tcode: string\n): void {\n\tconst annotations: acorn.Comment[] = [];\n\tconst sourceMappingComments: acorn.Comment[] = [];\n\tfor (const comment of comments) {\n\t\tif (pureCommentRegex.test(comment.value)) {\n\t\t\tannotations.push(comment);\n\t\t} else if (SOURCEMAPPING_URL_RE.test(comment.value)) {\n\t\t\tsourceMappingComments.push(comment);\n\t\t}\n\t}\n\tfor (const comment of sourceMappingComments) {\n\t\tannotateNode(esTreeAst, comment, false);\n\t}\n\thandlePureAnnotationsOfNode(esTreeAst, {\n\t\tannotationIndex: 0,\n\t\tannotations,\n\t\tcode\n\t});\n}\n\nfunction annotateNode(node: NodeWithComments, comment: acorn.Comment, valid: boolean) {\n\tconst key = valid ? ANNOTATION_KEY : INVALID_COMMENT_KEY;\n\tconst property = node[key];\n\tif (property) {\n\t\tproperty.push(comment);\n\t} else {\n\t\tnode[key] = [comment];\n\t}\n}\n","import { GenericEsTreeNode } from './nodes/shared/Node';\n\nexport const keys: {\n\t[name: string]: string[];\n} = {\n\tLiteral: [],\n\tProgram: ['body']\n};\n\nexport function getAndCreateKeys(esTreeNode: GenericEsTreeNode): string[] {\n\tkeys[esTreeNode.type] = Object.keys(esTreeNode).filter(\n\t\tkey => typeof esTreeNode[key] === 'object' && key.charCodeAt(0) !== 95 /* _ */\n\t);\n\treturn keys[esTreeNode.type];\n}\n","import * as acorn from 'acorn';\nimport { locate, Location } from 'locate-character';\nimport MagicString from 'magic-string';\nimport { AstContext } from '../../../Module';\nimport { ANNOTATION_KEY, INVALID_COMMENT_KEY } from '../../../utils/pureComments';\nimport { NodeRenderOptions, RenderOptions } from '../../../utils/renderHelpers';\nimport { Entity } from '../../Entity';\nimport {\n\tcreateHasEffectsContext,\n\tHasEffectsContext,\n\tInclusionContext\n} from '../../ExecutionContext';\nimport { getAndCreateKeys, keys } from '../../keys';\nimport ChildScope from '../../scopes/ChildScope';\nimport Variable from '../../variables/Variable';\nimport * as NodeType from '../NodeType';\nimport { ExpressionEntity } from './Expression';\n\nexport interface GenericEsTreeNode extends acorn.Node {\n\t[key: string]: any;\n}\n\nexport const INCLUDE_PARAMETERS = 'variables' as const;\nexport type IncludeChildren = boolean | typeof INCLUDE_PARAMETERS;\n\nexport interface Node extends Entity {\n\tannotations?: acorn.Comment[];\n\tcontext: AstContext;\n\tend: number;\n\tesTreeNode: GenericEsTreeNode;\n\tincluded: boolean;\n\tkeys: string[];\n\tneedsBoundaries?: boolean;\n\tparent: Node | { type?: string };\n\tpreventChildBlockScope?: boolean;\n\tstart: number;\n\ttype: string;\n\tvariable?: Variable | null;\n\n\taddExportedVariables(variables: Variable[], exportNamesByVariable: Map<Variable, string[]>): void;\n\n\t/**\n\t * Called once all nodes have been initialised and the scopes have been populated.\n\t */\n\tbind(): void;\n\n\t/**\n\t * Determine if this Node would have an effect on the bundle.\n\t * This is usually true for already included nodes. Exceptions are e.g. break statements\n\t * which only have an effect if their surrounding loop or switch statement is included.\n\t * The options pass on information like this about the current execution path.\n\t */\n\thasEffects(context: HasEffectsContext): boolean;\n\n\t/**\n\t * Includes the node in the bundle. If the flag is not set, children are usually included\n\t * if they are necessary for this node (e.g. a function body) or if they have effects.\n\t * Necessary variables need to be included as well.\n\t */\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void;\n\n\t/**\n\t * Alternative version of include to override the default behaviour of\n\t * declarations to not include the id by default if the declarator has an effect.\n\t */\n\tincludeAsSingleStatement(\n\t\tcontext: InclusionContext,\n\t\tincludeChildrenRecursively: IncludeChildren\n\t): void;\n\n\trender(code: MagicString, options: RenderOptions, nodeRenderOptions?: NodeRenderOptions): void;\n\n\t/**\n\t * Start a new execution path to determine if this node has an effect on the bundle and\n\t * should therefore be included. Included nodes should always be included again in subsequent\n\t * visits as the inclusion of additional variables may require the inclusion of more child\n\t * nodes in e.g. block statements.\n\t */\n\tshouldBeIncluded(context: InclusionContext): boolean;\n}\n\nexport type StatementNode = Node;\n\nexport interface ExpressionNode extends ExpressionEntity, Node {}\n\nexport class NodeBase extends ExpressionEntity implements ExpressionNode {\n\tannotations?: acorn.Comment[];\n\tcontext: AstContext;\n\tend!: number;\n\tesTreeNode: acorn.Node;\n\tkeys: string[];\n\tparent: Node | { context: AstContext; type: string };\n\tscope!: ChildScope;\n\tstart!: number;\n\ttype!: keyof typeof NodeType;\n\t// Nodes can apply custom deoptimizations once they become part of the\n\t// executed code. To do this, they must initialize this as false, implement\n\t// applyDeoptimizations and call this from include and hasEffects if they\n\t// have custom handlers\n\tprotected deoptimized?: boolean;\n\n\tconstructor(\n\t\tesTreeNode: GenericEsTreeNode,\n\t\tparent: Node | { context: AstContext; type: string },\n\t\tparentScope: ChildScope\n\t) {\n\t\tsuper();\n\t\tthis.esTreeNode = esTreeNode;\n\t\tthis.keys = keys[esTreeNode.type] || getAndCreateKeys(esTreeNode);\n\t\tthis.parent = parent;\n\t\tthis.context = parent.context;\n\t\tthis.createScope(parentScope);\n\t\tthis.parseNode(esTreeNode);\n\t\tthis.initialise();\n\t\tthis.context.magicString.addSourcemapLocation(this.start);\n\t\tthis.context.magicString.addSourcemapLocation(this.end);\n\t}\n\n\taddExportedVariables(\n\t\t_variables: Variable[],\n\t\t_exportNamesByVariable: Map<Variable, string[]>\n\t): void {}\n\n\t/**\n\t * Override this to bind assignments to variables and do any initialisations that\n\t * require the scopes to be populated with variables.\n\t */\n\tbind(): void {\n\t\tfor (const key of this.keys) {\n\t\t\tconst value = (this as GenericEsTreeNode)[key];\n\t\t\tif (value === null) continue;\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\tfor (const child of value) {\n\t\t\t\t\tif (child !== null) child.bind();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvalue.bind();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Override if this node should receive a different scope than the parent scope.\n\t */\n\tcreateScope(parentScope: ChildScope): void {\n\t\tthis.scope = parentScope;\n\t}\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tif (this.deoptimized === false) this.applyDeoptimizations();\n\t\tfor (const key of this.keys) {\n\t\t\tconst value = (this as GenericEsTreeNode)[key];\n\t\t\tif (value === null) continue;\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\tfor (const child of value) {\n\t\t\t\t\tif (child !== null && child.hasEffects(context)) return true;\n\t\t\t\t}\n\t\t\t} else if (value.hasEffects(context)) return true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tif (this.deoptimized === false) this.applyDeoptimizations();\n\t\tthis.included = true;\n\t\tfor (const key of this.keys) {\n\t\t\tconst value = (this as GenericEsTreeNode)[key];\n\t\t\tif (value === null) continue;\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\tfor (const child of value) {\n\t\t\t\t\tif (child !== null) child.include(context, includeChildrenRecursively);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvalue.include(context, includeChildrenRecursively);\n\t\t\t}\n\t\t}\n\t}\n\n\tincludeAsSingleStatement(\n\t\tcontext: InclusionContext,\n\t\tincludeChildrenRecursively: IncludeChildren\n\t): void {\n\t\tthis.include(context, includeChildrenRecursively);\n\t}\n\n\t/**\n\t * Override to perform special initialisation steps after the scope is initialised\n\t */\n\tinitialise(): void {}\n\n\tinsertSemicolon(code: MagicString): void {\n\t\tif (code.original[this.end - 1] !== ';') {\n\t\t\tcode.appendLeft(this.end, ';');\n\t\t}\n\t}\n\n\tparseNode(esTreeNode: GenericEsTreeNode): void {\n\t\tfor (const [key, value] of Object.entries(esTreeNode)) {\n\t\t\t// That way, we can override this function to add custom initialisation and then call super.parseNode\n\t\t\tif (this.hasOwnProperty(key)) continue;\n\t\t\tif (key.charCodeAt(0) === 95 /* _ */) {\n\t\t\t\tif (key === ANNOTATION_KEY) {\n\t\t\t\t\tthis.annotations = value;\n\t\t\t\t} else if (key === INVALID_COMMENT_KEY) {\n\t\t\t\t\tfor (const { start, end } of value as acorn.Comment[])\n\t\t\t\t\t\tthis.context.magicString.remove(start, end);\n\t\t\t\t}\n\t\t\t} else if (typeof value !== 'object' || value === null) {\n\t\t\t\t(this as GenericEsTreeNode)[key] = value;\n\t\t\t} else if (Array.isArray(value)) {\n\t\t\t\t(this as GenericEsTreeNode)[key] = [];\n\t\t\t\tfor (const child of value) {\n\t\t\t\t\t(this as GenericEsTreeNode)[key].push(\n\t\t\t\t\t\tchild === null\n\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t: new (this.context.nodeConstructors[child.type] ||\n\t\t\t\t\t\t\t\t\tthis.context.nodeConstructors.UnknownNode)(child, this, this.scope)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t(this as GenericEsTreeNode)[key] = new (this.context.nodeConstructors[value.type] ||\n\t\t\t\t\tthis.context.nodeConstructors.UnknownNode)(value, this, this.scope);\n\t\t\t}\n\t\t}\n\t}\n\n\trender(code: MagicString, options: RenderOptions): void {\n\t\tfor (const key of this.keys) {\n\t\t\tconst value = (this as GenericEsTreeNode)[key];\n\t\t\tif (value === null) continue;\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\tfor (const child of value) {\n\t\t\t\t\tif (child !== null) child.render(code, options);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvalue.render(code, options);\n\t\t\t}\n\t\t}\n\t}\n\n\tshouldBeIncluded(context: InclusionContext): boolean {\n\t\treturn this.included || (!context.brokenFlow && this.hasEffects(createHasEffectsContext()));\n\t}\n\n\tprotected applyDeoptimizations(): void {}\n}\n\nexport { NodeBase as StatementBase };\n\nexport function locateNode(node: Node): Location {\n\tconst location = locate(node.context.code, node.start, { offsetLine: 1 });\n\t(location as any).file = node.context.fileName;\n\tlocation.toString = () => JSON.stringify(location);\n\n\treturn location;\n}\n\nexport function logNode(node: Node): string {\n\treturn node.context.code.slice(node.start, node.end);\n}\n","import MagicString from 'magic-string';\nimport { NodeRenderOptions, RenderOptions } from '../../utils/renderHelpers';\nimport Identifier from './Identifier';\nimport Literal from './Literal';\nimport * as NodeType from './NodeType';\nimport { NodeBase } from './shared/Node';\n\nexport default class ExportAllDeclaration extends NodeBase {\n\texported!: Identifier | null;\n\tneedsBoundaries!: true;\n\tsource!: Literal<string>;\n\ttype!: NodeType.tExportAllDeclaration;\n\n\thasEffects(): boolean {\n\t\treturn false;\n\t}\n\n\tinitialise(): void {\n\t\tthis.context.addExport(this);\n\t}\n\n\trender(code: MagicString, _options: RenderOptions, nodeRenderOptions?: NodeRenderOptions): void {\n\t\tcode.remove(nodeRenderOptions!.start!, nodeRenderOptions!.end!);\n\t}\n}\n\nExportAllDeclaration.prototype.needsBoundaries = true;\n","import MagicString from 'magic-string';\nimport * as NodeType from '../ast/nodes/NodeType';\nimport { Node } from '../ast/nodes/shared/Node';\n\nexport function treeshakeNode(node: Node, code: MagicString, start: number, end: number): void {\n\tcode.remove(start, end);\n\tif (node.annotations) {\n\t\tfor (const annotation of node.annotations) {\n\t\t\tif (annotation.start < start) {\n\t\t\t\tcode.remove(annotation.start, annotation.end);\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport function removeAnnotations(node: Node, code: MagicString): void {\n\tif (!node.annotations && node.parent.type === NodeType.ExpressionStatement) {\n\t\tnode = node.parent as Node;\n\t}\n\tif (node.annotations) {\n\t\tfor (const annotation of node.annotations) {\n\t\t\tcode.remove(annotation.start, annotation.end);\n\t\t}\n\t}\n}\n","import MagicString from 'magic-string';\nimport { Node, StatementNode } from '../ast/nodes/shared/Node';\nimport Variable from '../ast/variables/Variable';\nimport { InternalModuleFormat } from '../rollup/types';\nimport { PluginDriver } from './PluginDriver';\nimport { treeshakeNode } from './treeshakeNode';\n\nexport interface RenderOptions {\n\tcompact: boolean;\n\tdynamicImportFunction: string | undefined;\n\texportNamesByVariable: Map<Variable, string[]>;\n\tformat: InternalModuleFormat;\n\tfreeze: boolean;\n\tindent: string;\n\tnamespaceToStringTag: boolean;\n\toutputPluginDriver: PluginDriver;\n\tvarOrConst: 'var' | 'const';\n}\n\nexport interface NodeRenderOptions {\n\tend?: number;\n\tisCalleeOfRenderedParent?: boolean;\n\tisNoStatement?: boolean;\n\tisShorthandProperty?: boolean;\n\tpreventASI?: boolean;\n\trenderedParentType?: string; // also serves as a flag if the rendered parent is different from the actual parent\n\trenderedSurroundingElement?: string; // same as parent type, but for changed non-direct parents that directly precede elements\n\tstart?: number;\n}\n\nexport const NO_SEMICOLON: NodeRenderOptions = { isNoStatement: true };\n\n// This assumes there are only white-space and comments between start and the string we are looking for\nexport function findFirstOccurrenceOutsideComment(\n\tcode: string,\n\tsearchString: string,\n\tstart = 0\n): number {\n\tlet searchPos: number, charCodeAfterSlash: number;\n\tsearchPos = code.indexOf(searchString, start);\n\twhile (true) {\n\t\tstart = code.indexOf('/', start);\n\t\tif (start === -1 || start >= searchPos) return searchPos;\n\t\tcharCodeAfterSlash = code.charCodeAt(++start);\n\t\t++start;\n\n\t\t// With our assumption, '/' always starts a comment. Determine comment type:\n\t\tstart =\n\t\t\tcharCodeAfterSlash === 47 /*\"/\"*/\n\t\t\t\t? code.indexOf('\\n', start) + 1\n\t\t\t\t: code.indexOf('*/', start) + 2;\n\t\tif (start > searchPos) {\n\t\t\tsearchPos = code.indexOf(searchString, start);\n\t\t}\n\t}\n}\n\nconst NON_WHITESPACE = /\\S/g;\n\nexport function findNonWhiteSpace(code: string, index: number): number {\n\tNON_WHITESPACE.lastIndex = index;\n\tconst result = NON_WHITESPACE.exec(code)!;\n\treturn result.index;\n}\n\n// This assumes \"code\" only contains white-space and comments\n// Returns position of line-comment if applicable\nfunction findFirstLineBreakOutsideComment(code: string): [number, number] {\n\tlet lineBreakPos,\n\t\tcharCodeAfterSlash,\n\t\tstart = 0;\n\tlineBreakPos = code.indexOf('\\n', start);\n\twhile (true) {\n\t\tstart = code.indexOf('/', start);\n\t\tif (start === -1 || start > lineBreakPos) return [lineBreakPos, lineBreakPos + 1];\n\n\t\t// With our assumption, '/' always starts a comment. Determine comment type:\n\t\tcharCodeAfterSlash = code.charCodeAt(start + 1);\n\t\tif (charCodeAfterSlash === 47 /*\"/\"*/) return [start, lineBreakPos + 1];\n\t\tstart = code.indexOf('*/', start + 3) + 2;\n\t\tif (start > lineBreakPos) {\n\t\t\tlineBreakPos = code.indexOf('\\n', start);\n\t\t}\n\t}\n}\n\nexport function renderStatementList(\n\tstatements: StatementNode[],\n\tcode: MagicString,\n\tstart: number,\n\tend: number,\n\toptions: RenderOptions\n): void {\n\tlet currentNode, currentNodeStart, currentNodeNeedsBoundaries, nextNodeStart;\n\tlet nextNode = statements[0];\n\tlet nextNodeNeedsBoundaries = !nextNode.included || nextNode.needsBoundaries;\n\tif (nextNodeNeedsBoundaries) {\n\t\tnextNodeStart =\n\t\t\tstart + findFirstLineBreakOutsideComment(code.original.slice(start, nextNode.start))[1];\n\t}\n\n\tfor (let nextIndex = 1; nextIndex <= statements.length; nextIndex++) {\n\t\tcurrentNode = nextNode;\n\t\tcurrentNodeStart = nextNodeStart;\n\t\tcurrentNodeNeedsBoundaries = nextNodeNeedsBoundaries;\n\t\tnextNode = statements[nextIndex];\n\t\tnextNodeNeedsBoundaries =\n\t\t\tnextNode === undefined ? false : !nextNode.included || nextNode.needsBoundaries;\n\t\tif (currentNodeNeedsBoundaries || nextNodeNeedsBoundaries) {\n\t\t\tnextNodeStart =\n\t\t\t\tcurrentNode.end +\n\t\t\t\tfindFirstLineBreakOutsideComment(\n\t\t\t\t\tcode.original.slice(currentNode.end, nextNode === undefined ? end : nextNode.start)\n\t\t\t\t)[1];\n\t\t\tif (currentNode.included) {\n\t\t\t\tcurrentNodeNeedsBoundaries\n\t\t\t\t\t? currentNode.render(code, options, {\n\t\t\t\t\t\t\tend: nextNodeStart,\n\t\t\t\t\t\t\tstart: currentNodeStart\n\t\t\t\t\t })\n\t\t\t\t\t: currentNode.render(code, options);\n\t\t\t} else {\n\t\t\t\ttreeshakeNode(currentNode, code, currentNodeStart!, nextNodeStart);\n\t\t\t}\n\t\t} else {\n\t\t\tcurrentNode.render(code, options);\n\t\t}\n\t}\n}\n\n// This assumes that the first character is not part of the first node\nexport function getCommaSeparatedNodesWithBoundaries<N extends Node>(\n\tnodes: N[],\n\tcode: MagicString,\n\tstart: number,\n\tend: number\n): {\n\tcontentEnd: number;\n\tend: number;\n\tnode: N;\n\tseparator: number | null;\n\tstart: number;\n}[] {\n\tconst splitUpNodes = [];\n\tlet node, nextNode, nextNodeStart, contentEnd, char;\n\tlet separator = start - 1;\n\n\tfor (let nextIndex = 0; nextIndex < nodes.length; nextIndex++) {\n\t\tnextNode = nodes[nextIndex];\n\t\tif (node !== undefined) {\n\t\t\tseparator =\n\t\t\t\tnode.end +\n\t\t\t\tfindFirstOccurrenceOutsideComment(code.original.slice(node.end, nextNode.start), ',');\n\t\t}\n\t\tnextNodeStart = contentEnd =\n\t\t\tseparator +\n\t\t\t1 +\n\t\t\tfindFirstLineBreakOutsideComment(code.original.slice(separator + 1, nextNode.start))[1];\n\t\twhile (\n\t\t\t((char = code.original.charCodeAt(nextNodeStart)),\n\t\t\tchar === 32 /*\" \"*/ || char === 9 /*\"\\t\"*/ || char === 10 /*\"\\n\"*/ || char === 13) /*\"\\r\"*/\n\t\t)\n\t\t\tnextNodeStart++;\n\t\tif (node !== undefined) {\n\t\t\tsplitUpNodes.push({\n\t\t\t\tcontentEnd,\n\t\t\t\tend: nextNodeStart,\n\t\t\t\tnode,\n\t\t\t\tseparator,\n\t\t\t\tstart\n\t\t\t});\n\t\t}\n\t\tnode = nextNode;\n\t\tstart = nextNodeStart;\n\t}\n\tsplitUpNodes.push({\n\t\tcontentEnd: end,\n\t\tend,\n\t\tnode: node as N,\n\t\tseparator: null,\n\t\tstart\n\t});\n\treturn splitUpNodes;\n}\n\n// This assumes there are only white-space and comments between start and end\nexport function removeLineBreaks(code: MagicString, start: number, end: number): void {\n\twhile (true) {\n\t\tconst [removeStart, removeEnd] = findFirstLineBreakOutsideComment(\n\t\t\tcode.original.slice(start, end)\n\t\t);\n\t\tif (removeStart === -1) {\n\t\t\tbreak;\n\t\t}\n\t\tcode.remove(start + removeStart, (start += removeEnd));\n\t}\n}\n","import Variable from '../ast/variables/Variable';\nimport { RenderOptions } from './renderHelpers';\n\nexport function getSystemExportStatement(\n\texportedVariables: Variable[],\n\toptions: RenderOptions\n): string {\n\tconst _ = options.compact ? '' : ' ';\n\tif (\n\t\texportedVariables.length === 1 &&\n\t\toptions.exportNamesByVariable.get(exportedVariables[0])!.length === 1\n\t) {\n\t\tconst variable = exportedVariables[0];\n\t\treturn `exports('${options.exportNamesByVariable.get(variable)}',${_}${variable.getName()})`;\n\t} else {\n\t\treturn `exports({${_}${exportedVariables\n\t\t\t.map(variable => {\n\t\t\t\treturn options.exportNamesByVariable\n\t\t\t\t\t.get(variable)!\n\t\t\t\t\t.map(exportName => `${exportName}:${_}${variable.getName()}`)\n\t\t\t\t\t.join(`,${_}`);\n\t\t\t})\n\t\t\t.join(`,${_}`)}${_}})`;\n\t}\n}\n\nexport function getSystemExportFunctionLeft(\n\texportedVariables: Variable[],\n\tsetFromExpression: boolean,\n\toptions: RenderOptions\n): string {\n\tconst _ = options.compact ? '' : ' ';\n\tconst s = options.compact ? '' : ';';\n\treturn `function${_}(v)${_}{${_}return exports({${_}${exportedVariables\n\t\t.map(variable => {\n\t\t\treturn options.exportNamesByVariable\n\t\t\t\t.get(variable)!\n\t\t\t\t.map(exportName => `${exportName}:${_}${setFromExpression ? variable.getName() : 'v'}`)\n\t\t\t\t.join(`,${_}`);\n\t\t})\n\t\t.join(`,${_}`)}${_}}),${_}v${s}${_}}(`;\n}\n","const chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$';\nconst base = 64;\n\nexport function toBase64(num: number): string {\n\tlet outStr = '';\n\tdo {\n\t\tconst curDigit = num % base;\n\t\tnum = Math.floor(num / base);\n\t\toutStr = chars[curDigit] + outStr;\n\t} while (num !== 0);\n\treturn outStr;\n}\n","import { toBase64 } from './base64';\nimport { RESERVED_NAMES } from './reservedNames';\n\nexport function getSafeName(baseName: string, usedNames: Set<string>): string {\n\tlet safeName = baseName;\n\tlet count = 1;\n\twhile (usedNames.has(safeName) || RESERVED_NAMES[safeName]) {\n\t\tsafeName = `${baseName}$${toBase64(count++)}`;\n\t}\n\tusedNames.add(safeName);\n\treturn safeName;\n}\n","import SpreadElement from './nodes/SpreadElement';\nimport { ExpressionEntity } from './nodes/shared/Expression';\n\nexport const NO_ARGS = [];\n\nexport interface CallOptions {\n\targs: (ExpressionEntity | SpreadElement)[];\n\tthisParam: ExpressionEntity | null;\n\twithNew: boolean;\n}\n","import { CallOptions, NO_ARGS } from './CallOptions';\nimport { HasEffectsContext } from './ExecutionContext';\nimport { LiteralValue } from './nodes/Literal';\nimport { ExpressionEntity, UNKNOWN_EXPRESSION } from './nodes/shared/Expression';\nimport { EMPTY_PATH, ObjectPath, ObjectPathKey } from './utils/PathTracker';\n\nexport interface MemberDescription {\n\tcallsArgs: number[] | null;\n\treturns: ExpressionEntity;\n}\n\nexport interface MemberDescriptions {\n\t[key: string]: MemberDescription;\n}\n\ninterface RawMemberDescription {\n\tvalue: MemberDescription;\n}\n\nfunction assembleMemberDescriptions(\n\tmemberDescriptions: { [key: string]: RawMemberDescription },\n\tinheritedDescriptions: MemberDescriptions | null = null\n): MemberDescriptions {\n\treturn Object.create(inheritedDescriptions, memberDescriptions);\n}\n\nexport const UNDEFINED_EXPRESSION: ExpressionEntity =\n\tnew (class UndefinedExpression extends ExpressionEntity {\n\t\tgetLiteralValueAtPath() {\n\t\t\treturn undefined;\n\t\t}\n\t})();\n\nconst returnsUnknown: RawMemberDescription = {\n\tvalue: {\n\t\tcallsArgs: null,\n\t\treturns: UNKNOWN_EXPRESSION\n\t}\n};\n\nexport const UNKNOWN_LITERAL_BOOLEAN: ExpressionEntity =\n\tnew (class UnknownBoolean extends ExpressionEntity {\n\t\tgetReturnExpressionWhenCalledAtPath(path: ObjectPath): ExpressionEntity {\n\t\t\tif (path.length === 1) {\n\t\t\t\treturn getMemberReturnExpressionWhenCalled(literalBooleanMembers, path[0]);\n\t\t\t}\n\t\t\treturn UNKNOWN_EXPRESSION;\n\t\t}\n\n\t\thasEffectsWhenAccessedAtPath(path: ObjectPath): boolean {\n\t\t\treturn path.length > 1;\n\t\t}\n\n\t\thasEffectsWhenCalledAtPath(\n\t\t\tpath: ObjectPath,\n\t\t\tcallOptions: CallOptions,\n\t\t\tcontext: HasEffectsContext\n\t\t): boolean {\n\t\t\tif (path.length === 1) {\n\t\t\t\treturn hasMemberEffectWhenCalled(literalBooleanMembers, path[0], callOptions, context);\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t})();\n\nconst returnsBoolean: RawMemberDescription = {\n\tvalue: {\n\t\tcallsArgs: null,\n\t\treturns: UNKNOWN_LITERAL_BOOLEAN\n\t}\n};\n\nexport const UNKNOWN_LITERAL_NUMBER: ExpressionEntity =\n\tnew (class UnknownNumber extends ExpressionEntity {\n\t\tgetReturnExpressionWhenCalledAtPath(path: ObjectPath): ExpressionEntity {\n\t\t\tif (path.length === 1) {\n\t\t\t\treturn getMemberReturnExpressionWhenCalled(literalNumberMembers, path[0]);\n\t\t\t}\n\t\t\treturn UNKNOWN_EXPRESSION;\n\t\t}\n\n\t\thasEffectsWhenAccessedAtPath(path: ObjectPath): boolean {\n\t\t\treturn path.length > 1;\n\t\t}\n\n\t\thasEffectsWhenCalledAtPath(\n\t\t\tpath: ObjectPath,\n\t\t\tcallOptions: CallOptions,\n\t\t\tcontext: HasEffectsContext\n\t\t): boolean {\n\t\t\tif (path.length === 1) {\n\t\t\t\treturn hasMemberEffectWhenCalled(literalNumberMembers, path[0], callOptions, context);\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t})();\n\nconst returnsNumber: RawMemberDescription = {\n\tvalue: {\n\t\tcallsArgs: null,\n\t\treturns: UNKNOWN_LITERAL_NUMBER\n\t}\n};\n\nexport const UNKNOWN_LITERAL_STRING: ExpressionEntity =\n\tnew (class UnknownString extends ExpressionEntity {\n\t\tgetReturnExpressionWhenCalledAtPath(path: ObjectPath): ExpressionEntity {\n\t\t\tif (path.length === 1) {\n\t\t\t\treturn getMemberReturnExpressionWhenCalled(literalStringMembers, path[0]);\n\t\t\t}\n\t\t\treturn UNKNOWN_EXPRESSION;\n\t\t}\n\n\t\thasEffectsWhenAccessedAtPath(path: ObjectPath): boolean {\n\t\t\treturn path.length > 1;\n\t\t}\n\n\t\thasEffectsWhenCalledAtPath(\n\t\t\tpath: ObjectPath,\n\t\t\tcallOptions: CallOptions,\n\t\t\tcontext: HasEffectsContext\n\t\t): boolean {\n\t\t\tif (path.length === 1) {\n\t\t\t\treturn hasMemberEffectWhenCalled(literalStringMembers, path[0], callOptions, context);\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t})();\n\nconst returnsString: RawMemberDescription = {\n\tvalue: {\n\t\tcallsArgs: null,\n\t\treturns: UNKNOWN_LITERAL_STRING\n\t}\n};\n\nconst objectMembers: MemberDescriptions = assembleMemberDescriptions({\n\thasOwnProperty: returnsBoolean,\n\tisPrototypeOf: returnsBoolean,\n\tpropertyIsEnumerable: returnsBoolean,\n\ttoLocaleString: returnsString,\n\ttoString: returnsString,\n\tvalueOf: returnsUnknown\n});\n\nconst literalBooleanMembers: MemberDescriptions = assembleMemberDescriptions(\n\t{\n\t\tvalueOf: returnsBoolean\n\t},\n\tobjectMembers\n);\n\nconst literalNumberMembers: MemberDescriptions = assembleMemberDescriptions(\n\t{\n\t\ttoExponential: returnsString,\n\t\ttoFixed: returnsString,\n\t\ttoLocaleString: returnsString,\n\t\ttoPrecision: returnsString,\n\t\tvalueOf: returnsNumber\n\t},\n\tobjectMembers\n);\n\nconst literalStringMembers: MemberDescriptions = assembleMemberDescriptions(\n\t{\n\t\tcharAt: returnsString,\n\t\tcharCodeAt: returnsNumber,\n\t\tcodePointAt: returnsNumber,\n\t\tconcat: returnsString,\n\t\tendsWith: returnsBoolean,\n\t\tincludes: returnsBoolean,\n\t\tindexOf: returnsNumber,\n\t\tlastIndexOf: returnsNumber,\n\t\tlocaleCompare: returnsNumber,\n\t\tmatch: returnsBoolean,\n\t\tnormalize: returnsString,\n\t\tpadEnd: returnsString,\n\t\tpadStart: returnsString,\n\t\trepeat: returnsString,\n\t\treplace: {\n\t\t\tvalue: {\n\t\t\t\tcallsArgs: [1],\n\t\t\t\treturns: UNKNOWN_LITERAL_STRING\n\t\t\t}\n\t\t},\n\t\tsearch: returnsNumber,\n\t\tslice: returnsString,\n\t\tsplit: returnsUnknown,\n\t\tstartsWith: returnsBoolean,\n\t\tsubstr: returnsString,\n\t\tsubstring: returnsString,\n\t\ttoLocaleLowerCase: returnsString,\n\t\ttoLocaleUpperCase: returnsString,\n\t\ttoLowerCase: returnsString,\n\t\ttoUpperCase: returnsString,\n\t\ttrim: returnsString,\n\t\tvalueOf: returnsString\n\t},\n\tobjectMembers\n);\n\nexport function getLiteralMembersForValue<T extends LiteralValue = LiteralValue>(\n\tvalue: T\n): MemberDescriptions {\n\tswitch (typeof value) {\n\t\tcase 'boolean':\n\t\t\treturn literalBooleanMembers;\n\t\tcase 'number':\n\t\t\treturn literalNumberMembers;\n\t\tcase 'string':\n\t\t\treturn literalStringMembers;\n\t\tdefault:\n\t\t\treturn Object.create(null);\n\t}\n}\n\nexport function hasMemberEffectWhenCalled(\n\tmembers: MemberDescriptions,\n\tmemberName: ObjectPathKey,\n\tcallOptions: CallOptions,\n\tcontext: HasEffectsContext\n): boolean {\n\tif (typeof memberName !== 'string' || !members[memberName]) {\n\t\treturn true;\n\t}\n\tif (!members[memberName].callsArgs) return false;\n\tfor (const argIndex of members[memberName].callsArgs!) {\n\t\tif (\n\t\t\tcallOptions.args[argIndex] &&\n\t\t\tcallOptions.args[argIndex].hasEffectsWhenCalledAtPath(\n\t\t\t\tEMPTY_PATH,\n\t\t\t\t{\n\t\t\t\t\targs: NO_ARGS,\n\t\t\t\t\tthisParam: null,\n\t\t\t\t\twithNew: false\n\t\t\t\t},\n\t\t\t\tcontext\n\t\t\t)\n\t\t)\n\t\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport function getMemberReturnExpressionWhenCalled(\n\tmembers: MemberDescriptions,\n\tmemberName: ObjectPathKey\n): ExpressionEntity {\n\tif (typeof memberName !== 'string' || !members[memberName]) return UNKNOWN_EXPRESSION;\n\treturn members[memberName].returns;\n}\n","import Module, { AstContext } from '../../Module';\nimport { CallOptions } from '../CallOptions';\nimport { DeoptimizableEntity } from '../DeoptimizableEntity';\nimport { createInclusionContext, HasEffectsContext, InclusionContext } from '../ExecutionContext';\nimport { NodeEvent } from '../NodeEvents';\nimport ExportDefaultDeclaration from '../nodes/ExportDefaultDeclaration';\nimport Identifier from '../nodes/Identifier';\nimport * as NodeType from '../nodes/NodeType';\nimport SpreadElement from '../nodes/SpreadElement';\nimport {\n\tExpressionEntity,\n\tLiteralValueOrUnknown,\n\tUNKNOWN_EXPRESSION,\n\tUnknownValue\n} from '../nodes/shared/Expression';\nimport { ExpressionNode, Node } from '../nodes/shared/Node';\nimport { ObjectPath, PathTracker, UNKNOWN_PATH } from '../utils/PathTracker';\nimport Variable from './Variable';\n\nexport default class LocalVariable extends Variable {\n\tcalledFromTryStatement = false;\n\tdeclarations: (Identifier | ExportDefaultDeclaration)[];\n\tinit: ExpressionEntity | null;\n\tmodule: Module;\n\n\t// Caching and deoptimization:\n\t// We track deoptimization when we do not return something unknown\n\tprotected deoptimizationTracker: PathTracker;\n\tprivate additionalInitializers: ExpressionEntity[] | null = null;\n\tprivate expressionsToBeDeoptimized: DeoptimizableEntity[] = [];\n\n\tconstructor(\n\t\tname: string,\n\t\tdeclarator: Identifier | ExportDefaultDeclaration | null,\n\t\tinit: ExpressionEntity | null,\n\t\tcontext: AstContext\n\t) {\n\t\tsuper(name);\n\t\tthis.declarations = declarator ? [declarator] : [];\n\t\tthis.init = init;\n\t\tthis.deoptimizationTracker = context.deoptimizationTracker;\n\t\tthis.module = context.module;\n\t}\n\n\taddDeclaration(identifier: Identifier, init: ExpressionEntity | null): void {\n\t\tthis.declarations.push(identifier);\n\t\tconst additionalInitializers = this.markInitializersForDeoptimization();\n\t\tif (init !== null) {\n\t\t\tadditionalInitializers.push(init);\n\t\t}\n\t}\n\n\tconsolidateInitializers(): void {\n\t\tif (this.additionalInitializers !== null) {\n\t\t\tfor (const initializer of this.additionalInitializers) {\n\t\t\t\tinitializer.deoptimizePath(UNKNOWN_PATH);\n\t\t\t}\n\t\t\tthis.additionalInitializers = null;\n\t\t}\n\t}\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tif (\n\t\t\tthis.isReassigned ||\n\t\t\tthis.deoptimizationTracker.trackEntityAtPathAndGetIfTracked(path, this)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tif (path.length === 0) {\n\t\t\tif (!this.isReassigned) {\n\t\t\t\tthis.isReassigned = true;\n\t\t\t\tconst expressionsToBeDeoptimized = this.expressionsToBeDeoptimized;\n\t\t\t\tthis.expressionsToBeDeoptimized = [];\n\t\t\t\tfor (const expression of expressionsToBeDeoptimized) {\n\t\t\t\t\texpression.deoptimizeCache();\n\t\t\t\t}\n\t\t\t\tthis.init?.deoptimizePath(UNKNOWN_PATH);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.init?.deoptimizePath(path);\n\t\t}\n\t}\n\n\tdeoptimizeThisOnEventAtPath(\n\t\tevent: NodeEvent,\n\t\tpath: ObjectPath,\n\t\tthisParameter: ExpressionEntity,\n\t\trecursionTracker: PathTracker\n\t): void {\n\t\tif (this.isReassigned || !this.init) {\n\t\t\treturn thisParameter.deoptimizePath(UNKNOWN_PATH);\n\t\t}\n\t\trecursionTracker.withTrackedEntityAtPath(\n\t\t\tpath,\n\t\t\tthis.init,\n\t\t\t() => this.init!.deoptimizeThisOnEventAtPath(event, path, thisParameter, recursionTracker),\n\t\t\tundefined\n\t\t);\n\t}\n\n\tgetLiteralValueAtPath(\n\t\tpath: ObjectPath,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): LiteralValueOrUnknown {\n\t\tif (this.isReassigned || !this.init) {\n\t\t\treturn UnknownValue;\n\t\t}\n\t\treturn recursionTracker.withTrackedEntityAtPath(\n\t\t\tpath,\n\t\t\tthis.init,\n\t\t\t() => {\n\t\t\t\tthis.expressionsToBeDeoptimized.push(origin);\n\t\t\t\treturn this.init!.getLiteralValueAtPath(path, recursionTracker, origin);\n\t\t\t},\n\t\t\tUnknownValue\n\t\t);\n\t}\n\n\tgetReturnExpressionWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): ExpressionEntity {\n\t\tif (this.isReassigned || !this.init) {\n\t\t\treturn UNKNOWN_EXPRESSION;\n\t\t}\n\t\treturn recursionTracker.withTrackedEntityAtPath(\n\t\t\tpath,\n\t\t\tthis.init,\n\t\t\t() => {\n\t\t\t\tthis.expressionsToBeDeoptimized.push(origin);\n\t\t\t\treturn this.init!.getReturnExpressionWhenCalledAtPath(\n\t\t\t\t\tpath,\n\t\t\t\t\tcallOptions,\n\t\t\t\t\trecursionTracker,\n\t\t\t\t\torigin\n\t\t\t\t);\n\t\t\t},\n\t\t\tUNKNOWN_EXPRESSION\n\t\t);\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\tif (this.isReassigned) return true;\n\t\treturn (this.init &&\n\t\t\t!context.accessed.trackEntityAtPathAndGetIfTracked(path, this) &&\n\t\t\tthis.init.hasEffectsWhenAccessedAtPath(path, context))!;\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\tif (this.included) return true;\n\t\tif (path.length === 0) return false;\n\t\tif (this.isReassigned) return true;\n\t\treturn (this.init &&\n\t\t\t!context.accessed.trackEntityAtPathAndGetIfTracked(path, this) &&\n\t\t\tthis.init.hasEffectsWhenAssignedAtPath(path, context))!;\n\t}\n\n\thasEffectsWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\tcontext: HasEffectsContext\n\t): boolean {\n\t\tif (this.isReassigned) return true;\n\t\treturn (this.init &&\n\t\t\t!(\n\t\t\t\tcallOptions.withNew ? context.instantiated : context.called\n\t\t\t).trackEntityAtPathAndGetIfTracked(path, callOptions, this) &&\n\t\t\tthis.init.hasEffectsWhenCalledAtPath(path, callOptions, context))!;\n\t}\n\n\tinclude(): void {\n\t\tif (!this.included) {\n\t\t\tthis.included = true;\n\t\t\tfor (const declaration of this.declarations) {\n\t\t\t\t// If node is a default export, it can save a tree-shaking run to include the full declaration now\n\t\t\t\tif (!declaration.included) declaration.include(createInclusionContext(), false);\n\t\t\t\tlet node = declaration.parent as Node;\n\t\t\t\twhile (!node.included) {\n\t\t\t\t\t// We do not want to properly include parents in case they are part of a dead branch\n\t\t\t\t\t// in which case .include() might pull in more dead code\n\t\t\t\t\tnode.included = true;\n\t\t\t\t\tif (node.type === NodeType.Program) break;\n\t\t\t\t\tnode = node.parent as Node;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tincludeCallArguments(context: InclusionContext, args: (ExpressionNode | SpreadElement)[]): void {\n\t\tif (this.isReassigned || (this.init && context.includedCallArguments.has(this.init))) {\n\t\t\tfor (const arg of args) {\n\t\t\t\targ.include(context, false);\n\t\t\t}\n\t\t} else if (this.init) {\n\t\t\tcontext.includedCallArguments.add(this.init);\n\t\t\tthis.init.includeCallArguments(context, args);\n\t\t\tcontext.includedCallArguments.delete(this.init);\n\t\t}\n\t}\n\n\tmarkCalledFromTryStatement(): void {\n\t\tthis.calledFromTryStatement = true;\n\t}\n\n\tmarkInitializersForDeoptimization(): ExpressionEntity[] {\n\t\tif (this.additionalInitializers === null) {\n\t\t\tthis.additionalInitializers = this.init === null ? [] : [this.init];\n\t\t\tthis.init = UNKNOWN_EXPRESSION;\n\t\t\tthis.isReassigned = true;\n\t\t}\n\t\treturn this.additionalInitializers;\n\t}\n}\n","import { AstContext } from '../../Module';\nimport Identifier from '../nodes/Identifier';\nimport { ExpressionEntity } from '../nodes/shared/Expression';\nimport { UNDEFINED_EXPRESSION } from '../values';\nimport LocalVariable from '../variables/LocalVariable';\nimport Variable from '../variables/Variable';\nimport ChildScope from './ChildScope';\n\nexport default class Scope {\n\tchildren: ChildScope[] = [];\n\tvariables = new Map<string, Variable>();\n\n\taddDeclaration(\n\t\tidentifier: Identifier,\n\t\tcontext: AstContext,\n\t\tinit: ExpressionEntity | null,\n\t\t_isHoisted: boolean\n\t): LocalVariable {\n\t\tconst name = identifier.name;\n\t\tlet variable = this.variables.get(name) as LocalVariable;\n\t\tif (variable) {\n\t\t\tvariable.addDeclaration(identifier, init);\n\t\t} else {\n\t\t\tvariable = new LocalVariable(\n\t\t\t\tidentifier.name,\n\t\t\t\tidentifier,\n\t\t\t\tinit || UNDEFINED_EXPRESSION,\n\t\t\t\tcontext\n\t\t\t);\n\t\t\tthis.variables.set(name, variable);\n\t\t}\n\t\treturn variable;\n\t}\n\n\tcontains(name: string): boolean {\n\t\treturn this.variables.has(name);\n\t}\n\n\tfindVariable(_name: string): Variable {\n\t\tthrow new Error('Internal Error: findVariable needs to be implemented by a subclass');\n\t}\n}\n","import { InternalModuleFormat } from '../../rollup/types';\nimport { getSafeName } from '../../utils/safeName';\nimport ImportExpression from '../nodes/ImportExpression';\nimport { ExpressionEntity } from '../nodes/shared/Expression';\nimport Variable from '../variables/Variable';\nimport Scope from './Scope';\n\nexport default class ChildScope extends Scope {\n\taccessedOutsideVariables = new Map<string, Variable>();\n\tparent: Scope;\n\tprivate accessedDynamicImports?: Set<ImportExpression>;\n\n\tconstructor(parent: Scope) {\n\t\tsuper();\n\t\tthis.parent = parent;\n\t\tparent.children.push(this);\n\t}\n\n\taddAccessedDynamicImport(importExpression: ImportExpression): void {\n\t\t(this.accessedDynamicImports || (this.accessedDynamicImports = new Set())).add(\n\t\t\timportExpression\n\t\t);\n\t\tif (this.parent instanceof ChildScope) {\n\t\t\tthis.parent.addAccessedDynamicImport(importExpression);\n\t\t}\n\t}\n\n\taddAccessedGlobals(\n\t\tglobals: string[],\n\t\taccessedGlobalsByScope: Map<ChildScope, Set<string>>\n\t): void {\n\t\tconst accessedGlobals = accessedGlobalsByScope.get(this) || new Set();\n\t\tfor (const name of globals) {\n\t\t\taccessedGlobals.add(name);\n\t\t}\n\t\taccessedGlobalsByScope.set(this, accessedGlobals);\n\t\tif (this.parent instanceof ChildScope) {\n\t\t\tthis.parent.addAccessedGlobals(globals, accessedGlobalsByScope);\n\t\t}\n\t}\n\n\taddNamespaceMemberAccess(name: string, variable: Variable): void {\n\t\tthis.accessedOutsideVariables.set(name, variable);\n\t\t(this.parent as ChildScope).addNamespaceMemberAccess(name, variable);\n\t}\n\n\taddReturnExpression(expression: ExpressionEntity): void {\n\t\tthis.parent instanceof ChildScope && this.parent.addReturnExpression(expression);\n\t}\n\n\taddUsedOutsideNames(\n\t\tusedNames: Set<string>,\n\t\tformat: InternalModuleFormat,\n\t\texportNamesByVariable: Map<Variable, string[]>,\n\t\taccessedGlobalsByScope: Map<ChildScope, Set<string>>\n\t): void {\n\t\tfor (const variable of this.accessedOutsideVariables.values()) {\n\t\t\tif (variable.included) {\n\t\t\t\tusedNames.add(variable.getBaseVariableName());\n\t\t\t\tif (format === 'system' && exportNamesByVariable.has(variable)) {\n\t\t\t\t\tusedNames.add('exports');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst accessedGlobals = accessedGlobalsByScope.get(this);\n\t\tif (accessedGlobals) {\n\t\t\tfor (const name of accessedGlobals) {\n\t\t\t\tusedNames.add(name);\n\t\t\t}\n\t\t}\n\t}\n\n\tcontains(name: string): boolean {\n\t\treturn this.variables.has(name) || this.parent.contains(name);\n\t}\n\n\tdeconflict(\n\t\tformat: InternalModuleFormat,\n\t\texportNamesByVariable: Map<Variable, string[]>,\n\t\taccessedGlobalsByScope: Map<ChildScope, Set<string>>\n\t): void {\n\t\tconst usedNames = new Set<string>();\n\t\tthis.addUsedOutsideNames(usedNames, format, exportNamesByVariable, accessedGlobalsByScope);\n\t\tif (this.accessedDynamicImports) {\n\t\t\tfor (const importExpression of this.accessedDynamicImports) {\n\t\t\t\tif (importExpression.inlineNamespace) {\n\t\t\t\t\tusedNames.add(importExpression.inlineNamespace.getBaseVariableName());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (const [name, variable] of this.variables) {\n\t\t\tif (variable.included || variable.alwaysRendered) {\n\t\t\t\tvariable.setRenderNames(null, getSafeName(name, usedNames));\n\t\t\t}\n\t\t}\n\t\tfor (const scope of this.children) {\n\t\t\tscope.deconflict(format, exportNamesByVariable, accessedGlobalsByScope);\n\t\t}\n\t}\n\n\tfindLexicalBoundary(): ChildScope {\n\t\treturn (this.parent as ChildScope).findLexicalBoundary();\n\t}\n\n\tfindVariable(name: string): Variable {\n\t\tconst knownVariable = this.variables.get(name) || this.accessedOutsideVariables.get(name);\n\t\tif (knownVariable) {\n\t\t\treturn knownVariable;\n\t\t}\n\t\tconst variable = this.parent.findVariable(name);\n\t\tthis.accessedOutsideVariables.set(name, variable);\n\t\treturn variable;\n\t}\n}\n","//@ts-check\n/** @typedef { import('estree').Node} Node */\n/** @typedef {Node | {\n * type: 'PropertyDefinition';\n * computed: boolean;\n * value: Node\n * }} NodeWithPropertyDefinition */\n\n/**\n *\n * @param {NodeWithPropertyDefinition} node\n * @param {NodeWithPropertyDefinition} parent\n * @returns boolean\n */\nexport default function is_reference (node, parent) {\n\tif (node.type === 'MemberExpression') {\n\t\treturn !node.computed && is_reference(node.object, node);\n\t}\n\n\tif (node.type === 'Identifier') {\n\t\tif (!parent) return true;\n\n\t\tswitch (parent.type) {\n\t\t\t// disregard `bar` in `foo.bar`\n\t\t\tcase 'MemberExpression': return parent.computed || node === parent.object;\n\n\t\t\t// disregard the `foo` in `class {foo(){}}` but keep it in `class {[foo](){}}`\n\t\t\tcase 'MethodDefinition': return parent.computed;\n\n\t\t\t// disregard the `foo` in `class {foo=bar}` but keep it in `class {[foo]=bar}` and `class {bar=foo}`\n\t\t\tcase 'PropertyDefinition': return parent.computed || node === parent.value;\n\n\t\t\t// disregard the `bar` in `{ bar: foo }`, but keep it in `{ [bar]: foo }`\n\t\t\tcase 'Property': return parent.computed || node === parent.value;\n\n\t\t\t// disregard the `bar` in `export { foo as bar }` or\n\t\t\t// the foo in `import { foo as bar }`\n\t\t\tcase 'ExportSpecifier':\n\t\t\tcase 'ImportSpecifier': return node === parent.local;\n\n\t\t\t// disregard the `foo` in `foo: while (...) { ... break foo; ... continue foo;}`\n\t\t\tcase 'LabeledStatement':\n\t\t\tcase 'BreakStatement':\n\t\t\tcase 'ContinueStatement': return false;\n\t\t\tdefault: return true;\n\t\t}\n\t}\n\n\treturn false;\n}\n","/* eslint sort-keys: \"off\" */\n\nimport { ObjectPath } from '../../utils/PathTracker';\n\nconst ValueProperties = Symbol('Value Properties');\n\ninterface ValueDescription {\n\tpure: boolean;\n}\n\ninterface GlobalDescription {\n\t[pathKey: string]: GlobalDescription | null;\n\t[ValueProperties]: ValueDescription;\n\t__proto__: null;\n}\n\nconst PURE: ValueDescription = { pure: true };\nconst IMPURE: ValueDescription = { pure: false };\n\n// We use shortened variables to reduce file size here\n/* OBJECT */\nconst O: GlobalDescription = {\n\t__proto__: null,\n\t[ValueProperties]: IMPURE\n};\n\n/* PURE FUNCTION */\nconst PF: GlobalDescription = {\n\t__proto__: null,\n\t[ValueProperties]: PURE\n};\n\n/* CONSTRUCTOR */\nconst C: GlobalDescription = {\n\t__proto__: null,\n\t[ValueProperties]: IMPURE,\n\tprototype: O\n};\n\n/* PURE CONSTRUCTOR */\nconst PC: GlobalDescription = {\n\t__proto__: null,\n\t[ValueProperties]: PURE,\n\tprototype: O\n};\n\nconst ARRAY_TYPE: GlobalDescription = {\n\t__proto__: null,\n\t[ValueProperties]: PURE,\n\tfrom: PF,\n\tof: PF,\n\tprototype: O\n};\n\nconst INTL_MEMBER: GlobalDescription = {\n\t__proto__: null,\n\t[ValueProperties]: PURE,\n\tsupportedLocalesOf: PC\n};\n\nconst knownGlobals: GlobalDescription = {\n\t// Placeholders for global objects to avoid shape mutations\n\tglobal: O,\n\tglobalThis: O,\n\tself: O,\n\twindow: O,\n\n\t// Common globals\n\t__proto__: null,\n\t[ValueProperties]: IMPURE,\n\tArray: {\n\t\t__proto__: null,\n\t\t[ValueProperties]: IMPURE,\n\t\tfrom: O,\n\t\tisArray: PF,\n\t\tof: PF,\n\t\tprototype: O\n\t},\n\tArrayBuffer: {\n\t\t__proto__: null,\n\t\t[ValueProperties]: PURE,\n\t\tisView: PF,\n\t\tprototype: O\n\t},\n\tAtomics: O,\n\tBigInt: C,\n\tBigInt64Array: C,\n\tBigUint64Array: C,\n\tBoolean: PC,\n\tconstructor: C,\n\tDataView: PC,\n\tDate: {\n\t\t__proto__: null,\n\t\t[ValueProperties]: PURE,\n\t\tnow: PF,\n\t\tparse: PF,\n\t\tprototype: O,\n\t\tUTC: PF\n\t},\n\tdecodeURI: PF,\n\tdecodeURIComponent: PF,\n\tencodeURI: PF,\n\tencodeURIComponent: PF,\n\tError: PC,\n\tescape: PF,\n\teval: O,\n\tEvalError: PC,\n\tFloat32Array: ARRAY_TYPE,\n\tFloat64Array: ARRAY_TYPE,\n\tFunction: C,\n\thasOwnProperty: O,\n\tInfinity: O,\n\tInt16Array: ARRAY_TYPE,\n\tInt32Array: ARRAY_TYPE,\n\tInt8Array: ARRAY_TYPE,\n\tisFinite: PF,\n\tisNaN: PF,\n\tisPrototypeOf: O,\n\tJSON: O,\n\tMap: PC,\n\tMath: {\n\t\t__proto__: null,\n\t\t[ValueProperties]: IMPURE,\n\t\tabs: PF,\n\t\tacos: PF,\n\t\tacosh: PF,\n\t\tasin: PF,\n\t\tasinh: PF,\n\t\tatan: PF,\n\t\tatan2: PF,\n\t\tatanh: PF,\n\t\tcbrt: PF,\n\t\tceil: PF,\n\t\tclz32: PF,\n\t\tcos: PF,\n\t\tcosh: PF,\n\t\texp: PF,\n\t\texpm1: PF,\n\t\tfloor: PF,\n\t\tfround: PF,\n\t\thypot: PF,\n\t\timul: PF,\n\t\tlog: PF,\n\t\tlog10: PF,\n\t\tlog1p: PF,\n\t\tlog2: PF,\n\t\tmax: PF,\n\t\tmin: PF,\n\t\tpow: PF,\n\t\trandom: PF,\n\t\tround: PF,\n\t\tsign: PF,\n\t\tsin: PF,\n\t\tsinh: PF,\n\t\tsqrt: PF,\n\t\ttan: PF,\n\t\ttanh: PF,\n\t\ttrunc: PF\n\t},\n\tNaN: O,\n\tNumber: {\n\t\t__proto__: null,\n\t\t[ValueProperties]: PURE,\n\t\tisFinite: PF,\n\t\tisInteger: PF,\n\t\tisNaN: PF,\n\t\tisSafeInteger: PF,\n\t\tparseFloat: PF,\n\t\tparseInt: PF,\n\t\tprototype: O\n\t},\n\tObject: {\n\t\t__proto__: null,\n\t\t[ValueProperties]: PURE,\n\t\tcreate: PF,\n\t\tgetNotifier: PF,\n\t\tgetOwn: PF,\n\t\tgetOwnPropertyDescriptor: PF,\n\t\tgetOwnPropertyNames: PF,\n\t\tgetOwnPropertySymbols: PF,\n\t\tgetPrototypeOf: PF,\n\t\tis: PF,\n\t\tisExtensible: PF,\n\t\tisFrozen: PF,\n\t\tisSealed: PF,\n\t\tkeys: PF,\n\t\tprototype: O\n\t},\n\tparseFloat: PF,\n\tparseInt: PF,\n\tPromise: {\n\t\t__proto__: null,\n\t\t[ValueProperties]: IMPURE,\n\t\tall: O,\n\t\tprototype: O,\n\t\trace: O,\n\t\treject: O,\n\t\tresolve: O\n\t},\n\tpropertyIsEnumerable: O,\n\tProxy: O,\n\tRangeError: PC,\n\tReferenceError: PC,\n\tReflect: O,\n\tRegExp: PC,\n\tSet: PC,\n\tSharedArrayBuffer: C,\n\tString: {\n\t\t__proto__: null,\n\t\t[ValueProperties]: PURE,\n\t\tfromCharCode: PF,\n\t\tfromCodePoint: PF,\n\t\tprototype: O,\n\t\traw: PF\n\t},\n\tSymbol: {\n\t\t__proto__: null,\n\t\t[ValueProperties]: PURE,\n\t\tfor: PF,\n\t\tkeyFor: PF,\n\t\tprototype: O\n\t},\n\tSyntaxError: PC,\n\ttoLocaleString: O,\n\ttoString: O,\n\tTypeError: PC,\n\tUint16Array: ARRAY_TYPE,\n\tUint32Array: ARRAY_TYPE,\n\tUint8Array: ARRAY_TYPE,\n\tUint8ClampedArray: ARRAY_TYPE,\n\t// Technically, this is a global, but it needs special handling\n\t// undefined: ?,\n\tunescape: PF,\n\tURIError: PC,\n\tvalueOf: O,\n\tWeakMap: PC,\n\tWeakSet: PC,\n\n\t// Additional globals shared by Node and Browser that are not strictly part of the language\n\tclearInterval: C,\n\tclearTimeout: C,\n\tconsole: O,\n\tIntl: {\n\t\t__proto__: null,\n\t\t[ValueProperties]: IMPURE,\n\t\tCollator: INTL_MEMBER,\n\t\tDateTimeFormat: INTL_MEMBER,\n\t\tListFormat: INTL_MEMBER,\n\t\tNumberFormat: INTL_MEMBER,\n\t\tPluralRules: INTL_MEMBER,\n\t\tRelativeTimeFormat: INTL_MEMBER\n\t},\n\tsetInterval: C,\n\tsetTimeout: C,\n\tTextDecoder: C,\n\tTextEncoder: C,\n\tURL: C,\n\tURLSearchParams: C,\n\n\t// Browser specific globals\n\tAbortController: C,\n\tAbortSignal: C,\n\taddEventListener: O,\n\talert: O,\n\tAnalyserNode: C,\n\tAnimation: C,\n\tAnimationEvent: C,\n\tapplicationCache: O,\n\tApplicationCache: C,\n\tApplicationCacheErrorEvent: C,\n\tatob: O,\n\tAttr: C,\n\tAudio: C,\n\tAudioBuffer: C,\n\tAudioBufferSourceNode: C,\n\tAudioContext: C,\n\tAudioDestinationNode: C,\n\tAudioListener: C,\n\tAudioNode: C,\n\tAudioParam: C,\n\tAudioProcessingEvent: C,\n\tAudioScheduledSourceNode: C,\n\tAudioWorkletNode: C,\n\tBarProp: C,\n\tBaseAudioContext: C,\n\tBatteryManager: C,\n\tBeforeUnloadEvent: C,\n\tBiquadFilterNode: C,\n\tBlob: C,\n\tBlobEvent: C,\n\tblur: O,\n\tBroadcastChannel: C,\n\tbtoa: O,\n\tByteLengthQueuingStrategy: C,\n\tCache: C,\n\tcaches: O,\n\tCacheStorage: C,\n\tcancelAnimationFrame: O,\n\tcancelIdleCallback: O,\n\tCanvasCaptureMediaStreamTrack: C,\n\tCanvasGradient: C,\n\tCanvasPattern: C,\n\tCanvasRenderingContext2D: C,\n\tChannelMergerNode: C,\n\tChannelSplitterNode: C,\n\tCharacterData: C,\n\tclientInformation: O,\n\tClipboardEvent: C,\n\tclose: O,\n\tclosed: O,\n\tCloseEvent: C,\n\tComment: C,\n\tCompositionEvent: C,\n\tconfirm: O,\n\tConstantSourceNode: C,\n\tConvolverNode: C,\n\tCountQueuingStrategy: C,\n\tcreateImageBitmap: O,\n\tCredential: C,\n\tCredentialsContainer: C,\n\tcrypto: O,\n\tCrypto: C,\n\tCryptoKey: C,\n\tCSS: C,\n\tCSSConditionRule: C,\n\tCSSFontFaceRule: C,\n\tCSSGroupingRule: C,\n\tCSSImportRule: C,\n\tCSSKeyframeRule: C,\n\tCSSKeyframesRule: C,\n\tCSSMediaRule: C,\n\tCSSNamespaceRule: C,\n\tCSSPageRule: C,\n\tCSSRule: C,\n\tCSSRuleList: C,\n\tCSSStyleDeclaration: C,\n\tCSSStyleRule: C,\n\tCSSStyleSheet: C,\n\tCSSSupportsRule: C,\n\tCustomElementRegistry: C,\n\tcustomElements: O,\n\tCustomEvent: C,\n\tDataTransfer: C,\n\tDataTransferItem: C,\n\tDataTransferItemList: C,\n\tdefaultstatus: O,\n\tdefaultStatus: O,\n\tDelayNode: C,\n\tDeviceMotionEvent: C,\n\tDeviceOrientationEvent: C,\n\tdevicePixelRatio: O,\n\tdispatchEvent: O,\n\tdocument: O,\n\tDocument: C,\n\tDocumentFragment: C,\n\tDocumentType: C,\n\tDOMError: C,\n\tDOMException: C,\n\tDOMImplementation: C,\n\tDOMMatrix: C,\n\tDOMMatrixReadOnly: C,\n\tDOMParser: C,\n\tDOMPoint: C,\n\tDOMPointReadOnly: C,\n\tDOMQuad: C,\n\tDOMRect: C,\n\tDOMRectReadOnly: C,\n\tDOMStringList: C,\n\tDOMStringMap: C,\n\tDOMTokenList: C,\n\tDragEvent: C,\n\tDynamicsCompressorNode: C,\n\tElement: C,\n\tErrorEvent: C,\n\tEvent: C,\n\tEventSource: C,\n\tEventTarget: C,\n\texternal: O,\n\tfetch: O,\n\tFile: C,\n\tFileList: C,\n\tFileReader: C,\n\tfind: O,\n\tfocus: O,\n\tFocusEvent: C,\n\tFontFace: C,\n\tFontFaceSetLoadEvent: C,\n\tFormData: C,\n\tframes: O,\n\tGainNode: C,\n\tGamepad: C,\n\tGamepadButton: C,\n\tGamepadEvent: C,\n\tgetComputedStyle: O,\n\tgetSelection: O,\n\tHashChangeEvent: C,\n\tHeaders: C,\n\thistory: O,\n\tHistory: C,\n\tHTMLAllCollection: C,\n\tHTMLAnchorElement: C,\n\tHTMLAreaElement: C,\n\tHTMLAudioElement: C,\n\tHTMLBaseElement: C,\n\tHTMLBodyElement: C,\n\tHTMLBRElement: C,\n\tHTMLButtonElement: C,\n\tHTMLCanvasElement: C,\n\tHTMLCollection: C,\n\tHTMLContentElement: C,\n\tHTMLDataElement: C,\n\tHTMLDataListElement: C,\n\tHTMLDetailsElement: C,\n\tHTMLDialogElement: C,\n\tHTMLDirectoryElement: C,\n\tHTMLDivElement: C,\n\tHTMLDListElement: C,\n\tHTMLDocument: C,\n\tHTMLElement: C,\n\tHTMLEmbedElement: C,\n\tHTMLFieldSetElement: C,\n\tHTMLFontElement: C,\n\tHTMLFormControlsCollection: C,\n\tHTMLFormElement: C,\n\tHTMLFrameElement: C,\n\tHTMLFrameSetElement: C,\n\tHTMLHeadElement: C,\n\tHTMLHeadingElement: C,\n\tHTMLHRElement: C,\n\tHTMLHtmlElement: C,\n\tHTMLIFrameElement: C,\n\tHTMLImageElement: C,\n\tHTMLInputElement: C,\n\tHTMLLabelElement: C,\n\tHTMLLegendElement: C,\n\tHTMLLIElement: C,\n\tHTMLLinkElement: C,\n\tHTMLMapElement: C,\n\tHTMLMarqueeElement: C,\n\tHTMLMediaElement: C,\n\tHTMLMenuElement: C,\n\tHTMLMetaElement: C,\n\tHTMLMeterElement: C,\n\tHTMLModElement: C,\n\tHTMLObjectElement: C,\n\tHTMLOListElement: C,\n\tHTMLOptGroupElement: C,\n\tHTMLOptionElement: C,\n\tHTMLOptionsCollection: C,\n\tHTMLOutputElement: C,\n\tHTMLParagraphElement: C,\n\tHTMLParamElement: C,\n\tHTMLPictureElement: C,\n\tHTMLPreElement: C,\n\tHTMLProgressElement: C,\n\tHTMLQuoteElement: C,\n\tHTMLScriptElement: C,\n\tHTMLSelectElement: C,\n\tHTMLShadowElement: C,\n\tHTMLSlotElement: C,\n\tHTMLSourceElement: C,\n\tHTMLSpanElement: C,\n\tHTMLStyleElement: C,\n\tHTMLTableCaptionElement: C,\n\tHTMLTableCellElement: C,\n\tHTMLTableColElement: C,\n\tHTMLTableElement: C,\n\tHTMLTableRowElement: C,\n\tHTMLTableSectionElement: C,\n\tHTMLTemplateElement: C,\n\tHTMLTextAreaElement: C,\n\tHTMLTimeElement: C,\n\tHTMLTitleElement: C,\n\tHTMLTrackElement: C,\n\tHTMLUListElement: C,\n\tHTMLUnknownElement: C,\n\tHTMLVideoElement: C,\n\tIDBCursor: C,\n\tIDBCursorWithValue: C,\n\tIDBDatabase: C,\n\tIDBFactory: C,\n\tIDBIndex: C,\n\tIDBKeyRange: C,\n\tIDBObjectStore: C,\n\tIDBOpenDBRequest: C,\n\tIDBRequest: C,\n\tIDBTransaction: C,\n\tIDBVersionChangeEvent: C,\n\tIdleDeadline: C,\n\tIIRFilterNode: C,\n\tImage: C,\n\tImageBitmap: C,\n\tImageBitmapRenderingContext: C,\n\tImageCapture: C,\n\tImageData: C,\n\tindexedDB: O,\n\tinnerHeight: O,\n\tinnerWidth: O,\n\tInputEvent: C,\n\tIntersectionObserver: C,\n\tIntersectionObserverEntry: C,\n\tisSecureContext: O,\n\tKeyboardEvent: C,\n\tKeyframeEffect: C,\n\tlength: O,\n\tlocalStorage: O,\n\tlocation: O,\n\tLocation: C,\n\tlocationbar: O,\n\tmatchMedia: O,\n\tMediaDeviceInfo: C,\n\tMediaDevices: C,\n\tMediaElementAudioSourceNode: C,\n\tMediaEncryptedEvent: C,\n\tMediaError: C,\n\tMediaKeyMessageEvent: C,\n\tMediaKeySession: C,\n\tMediaKeyStatusMap: C,\n\tMediaKeySystemAccess: C,\n\tMediaList: C,\n\tMediaQueryList: C,\n\tMediaQueryListEvent: C,\n\tMediaRecorder: C,\n\tMediaSettingsRange: C,\n\tMediaSource: C,\n\tMediaStream: C,\n\tMediaStreamAudioDestinationNode: C,\n\tMediaStreamAudioSourceNode: C,\n\tMediaStreamEvent: C,\n\tMediaStreamTrack: C,\n\tMediaStreamTrackEvent: C,\n\tmenubar: O,\n\tMessageChannel: C,\n\tMessageEvent: C,\n\tMessagePort: C,\n\tMIDIAccess: C,\n\tMIDIConnectionEvent: C,\n\tMIDIInput: C,\n\tMIDIInputMap: C,\n\tMIDIMessageEvent: C,\n\tMIDIOutput: C,\n\tMIDIOutputMap: C,\n\tMIDIPort: C,\n\tMimeType: C,\n\tMimeTypeArray: C,\n\tMouseEvent: C,\n\tmoveBy: O,\n\tmoveTo: O,\n\tMutationEvent: C,\n\tMutationObserver: C,\n\tMutationRecord: C,\n\tname: O,\n\tNamedNodeMap: C,\n\tNavigationPreloadManager: C,\n\tnavigator: O,\n\tNavigator: C,\n\tNetworkInformation: C,\n\tNode: C,\n\tNodeFilter: O,\n\tNodeIterator: C,\n\tNodeList: C,\n\tNotification: C,\n\tOfflineAudioCompletionEvent: C,\n\tOfflineAudioContext: C,\n\toffscreenBuffering: O,\n\tOffscreenCanvas: C,\n\topen: O,\n\topenDatabase: O,\n\tOption: C,\n\torigin: O,\n\tOscillatorNode: C,\n\touterHeight: O,\n\touterWidth: O,\n\tPageTransitionEvent: C,\n\tpageXOffset: O,\n\tpageYOffset: O,\n\tPannerNode: C,\n\tparent: O,\n\tPath2D: C,\n\tPaymentAddress: C,\n\tPaymentRequest: C,\n\tPaymentRequestUpdateEvent: C,\n\tPaymentResponse: C,\n\tperformance: O,\n\tPerformance: C,\n\tPerformanceEntry: C,\n\tPerformanceLongTaskTiming: C,\n\tPerformanceMark: C,\n\tPerformanceMeasure: C,\n\tPerformanceNavigation: C,\n\tPerformanceNavigationTiming: C,\n\tPerformanceObserver: C,\n\tPerformanceObserverEntryList: C,\n\tPerformancePaintTiming: C,\n\tPerformanceResourceTiming: C,\n\tPerformanceTiming: C,\n\tPeriodicWave: C,\n\tPermissions: C,\n\tPermissionStatus: C,\n\tpersonalbar: O,\n\tPhotoCapabilities: C,\n\tPlugin: C,\n\tPluginArray: C,\n\tPointerEvent: C,\n\tPopStateEvent: C,\n\tpostMessage: O,\n\tPresentation: C,\n\tPresentationAvailability: C,\n\tPresentationConnection: C,\n\tPresentationConnectionAvailableEvent: C,\n\tPresentationConnectionCloseEvent: C,\n\tPresentationConnectionList: C,\n\tPresentationReceiver: C,\n\tPresentationRequest: C,\n\tprint: O,\n\tProcessingInstruction: C,\n\tProgressEvent: C,\n\tPromiseRejectionEvent: C,\n\tprompt: O,\n\tPushManager: C,\n\tPushSubscription: C,\n\tPushSubscriptionOptions: C,\n\tqueueMicrotask: O,\n\tRadioNodeList: C,\n\tRange: C,\n\tReadableStream: C,\n\tRemotePlayback: C,\n\tremoveEventListener: O,\n\tRequest: C,\n\trequestAnimationFrame: O,\n\trequestIdleCallback: O,\n\tresizeBy: O,\n\tResizeObserver: C,\n\tResizeObserverEntry: C,\n\tresizeTo: O,\n\tResponse: C,\n\tRTCCertificate: C,\n\tRTCDataChannel: C,\n\tRTCDataChannelEvent: C,\n\tRTCDtlsTransport: C,\n\tRTCIceCandidate: C,\n\tRTCIceTransport: C,\n\tRTCPeerConnection: C,\n\tRTCPeerConnectionIceEvent: C,\n\tRTCRtpReceiver: C,\n\tRTCRtpSender: C,\n\tRTCSctpTransport: C,\n\tRTCSessionDescription: C,\n\tRTCStatsReport: C,\n\tRTCTrackEvent: C,\n\tscreen: O,\n\tScreen: C,\n\tscreenLeft: O,\n\tScreenOrientation: C,\n\tscreenTop: O,\n\tscreenX: O,\n\tscreenY: O,\n\tScriptProcessorNode: C,\n\tscroll: O,\n\tscrollbars: O,\n\tscrollBy: O,\n\tscrollTo: O,\n\tscrollX: O,\n\tscrollY: O,\n\tSecurityPolicyViolationEvent: C,\n\tSelection: C,\n\tServiceWorker: C,\n\tServiceWorkerContainer: C,\n\tServiceWorkerRegistration: C,\n\tsessionStorage: O,\n\tShadowRoot: C,\n\tSharedWorker: C,\n\tSourceBuffer: C,\n\tSourceBufferList: C,\n\tspeechSynthesis: O,\n\tSpeechSynthesisEvent: C,\n\tSpeechSynthesisUtterance: C,\n\tStaticRange: C,\n\tstatus: O,\n\tstatusbar: O,\n\tStereoPannerNode: C,\n\tstop: O,\n\tStorage: C,\n\tStorageEvent: C,\n\tStorageManager: C,\n\tstyleMedia: O,\n\tStyleSheet: C,\n\tStyleSheetList: C,\n\tSubtleCrypto: C,\n\tSVGAElement: C,\n\tSVGAngle: C,\n\tSVGAnimatedAngle: C,\n\tSVGAnimatedBoolean: C,\n\tSVGAnimatedEnumeration: C,\n\tSVGAnimatedInteger: C,\n\tSVGAnimatedLength: C,\n\tSVGAnimatedLengthList: C,\n\tSVGAnimatedNumber: C,\n\tSVGAnimatedNumberList: C,\n\tSVGAnimatedPreserveAspectRatio: C,\n\tSVGAnimatedRect: C,\n\tSVGAnimatedString: C,\n\tSVGAnimatedTransformList: C,\n\tSVGAnimateElement: C,\n\tSVGAnimateMotionElement: C,\n\tSVGAnimateTransformElement: C,\n\tSVGAnimationElement: C,\n\tSVGCircleElement: C,\n\tSVGClipPathElement: C,\n\tSVGComponentTransferFunctionElement: C,\n\tSVGDefsElement: C,\n\tSVGDescElement: C,\n\tSVGDiscardElement: C,\n\tSVGElement: C,\n\tSVGEllipseElement: C,\n\tSVGFEBlendElement: C,\n\tSVGFEColorMatrixElement: C,\n\tSVGFEComponentTransferElement: C,\n\tSVGFECompositeElement: C,\n\tSVGFEConvolveMatrixElement: C,\n\tSVGFEDiffuseLightingElement: C,\n\tSVGFEDisplacementMapElement: C,\n\tSVGFEDistantLightElement: C,\n\tSVGFEDropShadowElement: C,\n\tSVGFEFloodElement: C,\n\tSVGFEFuncAElement: C,\n\tSVGFEFuncBElement: C,\n\tSVGFEFuncGElement: C,\n\tSVGFEFuncRElement: C,\n\tSVGFEGaussianBlurElement: C,\n\tSVGFEImageElement: C,\n\tSVGFEMergeElement: C,\n\tSVGFEMergeNodeElement: C,\n\tSVGFEMorphologyElement: C,\n\tSVGFEOffsetElement: C,\n\tSVGFEPointLightElement: C,\n\tSVGFESpecularLightingElement: C,\n\tSVGFESpotLightElement: C,\n\tSVGFETileElement: C,\n\tSVGFETurbulenceElement: C,\n\tSVGFilterElement: C,\n\tSVGForeignObjectElement: C,\n\tSVGGElement: C,\n\tSVGGeometryElement: C,\n\tSVGGradientElement: C,\n\tSVGGraphicsElement: C,\n\tSVGImageElement: C,\n\tSVGLength: C,\n\tSVGLengthList: C,\n\tSVGLinearGradientElement: C,\n\tSVGLineElement: C,\n\tSVGMarkerElement: C,\n\tSVGMaskElement: C,\n\tSVGMatrix: C,\n\tSVGMetadataElement: C,\n\tSVGMPathElement: C,\n\tSVGNumber: C,\n\tSVGNumberList: C,\n\tSVGPathElement: C,\n\tSVGPatternElement: C,\n\tSVGPoint: C,\n\tSVGPointList: C,\n\tSVGPolygonElement: C,\n\tSVGPolylineElement: C,\n\tSVGPreserveAspectRatio: C,\n\tSVGRadialGradientElement: C,\n\tSVGRect: C,\n\tSVGRectElement: C,\n\tSVGScriptElement: C,\n\tSVGSetElement: C,\n\tSVGStopElement: C,\n\tSVGStringList: C,\n\tSVGStyleElement: C,\n\tSVGSVGElement: C,\n\tSVGSwitchElement: C,\n\tSVGSymbolElement: C,\n\tSVGTextContentElement: C,\n\tSVGTextElement: C,\n\tSVGTextPathElement: C,\n\tSVGTextPositioningElement: C,\n\tSVGTitleElement: C,\n\tSVGTransform: C,\n\tSVGTransformList: C,\n\tSVGTSpanElement: C,\n\tSVGUnitTypes: C,\n\tSVGUseElement: C,\n\tSVGViewElement: C,\n\tTaskAttributionTiming: C,\n\tText: C,\n\tTextEvent: C,\n\tTextMetrics: C,\n\tTextTrack: C,\n\tTextTrackCue: C,\n\tTextTrackCueList: C,\n\tTextTrackList: C,\n\tTimeRanges: C,\n\ttoolbar: O,\n\ttop: O,\n\tTouch: C,\n\tTouchEvent: C,\n\tTouchList: C,\n\tTrackEvent: C,\n\tTransitionEvent: C,\n\tTreeWalker: C,\n\tUIEvent: C,\n\tValidityState: C,\n\tvisualViewport: O,\n\tVisualViewport: C,\n\tVTTCue: C,\n\tWaveShaperNode: C,\n\tWebAssembly: O,\n\tWebGL2RenderingContext: C,\n\tWebGLActiveInfo: C,\n\tWebGLBuffer: C,\n\tWebGLContextEvent: C,\n\tWebGLFramebuffer: C,\n\tWebGLProgram: C,\n\tWebGLQuery: C,\n\tWebGLRenderbuffer: C,\n\tWebGLRenderingContext: C,\n\tWebGLSampler: C,\n\tWebGLShader: C,\n\tWebGLShaderPrecisionFormat: C,\n\tWebGLSync: C,\n\tWebGLTexture: C,\n\tWebGLTransformFeedback: C,\n\tWebGLUniformLocation: C,\n\tWebGLVertexArrayObject: C,\n\tWebSocket: C,\n\tWheelEvent: C,\n\tWindow: C,\n\tWorker: C,\n\tWritableStream: C,\n\tXMLDocument: C,\n\tXMLHttpRequest: C,\n\tXMLHttpRequestEventTarget: C,\n\tXMLHttpRequestUpload: C,\n\tXMLSerializer: C,\n\tXPathEvaluator: C,\n\tXPathExpression: C,\n\tXPathResult: C,\n\tXSLTProcessor: C\n};\n\nfor (const global of ['window', 'global', 'self', 'globalThis']) {\n\tknownGlobals[global] = knownGlobals;\n}\n\nfunction getGlobalAtPath(path: ObjectPath): ValueDescription | null {\n\tlet currentGlobal: GlobalDescription | null = knownGlobals;\n\tfor (const pathSegment of path) {\n\t\tif (typeof pathSegment !== 'string') {\n\t\t\treturn null;\n\t\t}\n\t\tcurrentGlobal = currentGlobal[pathSegment];\n\t\tif (!currentGlobal) {\n\t\t\treturn null;\n\t\t}\n\t}\n\treturn currentGlobal[ValueProperties];\n}\n\nexport function isPureGlobal(path: ObjectPath): boolean {\n\tconst globalAtPath = getGlobalAtPath(path);\n\treturn globalAtPath !== null && globalAtPath.pure;\n}\n\nexport function isGlobalMember(path: ObjectPath): boolean {\n\tif (path.length === 1) {\n\t\treturn path[0] === 'undefined' || getGlobalAtPath(path) !== null;\n\t}\n\treturn getGlobalAtPath(path.slice(0, -1)) !== null;\n}\n","import { isGlobalMember, isPureGlobal } from '../nodes/shared/knownGlobals';\nimport { ObjectPath } from '../utils/PathTracker';\nimport Variable from './Variable';\n\nexport default class GlobalVariable extends Variable {\n\tisReassigned = true;\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath): boolean {\n\t\treturn !isGlobalMember([this.name, ...path]);\n\t}\n\n\thasEffectsWhenCalledAtPath(path: ObjectPath): boolean {\n\t\treturn !isPureGlobal([this.name, ...path]);\n\t}\n}\n","import isReference from 'is-reference';\nimport MagicString from 'magic-string';\nimport { NormalizedTreeshakingOptions } from '../../rollup/types';\nimport { BLANK } from '../../utils/blank';\nimport { NodeRenderOptions, RenderOptions } from '../../utils/renderHelpers';\nimport { CallOptions } from '../CallOptions';\nimport { DeoptimizableEntity } from '../DeoptimizableEntity';\nimport { HasEffectsContext, InclusionContext } from '../ExecutionContext';\nimport { NodeEvent } from '../NodeEvents';\nimport FunctionScope from '../scopes/FunctionScope';\nimport { EMPTY_PATH, ObjectPath, PathTracker } from '../utils/PathTracker';\nimport GlobalVariable from '../variables/GlobalVariable';\nimport LocalVariable from '../variables/LocalVariable';\nimport Variable from '../variables/Variable';\nimport * as NodeType from './NodeType';\nimport SpreadElement from './SpreadElement';\nimport { ExpressionEntity, LiteralValueOrUnknown, UNKNOWN_EXPRESSION } from './shared/Expression';\nimport { ExpressionNode, NodeBase } from './shared/Node';\nimport { PatternNode } from './shared/Pattern';\n\nexport type IdentifierWithVariable = Identifier & { variable: Variable };\n\nconst tdzVariableKinds = {\n\t__proto__: null,\n\tclass: true,\n\tconst: true,\n\tlet: true,\n\tvar: true\n};\n\nexport default class Identifier extends NodeBase implements PatternNode {\n\tname!: string;\n\ttype!: NodeType.tIdentifier;\n\tvariable: Variable | null = null;\n\tprotected deoptimized = false;\n\tprivate isTDZAccess: boolean | null = null;\n\n\taddExportedVariables(\n\t\tvariables: Variable[],\n\t\texportNamesByVariable: Map<Variable, string[]>\n\t): void {\n\t\tif (this.variable !== null && exportNamesByVariable.has(this.variable)) {\n\t\t\tvariables.push(this.variable);\n\t\t}\n\t}\n\n\tbind(): void {\n\t\tif (this.variable === null && isReference(this, this.parent as any)) {\n\t\t\tthis.variable = this.scope.findVariable(this.name);\n\t\t\tthis.variable.addReference(this);\n\t\t}\n\t}\n\n\tdeclare(kind: string, init: ExpressionEntity): LocalVariable[] {\n\t\tlet variable: LocalVariable;\n\t\tconst { treeshake } = this.context.options;\n\t\tswitch (kind) {\n\t\t\tcase 'var':\n\t\t\t\tvariable = this.scope.addDeclaration(this, this.context, init, true);\n\t\t\t\tif (treeshake && treeshake.correctVarValueBeforeDeclaration) {\n\t\t\t\t\t// Necessary to make sure the init is deoptimized. We cannot call deoptimizePath here.\n\t\t\t\t\tvariable.markInitializersForDeoptimization();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'function':\n\t\t\t\t// in strict mode, functions are only hoisted within a scope but not across block scopes\n\t\t\t\tvariable = this.scope.addDeclaration(this, this.context, init, false);\n\t\t\t\tbreak;\n\t\t\tcase 'let':\n\t\t\tcase 'const':\n\t\t\tcase 'class':\n\t\t\t\tvariable = this.scope.addDeclaration(this, this.context, init, false);\n\t\t\t\tbreak;\n\t\t\tcase 'parameter':\n\t\t\t\tvariable = (this.scope as FunctionScope).addParameterDeclaration(this);\n\t\t\t\tbreak;\n\t\t\t/* istanbul ignore next */\n\t\t\tdefault:\n\t\t\t\t/* istanbul ignore next */\n\t\t\t\tthrow new Error(`Internal Error: Unexpected identifier kind ${kind}.`);\n\t\t}\n\t\tvariable.kind = kind;\n\t\treturn [(this.variable = variable)];\n\t}\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tif (path.length === 0 && !this.scope.contains(this.name)) {\n\t\t\tthis.disallowImportReassignment();\n\t\t}\n\t\tthis.variable!.deoptimizePath(path);\n\t}\n\n\tdeoptimizeThisOnEventAtPath(\n\t\tevent: NodeEvent,\n\t\tpath: ObjectPath,\n\t\tthisParameter: ExpressionEntity,\n\t\trecursionTracker: PathTracker\n\t): void {\n\t\tthis.variable!.deoptimizeThisOnEventAtPath(event, path, thisParameter, recursionTracker);\n\t}\n\n\tgetLiteralValueAtPath(\n\t\tpath: ObjectPath,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): LiteralValueOrUnknown {\n\t\treturn this.getVariableRespectingTDZ().getLiteralValueAtPath(path, recursionTracker, origin);\n\t}\n\n\tgetReturnExpressionWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): ExpressionEntity {\n\t\treturn this.getVariableRespectingTDZ().getReturnExpressionWhenCalledAtPath(\n\t\t\tpath,\n\t\t\tcallOptions,\n\t\t\trecursionTracker,\n\t\t\torigin\n\t\t);\n\t}\n\n\thasEffects(): boolean {\n\t\tif (!this.deoptimized) this.applyDeoptimizations();\n\t\tif (this.isPossibleTDZ() && this.variable!.kind !== 'var') {\n\t\t\treturn true;\n\t\t}\n\t\treturn (\n\t\t\t(this.context.options.treeshake as NormalizedTreeshakingOptions).unknownGlobalSideEffects &&\n\t\t\tthis.variable instanceof GlobalVariable &&\n\t\t\tthis.variable.hasEffectsWhenAccessedAtPath(EMPTY_PATH)\n\t\t);\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\treturn (\n\t\t\tthis.variable !== null &&\n\t\t\tthis.getVariableRespectingTDZ().hasEffectsWhenAccessedAtPath(path, context)\n\t\t);\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\treturn (\n\t\t\t!this.variable ||\n\t\t\t(path.length > 0\n\t\t\t\t? this.getVariableRespectingTDZ()\n\t\t\t\t: this.variable\n\t\t\t).hasEffectsWhenAssignedAtPath(path, context)\n\t\t);\n\t}\n\n\thasEffectsWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\tcontext: HasEffectsContext\n\t): boolean {\n\t\treturn (\n\t\t\t!this.variable ||\n\t\t\tthis.getVariableRespectingTDZ().hasEffectsWhenCalledAtPath(path, callOptions, context)\n\t\t);\n\t}\n\n\tinclude(): void {\n\t\tif (!this.deoptimized) this.applyDeoptimizations();\n\t\tif (!this.included) {\n\t\t\tthis.included = true;\n\t\t\tif (this.variable !== null) {\n\t\t\t\tthis.context.includeVariableInModule(this.variable);\n\t\t\t}\n\t\t}\n\t}\n\n\tincludeCallArguments(context: InclusionContext, args: (ExpressionNode | SpreadElement)[]): void {\n\t\tthis.getVariableRespectingTDZ().includeCallArguments(context, args);\n\t}\n\n\tisPossibleTDZ(): boolean {\n\t\t// return cached value to avoid issues with the next tree-shaking pass\n\t\tif (this.isTDZAccess !== null) return this.isTDZAccess;\n\n\t\tif (\n\t\t\t!(this.variable instanceof LocalVariable) ||\n\t\t\t!this.variable.kind ||\n\t\t\t!(this.variable.kind in tdzVariableKinds)\n\t\t) {\n\t\t\treturn (this.isTDZAccess = false);\n\t\t}\n\n\t\tlet decl_id;\n\t\tif (\n\t\t\tthis.variable.declarations &&\n\t\t\tthis.variable.declarations.length === 1 &&\n\t\t\t(decl_id = this.variable.declarations[0] as any) &&\n\t\t\tthis.start < decl_id.start &&\n\t\t\tclosestParentFunctionOrProgram(this) === closestParentFunctionOrProgram(decl_id)\n\t\t) {\n\t\t\t// a variable accessed before its declaration\n\t\t\t// in the same function or at top level of module\n\t\t\treturn (this.isTDZAccess = true);\n\t\t}\n\n\t\tif (!this.variable.initReached) {\n\t\t\t// Either a const/let TDZ violation or\n\t\t\t// var use before declaration was encountered.\n\t\t\treturn (this.isTDZAccess = true);\n\t\t}\n\n\t\treturn (this.isTDZAccess = false);\n\t}\n\n\tmarkDeclarationReached(): void {\n\t\tthis.variable!.initReached = true;\n\t}\n\n\trender(\n\t\tcode: MagicString,\n\t\t_options: RenderOptions,\n\t\t{ renderedParentType, isCalleeOfRenderedParent, isShorthandProperty }: NodeRenderOptions = BLANK\n\t): void {\n\t\tif (this.variable) {\n\t\t\tconst name = this.variable.getName();\n\n\t\t\tif (name !== this.name) {\n\t\t\t\tcode.overwrite(this.start, this.end, name, {\n\t\t\t\t\tcontentOnly: true,\n\t\t\t\t\tstoreName: true\n\t\t\t\t});\n\t\t\t\tif (isShorthandProperty) {\n\t\t\t\t\tcode.prependRight(this.start, `${this.name}: `);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// In strict mode, any variable named \"eval\" must be the actual \"eval\" function\n\t\t\tif (\n\t\t\t\tname === 'eval' &&\n\t\t\t\trenderedParentType === NodeType.CallExpression &&\n\t\t\t\tisCalleeOfRenderedParent\n\t\t\t) {\n\t\t\t\tcode.appendRight(this.start, '0, ');\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected applyDeoptimizations(): void {\n\t\tthis.deoptimized = true;\n\t\tif (this.variable !== null && this.variable instanceof LocalVariable) {\n\t\t\tthis.variable.consolidateInitializers();\n\t\t\tthis.context.requestTreeshakingPass();\n\t\t}\n\t}\n\n\tprivate disallowImportReassignment() {\n\t\treturn this.context.error(\n\t\t\t{\n\t\t\t\tcode: 'ILLEGAL_REASSIGNMENT',\n\t\t\t\tmessage: `Illegal reassignment to import '${this.name}'`\n\t\t\t},\n\t\t\tthis.start\n\t\t);\n\t}\n\n\tprivate getVariableRespectingTDZ(): ExpressionEntity {\n\t\tif (this.isPossibleTDZ()) {\n\t\t\treturn UNKNOWN_EXPRESSION;\n\t\t}\n\t\treturn this.variable!;\n\t}\n}\n\nfunction closestParentFunctionOrProgram(node: any): any {\n\twhile (node && !/^Program|Function/.test(node.type)) {\n\t\tnode = node.parent;\n\t}\n\t// one of: ArrowFunctionExpression, FunctionDeclaration, FunctionExpression or Program\n\treturn node;\n}\n","import { CallOptions, NO_ARGS } from '../../CallOptions';\nimport { DeoptimizableEntity } from '../../DeoptimizableEntity';\nimport { HasEffectsContext } from '../../ExecutionContext';\nimport { EVENT_ACCESSED, EVENT_ASSIGNED, EVENT_CALLED, NodeEvent } from '../../NodeEvents';\nimport {\n\tEMPTY_PATH,\n\tObjectPath,\n\tPathTracker,\n\tSHARED_RECURSION_TRACKER\n} from '../../utils/PathTracker';\nimport PrivateIdentifier from '../PrivateIdentifier';\nimport { ExpressionEntity, LiteralValueOrUnknown, UNKNOWN_EXPRESSION } from './Expression';\nimport { ExpressionNode, NodeBase } from './Node';\nimport { PatternNode } from './Pattern';\n\nexport default class MethodBase extends NodeBase implements DeoptimizableEntity {\n\tcomputed!: boolean;\n\tkey!: ExpressionNode | PrivateIdentifier;\n\tkind!: 'constructor' | 'method' | 'init' | 'get' | 'set';\n\tvalue!: ExpressionNode | (ExpressionNode & PatternNode);\n\n\tprivate accessedValue: ExpressionEntity | null = null;\n\tprivate accessorCallOptions: CallOptions = {\n\t\targs: NO_ARGS,\n\t\tthisParam: null,\n\t\twithNew: false\n\t};\n\n\t// As getter properties directly receive their values from fixed function\n\t// expressions, there is no known situation where a getter is deoptimized.\n\tdeoptimizeCache(): void {}\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tthis.getAccessedValue().deoptimizePath(path);\n\t}\n\n\tdeoptimizeThisOnEventAtPath(\n\t\tevent: NodeEvent,\n\t\tpath: ObjectPath,\n\t\tthisParameter: ExpressionEntity,\n\t\trecursionTracker: PathTracker\n\t): void {\n\t\tif (event === EVENT_ACCESSED && this.kind === 'get' && path.length === 0) {\n\t\t\treturn this.value.deoptimizeThisOnEventAtPath(\n\t\t\t\tEVENT_CALLED,\n\t\t\t\tEMPTY_PATH,\n\t\t\t\tthisParameter,\n\t\t\t\trecursionTracker\n\t\t\t);\n\t\t}\n\t\tif (event === EVENT_ASSIGNED && this.kind === 'set' && path.length === 0) {\n\t\t\treturn this.value.deoptimizeThisOnEventAtPath(\n\t\t\t\tEVENT_CALLED,\n\t\t\t\tEMPTY_PATH,\n\t\t\t\tthisParameter,\n\t\t\t\trecursionTracker\n\t\t\t);\n\t\t}\n\t\tthis.getAccessedValue().deoptimizeThisOnEventAtPath(\n\t\t\tevent,\n\t\t\tpath,\n\t\t\tthisParameter,\n\t\t\trecursionTracker\n\t\t);\n\t}\n\n\tgetLiteralValueAtPath(\n\t\tpath: ObjectPath,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): LiteralValueOrUnknown {\n\t\treturn this.getAccessedValue().getLiteralValueAtPath(path, recursionTracker, origin);\n\t}\n\n\tgetReturnExpressionWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): ExpressionEntity {\n\t\treturn this.getAccessedValue().getReturnExpressionWhenCalledAtPath(\n\t\t\tpath,\n\t\t\tcallOptions,\n\t\t\trecursionTracker,\n\t\t\torigin\n\t\t);\n\t}\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\treturn this.key.hasEffects(context);\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\tif (this.kind === 'get' && path.length === 0) {\n\t\t\treturn this.value.hasEffectsWhenCalledAtPath(EMPTY_PATH, this.accessorCallOptions, context);\n\t\t}\n\t\treturn this.getAccessedValue().hasEffectsWhenAccessedAtPath(path, context);\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\tif (this.kind === 'set') {\n\t\t\treturn this.value.hasEffectsWhenCalledAtPath(EMPTY_PATH, this.accessorCallOptions, context);\n\t\t}\n\t\treturn this.getAccessedValue().hasEffectsWhenAssignedAtPath(path, context);\n\t}\n\n\thasEffectsWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\tcontext: HasEffectsContext\n\t): boolean {\n\t\treturn this.getAccessedValue().hasEffectsWhenCalledAtPath(path, callOptions, context);\n\t}\n\n\tprotected getAccessedValue(): ExpressionEntity {\n\t\tif (this.accessedValue === null) {\n\t\t\tif (this.kind === 'get') {\n\t\t\t\tthis.accessedValue = UNKNOWN_EXPRESSION;\n\t\t\t\treturn (this.accessedValue = this.value.getReturnExpressionWhenCalledAtPath(\n\t\t\t\t\tEMPTY_PATH,\n\t\t\t\t\tthis.accessorCallOptions,\n\t\t\t\t\tSHARED_RECURSION_TRACKER,\n\t\t\t\t\tthis\n\t\t\t\t));\n\t\t\t} else {\n\t\t\t\treturn (this.accessedValue = this.value);\n\t\t\t}\n\t\t}\n\t\treturn this.accessedValue;\n\t}\n}\n","export const EVENT_ACCESSED = 0;\nexport const EVENT_ASSIGNED = 1;\nexport const EVENT_CALLED = 2;\nexport type NodeEvent = typeof EVENT_ACCESSED | typeof EVENT_ASSIGNED | typeof EVENT_CALLED;\n","import FunctionExpression from './FunctionExpression';\nimport * as NodeType from './NodeType';\nimport PrivateIdentifier from './PrivateIdentifier';\nimport MethodBase from './shared/MethodBase';\nimport { ExpressionNode } from './shared/Node';\n\nexport default class MethodDefinition extends MethodBase {\n\tkey!: ExpressionNode | PrivateIdentifier;\n\tkind!: 'constructor' | 'method' | 'get' | 'set';\n\tstatic!: boolean;\n\ttype!: NodeType.tMethodDefinition;\n\tvalue!: FunctionExpression;\n}\n","import { CallOptions } from '../../CallOptions';\nimport { DeoptimizableEntity } from '../../DeoptimizableEntity';\nimport { HasEffectsContext } from '../../ExecutionContext';\nimport { EVENT_ACCESSED, EVENT_CALLED, NodeEvent } from '../../NodeEvents';\nimport {\n\tObjectPath,\n\tObjectPathKey,\n\tPathTracker,\n\tUNKNOWN_INTEGER_PATH,\n\tUNKNOWN_PATH,\n\tUnknownInteger,\n\tUnknownKey\n} from '../../utils/PathTracker';\nimport {\n\tExpressionEntity,\n\tLiteralValueOrUnknown,\n\tUNKNOWN_EXPRESSION,\n\tUnknownValue\n} from './Expression';\n\nexport interface ObjectProperty {\n\tkey: ObjectPathKey;\n\tkind: 'init' | 'set' | 'get';\n\tproperty: ExpressionEntity;\n}\n\nexport interface PropertyMap {\n\t[key: string]: ExpressionEntity[];\n}\nconst INTEGER_REG_EXP = /^\\d+$/;\n\nexport class ObjectEntity extends ExpressionEntity {\n\tprivate readonly allProperties: ExpressionEntity[] = [];\n\tprivate readonly deoptimizedPaths: Record<string, boolean> = Object.create(null);\n\tprivate readonly expressionsToBeDeoptimizedByKey: Record<string, DeoptimizableEntity[]> =\n\t\tObject.create(null);\n\tprivate readonly gettersByKey: PropertyMap = Object.create(null);\n\tprivate hasUnknownDeoptimizedInteger = false;\n\tprivate hasUnknownDeoptimizedProperty = false;\n\tprivate readonly propertiesAndGettersByKey: PropertyMap = Object.create(null);\n\tprivate readonly propertiesAndSettersByKey: PropertyMap = Object.create(null);\n\tprivate readonly settersByKey: PropertyMap = Object.create(null);\n\tprivate readonly thisParametersToBeDeoptimized = new Set<ExpressionEntity>();\n\tprivate readonly unknownIntegerProps: ExpressionEntity[] = [];\n\tprivate readonly unmatchableGetters: ExpressionEntity[] = [];\n\tprivate readonly unmatchablePropertiesAndGetters: ExpressionEntity[] = [];\n\tprivate readonly unmatchableSetters: ExpressionEntity[] = [];\n\n\t// If a PropertyMap is used, this will be taken as propertiesAndGettersByKey\n\t// and we assume there are no setters or getters\n\tconstructor(\n\t\tproperties: ObjectProperty[] | PropertyMap,\n\t\tprivate prototypeExpression: ExpressionEntity | null,\n\t\tprivate immutable = false\n\t) {\n\t\tsuper();\n\t\tif (Array.isArray(properties)) {\n\t\t\tthis.buildPropertyMaps(properties);\n\t\t} else {\n\t\t\tthis.propertiesAndGettersByKey = this.propertiesAndSettersByKey = properties;\n\t\t\tfor (const propertiesForKey of Object.values(properties)) {\n\t\t\t\tthis.allProperties.push(...propertiesForKey);\n\t\t\t}\n\t\t}\n\t}\n\n\tdeoptimizeAllProperties(): void {\n\t\tif (this.hasUnknownDeoptimizedProperty) {\n\t\t\treturn;\n\t\t}\n\t\tthis.hasUnknownDeoptimizedProperty = true;\n\t\tfor (const properties of Object.values(this.propertiesAndGettersByKey).concat(\n\t\t\tObject.values(this.settersByKey)\n\t\t)) {\n\t\t\tfor (const property of properties) {\n\t\t\t\tproperty.deoptimizePath(UNKNOWN_PATH);\n\t\t\t}\n\t\t}\n\t\t// While the prototype itself cannot be mutated, each property can\n\t\tthis.prototypeExpression?.deoptimizePath([UnknownKey, UnknownKey]);\n\t\tthis.deoptimizeCachedEntities();\n\t}\n\n\tdeoptimizeIntegerProperties(): void {\n\t\tif (this.hasUnknownDeoptimizedProperty || this.hasUnknownDeoptimizedInteger) {\n\t\t\treturn;\n\t\t}\n\t\tthis.hasUnknownDeoptimizedInteger = true;\n\t\tfor (const [key, propertiesAndGetters] of Object.entries(this.propertiesAndGettersByKey)) {\n\t\t\tif (INTEGER_REG_EXP.test(key)) {\n\t\t\t\tfor (const property of propertiesAndGetters) {\n\t\t\t\t\tproperty.deoptimizePath(UNKNOWN_PATH);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.deoptimizeCachedIntegerEntities();\n\t}\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tif (this.hasUnknownDeoptimizedProperty || this.immutable) return;\n\t\tconst key = path[0];\n\t\tif (path.length === 1) {\n\t\t\tif (typeof key !== 'string') {\n\t\t\t\tif (key === UnknownInteger) {\n\t\t\t\t\treturn this.deoptimizeIntegerProperties();\n\t\t\t\t}\n\t\t\t\treturn this.deoptimizeAllProperties();\n\t\t\t}\n\t\t\tif (!this.deoptimizedPaths[key]) {\n\t\t\t\tthis.deoptimizedPaths[key] = true;\n\n\t\t\t\t// we only deoptimizeCache exact matches as in all other cases,\n\t\t\t\t// we do not return a literal value or return expression\n\t\t\t\tconst expressionsToBeDeoptimized = this.expressionsToBeDeoptimizedByKey[key];\n\t\t\t\tif (expressionsToBeDeoptimized) {\n\t\t\t\t\tfor (const expression of expressionsToBeDeoptimized) {\n\t\t\t\t\t\texpression.deoptimizeCache();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst subPath = path.length === 1 ? UNKNOWN_PATH : path.slice(1);\n\t\tfor (const property of typeof key === 'string'\n\t\t\t? (this.propertiesAndGettersByKey[key] || this.unmatchablePropertiesAndGetters).concat(\n\t\t\t\t\tthis.settersByKey[key] || this.unmatchableSetters\n\t\t\t )\n\t\t\t: this.allProperties) {\n\t\t\tproperty.deoptimizePath(subPath);\n\t\t}\n\t\tthis.prototypeExpression?.deoptimizePath(path.length === 1 ? [UnknownKey, UnknownKey] : path);\n\t}\n\n\tdeoptimizeThisOnEventAtPath(\n\t\tevent: NodeEvent,\n\t\tpath: ObjectPath,\n\t\tthisParameter: ExpressionEntity,\n\t\trecursionTracker: PathTracker\n\t): void {\n\t\tconst [key, ...subPath] = path;\n\n\t\tif (\n\t\t\tthis.hasUnknownDeoptimizedProperty ||\n\t\t\t// single paths that are deoptimized will not become getters or setters\n\t\t\t((event === EVENT_CALLED || path.length > 1) &&\n\t\t\t\ttypeof key === 'string' &&\n\t\t\t\tthis.deoptimizedPaths[key])\n\t\t) {\n\t\t\tthisParameter.deoptimizePath(UNKNOWN_PATH);\n\t\t\treturn;\n\t\t}\n\n\t\tconst [propertiesForExactMatchByKey, relevantPropertiesByKey, relevantUnmatchableProperties] =\n\t\t\tevent === EVENT_CALLED || path.length > 1\n\t\t\t\t? [\n\t\t\t\t\t\tthis.propertiesAndGettersByKey,\n\t\t\t\t\t\tthis.propertiesAndGettersByKey,\n\t\t\t\t\t\tthis.unmatchablePropertiesAndGetters\n\t\t\t\t ]\n\t\t\t\t: event === EVENT_ACCESSED\n\t\t\t\t? [this.propertiesAndGettersByKey, this.gettersByKey, this.unmatchableGetters]\n\t\t\t\t: [this.propertiesAndSettersByKey, this.settersByKey, this.unmatchableSetters];\n\n\t\tif (typeof key === 'string') {\n\t\t\tif (propertiesForExactMatchByKey[key]) {\n\t\t\t\tconst properties = relevantPropertiesByKey[key];\n\t\t\t\tif (properties) {\n\t\t\t\t\tfor (const property of properties) {\n\t\t\t\t\t\tproperty.deoptimizeThisOnEventAtPath(event, subPath, thisParameter, recursionTracker);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!this.immutable) {\n\t\t\t\t\tthis.thisParametersToBeDeoptimized.add(thisParameter);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfor (const property of relevantUnmatchableProperties) {\n\t\t\t\tproperty.deoptimizeThisOnEventAtPath(event, subPath, thisParameter, recursionTracker);\n\t\t\t}\n\t\t\tif (INTEGER_REG_EXP.test(key)) {\n\t\t\t\tfor (const property of this.unknownIntegerProps) {\n\t\t\t\t\tproperty.deoptimizeThisOnEventAtPath(event, subPath, thisParameter, recursionTracker);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (const properties of Object.values(relevantPropertiesByKey).concat([\n\t\t\t\trelevantUnmatchableProperties\n\t\t\t])) {\n\t\t\t\tfor (const property of properties) {\n\t\t\t\t\tproperty.deoptimizeThisOnEventAtPath(event, subPath, thisParameter, recursionTracker);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const property of this.unknownIntegerProps) {\n\t\t\t\tproperty.deoptimizeThisOnEventAtPath(event, subPath, thisParameter, recursionTracker);\n\t\t\t}\n\t\t}\n\t\tif (!this.immutable) {\n\t\t\tthis.thisParametersToBeDeoptimized.add(thisParameter);\n\t\t}\n\t\tthis.prototypeExpression?.deoptimizeThisOnEventAtPath(\n\t\t\tevent,\n\t\t\tpath,\n\t\t\tthisParameter,\n\t\t\trecursionTracker\n\t\t);\n\t}\n\n\tgetLiteralValueAtPath(\n\t\tpath: ObjectPath,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): LiteralValueOrUnknown {\n\t\tif (path.length === 0) {\n\t\t\treturn UnknownValue;\n\t\t}\n\t\tconst key = path[0];\n\t\tconst expressionAtPath = this.getMemberExpressionAndTrackDeopt(key, origin);\n\t\tif (expressionAtPath) {\n\t\t\treturn expressionAtPath.getLiteralValueAtPath(path.slice(1), recursionTracker, origin);\n\t\t}\n\t\tif (this.prototypeExpression) {\n\t\t\treturn this.prototypeExpression.getLiteralValueAtPath(path, recursionTracker, origin);\n\t\t}\n\t\tif (path.length === 1) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn UnknownValue;\n\t}\n\n\tgetReturnExpressionWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): ExpressionEntity {\n\t\tif (path.length === 0) {\n\t\t\treturn UNKNOWN_EXPRESSION;\n\t\t}\n\t\tconst key = path[0];\n\t\tconst expressionAtPath = this.getMemberExpressionAndTrackDeopt(key, origin);\n\t\tif (expressionAtPath) {\n\t\t\treturn expressionAtPath.getReturnExpressionWhenCalledAtPath(\n\t\t\t\tpath.slice(1),\n\t\t\t\tcallOptions,\n\t\t\t\trecursionTracker,\n\t\t\t\torigin\n\t\t\t);\n\t\t}\n\t\tif (this.prototypeExpression) {\n\t\t\treturn this.prototypeExpression.getReturnExpressionWhenCalledAtPath(\n\t\t\t\tpath,\n\t\t\t\tcallOptions,\n\t\t\t\trecursionTracker,\n\t\t\t\torigin\n\t\t\t);\n\t\t}\n\t\treturn UNKNOWN_EXPRESSION;\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\tconst [key, ...subPath] = path;\n\t\tif (path.length > 1) {\n\t\t\tif (typeof key !== 'string') {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tconst expressionAtPath = this.getMemberExpression(key);\n\t\t\tif (expressionAtPath) {\n\t\t\t\treturn expressionAtPath.hasEffectsWhenAccessedAtPath(subPath, context);\n\t\t\t}\n\t\t\tif (this.prototypeExpression) {\n\t\t\t\treturn this.prototypeExpression.hasEffectsWhenAccessedAtPath(path, context);\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (this.hasUnknownDeoptimizedProperty) return true;\n\t\tif (typeof key === 'string') {\n\t\t\tif (this.propertiesAndGettersByKey[key]) {\n\t\t\t\tconst getters = this.gettersByKey[key];\n\t\t\t\tif (getters) {\n\t\t\t\t\tfor (const getter of getters) {\n\t\t\t\t\t\tif (getter.hasEffectsWhenAccessedAtPath(subPath, context)) return true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (const getter of this.unmatchableGetters) {\n\t\t\t\tif (getter.hasEffectsWhenAccessedAtPath(subPath, context)) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (const getters of Object.values(this.gettersByKey).concat([this.unmatchableGetters])) {\n\t\t\t\tfor (const getter of getters) {\n\t\t\t\t\tif (getter.hasEffectsWhenAccessedAtPath(subPath, context)) return true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.prototypeExpression) {\n\t\t\treturn this.prototypeExpression.hasEffectsWhenAccessedAtPath(path, context);\n\t\t}\n\t\treturn false;\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\tconst [key, ...subPath] = path;\n\t\tif (path.length > 1) {\n\t\t\tif (typeof key !== 'string') {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tconst expressionAtPath = this.getMemberExpression(key);\n\t\t\tif (expressionAtPath) {\n\t\t\t\treturn expressionAtPath.hasEffectsWhenAssignedAtPath(subPath, context);\n\t\t\t}\n\t\t\tif (this.prototypeExpression) {\n\t\t\t\treturn this.prototypeExpression.hasEffectsWhenAssignedAtPath(path, context);\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (this.hasUnknownDeoptimizedProperty) return true;\n\t\t// We do not need to test for unknown properties as in that case, hasUnknownDeoptimizedProperty is true\n\t\tif (typeof key === 'string') {\n\t\t\tif (this.propertiesAndSettersByKey[key]) {\n\t\t\t\tconst setters = this.settersByKey[key];\n\t\t\t\tif (setters) {\n\t\t\t\t\tfor (const setter of setters) {\n\t\t\t\t\t\tif (setter.hasEffectsWhenAssignedAtPath(subPath, context)) return true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (const property of this.unmatchableSetters) {\n\t\t\t\tif (property.hasEffectsWhenAssignedAtPath(subPath, context)) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.prototypeExpression) {\n\t\t\treturn this.prototypeExpression.hasEffectsWhenAssignedAtPath(path, context);\n\t\t}\n\t\treturn false;\n\t}\n\n\thasEffectsWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\tcontext: HasEffectsContext\n\t): boolean {\n\t\tconst key = path[0];\n\t\tconst expressionAtPath = this.getMemberExpression(key);\n\t\tif (expressionAtPath) {\n\t\t\treturn expressionAtPath.hasEffectsWhenCalledAtPath(path.slice(1), callOptions, context);\n\t\t}\n\t\tif (this.prototypeExpression) {\n\t\t\treturn this.prototypeExpression.hasEffectsWhenCalledAtPath(path, callOptions, context);\n\t\t}\n\t\treturn true;\n\t}\n\n\tprivate buildPropertyMaps(properties: ObjectProperty[]): void {\n\t\tconst {\n\t\t\tallProperties,\n\t\t\tpropertiesAndGettersByKey,\n\t\t\tpropertiesAndSettersByKey,\n\t\t\tsettersByKey,\n\t\t\tgettersByKey,\n\t\t\tunknownIntegerProps,\n\t\t\tunmatchablePropertiesAndGetters,\n\t\t\tunmatchableGetters,\n\t\t\tunmatchableSetters\n\t\t} = this;\n\t\tconst unmatchablePropertiesAndSetters: ExpressionEntity[] = [];\n\t\tfor (let index = properties.length - 1; index >= 0; index--) {\n\t\t\tconst { key, kind, property } = properties[index];\n\t\t\tallProperties.push(property);\n\t\t\tif (typeof key !== 'string') {\n\t\t\t\tif (key === UnknownInteger) {\n\t\t\t\t\tunknownIntegerProps.push(property);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (kind === 'set') unmatchableSetters.push(property);\n\t\t\t\tif (kind === 'get') unmatchableGetters.push(property);\n\t\t\t\tif (kind !== 'get') unmatchablePropertiesAndSetters.push(property);\n\t\t\t\tif (kind !== 'set') unmatchablePropertiesAndGetters.push(property);\n\t\t\t} else {\n\t\t\t\tif (kind === 'set') {\n\t\t\t\t\tif (!propertiesAndSettersByKey[key]) {\n\t\t\t\t\t\tpropertiesAndSettersByKey[key] = [property, ...unmatchablePropertiesAndSetters];\n\t\t\t\t\t\tsettersByKey[key] = [property, ...unmatchableSetters];\n\t\t\t\t\t}\n\t\t\t\t} else if (kind === 'get') {\n\t\t\t\t\tif (!propertiesAndGettersByKey[key]) {\n\t\t\t\t\t\tpropertiesAndGettersByKey[key] = [property, ...unmatchablePropertiesAndGetters];\n\t\t\t\t\t\tgettersByKey[key] = [property, ...unmatchableGetters];\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!propertiesAndSettersByKey[key]) {\n\t\t\t\t\t\tpropertiesAndSettersByKey[key] = [property, ...unmatchablePropertiesAndSetters];\n\t\t\t\t\t}\n\t\t\t\t\tif (!propertiesAndGettersByKey[key]) {\n\t\t\t\t\t\tpropertiesAndGettersByKey[key] = [property, ...unmatchablePropertiesAndGetters];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate deoptimizeCachedEntities() {\n\t\tfor (const expressionsToBeDeoptimized of Object.values(this.expressionsToBeDeoptimizedByKey)) {\n\t\t\tfor (const expression of expressionsToBeDeoptimized) {\n\t\t\t\texpression.deoptimizeCache();\n\t\t\t}\n\t\t}\n\t\tfor (const expression of this.thisParametersToBeDeoptimized) {\n\t\t\texpression.deoptimizePath(UNKNOWN_PATH);\n\t\t}\n\t}\n\n\tprivate deoptimizeCachedIntegerEntities() {\n\t\tfor (const [key, expressionsToBeDeoptimized] of Object.entries(\n\t\t\tthis.expressionsToBeDeoptimizedByKey\n\t\t)) {\n\t\t\tif (INTEGER_REG_EXP.test(key)) {\n\t\t\t\tfor (const expression of expressionsToBeDeoptimized) {\n\t\t\t\t\texpression.deoptimizeCache();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (const expression of this.thisParametersToBeDeoptimized) {\n\t\t\texpression.deoptimizePath(UNKNOWN_INTEGER_PATH);\n\t\t}\n\t}\n\n\tprivate getMemberExpression(key: ObjectPathKey): ExpressionEntity | null {\n\t\tif (\n\t\t\tthis.hasUnknownDeoptimizedProperty ||\n\t\t\ttypeof key !== 'string' ||\n\t\t\t(this.hasUnknownDeoptimizedInteger && INTEGER_REG_EXP.test(key)) ||\n\t\t\tthis.deoptimizedPaths[key]\n\t\t) {\n\t\t\treturn UNKNOWN_EXPRESSION;\n\t\t}\n\t\tconst properties = this.propertiesAndGettersByKey[key];\n\t\tif (properties?.length === 1) {\n\t\t\treturn properties[0];\n\t\t}\n\t\tif (\n\t\t\tproperties ||\n\t\t\tthis.unmatchablePropertiesAndGetters.length > 0 ||\n\t\t\t(this.unknownIntegerProps.length && INTEGER_REG_EXP.test(key))\n\t\t) {\n\t\t\treturn UNKNOWN_EXPRESSION;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprivate getMemberExpressionAndTrackDeopt(\n\t\tkey: ObjectPathKey,\n\t\torigin: DeoptimizableEntity\n\t): ExpressionEntity | null {\n\t\tif (typeof key !== 'string') {\n\t\t\treturn UNKNOWN_EXPRESSION;\n\t\t}\n\t\tconst expression = this.getMemberExpression(key);\n\t\tif (!(expression === UNKNOWN_EXPRESSION || this.immutable)) {\n\t\t\tconst expressionsToBeDeoptimized = (this.expressionsToBeDeoptimizedByKey[key] =\n\t\t\t\tthis.expressionsToBeDeoptimizedByKey[key] || []);\n\t\t\texpressionsToBeDeoptimized.push(origin);\n\t\t}\n\t\treturn expression;\n\t}\n}\n","import { CallOptions } from '../../CallOptions';\nimport { DeoptimizableEntity } from '../../DeoptimizableEntity';\nimport { HasEffectsContext } from '../../ExecutionContext';\nimport { NodeEvent } from '../../NodeEvents';\nimport { ObjectPath, PathTracker } from '../../utils/PathTracker';\nimport { ExpressionEntity, LiteralValueOrUnknown } from './Expression';\n\nexport class ObjectMember extends ExpressionEntity {\n\tconstructor(private readonly object: ExpressionEntity, private readonly key: string) {\n\t\tsuper();\n\t}\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tthis.object.deoptimizePath([this.key, ...path]);\n\t}\n\n\tdeoptimizeThisOnEventAtPath(\n\t\tevent: NodeEvent,\n\t\tpath: ObjectPath,\n\t\tthisParameter: ExpressionEntity,\n\t\trecursionTracker: PathTracker\n\t): void {\n\t\tthis.object.deoptimizeThisOnEventAtPath(\n\t\t\tevent,\n\t\t\t[this.key, ...path],\n\t\t\tthisParameter,\n\t\t\trecursionTracker\n\t\t);\n\t}\n\n\tgetLiteralValueAtPath(\n\t\tpath: ObjectPath,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): LiteralValueOrUnknown {\n\t\treturn this.object.getLiteralValueAtPath([this.key, ...path], recursionTracker, origin);\n\t}\n\n\tgetReturnExpressionWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): ExpressionEntity {\n\t\treturn this.object.getReturnExpressionWhenCalledAtPath(\n\t\t\t[this.key, ...path],\n\t\t\tcallOptions,\n\t\t\trecursionTracker,\n\t\t\torigin\n\t\t);\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\tif (path.length === 0) return false;\n\t\treturn this.object.hasEffectsWhenAccessedAtPath([this.key, ...path], context);\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\treturn this.object.hasEffectsWhenAssignedAtPath([this.key, ...path], context);\n\t}\n\n\thasEffectsWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\tcontext: HasEffectsContext\n\t): boolean {\n\t\treturn this.object.hasEffectsWhenCalledAtPath([this.key, ...path], callOptions, context);\n\t}\n}\n","import { CallOptions, NO_ARGS } from '../../CallOptions';\nimport { HasEffectsContext, InclusionContext } from '../../ExecutionContext';\nimport { EVENT_CALLED, NodeEvent } from '../../NodeEvents';\nimport { EMPTY_PATH, ObjectPath, UNKNOWN_INTEGER_PATH } from '../../utils/PathTracker';\nimport {\n\tUNKNOWN_LITERAL_BOOLEAN,\n\tUNKNOWN_LITERAL_NUMBER,\n\tUNKNOWN_LITERAL_STRING\n} from '../../values';\nimport SpreadElement from '../SpreadElement';\nimport { ExpressionEntity, UNKNOWN_EXPRESSION } from './Expression';\nimport { ExpressionNode } from './Node';\n\ntype MethodDescription = {\n\tcallsArgs: number[] | null;\n\tmutatesSelfAsArray: boolean | 'deopt-only';\n} & (\n\t| {\n\t\t\treturns: 'self' | (() => ExpressionEntity);\n\t\t\treturnsPrimitive: null;\n\t }\n\t| {\n\t\t\treturns: null;\n\t\t\treturnsPrimitive: ExpressionEntity;\n\t }\n);\n\nexport class Method extends ExpressionEntity {\n\tconstructor(private readonly description: MethodDescription) {\n\t\tsuper();\n\t}\n\n\tdeoptimizeThisOnEventAtPath(\n\t\tevent: NodeEvent,\n\t\tpath: ObjectPath,\n\t\tthisParameter: ExpressionEntity\n\t): void {\n\t\tif (event === EVENT_CALLED && path.length === 0 && this.description.mutatesSelfAsArray) {\n\t\t\tthisParameter.deoptimizePath(UNKNOWN_INTEGER_PATH);\n\t\t}\n\t}\n\n\tgetReturnExpressionWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions\n\t): ExpressionEntity {\n\t\tif (path.length > 0) {\n\t\t\treturn UNKNOWN_EXPRESSION;\n\t\t}\n\t\treturn (\n\t\t\tthis.description.returnsPrimitive ||\n\t\t\t(this.description.returns === 'self'\n\t\t\t\t? callOptions.thisParam || UNKNOWN_EXPRESSION\n\t\t\t\t: this.description.returns())\n\t\t);\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath): boolean {\n\t\treturn path.length > 1;\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath): boolean {\n\t\treturn path.length > 0;\n\t}\n\n\thasEffectsWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\tcontext: HasEffectsContext\n\t): boolean {\n\t\tif (\n\t\t\tpath.length > 0 ||\n\t\t\t(this.description.mutatesSelfAsArray === true &&\n\t\t\t\tcallOptions.thisParam?.hasEffectsWhenAssignedAtPath(UNKNOWN_INTEGER_PATH, context))\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\t\tif (!this.description.callsArgs) {\n\t\t\treturn false;\n\t\t}\n\t\tfor (const argIndex of this.description.callsArgs) {\n\t\t\tif (\n\t\t\t\tcallOptions.args[argIndex]?.hasEffectsWhenCalledAtPath(\n\t\t\t\t\tEMPTY_PATH,\n\t\t\t\t\t{\n\t\t\t\t\t\targs: NO_ARGS,\n\t\t\t\t\t\tthisParam: null,\n\t\t\t\t\t\twithNew: false\n\t\t\t\t\t},\n\t\t\t\t\tcontext\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tincludeCallArguments(context: InclusionContext, args: (ExpressionNode | SpreadElement)[]): void {\n\t\tfor (const arg of args) {\n\t\t\targ.include(context, false);\n\t\t}\n\t}\n}\n\nexport const METHOD_RETURNS_BOOLEAN = [\n\tnew Method({\n\t\tcallsArgs: null,\n\t\tmutatesSelfAsArray: false,\n\t\treturns: null,\n\t\treturnsPrimitive: UNKNOWN_LITERAL_BOOLEAN\n\t})\n];\n\nexport const METHOD_RETURNS_STRING = [\n\tnew Method({\n\t\tcallsArgs: null,\n\t\tmutatesSelfAsArray: false,\n\t\treturns: null,\n\t\treturnsPrimitive: UNKNOWN_LITERAL_STRING\n\t})\n];\n\nexport const METHOD_RETURNS_NUMBER = [\n\tnew Method({\n\t\tcallsArgs: null,\n\t\tmutatesSelfAsArray: false,\n\t\treturns: null,\n\t\treturnsPrimitive: UNKNOWN_LITERAL_NUMBER\n\t})\n];\n\nexport const METHOD_RETURNS_UNKNOWN = [\n\tnew Method({\n\t\tcallsArgs: null,\n\t\tmutatesSelfAsArray: false,\n\t\treturns: null,\n\t\treturnsPrimitive: UNKNOWN_EXPRESSION\n\t})\n];\n","import {\n\tMETHOD_RETURNS_BOOLEAN,\n\tMETHOD_RETURNS_STRING,\n\tMETHOD_RETURNS_UNKNOWN\n} from './MethodTypes';\nimport { ObjectEntity, PropertyMap } from './ObjectEntity';\n\nexport const OBJECT_PROTOTYPE = new ObjectEntity(\n\t{\n\t\t__proto__: null,\n\t\thasOwnProperty: METHOD_RETURNS_BOOLEAN,\n\t\tisPrototypeOf: METHOD_RETURNS_BOOLEAN,\n\t\tpropertyIsEnumerable: METHOD_RETURNS_BOOLEAN,\n\t\ttoLocaleString: METHOD_RETURNS_STRING,\n\t\ttoString: METHOD_RETURNS_STRING,\n\t\tvalueOf: METHOD_RETURNS_UNKNOWN\n\t} as unknown as PropertyMap,\n\tnull,\n\ttrue\n);\n","import { CallOptions } from '../../CallOptions';\nimport { DeoptimizableEntity } from '../../DeoptimizableEntity';\nimport { HasEffectsContext, InclusionContext } from '../../ExecutionContext';\nimport { NodeEvent } from '../../NodeEvents';\nimport ChildScope from '../../scopes/ChildScope';\nimport Scope from '../../scopes/Scope';\nimport {\n\tEMPTY_PATH,\n\tObjectPath,\n\tPathTracker,\n\tSHARED_RECURSION_TRACKER,\n\tUnknownKey\n} from '../../utils/PathTracker';\nimport ClassBody from '../ClassBody';\nimport Identifier from '../Identifier';\nimport Literal from '../Literal';\nimport MethodDefinition from '../MethodDefinition';\nimport { ExpressionEntity, LiteralValueOrUnknown, UnknownValue } from './Expression';\nimport { ExpressionNode, IncludeChildren, NodeBase } from './Node';\nimport { ObjectEntity, ObjectProperty } from './ObjectEntity';\nimport { ObjectMember } from './ObjectMember';\nimport { OBJECT_PROTOTYPE } from './ObjectPrototype';\n\nexport default class ClassNode extends NodeBase implements DeoptimizableEntity {\n\tbody!: ClassBody;\n\tid!: Identifier | null;\n\tsuperClass!: ExpressionNode | null;\n\tprivate classConstructor!: MethodDefinition | null;\n\tprivate objectEntity: ObjectEntity | null = null;\n\n\tcreateScope(parentScope: Scope): void {\n\t\tthis.scope = new ChildScope(parentScope);\n\t}\n\n\tdeoptimizeCache(): void {\n\t\tthis.getObjectEntity().deoptimizeAllProperties();\n\t}\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tthis.getObjectEntity().deoptimizePath(path);\n\t}\n\n\tdeoptimizeThisOnEventAtPath(\n\t\tevent: NodeEvent,\n\t\tpath: ObjectPath,\n\t\tthisParameter: ExpressionEntity,\n\t\trecursionTracker: PathTracker\n\t): void {\n\t\tthis.getObjectEntity().deoptimizeThisOnEventAtPath(\n\t\t\tevent,\n\t\t\tpath,\n\t\t\tthisParameter,\n\t\t\trecursionTracker\n\t\t);\n\t}\n\n\tgetLiteralValueAtPath(\n\t\tpath: ObjectPath,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): LiteralValueOrUnknown {\n\t\treturn this.getObjectEntity().getLiteralValueAtPath(path, recursionTracker, origin);\n\t}\n\n\tgetReturnExpressionWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): ExpressionEntity {\n\t\treturn this.getObjectEntity().getReturnExpressionWhenCalledAtPath(\n\t\t\tpath,\n\t\t\tcallOptions,\n\t\t\trecursionTracker,\n\t\t\torigin\n\t\t);\n\t}\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tconst initEffect = this.superClass?.hasEffects(context) || this.body.hasEffects(context);\n\t\tthis.id?.markDeclarationReached();\n\t\treturn initEffect || super.hasEffects(context);\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\treturn this.getObjectEntity().hasEffectsWhenAccessedAtPath(path, context);\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\treturn this.getObjectEntity().hasEffectsWhenAssignedAtPath(path, context);\n\t}\n\n\thasEffectsWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\tcontext: HasEffectsContext\n\t): boolean {\n\t\tif (path.length === 0) {\n\t\t\treturn (\n\t\t\t\t!callOptions.withNew ||\n\t\t\t\t(this.classConstructor !== null\n\t\t\t\t\t? this.classConstructor.hasEffectsWhenCalledAtPath(EMPTY_PATH, callOptions, context)\n\t\t\t\t\t: this.superClass !== null &&\n\t\t\t\t\t this.superClass.hasEffectsWhenCalledAtPath(path, callOptions, context))\n\t\t\t);\n\t\t} else {\n\t\t\treturn this.getObjectEntity().hasEffectsWhenCalledAtPath(path, callOptions, context);\n\t\t}\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tthis.included = true;\n\t\tthis.superClass?.include(context, includeChildrenRecursively);\n\t\tthis.body.include(context, includeChildrenRecursively);\n\t\tif (this.id) {\n\t\t\tthis.id.markDeclarationReached();\n\t\t\tthis.id.include();\n\t\t}\n\t}\n\n\tinitialise(): void {\n\t\tthis.id?.declare('class', this);\n\t\tfor (const method of this.body.body) {\n\t\t\tif (method instanceof MethodDefinition && method.kind === 'constructor') {\n\t\t\t\tthis.classConstructor = method;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tthis.classConstructor = null;\n\t}\n\n\tprivate getObjectEntity(): ObjectEntity {\n\t\tif (this.objectEntity !== null) {\n\t\t\treturn this.objectEntity;\n\t\t}\n\t\tconst staticProperties: ObjectProperty[] = [];\n\t\tconst dynamicMethods: ObjectProperty[] = [];\n\t\tfor (const definition of this.body.body) {\n\t\t\tconst properties = definition.static ? staticProperties : dynamicMethods;\n\t\t\tconst definitionKind = (definition as MethodDefinition | { kind: undefined }).kind;\n\t\t\t// Note that class fields do not end up on the prototype\n\t\t\tif (properties === dynamicMethods && !definitionKind) continue;\n\t\t\tconst kind = definitionKind === 'set' || definitionKind === 'get' ? definitionKind : 'init';\n\t\t\tlet key: string;\n\t\t\tif (definition.computed) {\n\t\t\t\tconst keyValue = definition.key.getLiteralValueAtPath(\n\t\t\t\t\tEMPTY_PATH,\n\t\t\t\t\tSHARED_RECURSION_TRACKER,\n\t\t\t\t\tthis\n\t\t\t\t);\n\t\t\t\tif (keyValue === UnknownValue) {\n\t\t\t\t\tproperties.push({ key: UnknownKey, kind, property: definition });\n\t\t\t\t\tcontinue;\n\t\t\t\t} else {\n\t\t\t\t\tkey = String(keyValue);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tkey =\n\t\t\t\t\tdefinition.key instanceof Identifier\n\t\t\t\t\t\t? definition.key.name\n\t\t\t\t\t\t: String((definition.key as Literal).value);\n\t\t\t}\n\t\t\tproperties.push({ key, kind, property: definition });\n\t\t}\n\t\tstaticProperties.unshift({\n\t\t\tkey: 'prototype',\n\t\t\tkind: 'init',\n\t\t\tproperty: new ObjectEntity(\n\t\t\t\tdynamicMethods,\n\t\t\t\tthis.superClass ? new ObjectMember(this.superClass, 'prototype') : OBJECT_PROTOTYPE\n\t\t\t)\n\t\t});\n\t\treturn (this.objectEntity = new ObjectEntity(\n\t\t\tstaticProperties,\n\t\t\tthis.superClass || OBJECT_PROTOTYPE\n\t\t));\n\t}\n}\n","import MagicString from 'magic-string';\nimport { RenderOptions } from '../../utils/renderHelpers';\nimport { getSystemExportStatement } from '../../utils/systemJsRendering';\nimport ChildScope from '../scopes/ChildScope';\nimport { IdentifierWithVariable } from './Identifier';\nimport * as NodeType from './NodeType';\nimport ClassNode from './shared/ClassNode';\nimport { GenericEsTreeNode } from './shared/Node';\n\nexport default class ClassDeclaration extends ClassNode {\n\tid!: IdentifierWithVariable | null;\n\ttype!: NodeType.tClassDeclaration;\n\n\tinitialise(): void {\n\t\tsuper.initialise();\n\t\tif (this.id !== null) {\n\t\t\tthis.id.variable.isId = true;\n\t\t}\n\t}\n\n\tparseNode(esTreeNode: GenericEsTreeNode): void {\n\t\tif (esTreeNode.id !== null) {\n\t\t\tthis.id = new this.context.nodeConstructors.Identifier(\n\t\t\t\tesTreeNode.id,\n\t\t\t\tthis,\n\t\t\t\tthis.scope.parent as ChildScope\n\t\t\t) as IdentifierWithVariable;\n\t\t}\n\t\tsuper.parseNode(esTreeNode);\n\t}\n\n\trender(code: MagicString, options: RenderOptions): void {\n\t\tif (\n\t\t\toptions.format === 'system' &&\n\t\t\tthis.id &&\n\t\t\toptions.exportNamesByVariable.has(this.id.variable)\n\t\t) {\n\t\t\tcode.appendLeft(\n\t\t\t\tthis.end,\n\t\t\t\t`${options.compact ? '' : ' '}${getSystemExportStatement([this.id.variable], options)};`\n\t\t\t);\n\t\t}\n\t\tsuper.render(code, options);\n\t}\n}\n","import { AstContext } from '../../Module';\nimport { UNKNOWN_EXPRESSION } from '../nodes/shared/Expression';\nimport { ObjectPath } from '../utils/PathTracker';\nimport LocalVariable from './LocalVariable';\n\nexport default class ArgumentsVariable extends LocalVariable {\n\tconstructor(context: AstContext) {\n\t\tsuper('arguments', null, UNKNOWN_EXPRESSION, context);\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath): boolean {\n\t\treturn path.length > 1;\n\t}\n\n\thasEffectsWhenAssignedAtPath(): boolean {\n\t\treturn true;\n\t}\n\n\thasEffectsWhenCalledAtPath(): boolean {\n\t\treturn true;\n\t}\n}\n","import { AstContext } from '../../Module';\nimport { HasEffectsContext } from '../ExecutionContext';\nimport { NodeEvent } from '../NodeEvents';\nimport { ExpressionEntity, UNKNOWN_EXPRESSION } from '../nodes/shared/Expression';\nimport {\n\tDiscriminatedPathTracker,\n\tObjectPath,\n\tSHARED_RECURSION_TRACKER\n} from '../utils/PathTracker';\nimport LocalVariable from './LocalVariable';\n\ninterface ThisDeoptimizationEvent {\n\tevent: NodeEvent;\n\tpath: ObjectPath;\n\tthisParameter: ExpressionEntity;\n}\n\nexport default class ThisVariable extends LocalVariable {\n\tprivate deoptimizedPaths: ObjectPath[] = [];\n\tprivate entitiesToBeDeoptimized = new Set<ExpressionEntity>();\n\tprivate thisDeoptimizationList: ThisDeoptimizationEvent[] = [];\n\tprivate thisDeoptimizations = new DiscriminatedPathTracker();\n\n\tconstructor(context: AstContext) {\n\t\tsuper('this', null, null, context);\n\t}\n\n\taddEntityToBeDeoptimized(entity: ExpressionEntity): void {\n\t\tfor (const path of this.deoptimizedPaths) {\n\t\t\tentity.deoptimizePath(path);\n\t\t}\n\t\tfor (const thisDeoptimization of this.thisDeoptimizationList) {\n\t\t\tthis.applyThisDeoptimizationEvent(entity, thisDeoptimization);\n\t\t}\n\t\tthis.entitiesToBeDeoptimized.add(entity);\n\t}\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tif (\n\t\t\tpath.length === 0 ||\n\t\t\tthis.deoptimizationTracker.trackEntityAtPathAndGetIfTracked(path, this)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tthis.deoptimizedPaths.push(path);\n\t\tfor (const entity of this.entitiesToBeDeoptimized) {\n\t\t\tentity.deoptimizePath(path);\n\t\t}\n\t}\n\n\tdeoptimizeThisOnEventAtPath(\n\t\tevent: NodeEvent,\n\t\tpath: ObjectPath,\n\t\tthisParameter: ExpressionEntity\n\t): void {\n\t\tconst thisDeoptimization: ThisDeoptimizationEvent = {\n\t\t\tevent,\n\t\t\tpath,\n\t\t\tthisParameter\n\t\t};\n\t\tif (!this.thisDeoptimizations.trackEntityAtPathAndGetIfTracked(path, event, thisParameter)) {\n\t\t\tfor (const entity of this.entitiesToBeDeoptimized) {\n\t\t\t\tthis.applyThisDeoptimizationEvent(entity, thisDeoptimization);\n\t\t\t}\n\t\t\tthis.thisDeoptimizationList.push(thisDeoptimization);\n\t\t}\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\treturn (\n\t\t\tthis.getInit(context).hasEffectsWhenAccessedAtPath(path, context) ||\n\t\t\tsuper.hasEffectsWhenAccessedAtPath(path, context)\n\t\t);\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\treturn (\n\t\t\tthis.getInit(context).hasEffectsWhenAssignedAtPath(path, context) ||\n\t\t\tsuper.hasEffectsWhenAssignedAtPath(path, context)\n\t\t);\n\t}\n\n\tprivate applyThisDeoptimizationEvent(\n\t\tentity: ExpressionEntity,\n\t\t{ event, path, thisParameter }: ThisDeoptimizationEvent\n\t) {\n\t\tentity.deoptimizeThisOnEventAtPath(\n\t\t\tevent,\n\t\t\tpath,\n\t\t\tthisParameter === this ? entity : thisParameter,\n\t\t\tSHARED_RECURSION_TRACKER\n\t\t);\n\t}\n\n\tprivate getInit(context: HasEffectsContext): ExpressionEntity {\n\t\treturn context.replacedVariableInits.get(this) || UNKNOWN_EXPRESSION;\n\t}\n}\n","import { NormalizedTreeshakingOptions } from '../../rollup/types';\nimport { HasEffectsContext } from '../ExecutionContext';\nimport { NodeEvent } from '../NodeEvents';\nimport { ObjectPath, PathTracker, UNKNOWN_PATH, UnknownKey } from '../utils/PathTracker';\nimport * as NodeType from './NodeType';\nimport { ExpressionEntity } from './shared/Expression';\nimport { ExpressionNode, NodeBase } from './shared/Node';\n\nexport default class SpreadElement extends NodeBase {\n\targument!: ExpressionNode;\n\ttype!: NodeType.tSpreadElement;\n\tprotected deoptimized = false;\n\n\tdeoptimizeThisOnEventAtPath(\n\t\tevent: NodeEvent,\n\t\tpath: ObjectPath,\n\t\tthisParameter: ExpressionEntity,\n\t\trecursionTracker: PathTracker\n\t): void {\n\t\tif (path.length > 0) {\n\t\t\tthis.argument.deoptimizeThisOnEventAtPath(\n\t\t\t\tevent,\n\t\t\t\t[UnknownKey, ...path],\n\t\t\t\tthisParameter,\n\t\t\t\trecursionTracker\n\t\t\t);\n\t\t}\n\t}\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tif (!this.deoptimized) this.applyDeoptimizations();\n\t\tconst { propertyReadSideEffects } = this.context.options\n\t\t\t.treeshake as NormalizedTreeshakingOptions;\n\t\treturn (\n\t\t\tthis.argument.hasEffects(context) ||\n\t\t\t(propertyReadSideEffects &&\n\t\t\t\t(propertyReadSideEffects === 'always' ||\n\t\t\t\t\tthis.argument.hasEffectsWhenAccessedAtPath(UNKNOWN_PATH, context)))\n\t\t);\n\t}\n\n\tprotected applyDeoptimizations(): void {\n\t\tthis.deoptimized = true;\n\t\t// Only properties of properties of the argument could become subject to reassignment\n\t\t// This will also reassign the return values of iterators\n\t\tthis.argument.deoptimizePath([UnknownKey, UnknownKey]);\n\t\tthis.context.requestTreeshakingPass();\n\t}\n}\n","import { AstContext } from '../../Module';\nimport { InclusionContext } from '../ExecutionContext';\nimport Identifier from '../nodes/Identifier';\nimport SpreadElement from '../nodes/SpreadElement';\nimport { UNKNOWN_EXPRESSION } from '../nodes/shared/Expression';\nimport { ExpressionNode } from '../nodes/shared/Node';\nimport LocalVariable from '../variables/LocalVariable';\nimport ChildScope from './ChildScope';\nimport Scope from './Scope';\n\nexport default class ParameterScope extends ChildScope {\n\thoistedBodyVarScope: ChildScope;\n\n\tprotected parameters: LocalVariable[][] = [];\n\tprivate context: AstContext;\n\tprivate hasRest = false;\n\n\tconstructor(parent: Scope, context: AstContext) {\n\t\tsuper(parent);\n\t\tthis.context = context;\n\t\tthis.hoistedBodyVarScope = new ChildScope(this);\n\t}\n\n\t/**\n\t * Adds a parameter to this scope. Parameters must be added in the correct\n\t * order, e.g. from left to right.\n\t */\n\taddParameterDeclaration(identifier: Identifier): LocalVariable {\n\t\tconst name = identifier.name;\n\t\tlet variable = this.hoistedBodyVarScope.variables.get(name) as LocalVariable;\n\t\tif (variable) {\n\t\t\tvariable.addDeclaration(identifier, null);\n\t\t} else {\n\t\t\tvariable = new LocalVariable(name, identifier, UNKNOWN_EXPRESSION, this.context);\n\t\t}\n\t\tthis.variables.set(name, variable);\n\t\treturn variable;\n\t}\n\n\taddParameterVariables(parameters: LocalVariable[][], hasRest: boolean): void {\n\t\tthis.parameters = parameters;\n\t\tfor (const parameterList of parameters) {\n\t\t\tfor (const parameter of parameterList) {\n\t\t\t\tparameter.alwaysRendered = true;\n\t\t\t}\n\t\t}\n\t\tthis.hasRest = hasRest;\n\t}\n\n\tincludeCallArguments(context: InclusionContext, args: (ExpressionNode | SpreadElement)[]): void {\n\t\tlet calledFromTryStatement = false;\n\t\tlet argIncluded = false;\n\t\tconst restParam = this.hasRest && this.parameters[this.parameters.length - 1];\n\t\tfor (const checkedArg of args) {\n\t\t\tif (checkedArg instanceof SpreadElement) {\n\t\t\t\tfor (const arg of args) {\n\t\t\t\t\targ.include(context, false);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tfor (let index = args.length - 1; index >= 0; index--) {\n\t\t\tconst paramVars = this.parameters[index] || restParam;\n\t\t\tconst arg = args[index];\n\t\t\tif (paramVars) {\n\t\t\t\tcalledFromTryStatement = false;\n\t\t\t\tif (paramVars.length === 0) {\n\t\t\t\t\t// handle empty destructuring\n\t\t\t\t\targIncluded = true;\n\t\t\t\t} else {\n\t\t\t\t\tfor (const variable of paramVars) {\n\t\t\t\t\t\tif (variable.included) {\n\t\t\t\t\t\t\targIncluded = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (variable.calledFromTryStatement) {\n\t\t\t\t\t\t\tcalledFromTryStatement = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!argIncluded && arg.shouldBeIncluded(context)) {\n\t\t\t\targIncluded = true;\n\t\t\t}\n\t\t\tif (argIncluded) {\n\t\t\t\targ.include(context, calledFromTryStatement);\n\t\t\t}\n\t\t}\n\t}\n}\n","import { ExpressionEntity, UNKNOWN_EXPRESSION } from '../nodes/shared/Expression';\nimport { UNKNOWN_PATH } from '../utils/PathTracker';\nimport ParameterScope from './ParameterScope';\n\nexport default class ReturnValueScope extends ParameterScope {\n\tprivate returnExpression: ExpressionEntity | null = null;\n\tprivate returnExpressions: ExpressionEntity[] = [];\n\n\taddReturnExpression(expression: ExpressionEntity): void {\n\t\tthis.returnExpressions.push(expression);\n\t}\n\n\tgetReturnExpression(): ExpressionEntity {\n\t\tif (this.returnExpression === null) this.updateReturnExpression();\n\t\treturn this.returnExpression!;\n\t}\n\n\tprivate updateReturnExpression() {\n\t\tif (this.returnExpressions.length === 1) {\n\t\t\tthis.returnExpression = this.returnExpressions[0];\n\t\t} else {\n\t\t\tthis.returnExpression = UNKNOWN_EXPRESSION;\n\t\t\tfor (const expression of this.returnExpressions) {\n\t\t\t\texpression.deoptimizePath(UNKNOWN_PATH);\n\t\t\t}\n\t\t}\n\t}\n}\n","import { AstContext } from '../../Module';\nimport { InclusionContext } from '../ExecutionContext';\nimport SpreadElement from '../nodes/SpreadElement';\nimport { ExpressionNode } from '../nodes/shared/Node';\nimport ArgumentsVariable from '../variables/ArgumentsVariable';\nimport ThisVariable from '../variables/ThisVariable';\nimport ChildScope from './ChildScope';\nimport ReturnValueScope from './ReturnValueScope';\n\nexport default class FunctionScope extends ReturnValueScope {\n\targumentsVariable: ArgumentsVariable;\n\tthisVariable: ThisVariable;\n\n\tconstructor(parent: ChildScope, context: AstContext) {\n\t\tsuper(parent, context);\n\t\tthis.variables.set('arguments', (this.argumentsVariable = new ArgumentsVariable(context)));\n\t\tthis.variables.set('this', (this.thisVariable = new ThisVariable(context)));\n\t}\n\n\tfindLexicalBoundary(): ChildScope {\n\t\treturn this;\n\t}\n\n\tincludeCallArguments(context: InclusionContext, args: (ExpressionNode | SpreadElement)[]): void {\n\t\tsuper.includeCallArguments(context, args);\n\t\tif (this.argumentsVariable.included) {\n\t\t\tfor (const arg of args) {\n\t\t\t\tif (!arg.included) {\n\t\t\t\t\targ.include(context, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","import { HasEffectsContext } from '../ExecutionContext';\nimport { EMPTY_PATH, ObjectPath, UnknownKey } from '../utils/PathTracker';\nimport LocalVariable from '../variables/LocalVariable';\nimport Variable from '../variables/Variable';\nimport * as NodeType from './NodeType';\nimport { ExpressionEntity, UNKNOWN_EXPRESSION } from './shared/Expression';\nimport { NodeBase } from './shared/Node';\nimport { PatternNode } from './shared/Pattern';\n\nexport default class RestElement extends NodeBase implements PatternNode {\n\targument!: PatternNode;\n\ttype!: NodeType.tRestElement;\n\tprotected deoptimized = false;\n\tprivate declarationInit: ExpressionEntity | null = null;\n\n\taddExportedVariables(\n\t\tvariables: Variable[],\n\t\texportNamesByVariable: Map<Variable, string[]>\n\t): void {\n\t\tthis.argument.addExportedVariables(variables, exportNamesByVariable);\n\t}\n\n\tdeclare(kind: string, init: ExpressionEntity): LocalVariable[] {\n\t\tthis.declarationInit = init;\n\t\treturn this.argument.declare(kind, UNKNOWN_EXPRESSION);\n\t}\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tpath.length === 0 && this.argument.deoptimizePath(EMPTY_PATH);\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\treturn path.length > 0 || this.argument.hasEffectsWhenAssignedAtPath(EMPTY_PATH, context);\n\t}\n\n\tmarkDeclarationReached(): void {\n\t\tthis.argument.markDeclarationReached();\n\t}\n\n\tprotected applyDeoptimizations(): void {\n\t\tthis.deoptimized = true;\n\t\tif (this.declarationInit !== null) {\n\t\t\tthis.declarationInit.deoptimizePath([UnknownKey, UnknownKey]);\n\t\t\tthis.context.requestTreeshakingPass();\n\t\t}\n\t}\n}\n","import { NormalizedTreeshakingOptions } from '../../../rollup/types';\nimport { CallOptions, NO_ARGS } from '../../CallOptions';\nimport { BROKEN_FLOW_NONE, HasEffectsContext, InclusionContext } from '../../ExecutionContext';\nimport { EVENT_CALLED, NodeEvent } from '../../NodeEvents';\nimport FunctionScope from '../../scopes/FunctionScope';\nimport { ObjectPath, UNKNOWN_PATH, UnknownKey } from '../../utils/PathTracker';\nimport BlockStatement from '../BlockStatement';\nimport Identifier, { IdentifierWithVariable } from '../Identifier';\nimport RestElement from '../RestElement';\nimport SpreadElement from '../SpreadElement';\nimport { ExpressionEntity, UNKNOWN_EXPRESSION } from './Expression';\nimport { ExpressionNode, GenericEsTreeNode, IncludeChildren, NodeBase } from './Node';\nimport { ObjectEntity } from './ObjectEntity';\nimport { OBJECT_PROTOTYPE } from './ObjectPrototype';\nimport { PatternNode } from './Pattern';\n\nexport default class FunctionNode extends NodeBase {\n\tasync!: boolean;\n\tbody!: BlockStatement;\n\tid!: IdentifierWithVariable | null;\n\tparams!: PatternNode[];\n\tpreventChildBlockScope!: true;\n\tscope!: FunctionScope;\n\tprivate deoptimizedReturn = false;\n\tprivate isPrototypeDeoptimized = false;\n\n\tcreateScope(parentScope: FunctionScope): void {\n\t\tthis.scope = new FunctionScope(parentScope, this.context);\n\t}\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tif (path.length === 1) {\n\t\t\tif (path[0] === 'prototype') {\n\t\t\t\tthis.isPrototypeDeoptimized = true;\n\t\t\t} else if (path[0] === UnknownKey) {\n\t\t\t\tthis.isPrototypeDeoptimized = true;\n\n\t\t\t\t// A reassignment of UNKNOWN_PATH is considered equivalent to having lost track\n\t\t\t\t// which means the return expression needs to be reassigned as well\n\t\t\t\tthis.scope.getReturnExpression().deoptimizePath(UNKNOWN_PATH);\n\t\t\t}\n\t\t}\n\t}\n\n\t// TODO for completeness, we should also track other events here\n\tdeoptimizeThisOnEventAtPath(\n\t\tevent: NodeEvent,\n\t\tpath: ObjectPath,\n\t\tthisParameter: ExpressionEntity\n\t): void {\n\t\tif (event === EVENT_CALLED) {\n\t\t\tif (path.length > 0) {\n\t\t\t\tthisParameter.deoptimizePath(UNKNOWN_PATH);\n\t\t\t} else {\n\t\t\t\tthis.scope.thisVariable.addEntityToBeDeoptimized(thisParameter);\n\t\t\t}\n\t\t}\n\t}\n\n\tgetReturnExpressionWhenCalledAtPath(path: ObjectPath): ExpressionEntity {\n\t\tif (path.length !== 0) {\n\t\t\treturn UNKNOWN_EXPRESSION;\n\t\t}\n\t\tif (this.async) {\n\t\t\tif (!this.deoptimizedReturn) {\n\t\t\t\tthis.deoptimizedReturn = true;\n\t\t\t\tthis.scope.getReturnExpression().deoptimizePath(UNKNOWN_PATH);\n\t\t\t\tthis.context.requestTreeshakingPass();\n\t\t\t}\n\t\t\treturn UNKNOWN_EXPRESSION;\n\t\t}\n\t\treturn this.scope.getReturnExpression();\n\t}\n\n\thasEffects(): boolean {\n\t\treturn this.id !== null && this.id.hasEffects();\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath): boolean {\n\t\tif (path.length <= 1) return false;\n\t\treturn path.length > 2 || path[0] !== 'prototype' || this.isPrototypeDeoptimized;\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath): boolean {\n\t\tif (path.length <= 1) {\n\t\t\treturn false;\n\t\t}\n\t\treturn path.length > 2 || path[0] !== 'prototype' || this.isPrototypeDeoptimized;\n\t}\n\n\thasEffectsWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\tcontext: HasEffectsContext\n\t): boolean {\n\t\tif (path.length > 0) return true;\n\t\tif (this.async) {\n\t\t\tconst { propertyReadSideEffects } = this.context.options\n\t\t\t\t.treeshake as NormalizedTreeshakingOptions;\n\t\t\tconst returnExpression = this.scope.getReturnExpression();\n\t\t\tif (\n\t\t\t\treturnExpression.hasEffectsWhenCalledAtPath(\n\t\t\t\t\t['then'],\n\t\t\t\t\t{ args: NO_ARGS, thisParam: null, withNew: false },\n\t\t\t\t\tcontext\n\t\t\t\t) ||\n\t\t\t\t(propertyReadSideEffects &&\n\t\t\t\t\t(propertyReadSideEffects === 'always' ||\n\t\t\t\t\t\treturnExpression.hasEffectsWhenAccessedAtPath(['then'], context)))\n\t\t\t) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tfor (const param of this.params) {\n\t\t\tif (param.hasEffects(context)) return true;\n\t\t}\n\t\tconst thisInit = context.replacedVariableInits.get(this.scope.thisVariable);\n\t\tcontext.replacedVariableInits.set(\n\t\t\tthis.scope.thisVariable,\n\t\t\tcallOptions.withNew\n\t\t\t\t? new ObjectEntity(Object.create(null), OBJECT_PROTOTYPE)\n\t\t\t\t: UNKNOWN_EXPRESSION\n\t\t);\n\t\tconst { brokenFlow, ignore } = context;\n\t\tcontext.ignore = {\n\t\t\tbreaks: false,\n\t\t\tcontinues: false,\n\t\t\tlabels: new Set(),\n\t\t\treturnYield: true\n\t\t};\n\t\tif (this.body.hasEffects(context)) return true;\n\t\tcontext.brokenFlow = brokenFlow;\n\t\tif (thisInit) {\n\t\t\tcontext.replacedVariableInits.set(this.scope.thisVariable, thisInit);\n\t\t} else {\n\t\t\tcontext.replacedVariableInits.delete(this.scope.thisVariable);\n\t\t}\n\t\tcontext.ignore = ignore;\n\t\treturn false;\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tthis.included = true;\n\t\tif (this.id) this.id.include();\n\t\tconst hasArguments = this.scope.argumentsVariable.included;\n\t\tfor (const param of this.params) {\n\t\t\tif (!(param instanceof Identifier) || hasArguments) {\n\t\t\t\tparam.include(context, includeChildrenRecursively);\n\t\t\t}\n\t\t}\n\t\tconst { brokenFlow } = context;\n\t\tcontext.brokenFlow = BROKEN_FLOW_NONE;\n\t\tthis.body.include(context, includeChildrenRecursively);\n\t\tcontext.brokenFlow = brokenFlow;\n\t}\n\n\tincludeCallArguments(context: InclusionContext, args: (ExpressionNode | SpreadElement)[]): void {\n\t\tthis.scope.includeCallArguments(context, args);\n\t}\n\n\tinitialise(): void {\n\t\tif (this.id !== null) {\n\t\t\tthis.id.declare('function', this);\n\t\t}\n\t\tthis.scope.addParameterVariables(\n\t\t\tthis.params.map(param => param.declare('parameter', UNKNOWN_EXPRESSION)),\n\t\t\tthis.params[this.params.length - 1] instanceof RestElement\n\t\t);\n\t\tthis.body.addImplicitReturnExpressionToScope();\n\t}\n\n\tparseNode(esTreeNode: GenericEsTreeNode): void {\n\t\tthis.body = new this.context.nodeConstructors.BlockStatement(\n\t\t\tesTreeNode.body,\n\t\t\tthis,\n\t\t\tthis.scope.hoistedBodyVarScope\n\t\t) as BlockStatement;\n\t\tsuper.parseNode(esTreeNode);\n\t}\n}\n\nFunctionNode.prototype.preventChildBlockScope = true;\n","import ChildScope from '../scopes/ChildScope';\nimport { IdentifierWithVariable } from './Identifier';\nimport * as NodeType from './NodeType';\nimport FunctionNode from './shared/FunctionNode';\nimport { GenericEsTreeNode } from './shared/Node';\n\nexport default class FunctionDeclaration extends FunctionNode {\n\ttype!: NodeType.tFunctionDeclaration;\n\n\tinitialise(): void {\n\t\tsuper.initialise();\n\t\tif (this.id !== null) {\n\t\t\tthis.id.variable.isId = true;\n\t\t}\n\t}\n\n\tparseNode(esTreeNode: GenericEsTreeNode): void {\n\t\tif (esTreeNode.id !== null) {\n\t\t\tthis.id = new this.context.nodeConstructors.Identifier(\n\t\t\t\tesTreeNode.id,\n\t\t\t\tthis,\n\t\t\t\tthis.scope.parent as ChildScope\n\t\t\t) as IdentifierWithVariable;\n\t\t}\n\t\tsuper.parseNode(esTreeNode);\n\t}\n}\n","import MagicString from 'magic-string';\nimport {\n\tfindFirstOccurrenceOutsideComment,\n\tfindNonWhiteSpace,\n\tNodeRenderOptions,\n\tRenderOptions\n} from '../../utils/renderHelpers';\nimport { getSystemExportStatement } from '../../utils/systemJsRendering';\nimport { treeshakeNode } from '../../utils/treeshakeNode';\nimport { InclusionContext } from '../ExecutionContext';\nimport ModuleScope from '../scopes/ModuleScope';\nimport ExportDefaultVariable from '../variables/ExportDefaultVariable';\nimport ClassDeclaration from './ClassDeclaration';\nimport FunctionDeclaration from './FunctionDeclaration';\nimport Identifier from './Identifier';\nimport * as NodeType from './NodeType';\nimport { ExpressionNode, IncludeChildren, NodeBase } from './shared/Node';\n\n// The header ends at the first non-white-space after \"default\"\nfunction getDeclarationStart(code: string, start: number) {\n\treturn findNonWhiteSpace(code, findFirstOccurrenceOutsideComment(code, 'default', start) + 7);\n}\n\nfunction getIdInsertPosition(\n\tcode: string,\n\tdeclarationKeyword: string,\n\tendMarker: string,\n\tstart: number\n) {\n\tconst declarationEnd =\n\t\tfindFirstOccurrenceOutsideComment(code, declarationKeyword, start) + declarationKeyword.length;\n\tcode = code.slice(\n\t\tdeclarationEnd,\n\t\tfindFirstOccurrenceOutsideComment(code, endMarker, declarationEnd)\n\t);\n\tconst generatorStarPos = findFirstOccurrenceOutsideComment(code, '*');\n\tif (generatorStarPos === -1) {\n\t\treturn declarationEnd;\n\t}\n\treturn declarationEnd + generatorStarPos + 1;\n}\n\nexport default class ExportDefaultDeclaration extends NodeBase {\n\tdeclaration!: FunctionDeclaration | ClassDeclaration | ExpressionNode;\n\tneedsBoundaries!: true;\n\tscope!: ModuleScope;\n\ttype!: NodeType.tExportDefaultDeclaration;\n\tvariable!: ExportDefaultVariable;\n\n\tprivate declarationName: string | undefined;\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tsuper.include(context, includeChildrenRecursively);\n\t\tif (includeChildrenRecursively) {\n\t\t\tthis.context.includeVariableInModule(this.variable);\n\t\t}\n\t}\n\n\tinitialise(): void {\n\t\tconst declaration = this.declaration as FunctionDeclaration | ClassDeclaration;\n\t\tthis.declarationName =\n\t\t\t(declaration.id && declaration.id.name) || (this.declaration as Identifier).name;\n\t\tthis.variable = this.scope.addExportDefaultDeclaration(\n\t\t\tthis.declarationName || this.context.getModuleName(),\n\t\t\tthis,\n\t\t\tthis.context\n\t\t);\n\t\tthis.context.addExport(this);\n\t}\n\n\trender(code: MagicString, options: RenderOptions, nodeRenderOptions?: NodeRenderOptions): void {\n\t\tconst { start, end } = nodeRenderOptions as { end: number; start: number };\n\t\tconst declarationStart = getDeclarationStart(code.original, this.start);\n\n\t\tif (this.declaration instanceof FunctionDeclaration) {\n\t\t\tthis.renderNamedDeclaration(\n\t\t\t\tcode,\n\t\t\t\tdeclarationStart,\n\t\t\t\t'function',\n\t\t\t\t'(',\n\t\t\t\tthis.declaration.id === null,\n\t\t\t\toptions\n\t\t\t);\n\t\t} else if (this.declaration instanceof ClassDeclaration) {\n\t\t\tthis.renderNamedDeclaration(\n\t\t\t\tcode,\n\t\t\t\tdeclarationStart,\n\t\t\t\t'class',\n\t\t\t\t'{',\n\t\t\t\tthis.declaration.id === null,\n\t\t\t\toptions\n\t\t\t);\n\t\t} else if (this.variable.getOriginalVariable() !== this.variable) {\n\t\t\t// Remove altogether to prevent re-declaring the same variable\n\t\t\ttreeshakeNode(this, code, start, end);\n\t\t\treturn;\n\t\t} else if (this.variable.included) {\n\t\t\tthis.renderVariableDeclaration(code, declarationStart, options);\n\t\t} else {\n\t\t\tcode.remove(this.start, declarationStart);\n\t\t\tthis.declaration.render(code, options, {\n\t\t\t\tisCalleeOfRenderedParent: false,\n\t\t\t\trenderedParentType: NodeType.ExpressionStatement\n\t\t\t});\n\t\t\tif (code.original[this.end - 1] !== ';') {\n\t\t\t\tcode.appendLeft(this.end, ';');\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tthis.declaration.render(code, options);\n\t}\n\n\tprivate renderNamedDeclaration(\n\t\tcode: MagicString,\n\t\tdeclarationStart: number,\n\t\tdeclarationKeyword: string,\n\t\tendMarker: string,\n\t\tneedsId: boolean,\n\t\toptions: RenderOptions\n\t) {\n\t\tconst name = this.variable.getName();\n\t\t// Remove `export default`\n\t\tcode.remove(this.start, declarationStart);\n\n\t\tif (needsId) {\n\t\t\tcode.appendLeft(\n\t\t\t\tgetIdInsertPosition(code.original, declarationKeyword, endMarker, declarationStart),\n\t\t\t\t` ${name}`\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\toptions.format === 'system' &&\n\t\t\tthis.declaration instanceof ClassDeclaration &&\n\t\t\toptions.exportNamesByVariable.has(this.variable)\n\t\t) {\n\t\t\tcode.appendLeft(this.end, ` ${getSystemExportStatement([this.variable], options)};`);\n\t\t}\n\t}\n\n\tprivate renderVariableDeclaration(\n\t\tcode: MagicString,\n\t\tdeclarationStart: number,\n\t\toptions: RenderOptions\n\t) {\n\t\tconst hasTrailingSemicolon = code.original.charCodeAt(this.end - 1) === 59; /*\";\"*/\n\t\tconst systemExportNames =\n\t\t\toptions.format === 'system' && options.exportNamesByVariable.get(this.variable);\n\n\t\tif (systemExportNames) {\n\t\t\tcode.overwrite(\n\t\t\t\tthis.start,\n\t\t\t\tdeclarationStart,\n\t\t\t\t`${options.varOrConst} ${this.variable.getName()} = exports('${systemExportNames[0]}', `\n\t\t\t);\n\t\t\tcode.appendRight(\n\t\t\t\thasTrailingSemicolon ? this.end - 1 : this.end,\n\t\t\t\t')' + (hasTrailingSemicolon ? '' : ';')\n\t\t\t);\n\t\t} else {\n\t\t\tcode.overwrite(\n\t\t\t\tthis.start,\n\t\t\t\tdeclarationStart,\n\t\t\t\t`${options.varOrConst} ${this.variable.getName()} = `\n\t\t\t);\n\t\t\tif (!hasTrailingSemicolon) {\n\t\t\t\tcode.appendLeft(this.end, ';');\n\t\t\t}\n\t\t}\n\t}\n}\n\nExportDefaultDeclaration.prototype.needsBoundaries = true;\n","import MagicString from 'magic-string';\nimport { CallOptions } from '../CallOptions';\nimport { HasEffectsContext } from '../ExecutionContext';\nimport { ObjectPath } from '../utils/PathTracker';\nimport {\n\tgetLiteralMembersForValue,\n\tgetMemberReturnExpressionWhenCalled,\n\thasMemberEffectWhenCalled,\n\tMemberDescription\n} from '../values';\nimport * as NodeType from './NodeType';\nimport {\n\tExpressionEntity,\n\tLiteralValueOrUnknown,\n\tUNKNOWN_EXPRESSION,\n\tUnknownValue\n} from './shared/Expression';\nimport { GenericEsTreeNode, NodeBase } from './shared/Node';\n\nexport type LiteralValue = string | boolean | null | number | RegExp | undefined;\n\nexport default class Literal<T extends LiteralValue = LiteralValue> extends NodeBase {\n\tregex?: {\n\t\tflags: string;\n\t\tpattern: string;\n\t};\n\ttype!: NodeType.tLiteral;\n\tvalue!: T;\n\n\tprivate members!: { [key: string]: MemberDescription };\n\n\tdeoptimizeThisOnEventAtPath(): void {}\n\n\tgetLiteralValueAtPath(path: ObjectPath): LiteralValueOrUnknown {\n\t\tif (\n\t\t\tpath.length > 0 ||\n\t\t\t// unknown literals can also be null but do not start with an \"n\"\n\t\t\t(this.value === null && this.context.code.charCodeAt(this.start) !== 110) ||\n\t\t\ttypeof this.value === 'bigint' ||\n\t\t\t// to support shims for regular expressions\n\t\t\tthis.context.code.charCodeAt(this.start) === 47\n\t\t) {\n\t\t\treturn UnknownValue;\n\t\t}\n\t\treturn this.value;\n\t}\n\n\tgetReturnExpressionWhenCalledAtPath(path: ObjectPath): ExpressionEntity {\n\t\tif (path.length !== 1) return UNKNOWN_EXPRESSION;\n\t\treturn getMemberReturnExpressionWhenCalled(this.members, path[0]);\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath): boolean {\n\t\tif (this.value === null) {\n\t\t\treturn path.length > 0;\n\t\t}\n\t\treturn path.length > 1;\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath): boolean {\n\t\treturn path.length > 0;\n\t}\n\n\thasEffectsWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\tcontext: HasEffectsContext\n\t): boolean {\n\t\tif (path.length === 1) {\n\t\t\treturn hasMemberEffectWhenCalled(this.members, path[0], callOptions, context);\n\t\t}\n\t\treturn true;\n\t}\n\n\tinitialise(): void {\n\t\tthis.members = getLiteralMembersForValue(this.value);\n\t}\n\n\tparseNode(esTreeNode: GenericEsTreeNode): void {\n\t\tthis.value = esTreeNode.value;\n\t\tthis.regex = esTreeNode.regex;\n\t\tsuper.parseNode(esTreeNode);\n\t}\n\n\trender(code: MagicString): void {\n\t\tif (typeof this.value === 'string') {\n\t\t\t(code.indentExclusionRanges as [number, number][]).push([this.start + 1, this.end - 1]);\n\t\t}\n\t}\n}\n","import MagicString from 'magic-string';\nimport { RenderOptions, renderStatementList } from '../../utils/renderHelpers';\nimport { HasEffectsContext, InclusionContext } from '../ExecutionContext';\nimport * as NodeType from './NodeType';\nimport { IncludeChildren, NodeBase, StatementNode } from './shared/Node';\n\nexport default class Program extends NodeBase {\n\tbody!: StatementNode[];\n\tsourceType!: 'module';\n\ttype!: NodeType.tProgram;\n\n\tprivate hasCachedEffect = false;\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\t// We are caching here to later more efficiently identify side-effect-free modules\n\t\tif (this.hasCachedEffect) return true;\n\t\tfor (const node of this.body) {\n\t\t\tif (node.hasEffects(context)) {\n\t\t\t\treturn (this.hasCachedEffect = true);\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tthis.included = true;\n\t\tfor (const node of this.body) {\n\t\t\tif (includeChildrenRecursively || node.shouldBeIncluded(context)) {\n\t\t\t\tnode.include(context, includeChildrenRecursively);\n\t\t\t}\n\t\t}\n\t}\n\n\trender(code: MagicString, options: RenderOptions): void {\n\t\tif (this.body.length) {\n\t\t\trenderStatementList(this.body, code, this.start, this.end, options);\n\t\t} else {\n\t\t\tsuper.render(code, options);\n\t\t}\n\t}\n}\n","import MagicString from 'magic-string';\nimport { RenderOptions } from '../../utils/renderHelpers';\nimport { ObjectPath } from '../utils/PathTracker';\nimport * as NodeType from './NodeType';\nimport TemplateElement from './TemplateElement';\nimport { LiteralValueOrUnknown, UnknownValue } from './shared/Expression';\nimport { ExpressionNode, NodeBase } from './shared/Node';\n\nexport default class TemplateLiteral extends NodeBase {\n\texpressions!: ExpressionNode[];\n\tquasis!: TemplateElement[];\n\ttype!: NodeType.tTemplateLiteral;\n\n\tgetLiteralValueAtPath(path: ObjectPath): LiteralValueOrUnknown {\n\t\tif (path.length > 0 || this.quasis.length !== 1) {\n\t\t\treturn UnknownValue;\n\t\t}\n\t\treturn this.quasis[0].value.cooked;\n\t}\n\n\trender(code: MagicString, options: RenderOptions): void {\n\t\t(code.indentExclusionRanges as [number, number][]).push([this.start, this.end] as [\n\t\t\tnumber,\n\t\t\tnumber\n\t\t]);\n\t\tsuper.render(code, options);\n\t}\n}\n","import Variable from '../ast/variables/Variable';\n\nexport function isReassignedExportsMember(\n\tvariable: Variable,\n\texportNamesByVariable: Map<Variable, string[]>\n): boolean {\n\treturn (\n\t\tvariable.renderBaseName !== null && exportNamesByVariable.has(variable) && variable.isReassigned\n\t);\n}\n","import MagicString from 'magic-string';\nimport { BLANK } from '../../utils/blank';\nimport { isReassignedExportsMember } from '../../utils/reassignedExportsMember';\nimport {\n\tfindFirstOccurrenceOutsideComment,\n\tfindNonWhiteSpace,\n\tgetCommaSeparatedNodesWithBoundaries,\n\tNodeRenderOptions,\n\tRenderOptions\n} from '../../utils/renderHelpers';\nimport {\n\tgetSystemExportFunctionLeft,\n\tgetSystemExportStatement\n} from '../../utils/systemJsRendering';\nimport { InclusionContext } from '../ExecutionContext';\nimport { EMPTY_PATH } from '../utils/PathTracker';\nimport Variable from '../variables/Variable';\nimport Identifier, { IdentifierWithVariable } from './Identifier';\nimport * as NodeType from './NodeType';\nimport VariableDeclarator from './VariableDeclarator';\nimport { IncludeChildren, NodeBase } from './shared/Node';\n\nfunction areAllDeclarationsIncludedAndNotExported(\n\tdeclarations: VariableDeclarator[],\n\texportNamesByVariable: Map<Variable, string[]>\n): boolean {\n\tfor (const declarator of declarations) {\n\t\tif (!declarator.id.included) return false;\n\t\tif (declarator.id.type === NodeType.Identifier) {\n\t\t\tif (exportNamesByVariable.has(declarator.id.variable!)) return false;\n\t\t} else {\n\t\t\tconst exportedVariables: Variable[] = [];\n\t\t\tdeclarator.id.addExportedVariables(exportedVariables, exportNamesByVariable);\n\t\t\tif (exportedVariables.length > 0) return false;\n\t\t}\n\t}\n\treturn true;\n}\n\nexport default class VariableDeclaration extends NodeBase {\n\tdeclarations!: VariableDeclarator[];\n\tkind!: 'var' | 'let' | 'const';\n\ttype!: NodeType.tVariableDeclaration;\n\n\tdeoptimizePath(): void {\n\t\tfor (const declarator of this.declarations) {\n\t\t\tdeclarator.deoptimizePath(EMPTY_PATH);\n\t\t}\n\t}\n\n\thasEffectsWhenAssignedAtPath(): boolean {\n\t\treturn false;\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tthis.included = true;\n\t\tfor (const declarator of this.declarations) {\n\t\t\tif (includeChildrenRecursively || declarator.shouldBeIncluded(context))\n\t\t\t\tdeclarator.include(context, includeChildrenRecursively);\n\t\t}\n\t}\n\n\tincludeAsSingleStatement(\n\t\tcontext: InclusionContext,\n\t\tincludeChildrenRecursively: IncludeChildren\n\t): void {\n\t\tthis.included = true;\n\t\tfor (const declarator of this.declarations) {\n\t\t\tif (includeChildrenRecursively || declarator.shouldBeIncluded(context)) {\n\t\t\t\tdeclarator.include(context, includeChildrenRecursively);\n\t\t\t\tdeclarator.id.include(context, includeChildrenRecursively);\n\t\t\t}\n\t\t}\n\t}\n\n\tinitialise(): void {\n\t\tfor (const declarator of this.declarations) {\n\t\t\tdeclarator.declareDeclarator(this.kind);\n\t\t}\n\t}\n\n\trender(\n\t\tcode: MagicString,\n\t\toptions: RenderOptions,\n\t\tnodeRenderOptions: NodeRenderOptions = BLANK\n\t): void {\n\t\tif (\n\t\t\tareAllDeclarationsIncludedAndNotExported(this.declarations, options.exportNamesByVariable)\n\t\t) {\n\t\t\tfor (const declarator of this.declarations) {\n\t\t\t\tdeclarator.render(code, options);\n\t\t\t}\n\t\t\tif (\n\t\t\t\t!nodeRenderOptions.isNoStatement &&\n\t\t\t\tcode.original.charCodeAt(this.end - 1) !== 59 /*\";\"*/\n\t\t\t) {\n\t\t\t\tcode.appendLeft(this.end, ';');\n\t\t\t}\n\t\t} else {\n\t\t\tthis.renderReplacedDeclarations(code, options, nodeRenderOptions);\n\t\t}\n\t}\n\n\tprivate renderDeclarationEnd(\n\t\tcode: MagicString,\n\t\tseparatorString: string,\n\t\tlastSeparatorPos: number | null,\n\t\tactualContentEnd: number,\n\t\trenderedContentEnd: number,\n\t\tsystemPatternExports: Variable[],\n\t\toptions: RenderOptions,\n\t\tisNoStatement: boolean | undefined\n\t): void {\n\t\tif (code.original.charCodeAt(this.end - 1) === 59 /*\";\"*/) {\n\t\t\tcode.remove(this.end - 1, this.end);\n\t\t}\n\t\tif (!isNoStatement) {\n\t\t\tseparatorString += ';';\n\t\t}\n\t\tif (lastSeparatorPos !== null) {\n\t\t\tif (\n\t\t\t\tcode.original.charCodeAt(actualContentEnd - 1) === 10 /*\"\\n\"*/ &&\n\t\t\t\t(code.original.charCodeAt(this.end) === 10 /*\"\\n\"*/ ||\n\t\t\t\t\tcode.original.charCodeAt(this.end) === 13) /*\"\\r\"*/\n\t\t\t) {\n\t\t\t\tactualContentEnd--;\n\t\t\t\tif (code.original.charCodeAt(actualContentEnd) === 13 /*\"\\r\"*/) {\n\t\t\t\t\tactualContentEnd--;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (actualContentEnd === lastSeparatorPos + 1) {\n\t\t\t\tcode.overwrite(lastSeparatorPos, renderedContentEnd, separatorString);\n\t\t\t} else {\n\t\t\t\tcode.overwrite(lastSeparatorPos, lastSeparatorPos + 1, separatorString);\n\t\t\t\tcode.remove(actualContentEnd, renderedContentEnd);\n\t\t\t}\n\t\t} else {\n\t\t\tcode.appendLeft(renderedContentEnd, separatorString);\n\t\t}\n\t\tif (systemPatternExports.length > 0) {\n\t\t\tcode.appendLeft(\n\t\t\t\trenderedContentEnd,\n\t\t\t\t` ${getSystemExportStatement(systemPatternExports, options)};`\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate renderReplacedDeclarations(\n\t\tcode: MagicString,\n\t\toptions: RenderOptions,\n\t\t{ isNoStatement }: NodeRenderOptions\n\t): void {\n\t\tconst separatedNodes = getCommaSeparatedNodesWithBoundaries(\n\t\t\tthis.declarations,\n\t\t\tcode,\n\t\t\tthis.start + this.kind.length,\n\t\t\tthis.end - (code.original.charCodeAt(this.end - 1) === 59 /*\";\"*/ ? 1 : 0)\n\t\t);\n\t\tlet actualContentEnd: number | undefined, renderedContentEnd: number;\n\t\trenderedContentEnd = findNonWhiteSpace(code.original, this.start + this.kind.length);\n\t\tlet lastSeparatorPos = renderedContentEnd - 1;\n\t\tcode.remove(this.start, lastSeparatorPos);\n\t\tlet isInDeclaration = false;\n\t\tlet hasRenderedContent = false;\n\t\tlet separatorString = '',\n\t\t\tleadingString,\n\t\t\tnextSeparatorString;\n\t\tconst systemPatternExports: Variable[] = [];\n\t\tfor (const { node, start, separator, contentEnd, end } of separatedNodes) {\n\t\t\tif (!node.included) {\n\t\t\t\tcode.remove(start, end);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tleadingString = '';\n\t\t\tnextSeparatorString = '';\n\t\t\tif (\n\t\t\t\t!node.id.included ||\n\t\t\t\t(node.id instanceof Identifier &&\n\t\t\t\t\tisReassignedExportsMember(\n\t\t\t\t\t\t(node.id as IdentifierWithVariable).variable,\n\t\t\t\t\t\toptions.exportNamesByVariable\n\t\t\t\t\t))\n\t\t\t) {\n\t\t\t\tif (hasRenderedContent) {\n\t\t\t\t\tseparatorString += ';';\n\t\t\t\t}\n\t\t\t\tisInDeclaration = false;\n\t\t\t} else {\n\t\t\t\tif (options.format === 'system' && node.init !== null) {\n\t\t\t\t\tif (node.id.type !== NodeType.Identifier) {\n\t\t\t\t\t\tnode.id.addExportedVariables(systemPatternExports, options.exportNamesByVariable);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst exportNames = options.exportNamesByVariable.get(node.id.variable!);\n\t\t\t\t\t\tif (exportNames) {\n\t\t\t\t\t\t\tconst _ = options.compact ? '' : ' ';\n\t\t\t\t\t\t\tconst operatorPos = findFirstOccurrenceOutsideComment(\n\t\t\t\t\t\t\t\tcode.original,\n\t\t\t\t\t\t\t\t'=',\n\t\t\t\t\t\t\t\tnode.id.end\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tcode.prependLeft(\n\t\t\t\t\t\t\t\tfindNonWhiteSpace(code.original, operatorPos + 1),\n\t\t\t\t\t\t\t\texportNames.length === 1\n\t\t\t\t\t\t\t\t\t? `exports('${exportNames[0]}',${_}`\n\t\t\t\t\t\t\t\t\t: getSystemExportFunctionLeft([node.id.variable!], false, options)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tnextSeparatorString += ')';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (isInDeclaration) {\n\t\t\t\t\tseparatorString += ',';\n\t\t\t\t} else {\n\t\t\t\t\tif (hasRenderedContent) {\n\t\t\t\t\t\tseparatorString += ';';\n\t\t\t\t\t}\n\t\t\t\t\tleadingString += `${this.kind} `;\n\t\t\t\t\tisInDeclaration = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (renderedContentEnd === lastSeparatorPos + 1) {\n\t\t\t\tcode.overwrite(lastSeparatorPos, renderedContentEnd, separatorString + leadingString);\n\t\t\t} else {\n\t\t\t\tcode.overwrite(lastSeparatorPos, lastSeparatorPos + 1, separatorString);\n\t\t\t\tcode.appendLeft(renderedContentEnd, leadingString);\n\t\t\t}\n\t\t\tnode.render(code, options);\n\t\t\tactualContentEnd = contentEnd;\n\t\t\trenderedContentEnd = end;\n\t\t\thasRenderedContent = true;\n\t\t\tlastSeparatorPos = separator!;\n\t\t\tseparatorString = nextSeparatorString;\n\t\t}\n\t\tthis.renderDeclarationEnd(\n\t\t\tcode,\n\t\t\tseparatorString,\n\t\t\tlastSeparatorPos,\n\t\t\tactualContentEnd!,\n\t\t\trenderedContentEnd,\n\t\t\tsystemPatternExports,\n\t\t\toptions,\n\t\t\tisNoStatement\n\t\t);\n\t}\n}\n","import { UnknownInteger } from '../../utils/PathTracker';\nimport { UNKNOWN_LITERAL_BOOLEAN, UNKNOWN_LITERAL_NUMBER } from '../../values';\nimport { ExpressionEntity, UNKNOWN_EXPRESSION } from './Expression';\nimport {\n\tMethod,\n\tMETHOD_RETURNS_BOOLEAN,\n\tMETHOD_RETURNS_NUMBER,\n\tMETHOD_RETURNS_STRING,\n\tMETHOD_RETURNS_UNKNOWN\n} from './MethodTypes';\nimport { ObjectEntity, ObjectProperty, PropertyMap } from './ObjectEntity';\nimport { OBJECT_PROTOTYPE } from './ObjectPrototype';\n\nconst NEW_ARRAY_PROPERTIES: ObjectProperty[] = [\n\t{ key: UnknownInteger, kind: 'init', property: UNKNOWN_EXPRESSION },\n\t{ key: 'length', kind: 'init', property: UNKNOWN_LITERAL_NUMBER }\n];\n\nconst METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_BOOLEAN: [ExpressionEntity] = [\n\tnew Method({\n\t\tcallsArgs: [0],\n\t\tmutatesSelfAsArray: 'deopt-only',\n\t\treturns: null,\n\t\treturnsPrimitive: UNKNOWN_LITERAL_BOOLEAN\n\t})\n];\n\nconst METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NUMBER: [ExpressionEntity] = [\n\tnew Method({\n\t\tcallsArgs: [0],\n\t\tmutatesSelfAsArray: 'deopt-only',\n\t\treturns: null,\n\t\treturnsPrimitive: UNKNOWN_LITERAL_NUMBER\n\t})\n];\n\nconst METHOD_MUTATES_SELF_RETURNS_NEW_ARRAY: [ExpressionEntity] = [\n\tnew Method({\n\t\tcallsArgs: null,\n\t\tmutatesSelfAsArray: true,\n\t\treturns: () => new ObjectEntity(NEW_ARRAY_PROPERTIES, ARRAY_PROTOTYPE),\n\t\treturnsPrimitive: null\n\t})\n];\n\nconst METHOD_DEOPTS_SELF_RETURNS_NEW_ARRAY: [ExpressionEntity] = [\n\tnew Method({\n\t\tcallsArgs: null,\n\t\tmutatesSelfAsArray: 'deopt-only',\n\t\treturns: () => new ObjectEntity(NEW_ARRAY_PROPERTIES, ARRAY_PROTOTYPE),\n\t\treturnsPrimitive: null\n\t})\n];\n\nconst METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NEW_ARRAY: [ExpressionEntity] = [\n\tnew Method({\n\t\tcallsArgs: [0],\n\t\tmutatesSelfAsArray: 'deopt-only',\n\t\treturns: () => new ObjectEntity(NEW_ARRAY_PROPERTIES, ARRAY_PROTOTYPE),\n\t\treturnsPrimitive: null\n\t})\n];\n\nconst METHOD_MUTATES_SELF_RETURNS_NUMBER: [ExpressionEntity] = [\n\tnew Method({\n\t\tcallsArgs: null,\n\t\tmutatesSelfAsArray: true,\n\t\treturns: null,\n\t\treturnsPrimitive: UNKNOWN_LITERAL_NUMBER\n\t})\n];\n\nconst METHOD_MUTATES_SELF_RETURNS_UNKNOWN: [ExpressionEntity] = [\n\tnew Method({\n\t\tcallsArgs: null,\n\t\tmutatesSelfAsArray: true,\n\t\treturns: null,\n\t\treturnsPrimitive: UNKNOWN_EXPRESSION\n\t})\n];\n\nconst METHOD_DEOPTS_SELF_RETURNS_UNKNOWN: [ExpressionEntity] = [\n\tnew Method({\n\t\tcallsArgs: null,\n\t\tmutatesSelfAsArray: 'deopt-only',\n\t\treturns: null,\n\t\treturnsPrimitive: UNKNOWN_EXPRESSION\n\t})\n];\n\nconst METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN: [ExpressionEntity] = [\n\tnew Method({\n\t\tcallsArgs: [0],\n\t\tmutatesSelfAsArray: 'deopt-only',\n\t\treturns: null,\n\t\treturnsPrimitive: UNKNOWN_EXPRESSION\n\t})\n];\n\nconst METHOD_MUTATES_SELF_RETURNS_SELF: [ExpressionEntity] = [\n\tnew Method({\n\t\tcallsArgs: null,\n\t\tmutatesSelfAsArray: true,\n\t\treturns: 'self',\n\t\treturnsPrimitive: null\n\t})\n];\n\nconst METHOD_CALLS_ARG_MUTATES_SELF_RETURNS_SELF: [ExpressionEntity] = [\n\tnew Method({\n\t\tcallsArgs: [0],\n\t\tmutatesSelfAsArray: true,\n\t\treturns: 'self',\n\t\treturnsPrimitive: null\n\t})\n];\n\nexport const ARRAY_PROTOTYPE = new ObjectEntity(\n\t{\n\t\t__proto__: null,\n\t\t// We assume that accessors have effects as we do not track the accessed value afterwards\n\t\tat: METHOD_DEOPTS_SELF_RETURNS_UNKNOWN,\n\t\tconcat: METHOD_DEOPTS_SELF_RETURNS_NEW_ARRAY,\n\t\tcopyWithin: METHOD_MUTATES_SELF_RETURNS_SELF,\n\t\tentries: METHOD_DEOPTS_SELF_RETURNS_NEW_ARRAY,\n\t\tevery: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_BOOLEAN,\n\t\tfill: METHOD_MUTATES_SELF_RETURNS_SELF,\n\t\tfilter: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NEW_ARRAY,\n\t\tfind: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN,\n\t\tfindIndex: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NUMBER,\n\t\tforEach: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN,\n\t\tincludes: METHOD_RETURNS_BOOLEAN,\n\t\tindexOf: METHOD_RETURNS_NUMBER,\n\t\tjoin: METHOD_RETURNS_STRING,\n\t\tkeys: METHOD_RETURNS_UNKNOWN,\n\t\tlastIndexOf: METHOD_RETURNS_NUMBER,\n\t\tmap: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NEW_ARRAY,\n\t\tpop: METHOD_MUTATES_SELF_RETURNS_UNKNOWN,\n\t\tpush: METHOD_MUTATES_SELF_RETURNS_NUMBER,\n\t\treduce: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN,\n\t\treduceRight: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN,\n\t\treverse: METHOD_MUTATES_SELF_RETURNS_SELF,\n\t\tshift: METHOD_MUTATES_SELF_RETURNS_UNKNOWN,\n\t\tslice: METHOD_DEOPTS_SELF_RETURNS_NEW_ARRAY,\n\t\tsome: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_BOOLEAN,\n\t\tsort: METHOD_CALLS_ARG_MUTATES_SELF_RETURNS_SELF,\n\t\tsplice: METHOD_MUTATES_SELF_RETURNS_NEW_ARRAY,\n\t\tunshift: METHOD_MUTATES_SELF_RETURNS_NUMBER,\n\t\tvalues: METHOD_DEOPTS_SELF_RETURNS_UNKNOWN\n\t} as unknown as PropertyMap,\n\tOBJECT_PROTOTYPE,\n\ttrue\n);\n","import { AstContext } from '../../Module';\nimport Identifier from '../nodes/Identifier';\nimport { ExpressionEntity } from '../nodes/shared/Expression';\nimport LocalVariable from '../variables/LocalVariable';\nimport ChildScope from './ChildScope';\n\nexport default class BlockScope extends ChildScope {\n\taddDeclaration(\n\t\tidentifier: Identifier,\n\t\tcontext: AstContext,\n\t\tinit: ExpressionEntity | null,\n\t\tisHoisted: boolean\n\t): LocalVariable {\n\t\tif (isHoisted) {\n\t\t\tconst variable = this.parent.addDeclaration(identifier, context, init, isHoisted);\n\t\t\t// Necessary to make sure the init is deoptimized for conditional declarations.\n\t\t\t// We cannot call deoptimizePath here.\n\t\t\tvariable.markInitializersForDeoptimization();\n\t\t\treturn variable;\n\t\t} else {\n\t\t\treturn super.addDeclaration(identifier, context, init, false);\n\t\t}\n\t}\n}\n","import MagicString from 'magic-string';\nimport { RenderOptions } from '../../utils/renderHelpers';\nimport { InclusionContext } from '../ExecutionContext';\nimport * as NodeType from './NodeType';\nimport { ExpressionNode, StatementBase } from './shared/Node';\n\nexport default class ExpressionStatement extends StatementBase {\n\tdirective?: string;\n\texpression!: ExpressionNode;\n\n\tinitialise(): void {\n\t\tif (\n\t\t\tthis.directive &&\n\t\t\tthis.directive !== 'use strict' &&\n\t\t\tthis.parent.type === NodeType.Program\n\t\t) {\n\t\t\tthis.context.warn(\n\t\t\t\t// This is necessary, because either way (deleting or not) can lead to errors.\n\t\t\t\t{\n\t\t\t\t\tcode: 'MODULE_LEVEL_DIRECTIVE',\n\t\t\t\t\tmessage: `Module level directives cause errors when bundled, '${this.directive}' was ignored.`\n\t\t\t\t},\n\t\t\t\tthis.start\n\t\t\t);\n\t\t}\n\t}\n\n\trender(code: MagicString, options: RenderOptions): void {\n\t\tsuper.render(code, options);\n\t\tif (this.included) this.insertSemicolon(code);\n\t}\n\n\tshouldBeIncluded(context: InclusionContext): boolean {\n\t\tif (this.directive && this.directive !== 'use strict')\n\t\t\treturn this.parent.type !== NodeType.Program;\n\n\t\treturn super.shouldBeIncluded(context);\n\t}\n}\n","import MagicString from 'magic-string';\nimport { RenderOptions, renderStatementList } from '../../utils/renderHelpers';\nimport { HasEffectsContext, InclusionContext } from '../ExecutionContext';\nimport BlockScope from '../scopes/BlockScope';\nimport ChildScope from '../scopes/ChildScope';\nimport Scope from '../scopes/Scope';\nimport ExpressionStatement from './ExpressionStatement';\nimport * as NodeType from './NodeType';\nimport { UNKNOWN_EXPRESSION } from './shared/Expression';\nimport { IncludeChildren, Node, StatementBase, StatementNode } from './shared/Node';\n\nexport default class BlockStatement extends StatementBase {\n\tbody!: StatementNode[];\n\ttype!: NodeType.tBlockStatement;\n\n\tprivate deoptimizeBody!: boolean;\n\tprivate directlyIncluded = false;\n\n\taddImplicitReturnExpressionToScope(): void {\n\t\tconst lastStatement = this.body[this.body.length - 1];\n\t\tif (!lastStatement || lastStatement.type !== NodeType.ReturnStatement) {\n\t\t\tthis.scope.addReturnExpression(UNKNOWN_EXPRESSION);\n\t\t}\n\t}\n\n\tcreateScope(parentScope: Scope): void {\n\t\tthis.scope = (this.parent as Node).preventChildBlockScope\n\t\t\t? (parentScope as ChildScope)\n\t\t\t: new BlockScope(parentScope);\n\t}\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tif (this.deoptimizeBody) return true;\n\t\tfor (const node of this.body) {\n\t\t\tif (node.hasEffects(context)) return true;\n\t\t\tif (context.brokenFlow) break;\n\t\t}\n\t\treturn false;\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tif (!this.deoptimizeBody || !this.directlyIncluded) {\n\t\t\tthis.included = true;\n\t\t\tthis.directlyIncluded = true;\n\t\t\tif (this.deoptimizeBody) includeChildrenRecursively = true;\n\t\t\tfor (const node of this.body) {\n\t\t\t\tif (includeChildrenRecursively || node.shouldBeIncluded(context))\n\t\t\t\t\tnode.include(context, includeChildrenRecursively);\n\t\t\t}\n\t\t}\n\t}\n\n\tinitialise(): void {\n\t\tconst firstBodyStatement = this.body[0];\n\t\tthis.deoptimizeBody =\n\t\t\tfirstBodyStatement instanceof ExpressionStatement &&\n\t\t\tfirstBodyStatement.directive === 'use asm';\n\t}\n\n\trender(code: MagicString, options: RenderOptions): void {\n\t\tif (this.body.length) {\n\t\t\trenderStatementList(this.body, code, this.start + 1, this.end - 1, options);\n\t\t} else {\n\t\t\tsuper.render(code, options);\n\t\t}\n\t}\n}\n","import { NormalizedTreeshakingOptions } from '../../rollup/types';\nimport { CallOptions, NO_ARGS } from '../CallOptions';\nimport { BROKEN_FLOW_NONE, HasEffectsContext, InclusionContext } from '../ExecutionContext';\nimport ReturnValueScope from '../scopes/ReturnValueScope';\nimport Scope from '../scopes/Scope';\nimport { ObjectPath, UNKNOWN_PATH, UnknownKey } from '../utils/PathTracker';\nimport BlockStatement from './BlockStatement';\nimport Identifier from './Identifier';\nimport * as NodeType from './NodeType';\nimport RestElement from './RestElement';\nimport SpreadElement from './SpreadElement';\nimport { ExpressionEntity, UNKNOWN_EXPRESSION } from './shared/Expression';\nimport { ExpressionNode, GenericEsTreeNode, IncludeChildren, NodeBase } from './shared/Node';\nimport { PatternNode } from './shared/Pattern';\n\nexport default class ArrowFunctionExpression extends NodeBase {\n\tasync!: boolean;\n\tbody!: BlockStatement | ExpressionNode;\n\tparams!: PatternNode[];\n\tpreventChildBlockScope!: true;\n\tscope!: ReturnValueScope;\n\ttype!: NodeType.tArrowFunctionExpression;\n\tprivate deoptimizedReturn = false;\n\n\tcreateScope(parentScope: Scope): void {\n\t\tthis.scope = new ReturnValueScope(parentScope, this.context);\n\t}\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\t// A reassignment of UNKNOWN_PATH is considered equivalent to having lost track\n\t\t// which means the return expression needs to be reassigned\n\t\tif (path.length === 1 && path[0] === UnknownKey) {\n\t\t\tthis.scope.getReturnExpression().deoptimizePath(UNKNOWN_PATH);\n\t\t}\n\t}\n\n\t// Arrow functions do not mutate their context\n\tdeoptimizeThisOnEventAtPath(): void {}\n\n\tgetReturnExpressionWhenCalledAtPath(path: ObjectPath): ExpressionEntity {\n\t\tif (path.length !== 0) {\n\t\t\treturn UNKNOWN_EXPRESSION;\n\t\t}\n\t\tif (this.async) {\n\t\t\tif (!this.deoptimizedReturn) {\n\t\t\t\tthis.deoptimizedReturn = true;\n\t\t\t\tthis.scope.getReturnExpression().deoptimizePath(UNKNOWN_PATH);\n\t\t\t\tthis.context.requestTreeshakingPass();\n\t\t\t}\n\t\t\treturn UNKNOWN_EXPRESSION;\n\t\t}\n\t\treturn this.scope.getReturnExpression();\n\t}\n\n\thasEffects(): boolean {\n\t\treturn false;\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath): boolean {\n\t\treturn path.length > 1;\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath): boolean {\n\t\treturn path.length > 1;\n\t}\n\n\thasEffectsWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\t_callOptions: CallOptions,\n\t\tcontext: HasEffectsContext\n\t): boolean {\n\t\tif (path.length > 0) return true;\n\t\tif (this.async) {\n\t\t\tconst { propertyReadSideEffects } = this.context.options\n\t\t\t\t.treeshake as NormalizedTreeshakingOptions;\n\t\t\tconst returnExpression = this.scope.getReturnExpression();\n\t\t\tif (\n\t\t\t\treturnExpression.hasEffectsWhenCalledAtPath(\n\t\t\t\t\t['then'],\n\t\t\t\t\t{ args: NO_ARGS, thisParam: null, withNew: false },\n\t\t\t\t\tcontext\n\t\t\t\t) ||\n\t\t\t\t(propertyReadSideEffects &&\n\t\t\t\t\t(propertyReadSideEffects === 'always' ||\n\t\t\t\t\t\treturnExpression.hasEffectsWhenAccessedAtPath(['then'], context)))\n\t\t\t) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tfor (const param of this.params) {\n\t\t\tif (param.hasEffects(context)) return true;\n\t\t}\n\t\tconst { ignore, brokenFlow } = context;\n\t\tcontext.ignore = {\n\t\t\tbreaks: false,\n\t\t\tcontinues: false,\n\t\t\tlabels: new Set(),\n\t\t\treturnYield: true\n\t\t};\n\t\tif (this.body.hasEffects(context)) return true;\n\t\tcontext.ignore = ignore;\n\t\tcontext.brokenFlow = brokenFlow;\n\t\treturn false;\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tthis.included = true;\n\t\tfor (const param of this.params) {\n\t\t\tif (!(param instanceof Identifier)) {\n\t\t\t\tparam.include(context, includeChildrenRecursively);\n\t\t\t}\n\t\t}\n\t\tconst { brokenFlow } = context;\n\t\tcontext.brokenFlow = BROKEN_FLOW_NONE;\n\t\tthis.body.include(context, includeChildrenRecursively);\n\t\tcontext.brokenFlow = brokenFlow;\n\t}\n\n\tincludeCallArguments(context: InclusionContext, args: (ExpressionNode | SpreadElement)[]): void {\n\t\tthis.scope.includeCallArguments(context, args);\n\t}\n\n\tinitialise(): void {\n\t\tthis.scope.addParameterVariables(\n\t\t\tthis.params.map(param => param.declare('parameter', UNKNOWN_EXPRESSION)),\n\t\t\tthis.params[this.params.length - 1] instanceof RestElement\n\t\t);\n\t\tif (this.body instanceof BlockStatement) {\n\t\t\tthis.body.addImplicitReturnExpressionToScope();\n\t\t} else {\n\t\t\tthis.scope.addReturnExpression(this.body);\n\t\t}\n\t}\n\n\tparseNode(esTreeNode: GenericEsTreeNode): void {\n\t\tif (esTreeNode.body.type === NodeType.BlockStatement) {\n\t\t\tthis.body = new this.context.nodeConstructors.BlockStatement(\n\t\t\t\tesTreeNode.body,\n\t\t\t\tthis,\n\t\t\t\tthis.scope.hoistedBodyVarScope\n\t\t\t);\n\t\t}\n\t\tsuper.parseNode(esTreeNode);\n\t}\n}\n\nArrowFunctionExpression.prototype.preventChildBlockScope = true;\n","import MagicString from 'magic-string';\nimport { BLANK } from '../../utils/blank';\nimport {\n\tfindFirstOccurrenceOutsideComment,\n\tfindNonWhiteSpace,\n\tNodeRenderOptions,\n\tremoveLineBreaks,\n\tRenderOptions\n} from '../../utils/renderHelpers';\nimport { getSystemExportFunctionLeft } from '../../utils/systemJsRendering';\nimport { createHasEffectsContext, HasEffectsContext, InclusionContext } from '../ExecutionContext';\nimport { EMPTY_PATH, ObjectPath, UNKNOWN_PATH } from '../utils/PathTracker';\nimport Variable from '../variables/Variable';\nimport * as NodeType from './NodeType';\nimport { ExpressionNode, IncludeChildren, NodeBase } from './shared/Node';\nimport { PatternNode } from './shared/Pattern';\n\nexport default class AssignmentExpression extends NodeBase {\n\tleft!: ExpressionNode | PatternNode;\n\toperator!:\n\t\t| '='\n\t\t| '+='\n\t\t| '-='\n\t\t| '*='\n\t\t| '/='\n\t\t| '%='\n\t\t| '<<='\n\t\t| '>>='\n\t\t| '>>>='\n\t\t| '|='\n\t\t| '^='\n\t\t| '&='\n\t\t| '**=';\n\tright!: ExpressionNode;\n\ttype!: NodeType.tAssignmentExpression;\n\tprotected deoptimized = false;\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tif (!this.deoptimized) this.applyDeoptimizations();\n\t\treturn (\n\t\t\tthis.right.hasEffects(context) ||\n\t\t\tthis.left.hasEffects(context) ||\n\t\t\tthis.left.hasEffectsWhenAssignedAtPath(EMPTY_PATH, context)\n\t\t);\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\treturn path.length > 0 && this.right.hasEffectsWhenAccessedAtPath(path, context);\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tif (!this.deoptimized) this.applyDeoptimizations();\n\t\tthis.included = true;\n\t\tlet hasEffectsContext;\n\t\tif (\n\t\t\tincludeChildrenRecursively ||\n\t\t\tthis.operator !== '=' ||\n\t\t\tthis.left.included ||\n\t\t\t((hasEffectsContext = createHasEffectsContext()),\n\t\t\tthis.left.hasEffects(hasEffectsContext) ||\n\t\t\t\tthis.left.hasEffectsWhenAssignedAtPath(EMPTY_PATH, hasEffectsContext))\n\t\t) {\n\t\t\tthis.left.include(context, includeChildrenRecursively);\n\t\t}\n\t\tthis.right.include(context, includeChildrenRecursively);\n\t}\n\n\trender(\n\t\tcode: MagicString,\n\t\toptions: RenderOptions,\n\t\t{ preventASI, renderedParentType }: NodeRenderOptions = BLANK\n\t): void {\n\t\tif (this.left.included) {\n\t\t\tthis.left.render(code, options);\n\t\t\tthis.right.render(code, options);\n\t\t} else {\n\t\t\tconst inclusionStart = findNonWhiteSpace(\n\t\t\t\tcode.original,\n\t\t\t\tfindFirstOccurrenceOutsideComment(code.original, '=', this.left.end) + 1\n\t\t\t);\n\t\t\tcode.remove(this.start, inclusionStart);\n\t\t\tif (preventASI) {\n\t\t\t\tremoveLineBreaks(code, inclusionStart, this.right.start);\n\t\t\t}\n\t\t\tthis.right.render(code, options, {\n\t\t\t\trenderedParentType: renderedParentType || this.parent.type\n\t\t\t});\n\t\t}\n\t\tif (options.format === 'system') {\n\t\t\tconst exportNames =\n\t\t\t\tthis.left.variable && options.exportNamesByVariable.get(this.left.variable);\n\t\t\tif (this.left.type === 'Identifier' && exportNames) {\n\t\t\t\tconst _ = options.compact ? '' : ' ';\n\t\t\t\tconst operatorPos = findFirstOccurrenceOutsideComment(\n\t\t\t\t\tcode.original,\n\t\t\t\t\tthis.operator,\n\t\t\t\t\tthis.left.end\n\t\t\t\t);\n\t\t\t\tconst operation =\n\t\t\t\t\tthis.operator.length > 1 ? `${exportNames[0]}${_}${this.operator.slice(0, -1)}${_}` : '';\n\t\t\t\tcode.overwrite(\n\t\t\t\t\toperatorPos,\n\t\t\t\t\tfindNonWhiteSpace(code.original, operatorPos + this.operator.length),\n\t\t\t\t\t`=${_}${\n\t\t\t\t\t\texportNames.length === 1\n\t\t\t\t\t\t\t? `exports('${exportNames[0]}',${_}`\n\t\t\t\t\t\t\t: getSystemExportFunctionLeft([this.left.variable!], false, options)\n\t\t\t\t\t}${operation}`\n\t\t\t\t);\n\t\t\t\tcode.appendLeft(this.right.end, ')');\n\t\t\t} else {\n\t\t\t\tconst systemPatternExports: Variable[] = [];\n\t\t\t\tthis.left.addExportedVariables(systemPatternExports, options.exportNamesByVariable);\n\t\t\t\tif (systemPatternExports.length > 0) {\n\t\t\t\t\tcode.prependRight(\n\t\t\t\t\t\tthis.start,\n\t\t\t\t\t\t`(${getSystemExportFunctionLeft(systemPatternExports, true, options)}`\n\t\t\t\t\t);\n\t\t\t\t\tcode.appendLeft(this.end, '))');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected applyDeoptimizations(): void {\n\t\tthis.deoptimized = true;\n\t\tthis.left.deoptimizePath(EMPTY_PATH);\n\t\tthis.right.deoptimizePath(UNKNOWN_PATH);\n\t\tthis.context.requestTreeshakingPass();\n\t}\n}\n","import MagicString from 'magic-string';\nimport { BLANK } from '../../utils/blank';\nimport { NodeRenderOptions, RenderOptions } from '../../utils/renderHelpers';\nimport { DeoptimizableEntity } from '../DeoptimizableEntity';\nimport { HasEffectsContext } from '../ExecutionContext';\nimport {\n\tEMPTY_PATH,\n\tObjectPath,\n\tPathTracker,\n\tSHARED_RECURSION_TRACKER\n} from '../utils/PathTracker';\nimport ExpressionStatement from './ExpressionStatement';\nimport { LiteralValue } from './Literal';\nimport * as NodeType from './NodeType';\nimport { LiteralValueOrUnknown, UnknownValue } from './shared/Expression';\nimport { ExpressionNode, NodeBase } from './shared/Node';\n\nconst binaryOperators: {\n\t[operator: string]: (left: LiteralValue, right: LiteralValue) => LiteralValueOrUnknown;\n} = {\n\t'!=': (left, right) => left != right,\n\t'!==': (left, right) => left !== right,\n\t'%': (left: any, right: any) => left % right,\n\t'&': (left: any, right: any) => left & right,\n\t'*': (left: any, right: any) => left * right,\n\t// At the moment, \"**\" will be transpiled to Math.pow\n\t'**': (left: any, right: any) => left ** right,\n\t'+': (left: any, right: any) => left + right,\n\t'-': (left: any, right: any) => left - right,\n\t'/': (left: any, right: any) => left / right,\n\t'<': (left, right) => (left as NonNullable<LiteralValue>) < (right as NonNullable<LiteralValue>),\n\t'<<': (left: any, right: any) => left << right,\n\t'<=': (left, right) =>\n\t\t(left as NonNullable<LiteralValue>) <= (right as NonNullable<LiteralValue>),\n\t'==': (left, right) => left == right,\n\t'===': (left, right) => left === right,\n\t'>': (left, right) => (left as NonNullable<LiteralValue>) > (right as NonNullable<LiteralValue>),\n\t'>=': (left, right) =>\n\t\t(left as NonNullable<LiteralValue>) >= (right as NonNullable<LiteralValue>),\n\t'>>': (left: any, right: any) => left >> right,\n\t'>>>': (left: any, right: any) => left >>> right,\n\t'^': (left: any, right: any) => left ^ right,\n\tin: () => UnknownValue,\n\tinstanceof: () => UnknownValue,\n\t'|': (left: any, right: any) => left | right\n};\n\nexport default class BinaryExpression extends NodeBase implements DeoptimizableEntity {\n\tleft!: ExpressionNode;\n\toperator!: keyof typeof binaryOperators;\n\tright!: ExpressionNode;\n\ttype!: NodeType.tBinaryExpression;\n\n\tdeoptimizeCache(): void {}\n\n\tgetLiteralValueAtPath(\n\t\tpath: ObjectPath,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): LiteralValueOrUnknown {\n\t\tif (path.length > 0) return UnknownValue;\n\t\tconst leftValue = this.left.getLiteralValueAtPath(EMPTY_PATH, recursionTracker, origin);\n\t\tif (leftValue === UnknownValue) return UnknownValue;\n\n\t\tconst rightValue = this.right.getLiteralValueAtPath(EMPTY_PATH, recursionTracker, origin);\n\t\tif (rightValue === UnknownValue) return UnknownValue;\n\n\t\tconst operatorFn = binaryOperators[this.operator];\n\t\tif (!operatorFn) return UnknownValue;\n\n\t\treturn operatorFn(leftValue, rightValue);\n\t}\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\t// support some implicit type coercion runtime errors\n\t\tif (\n\t\t\tthis.operator === '+' &&\n\t\t\tthis.parent instanceof ExpressionStatement &&\n\t\t\tthis.left.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this) === ''\n\t\t)\n\t\t\treturn true;\n\t\treturn super.hasEffects(context);\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath): boolean {\n\t\treturn path.length > 1;\n\t}\n\n\trender(\n\t\tcode: MagicString,\n\t\toptions: RenderOptions,\n\t\t{ renderedParentType, renderedSurroundingElement }: NodeRenderOptions = BLANK\n\t): void {\n\t\tthis.left.render(code, options, {\n\t\t\trenderedSurroundingElement: renderedParentType || renderedSurroundingElement\n\t\t});\n\t\tthis.right.render(code, options);\n\t}\n}\n","import MagicString from 'magic-string';\nimport { NormalizedTreeshakingOptions } from '../../rollup/types';\nimport { BLANK } from '../../utils/blank';\nimport relativeId from '../../utils/relativeId';\nimport { NodeRenderOptions, RenderOptions } from '../../utils/renderHelpers';\nimport { CallOptions } from '../CallOptions';\nimport { DeoptimizableEntity } from '../DeoptimizableEntity';\nimport { HasEffectsContext, InclusionContext } from '../ExecutionContext';\nimport { EVENT_ACCESSED, EVENT_ASSIGNED, NodeEvent } from '../NodeEvents';\nimport {\n\tEMPTY_PATH,\n\tObjectPath,\n\tObjectPathKey,\n\tPathTracker,\n\tSHARED_RECURSION_TRACKER,\n\tUNKNOWN_PATH,\n\tUnknownKey\n} from '../utils/PathTracker';\nimport ExternalVariable from '../variables/ExternalVariable';\nimport NamespaceVariable from '../variables/NamespaceVariable';\nimport Variable from '../variables/Variable';\nimport AssignmentExpression from './AssignmentExpression';\nimport Identifier from './Identifier';\nimport Literal from './Literal';\nimport * as NodeType from './NodeType';\nimport PrivateIdentifier from './PrivateIdentifier';\nimport SpreadElement from './SpreadElement';\nimport Super from './Super';\nimport {\n\tExpressionEntity,\n\tLiteralValueOrUnknown,\n\tUNKNOWN_EXPRESSION,\n\tUnknownValue\n} from './shared/Expression';\nimport { ExpressionNode, IncludeChildren, NodeBase } from './shared/Node';\n\n// To avoid infinite recursions\nconst MAX_PATH_DEPTH = 7;\n\nfunction getResolvablePropertyKey(memberExpression: MemberExpression): string | null {\n\treturn memberExpression.computed\n\t\t? getResolvableComputedPropertyKey(memberExpression.property)\n\t\t: (memberExpression.property as Identifier).name;\n}\n\nfunction getResolvableComputedPropertyKey(propertyKey: ExpressionNode): string | null {\n\tif (propertyKey instanceof Literal) {\n\t\treturn String(propertyKey.value);\n\t}\n\treturn null;\n}\n\ntype PathWithPositions = { key: string; pos: number }[];\n\nfunction getPathIfNotComputed(memberExpression: MemberExpression): PathWithPositions | null {\n\tconst nextPathKey = memberExpression.propertyKey;\n\tconst object = memberExpression.object;\n\tif (typeof nextPathKey === 'string') {\n\t\tif (object instanceof Identifier) {\n\t\t\treturn [\n\t\t\t\t{ key: object.name, pos: object.start },\n\t\t\t\t{ key: nextPathKey, pos: memberExpression.property.start }\n\t\t\t];\n\t\t}\n\t\tif (object instanceof MemberExpression) {\n\t\t\tconst parentPath = getPathIfNotComputed(object);\n\t\t\treturn (\n\t\t\t\tparentPath && [...parentPath, { key: nextPathKey, pos: memberExpression.property.start }]\n\t\t\t);\n\t\t}\n\t}\n\treturn null;\n}\n\nfunction getStringFromPath(path: PathWithPositions): string {\n\tlet pathString = path[0].key;\n\tfor (let index = 1; index < path.length; index++) {\n\t\tpathString += '.' + path[index].key;\n\t}\n\treturn pathString;\n}\n\nexport default class MemberExpression extends NodeBase implements DeoptimizableEntity {\n\tcomputed!: boolean;\n\tobject!: ExpressionNode | Super;\n\toptional!: boolean;\n\tproperty!: ExpressionNode | PrivateIdentifier;\n\tpropertyKey!: ObjectPathKey | null;\n\ttype!: NodeType.tMemberExpression;\n\tvariable: Variable | null = null;\n\tprotected deoptimized = false;\n\tprivate bound = false;\n\tprivate expressionsToBeDeoptimized: DeoptimizableEntity[] = [];\n\tprivate replacement: string | null = null;\n\n\tbind(): void {\n\t\tthis.bound = true;\n\t\tconst path = getPathIfNotComputed(this);\n\t\tconst baseVariable = path && this.scope.findVariable(path[0].key);\n\t\tif (baseVariable && baseVariable.isNamespace) {\n\t\t\tconst resolvedVariable = this.resolveNamespaceVariables(baseVariable, path!.slice(1));\n\t\t\tif (!resolvedVariable) {\n\t\t\t\tsuper.bind();\n\t\t\t} else if (typeof resolvedVariable === 'string') {\n\t\t\t\tthis.replacement = resolvedVariable;\n\t\t\t} else {\n\t\t\t\tthis.variable = resolvedVariable;\n\t\t\t\tthis.scope.addNamespaceMemberAccess(getStringFromPath(path!), resolvedVariable);\n\t\t\t}\n\t\t} else {\n\t\t\tsuper.bind();\n\t\t}\n\t}\n\n\tdeoptimizeCache(): void {\n\t\tconst expressionsToBeDeoptimized = this.expressionsToBeDeoptimized;\n\t\tthis.expressionsToBeDeoptimized = [];\n\t\tthis.propertyKey = UnknownKey;\n\t\tthis.object.deoptimizePath(UNKNOWN_PATH);\n\t\tfor (const expression of expressionsToBeDeoptimized) {\n\t\t\texpression.deoptimizeCache();\n\t\t}\n\t}\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tif (path.length === 0) this.disallowNamespaceReassignment();\n\t\tif (this.variable) {\n\t\t\tthis.variable.deoptimizePath(path);\n\t\t} else if (!this.replacement) {\n\t\t\tif (path.length < MAX_PATH_DEPTH) {\n\t\t\t\tthis.object.deoptimizePath([this.getPropertyKey(), ...path]);\n\t\t\t}\n\t\t}\n\t}\n\n\tdeoptimizeThisOnEventAtPath(\n\t\tevent: NodeEvent,\n\t\tpath: ObjectPath,\n\t\tthisParameter: ExpressionEntity,\n\t\trecursionTracker: PathTracker\n\t): void {\n\t\tif (this.variable) {\n\t\t\tthis.variable.deoptimizeThisOnEventAtPath(event, path, thisParameter, recursionTracker);\n\t\t} else if (!this.replacement) {\n\t\t\tif (path.length < MAX_PATH_DEPTH) {\n\t\t\t\tthis.object.deoptimizeThisOnEventAtPath(\n\t\t\t\t\tevent,\n\t\t\t\t\t[this.getPropertyKey(), ...path],\n\t\t\t\t\tthisParameter,\n\t\t\t\t\trecursionTracker\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthisParameter.deoptimizePath(UNKNOWN_PATH);\n\t\t\t}\n\t\t}\n\t}\n\n\tgetLiteralValueAtPath(\n\t\tpath: ObjectPath,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): LiteralValueOrUnknown {\n\t\tif (this.variable !== null) {\n\t\t\treturn this.variable.getLiteralValueAtPath(path, recursionTracker, origin);\n\t\t}\n\t\tif (this.replacement) {\n\t\t\treturn UnknownValue;\n\t\t}\n\t\tthis.expressionsToBeDeoptimized.push(origin);\n\t\tif (path.length < MAX_PATH_DEPTH) {\n\t\t\treturn this.object.getLiteralValueAtPath(\n\t\t\t\t[this.getPropertyKey(), ...path],\n\t\t\t\trecursionTracker,\n\t\t\t\torigin\n\t\t\t);\n\t\t}\n\t\treturn UnknownValue;\n\t}\n\n\tgetReturnExpressionWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): ExpressionEntity {\n\t\tif (this.variable !== null) {\n\t\t\treturn this.variable.getReturnExpressionWhenCalledAtPath(\n\t\t\t\tpath,\n\t\t\t\tcallOptions,\n\t\t\t\trecursionTracker,\n\t\t\t\torigin\n\t\t\t);\n\t\t}\n\t\tif (this.replacement) {\n\t\t\treturn UNKNOWN_EXPRESSION;\n\t\t}\n\t\tthis.expressionsToBeDeoptimized.push(origin);\n\t\tif (path.length < MAX_PATH_DEPTH) {\n\t\t\treturn this.object.getReturnExpressionWhenCalledAtPath(\n\t\t\t\t[this.getPropertyKey(), ...path],\n\t\t\t\tcallOptions,\n\t\t\t\trecursionTracker,\n\t\t\t\torigin\n\t\t\t);\n\t\t}\n\t\treturn UNKNOWN_EXPRESSION;\n\t}\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tif (!this.deoptimized) this.applyDeoptimizations();\n\t\tconst { propertyReadSideEffects } = this.context.options\n\t\t\t.treeshake as NormalizedTreeshakingOptions;\n\t\treturn (\n\t\t\tthis.property.hasEffects(context) ||\n\t\t\tthis.object.hasEffects(context) ||\n\t\t\t// Assignments do not access the property before assigning\n\t\t\t(!(\n\t\t\t\tthis.variable ||\n\t\t\t\tthis.replacement ||\n\t\t\t\t(this.parent instanceof AssignmentExpression && this.parent.operator === '=')\n\t\t\t) &&\n\t\t\t\tpropertyReadSideEffects &&\n\t\t\t\t(propertyReadSideEffects === 'always' ||\n\t\t\t\t\tthis.object.hasEffectsWhenAccessedAtPath([this.getPropertyKey()], context)))\n\t\t);\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\tif (this.variable !== null) {\n\t\t\treturn this.variable.hasEffectsWhenAccessedAtPath(path, context);\n\t\t}\n\t\tif (this.replacement) {\n\t\t\treturn true;\n\t\t}\n\t\tif (path.length < MAX_PATH_DEPTH) {\n\t\t\treturn this.object.hasEffectsWhenAccessedAtPath([this.getPropertyKey(), ...path], context);\n\t\t}\n\t\treturn true;\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\tif (this.variable !== null) {\n\t\t\treturn this.variable.hasEffectsWhenAssignedAtPath(path, context);\n\t\t}\n\t\tif (this.replacement) {\n\t\t\treturn true;\n\t\t}\n\t\tif (path.length < MAX_PATH_DEPTH) {\n\t\t\treturn this.object.hasEffectsWhenAssignedAtPath([this.getPropertyKey(), ...path], context);\n\t\t}\n\t\treturn true;\n\t}\n\n\thasEffectsWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\tcontext: HasEffectsContext\n\t): boolean {\n\t\tif (this.variable !== null) {\n\t\t\treturn this.variable.hasEffectsWhenCalledAtPath(path, callOptions, context);\n\t\t}\n\t\tif (this.replacement) {\n\t\t\treturn true;\n\t\t}\n\t\tif (path.length < MAX_PATH_DEPTH) {\n\t\t\treturn this.object.hasEffectsWhenCalledAtPath(\n\t\t\t\t[this.getPropertyKey(), ...path],\n\t\t\t\tcallOptions,\n\t\t\t\tcontext\n\t\t\t);\n\t\t}\n\t\treturn true;\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tif (!this.deoptimized) this.applyDeoptimizations();\n\t\tif (!this.included) {\n\t\t\tthis.included = true;\n\t\t\tif (this.variable !== null) {\n\t\t\t\tthis.context.includeVariableInModule(this.variable);\n\t\t\t}\n\t\t}\n\t\tthis.object.include(context, includeChildrenRecursively);\n\t\tthis.property.include(context, includeChildrenRecursively);\n\t}\n\n\tincludeCallArguments(context: InclusionContext, args: (ExpressionNode | SpreadElement)[]): void {\n\t\tif (this.variable) {\n\t\t\tthis.variable.includeCallArguments(context, args);\n\t\t} else {\n\t\t\tsuper.includeCallArguments(context, args);\n\t\t}\n\t}\n\n\tinitialise(): void {\n\t\tthis.propertyKey = getResolvablePropertyKey(this);\n\t}\n\n\trender(\n\t\tcode: MagicString,\n\t\toptions: RenderOptions,\n\t\t{\n\t\t\trenderedParentType,\n\t\t\tisCalleeOfRenderedParent,\n\t\t\trenderedSurroundingElement\n\t\t}: NodeRenderOptions = BLANK\n\t): void {\n\t\tif (this.variable || this.replacement) {\n\t\t\tlet replacement = this.variable ? this.variable.getName() : this.replacement;\n\t\t\tif (renderedParentType && isCalleeOfRenderedParent) replacement = '0, ' + replacement;\n\t\t\tcode.overwrite(this.start, this.end, replacement!, {\n\t\t\t\tcontentOnly: true,\n\t\t\t\tstoreName: true\n\t\t\t});\n\t\t} else {\n\t\t\tif (renderedParentType && isCalleeOfRenderedParent) {\n\t\t\t\tcode.appendRight(this.start, '0, ');\n\t\t\t}\n\t\t\tconst surroundingElement = renderedParentType || renderedSurroundingElement;\n\t\t\tthis.object.render(\n\t\t\t\tcode,\n\t\t\t\toptions,\n\t\t\t\tsurroundingElement ? { renderedSurroundingElement: surroundingElement } : BLANK\n\t\t\t);\n\t\t\tthis.property.render(code, options);\n\t\t}\n\t}\n\n\tprotected applyDeoptimizations(): void {\n\t\tthis.deoptimized = true;\n\t\tconst { propertyReadSideEffects } = this.context.options\n\t\t\t.treeshake as NormalizedTreeshakingOptions;\n\t\tif (\n\t\t\t// Namespaces are not bound and should not be deoptimized\n\t\t\tthis.bound &&\n\t\t\tpropertyReadSideEffects &&\n\t\t\t!(this.variable || this.replacement)\n\t\t) {\n\t\t\t// Regular Assignments do not access the property before assigning\n\t\t\tif (!(this.parent instanceof AssignmentExpression && this.parent.operator === '=')) {\n\t\t\t\tthis.object.deoptimizeThisOnEventAtPath(\n\t\t\t\t\tEVENT_ACCESSED,\n\t\t\t\t\t[this.propertyKey!],\n\t\t\t\t\tthis.object,\n\t\t\t\t\tSHARED_RECURSION_TRACKER\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (this.parent instanceof AssignmentExpression) {\n\t\t\t\tthis.object.deoptimizeThisOnEventAtPath(\n\t\t\t\t\tEVENT_ASSIGNED,\n\t\t\t\t\t[this.propertyKey!],\n\t\t\t\t\tthis.object,\n\t\t\t\t\tSHARED_RECURSION_TRACKER\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis.context.requestTreeshakingPass();\n\t\t}\n\t}\n\n\tprivate disallowNamespaceReassignment() {\n\t\tif (this.object instanceof Identifier) {\n\t\t\tconst variable = this.scope.findVariable(this.object.name);\n\t\t\tif (variable.isNamespace) {\n\t\t\t\tif (this.variable) {\n\t\t\t\t\tthis.context.includeVariableInModule(this.variable);\n\t\t\t\t}\n\t\t\t\tthis.context.warn(\n\t\t\t\t\t{\n\t\t\t\t\t\tcode: 'ILLEGAL_NAMESPACE_REASSIGNMENT',\n\t\t\t\t\t\tmessage: `Illegal reassignment to import '${this.object.name}'`\n\t\t\t\t\t},\n\t\t\t\t\tthis.start\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate getPropertyKey(): ObjectPathKey {\n\t\tif (this.propertyKey === null) {\n\t\t\tthis.propertyKey = UnknownKey;\n\t\t\tconst value = this.property.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this);\n\t\t\treturn (this.propertyKey = value === UnknownValue ? UnknownKey : String(value));\n\t\t}\n\t\treturn this.propertyKey;\n\t}\n\n\tprivate resolveNamespaceVariables(\n\t\tbaseVariable: Variable,\n\t\tpath: PathWithPositions\n\t): Variable | string | null {\n\t\tif (path.length === 0) return baseVariable;\n\t\tif (!baseVariable.isNamespace || baseVariable instanceof ExternalVariable) return null;\n\t\tconst exportName = path[0].key;\n\t\tconst variable = (baseVariable as NamespaceVariable).context.traceExport(exportName);\n\t\tif (!variable) {\n\t\t\tconst fileName = (baseVariable as NamespaceVariable).context.fileName;\n\t\t\tthis.context.warn(\n\t\t\t\t{\n\t\t\t\t\tcode: 'MISSING_EXPORT',\n\t\t\t\t\texporter: relativeId(fileName),\n\t\t\t\t\timporter: relativeId(this.context.fileName),\n\t\t\t\t\tmessage: `'${exportName}' is not exported by '${relativeId(fileName)}'`,\n\t\t\t\t\tmissing: exportName,\n\t\t\t\t\turl: `https://rollupjs.org/guide/en/#error-name-is-not-exported-by-module`\n\t\t\t\t},\n\t\t\t\tpath[0].pos\n\t\t\t);\n\t\t\treturn 'undefined';\n\t\t}\n\t\treturn this.resolveNamespaceVariables(variable, path.slice(1));\n\t}\n}\n","import { AstContext } from '../../Module';\nimport Identifier from '../nodes/Identifier';\nimport { ExpressionEntity } from '../nodes/shared/Expression';\nimport { UNDEFINED_EXPRESSION } from '../values';\nimport LocalVariable from '../variables/LocalVariable';\nimport ParameterScope from './ParameterScope';\n\nexport default class CatchScope extends ParameterScope {\n\taddDeclaration(\n\t\tidentifier: Identifier,\n\t\tcontext: AstContext,\n\t\tinit: ExpressionEntity | null,\n\t\tisHoisted: boolean\n\t): LocalVariable {\n\t\tconst existingParameter = this.variables.get(identifier.name) as LocalVariable;\n\t\tif (existingParameter) {\n\t\t\t// While we still create a hoisted declaration, the initializer goes to\n\t\t\t// the parameter. Note that technically, the declaration now belongs to\n\t\t\t// two variables, which is not correct but should not cause issues.\n\t\t\tthis.parent.addDeclaration(identifier, context, UNDEFINED_EXPRESSION, isHoisted);\n\t\t\texistingParameter.addDeclaration(identifier, init);\n\t\t\treturn existingParameter;\n\t\t}\n\t\treturn this.parent.addDeclaration(identifier, context, init, isHoisted);\n\t}\n}\n","import { AstContext } from '../../Module';\nimport { ExpressionEntity } from '../nodes/shared/Expression';\nimport LocalVariable from '../variables/LocalVariable';\nimport ThisVariable from '../variables/ThisVariable';\nimport ChildScope from './ChildScope';\nimport Scope from './Scope';\n\nexport default class ClassBodyScope extends ChildScope {\n\tinstanceScope: ChildScope;\n\tthisVariable: LocalVariable;\n\n\tconstructor(parent: Scope, classNode: ExpressionEntity, context: AstContext) {\n\t\tsuper(parent);\n\t\tthis.variables.set(\n\t\t\t'this',\n\t\t\t(this.thisVariable = new LocalVariable('this', null, classNode, context))\n\t\t);\n\t\tthis.instanceScope = new ChildScope(this);\n\t\tthis.instanceScope.variables.set('this', new ThisVariable(context));\n\t}\n\n\tfindLexicalBoundary(): ChildScope {\n\t\treturn this;\n\t}\n}\n","import { CallOptions } from '../../CallOptions';\nimport { DeoptimizableEntity } from '../../DeoptimizableEntity';\nimport { HasEffectsContext, InclusionContext } from '../../ExecutionContext';\nimport { ObjectPath, PathTracker } from '../../utils/PathTracker';\nimport { ExpressionEntity } from './Expression';\nimport { IncludeChildren } from './Node';\n\nexport class MultiExpression extends ExpressionEntity {\n\tincluded = false;\n\n\tconstructor(private expressions: ExpressionEntity[]) {\n\t\tsuper();\n\t}\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tfor (const expression of this.expressions) {\n\t\t\texpression.deoptimizePath(path);\n\t\t}\n\t}\n\n\tgetReturnExpressionWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): ExpressionEntity {\n\t\treturn new MultiExpression(\n\t\t\tthis.expressions.map(expression =>\n\t\t\t\texpression.getReturnExpressionWhenCalledAtPath(path, callOptions, recursionTracker, origin)\n\t\t\t)\n\t\t);\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\tfor (const expression of this.expressions) {\n\t\t\tif (expression.hasEffectsWhenAccessedAtPath(path, context)) return true;\n\t\t}\n\t\treturn false;\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\tfor (const expression of this.expressions) {\n\t\t\tif (expression.hasEffectsWhenAssignedAtPath(path, context)) return true;\n\t\t}\n\t\treturn false;\n\t}\n\n\thasEffectsWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\tcontext: HasEffectsContext\n\t): boolean {\n\t\tfor (const expression of this.expressions) {\n\t\t\tif (expression.hasEffectsWhenCalledAtPath(path, callOptions, context)) return true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\t// This is only relevant to include values that do not have an AST representation,\n\t\t// such as UnknownArrayExpression. Thus we only need to include them once.\n\t\tfor (const expression of this.expressions) {\n\t\t\tif (!expression.included) {\n\t\t\t\texpression.include(context, includeChildrenRecursively);\n\t\t\t}\n\t\t}\n\t}\n}\n","import MagicString from 'magic-string';\nimport { NodeRenderOptions, RenderOptions } from '../../utils/renderHelpers';\nimport { HasEffectsContext } from '../ExecutionContext';\nimport ClassDeclaration from './ClassDeclaration';\nimport ExportSpecifier from './ExportSpecifier';\nimport FunctionDeclaration from './FunctionDeclaration';\nimport Literal from './Literal';\nimport * as NodeType from './NodeType';\nimport VariableDeclaration from './VariableDeclaration';\nimport { Node, NodeBase } from './shared/Node';\n\nexport default class ExportNamedDeclaration extends NodeBase {\n\tdeclaration!: FunctionDeclaration | ClassDeclaration | VariableDeclaration | null;\n\tneedsBoundaries!: true;\n\tsource!: Literal<string> | null;\n\tspecifiers!: ExportSpecifier[];\n\ttype!: NodeType.tExportNamedDeclaration;\n\n\tbind(): void {\n\t\t// Do not bind specifiers\n\t\tif (this.declaration !== null) this.declaration.bind();\n\t}\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\treturn this.declaration !== null && this.declaration.hasEffects(context);\n\t}\n\n\tinitialise(): void {\n\t\tthis.context.addExport(this);\n\t}\n\n\trender(code: MagicString, options: RenderOptions, nodeRenderOptions?: NodeRenderOptions): void {\n\t\tconst { start, end } = nodeRenderOptions as { end: number; start: number };\n\t\tif (this.declaration === null) {\n\t\t\tcode.remove(start, end);\n\t\t} else {\n\t\t\tcode.remove(this.start, this.declaration.start);\n\t\t\t(this.declaration as Node).render(code, options, { end, start });\n\t\t}\n\t}\n}\n\nExportNamedDeclaration.prototype.needsBoundaries = true;\n","import { AstContext } from '../../Module';\nimport Identifier from '../nodes/Identifier';\nimport { ExpressionEntity } from '../nodes/shared/Expression';\nimport LocalVariable from '../variables/LocalVariable';\nimport BlockScope from './BlockScope';\n\nexport default class TrackingScope extends BlockScope {\n\tpublic hoistedDeclarations: Identifier[] = [];\n\n\taddDeclaration(\n\t\tidentifier: Identifier,\n\t\tcontext: AstContext,\n\t\tinit: ExpressionEntity | null,\n\t\tisHoisted: boolean\n\t): LocalVariable {\n\t\tthis.hoistedDeclarations.push(identifier);\n\t\treturn super.addDeclaration(identifier, context, init, isHoisted);\n\t}\n}\n","import MagicString from 'magic-string';\nimport { RenderOptions } from '../../utils/renderHelpers';\nimport { DeoptimizableEntity } from '../DeoptimizableEntity';\nimport { BROKEN_FLOW_NONE, HasEffectsContext, InclusionContext } from '../ExecutionContext';\nimport TrackingScope from '../scopes/TrackingScope';\nimport { EMPTY_PATH, SHARED_RECURSION_TRACKER } from '../utils/PathTracker';\nimport BlockStatement from './BlockStatement';\nimport Identifier from './Identifier';\nimport * as NodeType from './NodeType';\nimport { LiteralValueOrUnknown, UnknownValue } from './shared/Expression';\nimport {\n\tExpressionNode,\n\tGenericEsTreeNode,\n\tIncludeChildren,\n\tStatementBase,\n\tStatementNode\n} from './shared/Node';\n\nconst unset = Symbol('unset');\n\nexport default class IfStatement extends StatementBase implements DeoptimizableEntity {\n\talternate!: StatementNode | null;\n\tconsequent!: StatementNode;\n\ttest!: ExpressionNode;\n\ttype!: NodeType.tIfStatement;\n\n\tprivate alternateScope?: TrackingScope;\n\tprivate consequentScope!: TrackingScope;\n\tprivate testValue: LiteralValueOrUnknown | typeof unset = unset;\n\n\tdeoptimizeCache(): void {\n\t\tthis.testValue = UnknownValue;\n\t}\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tif (this.test.hasEffects(context)) {\n\t\t\treturn true;\n\t\t}\n\t\tconst testValue = this.getTestValue();\n\t\tif (testValue === UnknownValue) {\n\t\t\tconst { brokenFlow } = context;\n\t\t\tif (this.consequent.hasEffects(context)) return true;\n\t\t\tconst consequentBrokenFlow = context.brokenFlow;\n\t\t\tcontext.brokenFlow = brokenFlow;\n\t\t\tif (this.alternate === null) return false;\n\t\t\tif (this.alternate.hasEffects(context)) return true;\n\t\t\tcontext.brokenFlow =\n\t\t\t\tcontext.brokenFlow < consequentBrokenFlow ? context.brokenFlow : consequentBrokenFlow;\n\t\t\treturn false;\n\t\t}\n\t\treturn testValue\n\t\t\t? this.consequent.hasEffects(context)\n\t\t\t: this.alternate !== null && this.alternate.hasEffects(context);\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tthis.included = true;\n\t\tif (includeChildrenRecursively) {\n\t\t\tthis.includeRecursively(includeChildrenRecursively, context);\n\t\t} else {\n\t\t\tconst testValue = this.getTestValue();\n\t\t\tif (testValue === UnknownValue) {\n\t\t\t\tthis.includeUnknownTest(context);\n\t\t\t} else {\n\t\t\t\tthis.includeKnownTest(context, testValue);\n\t\t\t}\n\t\t}\n\t}\n\n\tparseNode(esTreeNode: GenericEsTreeNode): void {\n\t\tthis.consequentScope = new TrackingScope(this.scope);\n\t\tthis.consequent = new (this.context.nodeConstructors[esTreeNode.consequent.type] ||\n\t\t\tthis.context.nodeConstructors.UnknownNode)(esTreeNode.consequent, this, this.consequentScope);\n\t\tif (esTreeNode.alternate) {\n\t\t\tthis.alternateScope = new TrackingScope(this.scope);\n\t\t\tthis.alternate = new (this.context.nodeConstructors[esTreeNode.alternate.type] ||\n\t\t\t\tthis.context.nodeConstructors.UnknownNode)(esTreeNode.alternate, this, this.alternateScope);\n\t\t}\n\t\tsuper.parseNode(esTreeNode);\n\t}\n\n\trender(code: MagicString, options: RenderOptions): void {\n\t\t// Note that unknown test values are always included\n\t\tconst testValue = this.getTestValue();\n\t\tconst hoistedDeclarations: Identifier[] = [];\n\t\tconst includesIfElse = this.test.included;\n\t\tconst noTreeshake = !this.context.options.treeshake;\n\t\tif (includesIfElse) {\n\t\t\tthis.test.render(code, options);\n\t\t} else {\n\t\t\tcode.remove(this.start, this.consequent.start);\n\t\t}\n\t\tif (this.consequent.included && (noTreeshake || testValue === UnknownValue || testValue)) {\n\t\t\tthis.consequent.render(code, options);\n\t\t} else {\n\t\t\tcode.overwrite(this.consequent.start, this.consequent.end, includesIfElse ? ';' : '');\n\t\t\thoistedDeclarations.push(...this.consequentScope.hoistedDeclarations);\n\t\t}\n\t\tif (this.alternate) {\n\t\t\tif (this.alternate.included && (noTreeshake || testValue === UnknownValue || !testValue)) {\n\t\t\t\tif (includesIfElse) {\n\t\t\t\t\tif (code.original.charCodeAt(this.alternate.start - 1) === 101) {\n\t\t\t\t\t\tcode.prependLeft(this.alternate.start, ' ');\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcode.remove(this.consequent.end, this.alternate.start);\n\t\t\t\t}\n\t\t\t\tthis.alternate.render(code, options);\n\t\t\t} else {\n\t\t\t\tif (includesIfElse && this.shouldKeepAlternateBranch()) {\n\t\t\t\t\tcode.overwrite(this.alternate.start, this.end, ';');\n\t\t\t\t} else {\n\t\t\t\t\tcode.remove(this.consequent.end, this.end);\n\t\t\t\t}\n\t\t\t\thoistedDeclarations.push(...this.alternateScope!.hoistedDeclarations);\n\t\t\t}\n\t\t}\n\t\tthis.renderHoistedDeclarations(hoistedDeclarations, code);\n\t}\n\n\tprivate getTestValue(): LiteralValueOrUnknown {\n\t\tif (this.testValue === unset) {\n\t\t\treturn (this.testValue = this.test.getLiteralValueAtPath(\n\t\t\t\tEMPTY_PATH,\n\t\t\t\tSHARED_RECURSION_TRACKER,\n\t\t\t\tthis\n\t\t\t));\n\t\t}\n\t\treturn this.testValue;\n\t}\n\n\tprivate includeKnownTest(context: InclusionContext, testValue: LiteralValueOrUnknown) {\n\t\tif (this.test.shouldBeIncluded(context)) {\n\t\t\tthis.test.include(context, false);\n\t\t}\n\t\tif (testValue && this.consequent.shouldBeIncluded(context)) {\n\t\t\tthis.consequent.includeAsSingleStatement(context, false);\n\t\t}\n\t\tif (this.alternate !== null && !testValue && this.alternate.shouldBeIncluded(context)) {\n\t\t\tthis.alternate.includeAsSingleStatement(context, false);\n\t\t}\n\t}\n\n\tprivate includeRecursively(\n\t\tincludeChildrenRecursively: true | 'variables',\n\t\tcontext: InclusionContext\n\t) {\n\t\tthis.test.include(context, includeChildrenRecursively);\n\t\tthis.consequent.include(context, includeChildrenRecursively);\n\t\tif (this.alternate !== null) {\n\t\t\tthis.alternate.include(context, includeChildrenRecursively);\n\t\t}\n\t}\n\n\tprivate includeUnknownTest(context: InclusionContext) {\n\t\tthis.test.include(context, false);\n\t\tconst { brokenFlow } = context;\n\t\tlet consequentBrokenFlow = BROKEN_FLOW_NONE;\n\t\tif (this.consequent.shouldBeIncluded(context)) {\n\t\t\tthis.consequent.includeAsSingleStatement(context, false);\n\t\t\tconsequentBrokenFlow = context.brokenFlow;\n\t\t\tcontext.brokenFlow = brokenFlow;\n\t\t}\n\t\tif (this.alternate !== null && this.alternate.shouldBeIncluded(context)) {\n\t\t\tthis.alternate.includeAsSingleStatement(context, false);\n\t\t\tcontext.brokenFlow =\n\t\t\t\tcontext.brokenFlow < consequentBrokenFlow ? context.brokenFlow : consequentBrokenFlow;\n\t\t}\n\t}\n\n\tprivate renderHoistedDeclarations(hoistedDeclarations: Identifier[], code: MagicString) {\n\t\tconst hoistedVars = [\n\t\t\t...new Set(\n\t\t\t\thoistedDeclarations.map(identifier => {\n\t\t\t\t\tconst variable = identifier.variable!;\n\t\t\t\t\treturn variable.included ? variable.getName() : '';\n\t\t\t\t})\n\t\t\t)\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(', ');\n\t\tif (hoistedVars) {\n\t\t\tconst parentType = this.parent.type;\n\t\t\tconst needsBraces = parentType !== NodeType.Program && parentType !== NodeType.BlockStatement;\n\t\t\tcode.prependRight(this.start, `${needsBraces ? '{ ' : ''}var ${hoistedVars}; `);\n\t\t\tif (needsBraces) {\n\t\t\t\tcode.appendLeft(this.end, ` }`);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate shouldKeepAlternateBranch() {\n\t\tlet currentParent = this.parent;\n\t\tdo {\n\t\t\tif (currentParent instanceof IfStatement && currentParent.alternate) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif (currentParent instanceof BlockStatement) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tcurrentParent = (currentParent as any).parent;\n\t\t} while (currentParent);\n\t\treturn false;\n\t}\n}\n","import MagicString from 'magic-string';\nimport { NodeRenderOptions, RenderOptions } from '../../utils/renderHelpers';\nimport ImportDefaultSpecifier from './ImportDefaultSpecifier';\nimport ImportNamespaceSpecifier from './ImportNamespaceSpecifier';\nimport ImportSpecifier from './ImportSpecifier';\nimport Literal from './Literal';\nimport * as NodeType from './NodeType';\nimport { NodeBase } from './shared/Node';\n\nexport default class ImportDeclaration extends NodeBase {\n\tneedsBoundaries!: true;\n\tsource!: Literal<string>;\n\tspecifiers!: (ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier)[];\n\ttype!: NodeType.tImportDeclaration;\n\n\t// Do not bind specifiers\n\tbind(): void {}\n\n\thasEffects(): boolean {\n\t\treturn false;\n\t}\n\n\tinitialise(): void {\n\t\tthis.context.addImport(this);\n\t}\n\n\trender(code: MagicString, _options: RenderOptions, nodeRenderOptions?: NodeRenderOptions): void {\n\t\tcode.remove(nodeRenderOptions!.start!, nodeRenderOptions!.end!);\n\t}\n}\n\nImportDeclaration.prototype.needsBoundaries = true;\n","const INTEROP_DEFAULT_VARIABLE = '_interopDefault';\nconst INTEROP_DEFAULT_LEGACY_VARIABLE = '_interopDefaultLegacy';\nconst INTEROP_NAMESPACE_VARIABLE = '_interopNamespace';\nconst INTEROP_NAMESPACE_DEFAULT_VARIABLE = '_interopNamespaceDefault';\nconst INTEROP_NAMESPACE_DEFAULT_ONLY_VARIABLE = '_interopNamespaceDefaultOnly';\n\nexport const defaultInteropHelpersByInteropType: { [interopType: string]: string | null } = {\n\tauto: INTEROP_DEFAULT_VARIABLE,\n\tdefault: null,\n\tdefaultOnly: null,\n\tesModule: null,\n\tfalse: null,\n\ttrue: INTEROP_DEFAULT_LEGACY_VARIABLE\n};\n\nexport function isDefaultAProperty(interopType: string, externalLiveBindings: boolean): boolean {\n\treturn (\n\t\tinteropType === 'esModule' ||\n\t\t(externalLiveBindings && (interopType === 'auto' || interopType === 'true'))\n\t);\n}\n\nexport const namespaceInteropHelpersByInteropType: { [interopType: string]: string | null } = {\n\tauto: INTEROP_NAMESPACE_VARIABLE,\n\tdefault: INTEROP_NAMESPACE_DEFAULT_VARIABLE,\n\tdefaultOnly: INTEROP_NAMESPACE_DEFAULT_ONLY_VARIABLE,\n\tesModule: null,\n\tfalse: null,\n\ttrue: INTEROP_NAMESPACE_VARIABLE\n};\n\nexport function canDefaultBeTakenFromNamespace(\n\tinteropType: string,\n\texternalLiveBindings: boolean\n): boolean {\n\treturn (\n\t\tisDefaultAProperty(interopType, externalLiveBindings) &&\n\t\tdefaultInteropHelpersByInteropType[interopType] === INTEROP_DEFAULT_VARIABLE\n\t);\n}\n\nexport function getDefaultOnlyHelper(): string {\n\treturn INTEROP_NAMESPACE_DEFAULT_ONLY_VARIABLE;\n}\n\nexport function getHelpersBlock(\n\tusedHelpers: Set<string>,\n\taccessedGlobals: Set<string>,\n\t_: string,\n\tn: string,\n\ts: string,\n\tt: string,\n\tliveBindings: boolean,\n\tfreeze: boolean,\n\tnamespaceToStringTag: boolean\n): string {\n\treturn HELPER_NAMES.map(variable =>\n\t\tusedHelpers.has(variable) || accessedGlobals.has(variable)\n\t\t\t? HELPER_GENERATORS[variable](\n\t\t\t\t\t_,\n\t\t\t\t\tn,\n\t\t\t\t\ts,\n\t\t\t\t\tt,\n\t\t\t\t\tliveBindings,\n\t\t\t\t\tfreeze,\n\t\t\t\t\tnamespaceToStringTag,\n\t\t\t\t\tusedHelpers\n\t\t\t )\n\t\t\t: ''\n\t).join('');\n}\n\nconst HELPER_GENERATORS: {\n\t[variable: string]: (\n\t\t_: string,\n\t\tn: string,\n\t\ts: string,\n\t\tt: string,\n\t\tliveBindings: boolean,\n\t\tfreeze: boolean,\n\t\tnamespaceToStringTag: boolean,\n\t\tusedHelpers: Set<string>\n\t) => string;\n} = {\n\t[INTEROP_DEFAULT_LEGACY_VARIABLE]: (_, n, s, _t, liveBindings) =>\n\t\t`function ${INTEROP_DEFAULT_LEGACY_VARIABLE}${_}(e)${_}{${_}return ` +\n\t\t`e${_}&&${_}typeof e${_}===${_}'object'${_}&&${_}'default'${_}in e${_}?${_}` +\n\t\t`${liveBindings ? getDefaultLiveBinding(_) : getDefaultStatic(_)}${s}${_}}${n}${n}`,\n\t[INTEROP_DEFAULT_VARIABLE]: (_, n, s, _t, liveBindings) =>\n\t\t`function ${INTEROP_DEFAULT_VARIABLE}${_}(e)${_}{${_}return ` +\n\t\t`e${_}&&${_}e.__esModule${_}?${_}` +\n\t\t`${liveBindings ? getDefaultLiveBinding(_) : getDefaultStatic(_)}${s}${_}}${n}${n}`,\n\t[INTEROP_NAMESPACE_DEFAULT_ONLY_VARIABLE]: (\n\t\t_: string,\n\t\tn: string,\n\t\t_s: string,\n\t\tt: string,\n\t\t_liveBindings: boolean,\n\t\tfreeze: boolean,\n\t\tnamespaceToStringTag: boolean\n\t) =>\n\t\t`function ${INTEROP_NAMESPACE_DEFAULT_ONLY_VARIABLE}(e)${_}{${n}` +\n\t\t`${t}return ${getFrozen(\n\t\t\t`{__proto__: null,${\n\t\t\t\tnamespaceToStringTag ? `${_}[Symbol.toStringTag]:${_}'Module',` : ''\n\t\t\t}${_}'default':${_}e}`,\n\t\t\tfreeze\n\t\t)};${n}` +\n\t\t`}${n}${n}`,\n\t[INTEROP_NAMESPACE_DEFAULT_VARIABLE]: (_, n, _s, t, liveBindings, freeze, namespaceToStringTag) =>\n\t\t`function ${INTEROP_NAMESPACE_DEFAULT_VARIABLE}(e)${_}{${n}` +\n\t\tcreateNamespaceObject(_, n, t, t, liveBindings, freeze, namespaceToStringTag) +\n\t\t`}${n}${n}`,\n\t[INTEROP_NAMESPACE_VARIABLE]: (\n\t\t_,\n\t\tn,\n\t\ts,\n\t\tt,\n\t\tliveBindings,\n\t\tfreeze,\n\t\tnamespaceToStringTag,\n\t\tusedHelpers\n\t) =>\n\t\t`function ${INTEROP_NAMESPACE_VARIABLE}(e)${_}{${n}` +\n\t\t(usedHelpers.has(INTEROP_NAMESPACE_DEFAULT_VARIABLE)\n\t\t\t? `${t}return e${_}&&${_}e.__esModule${_}?${_}e${_}:${_}${INTEROP_NAMESPACE_DEFAULT_VARIABLE}(e)${s}${n}`\n\t\t\t: `${t}if${_}(e${_}&&${_}e.__esModule)${_}return e;${n}` +\n\t\t\t createNamespaceObject(_, n, t, t, liveBindings, freeze, namespaceToStringTag)) +\n\t\t`}${n}${n}`\n};\n\nfunction getDefaultLiveBinding(_: string) {\n\treturn `e${_}:${_}{${_}'default':${_}e${_}}`;\n}\n\nfunction getDefaultStatic(_: string) {\n\treturn `e['default']${_}:${_}e`;\n}\n\nfunction createNamespaceObject(\n\t_: string,\n\tn: string,\n\tt: string,\n\ti: string,\n\tliveBindings: boolean,\n\tfreeze: boolean,\n\tnamespaceToStringTag: boolean\n) {\n\treturn (\n\t\t`${i}var n${_}=${_}${\n\t\t\tnamespaceToStringTag\n\t\t\t\t? `{__proto__:${_}null,${_}[Symbol.toStringTag]:${_}'Module'}`\n\t\t\t\t: 'Object.create(null)'\n\t\t};${n}` +\n\t\t`${i}if${_}(e)${_}{${n}` +\n\t\t`${i}${t}Object.keys(e).forEach(function${_}(k)${_}{${n}` +\n\t\t(liveBindings ? copyPropertyLiveBinding : copyPropertyStatic)(_, n, t, i + t + t) +\n\t\t`${i}${t}});${n}` +\n\t\t`${i}}${n}` +\n\t\t`${i}n['default']${_}=${_}e;${n}` +\n\t\t`${i}return ${getFrozen('n', freeze)};${n}`\n\t);\n}\n\nfunction copyPropertyLiveBinding(_: string, n: string, t: string, i: string) {\n\treturn (\n\t\t`${i}if${_}(k${_}!==${_}'default')${_}{${n}` +\n\t\t`${i}${t}var d${_}=${_}Object.getOwnPropertyDescriptor(e,${_}k);${n}` +\n\t\t`${i}${t}Object.defineProperty(n,${_}k,${_}d.get${_}?${_}d${_}:${_}{${n}` +\n\t\t`${i}${t}${t}enumerable:${_}true,${n}` +\n\t\t`${i}${t}${t}get:${_}function${_}()${_}{${n}` +\n\t\t`${i}${t}${t}${t}return e[k];${n}` +\n\t\t`${i}${t}${t}}${n}` +\n\t\t`${i}${t}});${n}` +\n\t\t`${i}}${n}`\n\t);\n}\n\nfunction copyPropertyStatic(_: string, n: string, _t: string, i: string) {\n\treturn `${i}n[k]${_}=${_}e[k];${n}`;\n}\n\nfunction getFrozen(fragment: string, freeze: boolean) {\n\treturn freeze ? `Object.freeze(${fragment})` : fragment;\n}\n\nexport const HELPER_NAMES = Object.keys(HELPER_GENERATORS);\n","import MagicString from 'magic-string';\nimport ExternalModule from '../../ExternalModule';\nimport Module from '../../Module';\nimport { GetInterop, NormalizedOutputOptions } from '../../rollup/types';\nimport { PluginDriver } from '../../utils/PluginDriver';\nimport {\n\tgetDefaultOnlyHelper,\n\tnamespaceInteropHelpersByInteropType\n} from '../../utils/interopHelpers';\nimport { findFirstOccurrenceOutsideComment, RenderOptions } from '../../utils/renderHelpers';\nimport { InclusionContext } from '../ExecutionContext';\nimport ChildScope from '../scopes/ChildScope';\nimport NamespaceVariable from '../variables/NamespaceVariable';\nimport * as NodeType from './NodeType';\nimport { ExpressionNode, IncludeChildren, NodeBase } from './shared/Node';\n\ninterface DynamicImportMechanism {\n\tleft: string;\n\tright: string;\n}\n\nexport default class ImportExpression extends NodeBase {\n\tinlineNamespace: NamespaceVariable | null = null;\n\tsource!: ExpressionNode;\n\ttype!: NodeType.tImportExpression;\n\n\tprivate mechanism: DynamicImportMechanism | null = null;\n\tprivate resolution: Module | ExternalModule | string | null = null;\n\n\thasEffects(): boolean {\n\t\treturn true;\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tif (!this.included) {\n\t\t\tthis.included = true;\n\t\t\tthis.context.includeDynamicImport(this);\n\t\t\tthis.scope.addAccessedDynamicImport(this);\n\t\t}\n\t\tthis.source.include(context, includeChildrenRecursively);\n\t}\n\n\tinitialise(): void {\n\t\tthis.context.addDynamicImport(this);\n\t}\n\n\trender(code: MagicString, options: RenderOptions): void {\n\t\tif (this.inlineNamespace) {\n\t\t\tconst _ = options.compact ? '' : ' ';\n\t\t\tconst s = options.compact ? '' : ';';\n\t\t\tcode.overwrite(\n\t\t\t\tthis.start,\n\t\t\t\tthis.end,\n\t\t\t\t`Promise.resolve().then(function${_}()${_}{${_}return ${this.inlineNamespace.getName()}${s}${_}})`\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.mechanism) {\n\t\t\tcode.overwrite(\n\t\t\t\tthis.start,\n\t\t\t\tfindFirstOccurrenceOutsideComment(code.original, '(', this.start + 6) + 1,\n\t\t\t\tthis.mechanism.left\n\t\t\t);\n\t\t\tcode.overwrite(this.end - 1, this.end, this.mechanism.right);\n\t\t}\n\t\tthis.source.render(code, options);\n\t}\n\n\trenderFinalResolution(\n\t\tcode: MagicString,\n\t\tresolution: string,\n\t\tnamespaceExportName: string | false | undefined,\n\t\toptions: NormalizedOutputOptions\n\t): void {\n\t\tcode.overwrite(this.source.start, this.source.end, resolution);\n\t\tif (namespaceExportName) {\n\t\t\tconst _ = options.compact ? '' : ' ';\n\t\t\tconst s = options.compact ? '' : ';';\n\t\t\tcode.prependLeft(\n\t\t\t\tthis.end,\n\t\t\t\t`.then(function${_}(n)${_}{${_}return n.${namespaceExportName}${s}${_}})`\n\t\t\t);\n\t\t}\n\t}\n\n\tsetExternalResolution(\n\t\texportMode: 'none' | 'named' | 'default' | 'external',\n\t\tresolution: Module | ExternalModule | string | null,\n\t\toptions: NormalizedOutputOptions,\n\t\tpluginDriver: PluginDriver,\n\t\taccessedGlobalsByScope: Map<ChildScope, Set<string>>\n\t): void {\n\t\tthis.resolution = resolution;\n\t\tconst accessedGlobals = [...(accessedImportGlobals[options.format] || [])];\n\t\tlet helper: string | null;\n\t\t({ helper, mechanism: this.mechanism } = this.getDynamicImportMechanismAndHelper(\n\t\t\tresolution,\n\t\t\texportMode,\n\t\t\toptions,\n\t\t\tpluginDriver\n\t\t));\n\t\tif (helper) {\n\t\t\taccessedGlobals.push(helper);\n\t\t}\n\t\tif (accessedGlobals.length > 0) {\n\t\t\tthis.scope.addAccessedGlobals(accessedGlobals, accessedGlobalsByScope);\n\t\t}\n\t}\n\n\tsetInternalResolution(inlineNamespace: NamespaceVariable): void {\n\t\tthis.inlineNamespace = inlineNamespace;\n\t}\n\n\tprivate getDynamicImportMechanismAndHelper(\n\t\tresolution: Module | ExternalModule | string | null,\n\t\texportMode: 'none' | 'named' | 'default' | 'external',\n\t\toptions: NormalizedOutputOptions,\n\t\tpluginDriver: PluginDriver\n\t): { helper: string | null; mechanism: DynamicImportMechanism | null } {\n\t\tconst mechanism = pluginDriver.hookFirstSync('renderDynamicImport', [\n\t\t\t{\n\t\t\t\tcustomResolution: typeof this.resolution === 'string' ? this.resolution : null,\n\t\t\t\tformat: options.format,\n\t\t\t\tmoduleId: this.context.module.id,\n\t\t\t\ttargetModuleId:\n\t\t\t\t\tthis.resolution && typeof this.resolution !== 'string' ? this.resolution.id : null\n\t\t\t}\n\t\t]);\n\t\tif (mechanism) {\n\t\t\treturn { helper: null, mechanism };\n\t\t}\n\t\tswitch (options.format) {\n\t\t\tcase 'cjs': {\n\t\t\t\tconst _ = options.compact ? '' : ' ';\n\t\t\t\tconst s = options.compact ? '' : ';';\n\t\t\t\tconst leftStart = `Promise.resolve().then(function${_}()${_}{${_}return`;\n\t\t\t\tconst helper = getInteropHelper(resolution, exportMode, options.interop);\n\t\t\t\treturn {\n\t\t\t\t\thelper,\n\t\t\t\t\tmechanism: helper\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tleft: `${leftStart} /*#__PURE__*/${helper}(require(`,\n\t\t\t\t\t\t\t\tright: `))${s}${_}})`\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tleft: `${leftStart} require(`,\n\t\t\t\t\t\t\t\tright: `)${s}${_}})`\n\t\t\t\t\t\t }\n\t\t\t\t};\n\t\t\t}\n\t\t\tcase 'amd': {\n\t\t\t\tconst _ = options.compact ? '' : ' ';\n\t\t\t\tconst resolve = options.compact ? 'c' : 'resolve';\n\t\t\t\tconst reject = options.compact ? 'e' : 'reject';\n\t\t\t\tconst helper = getInteropHelper(resolution, exportMode, options.interop);\n\t\t\t\tconst resolveNamespace = helper\n\t\t\t\t\t? `function${_}(m)${_}{${_}${resolve}(/*#__PURE__*/${helper}(m));${_}}`\n\t\t\t\t\t: resolve;\n\t\t\t\treturn {\n\t\t\t\t\thelper,\n\t\t\t\t\tmechanism: {\n\t\t\t\t\t\tleft: `new Promise(function${_}(${resolve},${_}${reject})${_}{${_}require([`,\n\t\t\t\t\t\tright: `],${_}${resolveNamespace},${_}${reject})${_}})`\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t\tcase 'system':\n\t\t\t\treturn {\n\t\t\t\t\thelper: null,\n\t\t\t\t\tmechanism: {\n\t\t\t\t\t\tleft: 'module.import(',\n\t\t\t\t\t\tright: ')'\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\tcase 'es':\n\t\t\t\tif (options.dynamicImportFunction) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\thelper: null,\n\t\t\t\t\t\tmechanism: {\n\t\t\t\t\t\t\tleft: `${options.dynamicImportFunction}(`,\n\t\t\t\t\t\t\tright: ')'\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t}\n\t\treturn { helper: null, mechanism: null };\n\t}\n}\n\nfunction getInteropHelper(\n\tresolution: Module | ExternalModule | string | null,\n\texportMode: 'none' | 'named' | 'default' | 'external',\n\tinterop: GetInterop\n): string | null {\n\treturn exportMode === 'external'\n\t\t? namespaceInteropHelpersByInteropType[\n\t\t\t\tString(interop(resolution instanceof ExternalModule ? resolution.id : null))\n\t\t ]\n\t\t: exportMode === 'default'\n\t\t? getDefaultOnlyHelper()\n\t\t: null;\n}\n\nconst accessedImportGlobals: Record<string, string[]> = {\n\tamd: ['require'],\n\tcjs: ['require'],\n\tsystem: ['module']\n};\n","function spaces(i: number) {\n\tlet result = '';\n\twhile (i--) result += ' ';\n\treturn result;\n}\n\nfunction tabsToSpaces(str: string) {\n\treturn str.replace(/^\\t+/, match => match.split('\\t').join(' '));\n}\n\nexport default function getCodeFrame(source: string, line: number, column: number): string {\n\tlet lines = source.split('\\n');\n\n\tconst frameStart = Math.max(0, line - 3);\n\tlet frameEnd = Math.min(line + 2, lines.length);\n\n\tlines = lines.slice(frameStart, frameEnd);\n\twhile (!/\\S/.test(lines[lines.length - 1])) {\n\t\tlines.pop();\n\t\tframeEnd -= 1;\n\t}\n\n\tconst digits = String(frameEnd).length;\n\n\treturn lines\n\t\t.map((str, i) => {\n\t\t\tconst isErrorLine = frameStart + i + 1 === line;\n\n\t\t\tlet lineNum = String(i + frameStart + 1);\n\t\t\twhile (lineNum.length < digits) lineNum = ` ${lineNum}`;\n\n\t\t\tif (isErrorLine) {\n\t\t\t\tconst indicator = spaces(digits + 2 + tabsToSpaces(str.slice(0, column)).length) + '^';\n\t\t\t\treturn `${lineNum}: ${tabsToSpaces(str)}\\n${indicator}`;\n\t\t\t}\n\n\t\t\treturn `${lineNum}: ${tabsToSpaces(str)}`;\n\t\t})\n\t\t.join('\\n');\n}\n","import { locate } from 'locate-character';\nimport Module from '../Module';\nimport {\n\tNormalizedInputOptions,\n\tRollupError,\n\tRollupLogProps,\n\tRollupWarning,\n\tWarningHandler\n} from '../rollup/types';\nimport getCodeFrame from './getCodeFrame';\nimport { printQuotedStringList } from './printStringList';\nimport relativeId from './relativeId';\n\nexport function error(base: Error | RollupError): never {\n\tif (!(base instanceof Error)) base = Object.assign(new Error(base.message), base);\n\tthrow base;\n}\n\nexport function augmentCodeLocation(\n\tprops: RollupLogProps,\n\tpos: number | { column: number; line: number },\n\tsource: string,\n\tid: string\n): void {\n\tif (typeof pos === 'object') {\n\t\tconst { line, column } = pos;\n\t\tprops.loc = { column, file: id, line };\n\t} else {\n\t\tprops.pos = pos;\n\t\tconst { line, column } = locate(source, pos, { offsetLine: 1 });\n\t\tprops.loc = { column, file: id, line };\n\t}\n\n\tif (props.frame === undefined) {\n\t\tconst { line, column } = props.loc;\n\t\tprops.frame = getCodeFrame(source, line, column);\n\t}\n}\n\nexport const enum Errors {\n\tALREADY_CLOSED = 'ALREADY_CLOSED',\n\tASSET_NOT_FINALISED = 'ASSET_NOT_FINALISED',\n\tASSET_NOT_FOUND = 'ASSET_NOT_FOUND',\n\tASSET_SOURCE_ALREADY_SET = 'ASSET_SOURCE_ALREADY_SET',\n\tASSET_SOURCE_MISSING = 'ASSET_SOURCE_MISSING',\n\tBAD_LOADER = 'BAD_LOADER',\n\tCANNOT_EMIT_FROM_OPTIONS_HOOK = 'CANNOT_EMIT_FROM_OPTIONS_HOOK',\n\tCHUNK_NOT_GENERATED = 'CHUNK_NOT_GENERATED',\n\tCHUNK_INVALID = 'CHUNK_INVALID',\n\tCIRCULAR_REEXPORT = 'CIRCULAR_REEXPORT',\n\tCYCLIC_CROSS_CHUNK_REEXPORT = 'CYCLIC_CROSS_CHUNK_REEXPORT',\n\tDEPRECATED_FEATURE = 'DEPRECATED_FEATURE',\n\tEXTERNAL_SYNTHETIC_EXPORTS = 'EXTERNAL_SYNTHETIC_EXPORTS',\n\tFILE_NAME_CONFLICT = 'FILE_NAME_CONFLICT',\n\tFILE_NOT_FOUND = 'FILE_NOT_FOUND',\n\tINPUT_HOOK_IN_OUTPUT_PLUGIN = 'INPUT_HOOK_IN_OUTPUT_PLUGIN',\n\tINVALID_CHUNK = 'INVALID_CHUNK',\n\tINVALID_EXPORT_OPTION = 'INVALID_EXPORT_OPTION',\n\tINVALID_EXTERNAL_ID = 'INVALID_EXTERNAL_ID',\n\tINVALID_OPTION = 'INVALID_OPTION',\n\tINVALID_PLUGIN_HOOK = 'INVALID_PLUGIN_HOOK',\n\tINVALID_ROLLUP_PHASE = 'INVALID_ROLLUP_PHASE',\n\tMISSING_EXPORT = 'MISSING_EXPORT',\n\tMISSING_IMPLICIT_DEPENDANT = 'MISSING_IMPLICIT_DEPENDANT',\n\tMIXED_EXPORTS = 'MIXED_EXPORTS',\n\tNAMESPACE_CONFLICT = 'NAMESPACE_CONFLICT',\n\tAMBIGUOUS_EXTERNAL_NAMESPACES = 'AMBIGUOUS_EXTERNAL_NAMESPACES',\n\tNO_TRANSFORM_MAP_OR_AST_WITHOUT_CODE = 'NO_TRANSFORM_MAP_OR_AST_WITHOUT_CODE',\n\tPLUGIN_ERROR = 'PLUGIN_ERROR',\n\tPREFER_NAMED_EXPORTS = 'PREFER_NAMED_EXPORTS',\n\tSYNTHETIC_NAMED_EXPORTS_NEED_NAMESPACE_EXPORT = 'SYNTHETIC_NAMED_EXPORTS_NEED_NAMESPACE_EXPORT',\n\tUNEXPECTED_NAMED_IMPORT = 'UNEXPECTED_NAMED_IMPORT',\n\tUNRESOLVED_ENTRY = 'UNRESOLVED_ENTRY',\n\tUNRESOLVED_IMPORT = 'UNRESOLVED_IMPORT',\n\tVALIDATION_ERROR = 'VALIDATION_ERROR'\n}\n\nexport function errAssetNotFinalisedForFileName(name: string): RollupLogProps {\n\treturn {\n\t\tcode: Errors.ASSET_NOT_FINALISED,\n\t\tmessage: `Plugin error - Unable to get file name for asset \"${name}\". Ensure that the source is set and that generate is called first.`\n\t};\n}\n\nexport function errCannotEmitFromOptionsHook(): RollupLogProps {\n\treturn {\n\t\tcode: Errors.CANNOT_EMIT_FROM_OPTIONS_HOOK,\n\t\tmessage: `Cannot emit files or set asset sources in the \"outputOptions\" hook, use the \"renderStart\" hook instead.`\n\t};\n}\n\nexport function errChunkNotGeneratedForFileName(name: string): RollupLogProps {\n\treturn {\n\t\tcode: Errors.CHUNK_NOT_GENERATED,\n\t\tmessage: `Plugin error - Unable to get file name for chunk \"${name}\". Ensure that generate is called first.`\n\t};\n}\n\nexport function errChunkInvalid(\n\t{ fileName, code }: { code: string; fileName: string },\n\texception: { loc: { column: number; line: number }; message: string }\n): RollupLogProps {\n\tconst errorProps = {\n\t\tcode: Errors.CHUNK_INVALID,\n\t\tmessage: `Chunk \"${fileName}\" is not valid JavaScript: ${exception.message}.`\n\t};\n\taugmentCodeLocation(errorProps, exception.loc, code, fileName);\n\treturn errorProps;\n}\n\nexport function errCircularReexport(exportName: string, importedModule: string): RollupLogProps {\n\treturn {\n\t\tcode: Errors.CIRCULAR_REEXPORT,\n\t\tid: importedModule,\n\t\tmessage: `\"${exportName}\" cannot be exported from ${relativeId(\n\t\t\timportedModule\n\t\t)} as it is a reexport that references itself.`\n\t};\n}\n\nexport function errCyclicCrossChunkReexport(\n\texportName: string,\n\texporter: string,\n\treexporter: string,\n\timporter: string\n): RollupWarning {\n\treturn {\n\t\tcode: Errors.CYCLIC_CROSS_CHUNK_REEXPORT,\n\t\texporter,\n\t\timporter,\n\t\tmessage: `Export \"${exportName}\" of module ${relativeId(\n\t\t\texporter\n\t\t)} was reexported through module ${relativeId(\n\t\t\treexporter\n\t\t)} while both modules are dependencies of each other and will end up in different chunks by current Rollup settings. This scenario is not well supported at the moment as it will produce a circular dependency between chunks and will likely lead to broken execution order.\\nEither change the import in ${relativeId(\n\t\t\timporter\n\t\t)} to point directly to the exporting module or do not use \"preserveModules\" to ensure these modules end up in the same chunk.`,\n\t\treexporter\n\t};\n}\n\nexport function errAssetReferenceIdNotFoundForSetSource(assetReferenceId: string): RollupLogProps {\n\treturn {\n\t\tcode: Errors.ASSET_NOT_FOUND,\n\t\tmessage: `Plugin error - Unable to set the source for unknown asset \"${assetReferenceId}\".`\n\t};\n}\n\nexport function errAssetSourceAlreadySet(name: string): RollupLogProps {\n\treturn {\n\t\tcode: Errors.ASSET_SOURCE_ALREADY_SET,\n\t\tmessage: `Unable to set the source for asset \"${name}\", source already set.`\n\t};\n}\n\nexport function errNoAssetSourceSet(assetName: string): RollupLogProps {\n\treturn {\n\t\tcode: Errors.ASSET_SOURCE_MISSING,\n\t\tmessage: `Plugin error creating asset \"${assetName}\" - no asset source set.`\n\t};\n}\n\nexport function errBadLoader(id: string): RollupLogProps {\n\treturn {\n\t\tcode: Errors.BAD_LOADER,\n\t\tmessage: `Error loading ${relativeId(\n\t\t\tid\n\t\t)}: plugin load hook should return a string, a { code, map } object, or nothing/null`\n\t};\n}\n\nexport function errDeprecation(deprecation: string | RollupWarning): RollupLogProps {\n\treturn {\n\t\tcode: Errors.DEPRECATED_FEATURE,\n\t\t...(typeof deprecation === 'string' ? { message: deprecation } : deprecation)\n\t};\n}\n\nexport function errFileReferenceIdNotFoundForFilename(assetReferenceId: string): RollupLogProps {\n\treturn {\n\t\tcode: Errors.FILE_NOT_FOUND,\n\t\tmessage: `Plugin error - Unable to get file name for unknown file \"${assetReferenceId}\".`\n\t};\n}\n\nexport function errFileNameConflict(fileName: string): RollupLogProps {\n\treturn {\n\t\tcode: Errors.FILE_NAME_CONFLICT,\n\t\tmessage: `The emitted file \"${fileName}\" overwrites a previously emitted file of the same name.`\n\t};\n}\n\nexport function errInputHookInOutputPlugin(pluginName: string, hookName: string): RollupLogProps {\n\treturn {\n\t\tcode: Errors.INPUT_HOOK_IN_OUTPUT_PLUGIN,\n\t\tmessage: `The \"${hookName}\" hook used by the output plugin ${pluginName} is a build time hook and will not be run for that plugin. Either this plugin cannot be used as an output plugin, or it should have an option to configure it as an output plugin.`\n\t};\n}\n\nexport function errCannotAssignModuleToChunk(\n\tmoduleId: string,\n\tassignToAlias: string,\n\tcurrentAlias: string\n): RollupLogProps {\n\treturn {\n\t\tcode: Errors.INVALID_CHUNK,\n\t\tmessage: `Cannot assign ${relativeId(\n\t\t\tmoduleId\n\t\t)} to the \"${assignToAlias}\" chunk as it is already in the \"${currentAlias}\" chunk.`\n\t};\n}\n\nexport function errInvalidExportOptionValue(optionValue: string): RollupLogProps {\n\treturn {\n\t\tcode: Errors.INVALID_EXPORT_OPTION,\n\t\tmessage: `\"output.exports\" must be \"default\", \"named\", \"none\", \"auto\", or left unspecified (defaults to \"auto\"), received \"${optionValue}\"`,\n\t\turl: `https://rollupjs.org/guide/en/#outputexports`\n\t};\n}\n\nexport function errIncompatibleExportOptionValue(\n\toptionValue: string,\n\tkeys: string[],\n\tentryModule: string\n): RollupLogProps {\n\treturn {\n\t\tcode: 'INVALID_EXPORT_OPTION',\n\t\tmessage: `\"${optionValue}\" was specified for \"output.exports\", but entry module \"${relativeId(\n\t\t\tentryModule\n\t\t)}\" has the following exports: ${keys.join(', ')}`\n\t};\n}\n\nexport function errInternalIdCannotBeExternal(source: string, importer: string): RollupLogProps {\n\treturn {\n\t\tcode: Errors.INVALID_EXTERNAL_ID,\n\t\tmessage: `'${source}' is imported as an external by ${relativeId(\n\t\t\timporter\n\t\t)}, but is already an existing non-external module id.`\n\t};\n}\n\nexport function errInvalidOption(option: string, explanation: string): RollupLogProps {\n\treturn {\n\t\tcode: Errors.INVALID_OPTION,\n\t\tmessage: `Invalid value for option \"${option}\" - ${explanation}.`\n\t};\n}\n\nexport function errInvalidRollupPhaseForAddWatchFile(): RollupLogProps {\n\treturn {\n\t\tcode: Errors.INVALID_ROLLUP_PHASE,\n\t\tmessage: `Cannot call addWatchFile after the build has finished.`\n\t};\n}\n\nexport function errInvalidRollupPhaseForChunkEmission(): RollupLogProps {\n\treturn {\n\t\tcode: Errors.INVALID_ROLLUP_PHASE,\n\t\tmessage: `Cannot emit chunks after module loading has finished.`\n\t};\n}\n\nexport function errMissingExport(\n\texportName: string,\n\timportingModule: string,\n\timportedModule: string\n): RollupLogProps {\n\treturn {\n\t\tcode: Errors.MISSING_EXPORT,\n\t\tmessage: `'${exportName}' is not exported by ${relativeId(\n\t\t\timportedModule\n\t\t)}, imported by ${relativeId(importingModule)}`,\n\t\turl: `https://rollupjs.org/guide/en/#error-name-is-not-exported-by-module`\n\t};\n}\n\nexport function errImplicitDependantCannotBeExternal(\n\tunresolvedId: string,\n\timplicitlyLoadedBefore: string\n): RollupLogProps {\n\treturn {\n\t\tcode: Errors.MISSING_IMPLICIT_DEPENDANT,\n\t\tmessage: `Module \"${relativeId(\n\t\t\tunresolvedId\n\t\t)}\" that should be implicitly loaded before \"${relativeId(\n\t\t\timplicitlyLoadedBefore\n\t\t)}\" cannot be external.`\n\t};\n}\n\nexport function errUnresolvedImplicitDependant(\n\tunresolvedId: string,\n\timplicitlyLoadedBefore: string\n): RollupLogProps {\n\treturn {\n\t\tcode: Errors.MISSING_IMPLICIT_DEPENDANT,\n\t\tmessage: `Module \"${relativeId(\n\t\t\tunresolvedId\n\t\t)}\" that should be implicitly loaded before \"${relativeId(\n\t\t\timplicitlyLoadedBefore\n\t\t)}\" could not be resolved.`\n\t};\n}\n\nexport function errImplicitDependantIsNotIncluded(module: Module): RollupLogProps {\n\tconst implicitDependencies = Array.from(module.implicitlyLoadedBefore, dependency =>\n\t\trelativeId(dependency.id)\n\t).sort();\n\treturn {\n\t\tcode: Errors.MISSING_IMPLICIT_DEPENDANT,\n\t\tmessage: `Module \"${relativeId(\n\t\t\tmodule.id\n\t\t)}\" that should be implicitly loaded before ${printQuotedStringList(\n\t\t\timplicitDependencies\n\t\t)} is not included in the module graph. Either it was not imported by an included module or only via a tree-shaken dynamic import, or no imported bindings were used and it had otherwise no side-effects.`\n\t};\n}\n\nexport function errMixedExport(facadeModuleId: string, name?: string): RollupLogProps {\n\treturn {\n\t\tcode: Errors.MIXED_EXPORTS,\n\t\tid: facadeModuleId,\n\t\tmessage: `Entry module \"${relativeId(\n\t\t\tfacadeModuleId\n\t\t)}\" is using named and default exports together. Consumers of your bundle will have to use \\`${\n\t\t\tname || 'chunk'\n\t\t}[\"default\"]\\` to access the default export, which may not be what you want. Use \\`output.exports: \"named\"\\` to disable this warning`,\n\t\turl: `https://rollupjs.org/guide/en/#outputexports`\n\t};\n}\n\nexport function errNamespaceConflict(\n\tname: string,\n\treexportingModule: Module,\n\tadditionalExportAllModule: Module\n): RollupWarning {\n\treturn {\n\t\tcode: Errors.NAMESPACE_CONFLICT,\n\t\tmessage: `Conflicting namespaces: \"${relativeId(\n\t\t\treexportingModule.id\n\t\t)}\" re-exports \"${name}\" from both \"${relativeId(\n\t\t\treexportingModule.exportsAll[name]\n\t\t)}\" and \"${relativeId(additionalExportAllModule.exportsAll[name])}\" (will be ignored)`,\n\t\tname,\n\t\treexporter: reexportingModule.id,\n\t\tsources: [reexportingModule.exportsAll[name], additionalExportAllModule.exportsAll[name]]\n\t};\n}\n\nexport function errAmbiguousExternalNamespaces(\n\tname: string,\n\treexportingModule: string,\n\tusedExternalModule: string,\n\texternalModules: string[]\n): RollupWarning {\n\treturn {\n\t\tcode: Errors.AMBIGUOUS_EXTERNAL_NAMESPACES,\n\t\tmessage: `Ambiguous external namespace resolution: \"${relativeId(\n\t\t\treexportingModule\n\t\t)}\" re-exports \"${name}\" from one of the external modules ${printQuotedStringList(\n\t\t\texternalModules.map(module => relativeId(module))\n\t\t)}, guessing \"${relativeId(usedExternalModule)}\".`,\n\t\tname,\n\t\treexporter: reexportingModule,\n\t\tsources: externalModules\n\t};\n}\n\nexport function errNoTransformMapOrAstWithoutCode(pluginName: string): RollupLogProps {\n\treturn {\n\t\tcode: Errors.NO_TRANSFORM_MAP_OR_AST_WITHOUT_CODE,\n\t\tmessage:\n\t\t\t`The plugin \"${pluginName}\" returned a \"map\" or \"ast\" without returning ` +\n\t\t\t'a \"code\". This will be ignored.'\n\t};\n}\n\nexport function errPreferNamedExports(facadeModuleId: string): RollupLogProps {\n\tconst file = relativeId(facadeModuleId);\n\treturn {\n\t\tcode: Errors.PREFER_NAMED_EXPORTS,\n\t\tid: facadeModuleId,\n\t\tmessage: `Entry module \"${file}\" is implicitly using \"default\" export mode, which means for CommonJS output that its default export is assigned to \"module.exports\". For many tools, such CommonJS output will not be interchangeable with the original ES module. If this is intended, explicitly set \"output.exports\" to either \"auto\" or \"default\", otherwise you might want to consider changing the signature of \"${file}\" to use named exports only.`,\n\t\turl: `https://rollupjs.org/guide/en/#outputexports`\n\t};\n}\n\nexport function errSyntheticNamedExportsNeedNamespaceExport(\n\tid: string,\n\tsyntheticNamedExportsOption: boolean | string\n): RollupLogProps {\n\treturn {\n\t\tcode: Errors.SYNTHETIC_NAMED_EXPORTS_NEED_NAMESPACE_EXPORT,\n\t\tid,\n\t\tmessage: `Module \"${relativeId(\n\t\t\tid\n\t\t)}\" that is marked with 'syntheticNamedExports: ${JSON.stringify(\n\t\t\tsyntheticNamedExportsOption\n\t\t)}' needs ${\n\t\t\ttypeof syntheticNamedExportsOption === 'string' && syntheticNamedExportsOption !== 'default'\n\t\t\t\t? `an export named \"${syntheticNamedExportsOption}\"`\n\t\t\t\t: 'a default export'\n\t\t} that does not reexport an unresolved named export of the same module.`\n\t};\n}\n\nexport function errUnexpectedNamedImport(\n\tid: string,\n\timported: string,\n\tisReexport: boolean\n): RollupLogProps {\n\tconst importType = isReexport ? 'reexport' : 'import';\n\treturn {\n\t\tcode: Errors.UNEXPECTED_NAMED_IMPORT,\n\t\tid,\n\t\tmessage: `The named export \"${imported}\" was ${importType}ed from the external module ${relativeId(\n\t\t\tid\n\t\t)} even though its interop type is \"defaultOnly\". Either remove or change this ${importType} or change the value of the \"output.interop\" option.`,\n\t\turl: 'https://rollupjs.org/guide/en/#outputinterop'\n\t};\n}\n\nexport function errUnexpectedNamespaceReexport(id: string): RollupLogProps {\n\treturn {\n\t\tcode: Errors.UNEXPECTED_NAMED_IMPORT,\n\t\tid,\n\t\tmessage: `There was a namespace \"*\" reexport from the external module ${relativeId(\n\t\t\tid\n\t\t)} even though its interop type is \"defaultOnly\". This will be ignored as namespace reexports only reexport named exports. If this is not intended, either remove or change this reexport or change the value of the \"output.interop\" option.`,\n\t\turl: 'https://rollupjs.org/guide/en/#outputinterop'\n\t};\n}\n\nexport function errEntryCannotBeExternal(unresolvedId: string): RollupLogProps {\n\treturn {\n\t\tcode: Errors.UNRESOLVED_ENTRY,\n\t\tmessage: `Entry module cannot be external (${relativeId(unresolvedId)}).`\n\t};\n}\n\nexport function errUnresolvedEntry(unresolvedId: string): RollupLogProps {\n\treturn {\n\t\tcode: Errors.UNRESOLVED_ENTRY,\n\t\tmessage: `Could not resolve entry module (${relativeId(unresolvedId)}).`\n\t};\n}\n\nexport function errUnresolvedImport(source: string, importer: string): RollupLogProps {\n\treturn {\n\t\tcode: Errors.UNRESOLVED_IMPORT,\n\t\tmessage: `Could not resolve '${source}' from ${relativeId(importer)}`\n\t};\n}\n\nexport function errUnresolvedImportTreatedAsExternal(\n\tsource: string,\n\timporter: string\n): RollupWarning {\n\treturn {\n\t\tcode: Errors.UNRESOLVED_IMPORT,\n\t\timporter: relativeId(importer),\n\t\tmessage: `'${source}' is imported by ${relativeId(\n\t\t\timporter\n\t\t)}, but could not be resolved – treating it as an external dependency`,\n\t\tsource,\n\t\turl: 'https://rollupjs.org/guide/en/#warning-treating-module-as-external-dependency'\n\t};\n}\n\nexport function errExternalSyntheticExports(source: string, importer: string): RollupWarning {\n\treturn {\n\t\tcode: Errors.EXTERNAL_SYNTHETIC_EXPORTS,\n\t\timporter: relativeId(importer),\n\t\tmessage: `External '${source}' can not have 'syntheticNamedExports' enabled.`,\n\t\tsource\n\t};\n}\n\nexport function errFailedValidation(message: string): RollupLogProps {\n\treturn {\n\t\tcode: Errors.VALIDATION_ERROR,\n\t\tmessage\n\t};\n}\n\nexport function errAlreadyClosed(): RollupLogProps {\n\treturn {\n\t\tcode: Errors.ALREADY_CLOSED,\n\t\tmessage: 'Bundle is already closed, no more calls to \"generate\" or \"write\" are allowed.'\n\t};\n}\n\nexport function warnDeprecation(\n\tdeprecation: string | RollupWarning,\n\tactiveDeprecation: boolean,\n\toptions: NormalizedInputOptions\n): void {\n\twarnDeprecationWithOptions(\n\t\tdeprecation,\n\t\tactiveDeprecation,\n\t\toptions.onwarn,\n\t\toptions.strictDeprecations\n\t);\n}\n\nexport function warnDeprecationWithOptions(\n\tdeprecation: string | RollupWarning,\n\tactiveDeprecation: boolean,\n\twarn: WarningHandler,\n\tstrictDeprecations: boolean\n): void {\n\tif (activeDeprecation || strictDeprecations) {\n\t\tconst warning = errDeprecation(deprecation);\n\t\tif (strictDeprecations) {\n\t\t\treturn error(warning);\n\t\t}\n\t\twarn(warning);\n\t}\n}\n","import MagicString from 'magic-string';\nimport { InternalModuleFormat } from '../../rollup/types';\nimport { PluginDriver } from '../../utils/PluginDriver';\nimport { warnDeprecation } from '../../utils/error';\nimport { dirname, normalize, relative } from '../../utils/path';\nimport ChildScope from '../scopes/ChildScope';\nimport { ObjectPathKey } from '../utils/PathTracker';\nimport Identifier from './Identifier';\nimport MemberExpression from './MemberExpression';\nimport * as NodeType from './NodeType';\nimport { NodeBase } from './shared/Node';\n\nconst ASSET_PREFIX = 'ROLLUP_ASSET_URL_';\nconst CHUNK_PREFIX = 'ROLLUP_CHUNK_URL_';\nconst FILE_PREFIX = 'ROLLUP_FILE_URL_';\n\nexport default class MetaProperty extends NodeBase {\n\tmeta!: Identifier;\n\tproperty!: Identifier;\n\ttype!: NodeType.tMetaProperty;\n\n\tprivate metaProperty?: string | null;\n\n\taddAccessedGlobals(\n\t\tformat: InternalModuleFormat,\n\t\taccessedGlobalsByScope: Map<ChildScope, Set<string>>\n\t): void {\n\t\tconst metaProperty = this.metaProperty;\n\t\tconst accessedGlobals = (\n\t\t\tmetaProperty &&\n\t\t\t(metaProperty.startsWith(FILE_PREFIX) ||\n\t\t\t\tmetaProperty.startsWith(ASSET_PREFIX) ||\n\t\t\t\tmetaProperty.startsWith(CHUNK_PREFIX))\n\t\t\t\t? accessedFileUrlGlobals\n\t\t\t\t: accessedMetaUrlGlobals\n\t\t)[format];\n\t\tif (accessedGlobals.length > 0) {\n\t\t\tthis.scope.addAccessedGlobals(accessedGlobals, accessedGlobalsByScope);\n\t\t}\n\t}\n\n\tgetReferencedFileName(outputPluginDriver: PluginDriver): string | null {\n\t\tconst metaProperty = this.metaProperty as string | null;\n\t\tif (metaProperty && metaProperty.startsWith(FILE_PREFIX)) {\n\t\t\treturn outputPluginDriver.getFileName(metaProperty.substr(FILE_PREFIX.length));\n\t\t}\n\t\treturn null;\n\t}\n\n\thasEffects(): boolean {\n\t\treturn false;\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPathKey[]): boolean {\n\t\treturn path.length > 1;\n\t}\n\n\tinclude(): void {\n\t\tif (!this.included) {\n\t\t\tthis.included = true;\n\t\t\tif (this.meta.name === 'import') {\n\t\t\t\tthis.context.addImportMeta(this);\n\t\t\t\tconst parent = this.parent;\n\t\t\t\tthis.metaProperty =\n\t\t\t\t\tparent instanceof MemberExpression && typeof parent.propertyKey === 'string'\n\t\t\t\t\t\t? parent.propertyKey\n\t\t\t\t\t\t: null;\n\t\t\t}\n\t\t}\n\t}\n\n\trenderFinalMechanism(\n\t\tcode: MagicString,\n\t\tchunkId: string,\n\t\tformat: InternalModuleFormat,\n\t\toutputPluginDriver: PluginDriver\n\t): void {\n\t\tconst parent = this.parent;\n\t\tconst metaProperty = this.metaProperty as string | null;\n\n\t\tif (\n\t\t\tmetaProperty &&\n\t\t\t(metaProperty.startsWith(FILE_PREFIX) ||\n\t\t\t\tmetaProperty.startsWith(ASSET_PREFIX) ||\n\t\t\t\tmetaProperty.startsWith(CHUNK_PREFIX))\n\t\t) {\n\t\t\tlet referenceId: string | null = null;\n\t\t\tlet assetReferenceId: string | null = null;\n\t\t\tlet chunkReferenceId: string | null = null;\n\t\t\tlet fileName: string;\n\t\t\tif (metaProperty.startsWith(FILE_PREFIX)) {\n\t\t\t\treferenceId = metaProperty.substr(FILE_PREFIX.length);\n\t\t\t\tfileName = outputPluginDriver.getFileName(referenceId);\n\t\t\t} else if (metaProperty.startsWith(ASSET_PREFIX)) {\n\t\t\t\twarnDeprecation(\n\t\t\t\t\t`Using the \"${ASSET_PREFIX}\" prefix to reference files is deprecated. Use the \"${FILE_PREFIX}\" prefix instead.`,\n\t\t\t\t\ttrue,\n\t\t\t\t\tthis.context.options\n\t\t\t\t);\n\t\t\t\tassetReferenceId = metaProperty.substr(ASSET_PREFIX.length);\n\t\t\t\tfileName = outputPluginDriver.getFileName(assetReferenceId);\n\t\t\t} else {\n\t\t\t\twarnDeprecation(\n\t\t\t\t\t`Using the \"${CHUNK_PREFIX}\" prefix to reference files is deprecated. Use the \"${FILE_PREFIX}\" prefix instead.`,\n\t\t\t\t\ttrue,\n\t\t\t\t\tthis.context.options\n\t\t\t\t);\n\t\t\t\tchunkReferenceId = metaProperty.substr(CHUNK_PREFIX.length);\n\t\t\t\tfileName = outputPluginDriver.getFileName(chunkReferenceId);\n\t\t\t}\n\t\t\tconst relativePath = normalize(relative(dirname(chunkId), fileName));\n\t\t\tlet replacement;\n\t\t\tif (assetReferenceId !== null) {\n\t\t\t\treplacement = outputPluginDriver.hookFirstSync('resolveAssetUrl', [\n\t\t\t\t\t{\n\t\t\t\t\t\tassetFileName: fileName,\n\t\t\t\t\t\tchunkId,\n\t\t\t\t\t\tformat,\n\t\t\t\t\t\tmoduleId: this.context.module.id,\n\t\t\t\t\t\trelativeAssetPath: relativePath\n\t\t\t\t\t}\n\t\t\t\t]);\n\t\t\t}\n\t\t\tif (!replacement) {\n\t\t\t\treplacement =\n\t\t\t\t\toutputPluginDriver.hookFirstSync('resolveFileUrl', [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tassetReferenceId,\n\t\t\t\t\t\t\tchunkId,\n\t\t\t\t\t\t\tchunkReferenceId,\n\t\t\t\t\t\t\tfileName,\n\t\t\t\t\t\t\tformat,\n\t\t\t\t\t\t\tmoduleId: this.context.module.id,\n\t\t\t\t\t\t\treferenceId: referenceId || assetReferenceId || chunkReferenceId!,\n\t\t\t\t\t\t\trelativePath\n\t\t\t\t\t\t}\n\t\t\t\t\t]) || relativeUrlMechanisms[format](relativePath);\n\t\t\t}\n\n\t\t\tcode.overwrite(\n\t\t\t\t(parent as MemberExpression).start,\n\t\t\t\t(parent as MemberExpression).end,\n\t\t\t\treplacement,\n\t\t\t\t{ contentOnly: true }\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst replacement =\n\t\t\toutputPluginDriver.hookFirstSync('resolveImportMeta', [\n\t\t\t\tmetaProperty,\n\t\t\t\t{\n\t\t\t\t\tchunkId,\n\t\t\t\t\tformat,\n\t\t\t\t\tmoduleId: this.context.module.id\n\t\t\t\t}\n\t\t\t]) || importMetaMechanisms[format]?.(metaProperty, chunkId);\n\t\tif (typeof replacement === 'string') {\n\t\t\tif (parent instanceof MemberExpression) {\n\t\t\t\tcode.overwrite(parent.start, parent.end, replacement, { contentOnly: true });\n\t\t\t} else {\n\t\t\t\tcode.overwrite(this.start, this.end, replacement, { contentOnly: true });\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst accessedMetaUrlGlobals = {\n\tamd: ['document', 'module', 'URL'],\n\tcjs: ['document', 'require', 'URL'],\n\tes: [],\n\tiife: ['document', 'URL'],\n\tsystem: ['module'],\n\tumd: ['document', 'require', 'URL']\n};\n\nconst accessedFileUrlGlobals = {\n\tamd: ['document', 'require', 'URL'],\n\tcjs: ['document', 'require', 'URL'],\n\tes: [],\n\tiife: ['document', 'URL'],\n\tsystem: ['module', 'URL'],\n\tumd: ['document', 'require', 'URL']\n};\n\nconst getResolveUrl = (path: string, URL = 'URL') => `new ${URL}(${path}).href`;\n\nconst getRelativeUrlFromDocument = (relativePath: string, umd = false) =>\n\tgetResolveUrl(\n\t\t`'${relativePath}', ${\n\t\t\tumd ? `typeof document === 'undefined' ? location.href : ` : ''\n\t\t}document.currentScript && document.currentScript.src || document.baseURI`\n\t);\n\nconst getGenericImportMetaMechanism =\n\t(getUrl: (chunkId: string) => string) => (prop: string | null, chunkId: string) => {\n\t\tconst urlMechanism = getUrl(chunkId);\n\t\treturn prop === null\n\t\t\t? `({ url: ${urlMechanism} })`\n\t\t\t: prop === 'url'\n\t\t\t? urlMechanism\n\t\t\t: 'undefined';\n\t};\n\nconst getUrlFromDocument = (chunkId: string, umd = false) =>\n\t`${\n\t\tumd ? `typeof document === 'undefined' ? location.href : ` : ''\n\t}(document.currentScript && document.currentScript.src || new URL('${chunkId}', document.baseURI).href)`;\n\nconst relativeUrlMechanisms: Record<InternalModuleFormat, (relativePath: string) => string> = {\n\tamd: relativePath => {\n\t\tif (relativePath[0] !== '.') relativePath = './' + relativePath;\n\t\treturn getResolveUrl(`require.toUrl('${relativePath}'), document.baseURI`);\n\t},\n\tcjs: relativePath =>\n\t\t`(typeof document === 'undefined' ? ${getResolveUrl(\n\t\t\t`'file:' + __dirname + '/${relativePath}'`,\n\t\t\t`(require('u' + 'rl').URL)`\n\t\t)} : ${getRelativeUrlFromDocument(relativePath)})`,\n\tes: relativePath => getResolveUrl(`'${relativePath}', import.meta.url`),\n\tiife: relativePath => getRelativeUrlFromDocument(relativePath),\n\tsystem: relativePath => getResolveUrl(`'${relativePath}', module.meta.url`),\n\tumd: relativePath =>\n\t\t`(typeof document === 'undefined' && typeof location === 'undefined' ? ${getResolveUrl(\n\t\t\t`'file:' + __dirname + '/${relativePath}'`,\n\t\t\t`(require('u' + 'rl').URL)`\n\t\t)} : ${getRelativeUrlFromDocument(relativePath, true)})`\n};\n\nconst importMetaMechanisms: Record<string, (prop: string | null, chunkId: string) => string> = {\n\tamd: getGenericImportMetaMechanism(() => getResolveUrl(`module.uri, document.baseURI`)),\n\tcjs: getGenericImportMetaMechanism(\n\t\tchunkId =>\n\t\t\t`(typeof document === 'undefined' ? ${getResolveUrl(\n\t\t\t\t`'file:' + __filename`,\n\t\t\t\t`(require('u' + 'rl').URL)`\n\t\t\t)} : ${getUrlFromDocument(chunkId)})`\n\t),\n\tiife: getGenericImportMetaMechanism(chunkId => getUrlFromDocument(chunkId)),\n\tsystem: prop => (prop === null ? `module.meta` : `module.meta.${prop}`),\n\tumd: getGenericImportMetaMechanism(\n\t\tchunkId =>\n\t\t\t`(typeof document === 'undefined' && typeof location === 'undefined' ? ${getResolveUrl(\n\t\t\t\t`'file:' + __filename`,\n\t\t\t\t`(require('u' + 'rl').URL)`\n\t\t\t)} : ${getUrlFromDocument(chunkId, true)})`\n\t)\n};\n","import MagicString from 'magic-string';\nimport {\n\tfindFirstOccurrenceOutsideComment,\n\tNodeRenderOptions,\n\tRenderOptions,\n\trenderStatementList\n} from '../../utils/renderHelpers';\nimport { HasEffectsContext, InclusionContext } from '../ExecutionContext';\nimport * as NodeType from './NodeType';\nimport { ExpressionNode, IncludeChildren, NodeBase, StatementNode } from './shared/Node';\n\nexport default class SwitchCase extends NodeBase {\n\tconsequent!: StatementNode[];\n\tneedsBoundaries!: true;\n\ttest!: ExpressionNode | null;\n\ttype!: NodeType.tSwitchCase;\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tif (this.test && this.test.hasEffects(context)) return true;\n\t\tfor (const node of this.consequent) {\n\t\t\tif (context.brokenFlow) break;\n\t\t\tif (node.hasEffects(context)) return true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tthis.included = true;\n\t\tif (this.test) this.test.include(context, includeChildrenRecursively);\n\t\tfor (const node of this.consequent) {\n\t\t\tif (includeChildrenRecursively || node.shouldBeIncluded(context))\n\t\t\t\tnode.include(context, includeChildrenRecursively);\n\t\t}\n\t}\n\n\trender(code: MagicString, options: RenderOptions, nodeRenderOptions?: NodeRenderOptions): void {\n\t\tif (this.consequent.length) {\n\t\t\tthis.test && this.test.render(code, options);\n\t\t\tconst testEnd = this.test\n\t\t\t\t? this.test.end\n\t\t\t\t: findFirstOccurrenceOutsideComment(code.original, 'default', this.start) + 7;\n\t\t\tconst consequentStart = findFirstOccurrenceOutsideComment(code.original, ':', testEnd) + 1;\n\t\t\trenderStatementList(this.consequent, code, consequentStart, nodeRenderOptions!.end!, options);\n\t\t} else {\n\t\t\tsuper.render(code, options);\n\t\t}\n\t}\n}\n\nSwitchCase.prototype.needsBoundaries = true;\n","import { LiteralValueOrUnknown } from '../nodes/shared/Expression';\nimport Variable from './Variable';\n\nexport default class UndefinedVariable extends Variable {\n\tconstructor() {\n\t\tsuper('undefined');\n\t}\n\n\tgetLiteralValueAtPath(): LiteralValueOrUnknown {\n\t\treturn undefined;\n\t}\n}\n","import { AstContext } from '../../Module';\nimport ClassDeclaration from '../nodes/ClassDeclaration';\nimport ExportDefaultDeclaration from '../nodes/ExportDefaultDeclaration';\nimport FunctionDeclaration from '../nodes/FunctionDeclaration';\nimport Identifier, { IdentifierWithVariable } from '../nodes/Identifier';\nimport LocalVariable from './LocalVariable';\nimport UndefinedVariable from './UndefinedVariable';\nimport Variable from './Variable';\n\nexport default class ExportDefaultVariable extends LocalVariable {\n\thasId = false;\n\n\tprivate originalId: IdentifierWithVariable | null = null;\n\tprivate originalVariable: Variable | null = null;\n\n\tconstructor(\n\t\tname: string,\n\t\texportDefaultDeclaration: ExportDefaultDeclaration,\n\t\tcontext: AstContext\n\t) {\n\t\tsuper(name, exportDefaultDeclaration, exportDefaultDeclaration.declaration, context);\n\t\tconst declaration = exportDefaultDeclaration.declaration;\n\t\tif (\n\t\t\t(declaration instanceof FunctionDeclaration || declaration instanceof ClassDeclaration) &&\n\t\t\tdeclaration.id\n\t\t) {\n\t\t\tthis.hasId = true;\n\t\t\tthis.originalId = declaration.id;\n\t\t} else if (declaration instanceof Identifier) {\n\t\t\tthis.originalId = declaration as IdentifierWithVariable;\n\t\t}\n\t}\n\n\taddReference(identifier: Identifier): void {\n\t\tif (!this.hasId) {\n\t\t\tthis.name = identifier.name;\n\t\t}\n\t}\n\n\tgetAssignedVariableName(): string | null {\n\t\treturn (this.originalId && this.originalId.name) || null;\n\t}\n\n\tgetBaseVariableName(): string {\n\t\tconst original = this.getOriginalVariable();\n\t\tif (original === this) {\n\t\t\treturn super.getBaseVariableName();\n\t\t} else {\n\t\t\treturn original.getBaseVariableName();\n\t\t}\n\t}\n\n\tgetDirectOriginalVariable(): Variable | null {\n\t\treturn this.originalId &&\n\t\t\t(this.hasId ||\n\t\t\t\t!(\n\t\t\t\t\tthis.originalId.isPossibleTDZ() ||\n\t\t\t\t\tthis.originalId.variable.isReassigned ||\n\t\t\t\t\tthis.originalId.variable instanceof UndefinedVariable ||\n\t\t\t\t\t// this avoids a circular dependency\n\t\t\t\t\t'syntheticNamespace' in this.originalId.variable\n\t\t\t\t))\n\t\t\t? this.originalId.variable\n\t\t\t: null;\n\t}\n\n\tgetName(): string {\n\t\tconst original = this.getOriginalVariable();\n\t\tif (original === this) {\n\t\t\treturn super.getName();\n\t\t} else {\n\t\t\treturn original.getName();\n\t\t}\n\t}\n\n\tgetOriginalVariable(): Variable {\n\t\tif (this.originalVariable) return this.originalVariable;\n\t\t// eslint-disable-next-line @typescript-eslint/no-this-alias\n\t\tlet original: Variable | null = this;\n\t\tlet currentVariable: Variable;\n\t\tconst checkedVariables = new Set<Variable>();\n\t\tdo {\n\t\t\tcheckedVariables.add(original);\n\t\t\tcurrentVariable = original;\n\t\t\toriginal = (currentVariable as ExportDefaultVariable).getDirectOriginalVariable();\n\t\t} while (original instanceof ExportDefaultVariable && !checkedVariables.has(original));\n\t\treturn (this.originalVariable = original || currentVariable);\n\t}\n}\n","import { AstContext } from '../../Module';\nimport { InternalModuleFormat } from '../../rollup/types';\nimport ExportDefaultDeclaration from '../nodes/ExportDefaultDeclaration';\nimport { UNDEFINED_EXPRESSION } from '../values';\nimport ExportDefaultVariable from '../variables/ExportDefaultVariable';\nimport GlobalVariable from '../variables/GlobalVariable';\nimport LocalVariable from '../variables/LocalVariable';\nimport Variable from '../variables/Variable';\nimport ChildScope from './ChildScope';\nimport GlobalScope from './GlobalScope';\n\nexport default class ModuleScope extends ChildScope {\n\tcontext: AstContext;\n\tparent!: GlobalScope;\n\n\tconstructor(parent: GlobalScope, context: AstContext) {\n\t\tsuper(parent);\n\t\tthis.context = context;\n\t\tthis.variables.set('this', new LocalVariable('this', null, UNDEFINED_EXPRESSION, context));\n\t}\n\n\taddExportDefaultDeclaration(\n\t\tname: string,\n\t\texportDefaultDeclaration: ExportDefaultDeclaration,\n\t\tcontext: AstContext\n\t): ExportDefaultVariable {\n\t\tconst variable = new ExportDefaultVariable(name, exportDefaultDeclaration, context);\n\t\tthis.variables.set('default', variable);\n\t\treturn variable;\n\t}\n\n\taddNamespaceMemberAccess(): void {}\n\n\tdeconflict(\n\t\tformat: InternalModuleFormat,\n\t\texportNamesByVariable: Map<Variable, string[]>,\n\t\taccessedGlobalsByScope: Map<ChildScope, Set<string>>\n\t): void {\n\t\t// all module level variables are already deconflicted when deconflicting the chunk\n\t\tfor (const scope of this.children)\n\t\t\tscope.deconflict(format, exportNamesByVariable, accessedGlobalsByScope);\n\t}\n\n\tfindLexicalBoundary(): this {\n\t\treturn this;\n\t}\n\n\tfindVariable(name: string): Variable {\n\t\tconst knownVariable = this.variables.get(name) || this.accessedOutsideVariables.get(name);\n\t\tif (knownVariable) {\n\t\t\treturn knownVariable;\n\t\t}\n\t\tconst variable = this.context.traceVariable(name) || this.parent.findVariable(name);\n\t\tif (variable instanceof GlobalVariable) {\n\t\t\tthis.accessedOutsideVariables.set(name, variable);\n\t\t}\n\t\treturn variable;\n\t}\n}\n","import { DeoptimizableEntity } from '../DeoptimizableEntity';\nimport { HasEffectsContext } from '../ExecutionContext';\nimport { EMPTY_PATH, ObjectPath, PathTracker } from '../utils/PathTracker';\nimport Identifier from './Identifier';\nimport { LiteralValue } from './Literal';\nimport * as NodeType from './NodeType';\nimport { LiteralValueOrUnknown, UnknownValue } from './shared/Expression';\nimport { ExpressionNode, NodeBase } from './shared/Node';\n\nconst unaryOperators: {\n\t[operator: string]: (value: LiteralValue) => LiteralValueOrUnknown;\n} = {\n\t'!': value => !value,\n\t'+': value => +(value as NonNullable<LiteralValue>),\n\t'-': value => -(value as NonNullable<LiteralValue>),\n\tdelete: () => UnknownValue,\n\ttypeof: value => typeof value,\n\tvoid: () => undefined,\n\t'~': value => ~(value as NonNullable<LiteralValue>)\n};\n\nexport default class UnaryExpression extends NodeBase {\n\targument!: ExpressionNode;\n\toperator!: '!' | '+' | '-' | 'delete' | 'typeof' | 'void' | '~';\n\tprefix!: boolean;\n\ttype!: NodeType.tUnaryExpression;\n\tprotected deoptimized = false;\n\n\tgetLiteralValueAtPath(\n\t\tpath: ObjectPath,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): LiteralValueOrUnknown {\n\t\tif (path.length > 0) return UnknownValue;\n\t\tconst argumentValue = this.argument.getLiteralValueAtPath(EMPTY_PATH, recursionTracker, origin);\n\t\tif (argumentValue === UnknownValue) return UnknownValue;\n\n\t\treturn unaryOperators[this.operator](argumentValue);\n\t}\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tif (!this.deoptimized) this.applyDeoptimizations();\n\t\tif (this.operator === 'typeof' && this.argument instanceof Identifier) return false;\n\t\treturn (\n\t\t\tthis.argument.hasEffects(context) ||\n\t\t\t(this.operator === 'delete' &&\n\t\t\t\tthis.argument.hasEffectsWhenAssignedAtPath(EMPTY_PATH, context))\n\t\t);\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath): boolean {\n\t\tif (this.operator === 'void') {\n\t\t\treturn path.length > 0;\n\t\t}\n\t\treturn path.length > 1;\n\t}\n\n\tprotected applyDeoptimizations(): void {\n\t\tthis.deoptimized = true;\n\t\tif (this.operator === 'delete') {\n\t\t\tthis.argument.deoptimizePath(EMPTY_PATH);\n\t\t\tthis.context.requestTreeshakingPass();\n\t\t}\n\t}\n}\n","import ArrayExpression from './ArrayExpression';\nimport ArrayPattern from './ArrayPattern';\nimport ArrowFunctionExpression from './ArrowFunctionExpression';\nimport AssignmentExpression from './AssignmentExpression';\nimport AssignmentPattern from './AssignmentPattern';\nimport AwaitExpression from './AwaitExpression';\nimport BinaryExpression from './BinaryExpression';\nimport BlockStatement from './BlockStatement';\nimport BreakStatement from './BreakStatement';\nimport CallExpression from './CallExpression';\nimport CatchClause from './CatchClause';\nimport ChainExpression from './ChainExpression';\nimport ClassBody from './ClassBody';\nimport ClassDeclaration from './ClassDeclaration';\nimport ClassExpression from './ClassExpression';\nimport ConditionalExpression from './ConditionalExpression';\nimport ContinueStatement from './ContinueStatement';\nimport DoWhileStatement from './DoWhileStatement';\nimport EmptyStatement from './EmptyStatement';\nimport ExportAllDeclaration from './ExportAllDeclaration';\nimport ExportDefaultDeclaration from './ExportDefaultDeclaration';\nimport ExportNamedDeclaration from './ExportNamedDeclaration';\nimport ExportSpecifier from './ExportSpecifier';\nimport ExpressionStatement from './ExpressionStatement';\nimport ForInStatement from './ForInStatement';\nimport ForOfStatement from './ForOfStatement';\nimport ForStatement from './ForStatement';\nimport FunctionDeclaration from './FunctionDeclaration';\nimport FunctionExpression from './FunctionExpression';\nimport Identifier from './Identifier';\nimport IfStatement from './IfStatement';\nimport ImportDeclaration from './ImportDeclaration';\nimport ImportDefaultSpecifier from './ImportDefaultSpecifier';\nimport ImportExpression from './ImportExpression';\nimport ImportNamespaceSpecifier from './ImportNamespaceSpecifier';\nimport ImportSpecifier from './ImportSpecifier';\nimport LabeledStatement from './LabeledStatement';\nimport Literal from './Literal';\nimport LogicalExpression from './LogicalExpression';\nimport MemberExpression from './MemberExpression';\nimport MetaProperty from './MetaProperty';\nimport MethodDefinition from './MethodDefinition';\nimport NewExpression from './NewExpression';\nimport ObjectExpression from './ObjectExpression';\nimport ObjectPattern from './ObjectPattern';\nimport PrivateIdentifier from './PrivateIdentifier';\nimport Program from './Program';\nimport Property from './Property';\nimport PropertyDefinition from './PropertyDefinition';\nimport RestElement from './RestElement';\nimport ReturnStatement from './ReturnStatement';\nimport SequenceExpression from './SequenceExpression';\nimport SpreadElement from './SpreadElement';\nimport Super from './Super';\nimport SwitchCase from './SwitchCase';\nimport SwitchStatement from './SwitchStatement';\nimport TaggedTemplateExpression from './TaggedTemplateExpression';\nimport TemplateElement from './TemplateElement';\nimport TemplateLiteral from './TemplateLiteral';\nimport ThisExpression from './ThisExpression';\nimport ThrowStatement from './ThrowStatement';\nimport TryStatement from './TryStatement';\nimport UnaryExpression from './UnaryExpression';\nimport UnknownNode from './UnknownNode';\nimport UpdateExpression from './UpdateExpression';\nimport VariableDeclaration from './VariableDeclaration';\nimport VariableDeclarator from './VariableDeclarator';\nimport WhileStatement from './WhileStatement';\nimport YieldExpression from './YieldExpression';\nimport { NodeBase } from './shared/Node';\n\nexport const nodeConstructors: {\n\t[name: string]: typeof NodeBase;\n} = {\n\tArrayExpression,\n\tArrayPattern,\n\tArrowFunctionExpression,\n\tAssignmentExpression,\n\tAssignmentPattern,\n\tAwaitExpression,\n\tBinaryExpression,\n\tBlockStatement,\n\tBreakStatement,\n\tCallExpression,\n\tCatchClause,\n\tChainExpression,\n\tClassBody,\n\tClassDeclaration,\n\tClassExpression,\n\tConditionalExpression,\n\tContinueStatement,\n\tDoWhileStatement,\n\tEmptyStatement,\n\tExportAllDeclaration,\n\tExportDefaultDeclaration,\n\tExportNamedDeclaration,\n\tExportSpecifier,\n\tExpressionStatement,\n\tForInStatement,\n\tForOfStatement,\n\tForStatement,\n\tFunctionDeclaration,\n\tFunctionExpression,\n\tIdentifier,\n\tIfStatement,\n\tImportDeclaration,\n\tImportDefaultSpecifier,\n\tImportExpression,\n\tImportNamespaceSpecifier,\n\tImportSpecifier,\n\tLabeledStatement,\n\tLiteral,\n\tLogicalExpression,\n\tMemberExpression,\n\tMetaProperty,\n\tMethodDefinition,\n\tNewExpression,\n\tObjectExpression,\n\tObjectPattern,\n\tPrivateIdentifier,\n\tProgram,\n\tProperty,\n\tPropertyDefinition,\n\tRestElement,\n\tReturnStatement,\n\tSequenceExpression,\n\tSpreadElement,\n\tSuper,\n\tSwitchCase,\n\tSwitchStatement,\n\tTaggedTemplateExpression,\n\tTemplateElement,\n\tTemplateLiteral,\n\tThisExpression,\n\tThrowStatement,\n\tTryStatement,\n\tUnaryExpression,\n\tUnknownNode,\n\tUpdateExpression,\n\tVariableDeclaration,\n\tVariableDeclarator,\n\tWhileStatement,\n\tYieldExpression\n};\n","import { CallOptions } from '../CallOptions';\nimport { DeoptimizableEntity } from '../DeoptimizableEntity';\nimport { HasEffectsContext } from '../ExecutionContext';\nimport { NodeEvent } from '../NodeEvents';\nimport { ObjectPath, PathTracker, UnknownInteger } from '../utils/PathTracker';\nimport { UNDEFINED_EXPRESSION, UNKNOWN_LITERAL_NUMBER } from '../values';\nimport * as NodeType from './NodeType';\nimport SpreadElement from './SpreadElement';\nimport { ARRAY_PROTOTYPE } from './shared/ArrayPrototype';\nimport { ExpressionEntity, LiteralValueOrUnknown } from './shared/Expression';\nimport { ExpressionNode, NodeBase } from './shared/Node';\nimport { ObjectEntity, ObjectProperty } from './shared/ObjectEntity';\n\nexport default class ArrayExpression extends NodeBase {\n\telements!: (ExpressionNode | SpreadElement | null)[];\n\ttype!: NodeType.tArrayExpression;\n\tprivate objectEntity: ObjectEntity | null = null;\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tthis.getObjectEntity().deoptimizePath(path);\n\t}\n\n\tdeoptimizeThisOnEventAtPath(\n\t\tevent: NodeEvent,\n\t\tpath: ObjectPath,\n\t\tthisParameter: ExpressionEntity,\n\t\trecursionTracker: PathTracker\n\t): void {\n\t\tthis.getObjectEntity().deoptimizeThisOnEventAtPath(\n\t\t\tevent,\n\t\t\tpath,\n\t\t\tthisParameter,\n\t\t\trecursionTracker\n\t\t);\n\t}\n\n\tgetLiteralValueAtPath(\n\t\tpath: ObjectPath,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): LiteralValueOrUnknown {\n\t\treturn this.getObjectEntity().getLiteralValueAtPath(path, recursionTracker, origin);\n\t}\n\n\tgetReturnExpressionWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): ExpressionEntity {\n\t\treturn this.getObjectEntity().getReturnExpressionWhenCalledAtPath(\n\t\t\tpath,\n\t\t\tcallOptions,\n\t\t\trecursionTracker,\n\t\t\torigin\n\t\t);\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\treturn this.getObjectEntity().hasEffectsWhenAccessedAtPath(path, context);\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\treturn this.getObjectEntity().hasEffectsWhenAssignedAtPath(path, context);\n\t}\n\n\thasEffectsWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\tcontext: HasEffectsContext\n\t): boolean {\n\t\treturn this.getObjectEntity().hasEffectsWhenCalledAtPath(path, callOptions, context);\n\t}\n\n\tprivate getObjectEntity(): ObjectEntity {\n\t\tif (this.objectEntity !== null) {\n\t\t\treturn this.objectEntity;\n\t\t}\n\t\tconst properties: ObjectProperty[] = [\n\t\t\t{ key: 'length', kind: 'init', property: UNKNOWN_LITERAL_NUMBER }\n\t\t];\n\t\tlet hasSpread = false;\n\t\tfor (let index = 0; index < this.elements.length; index++) {\n\t\t\tconst element = this.elements[index];\n\t\t\tif (element instanceof SpreadElement || hasSpread) {\n\t\t\t\tif (element) {\n\t\t\t\t\thasSpread = true;\n\t\t\t\t\tproperties.unshift({ key: UnknownInteger, kind: 'init', property: element });\n\t\t\t\t}\n\t\t\t} else if (!element) {\n\t\t\t\tproperties.push({ key: String(index), kind: 'init', property: UNDEFINED_EXPRESSION });\n\t\t\t} else {\n\t\t\t\tproperties.push({ key: String(index), kind: 'init', property: element });\n\t\t\t}\n\t\t}\n\t\treturn (this.objectEntity = new ObjectEntity(properties, ARRAY_PROTOTYPE));\n\t}\n}\n","import { HasEffectsContext } from '../ExecutionContext';\nimport { EMPTY_PATH, ObjectPath } from '../utils/PathTracker';\nimport LocalVariable from '../variables/LocalVariable';\nimport Variable from '../variables/Variable';\nimport * as NodeType from './NodeType';\nimport { UNKNOWN_EXPRESSION } from './shared/Expression';\nimport { NodeBase } from './shared/Node';\nimport { PatternNode } from './shared/Pattern';\n\nexport default class ArrayPattern extends NodeBase implements PatternNode {\n\telements!: (PatternNode | null)[];\n\ttype!: NodeType.tArrayPattern;\n\n\taddExportedVariables(\n\t\tvariables: Variable[],\n\t\texportNamesByVariable: Map<Variable, string[]>\n\t): void {\n\t\tfor (const element of this.elements) {\n\t\t\tif (element !== null) {\n\t\t\t\telement.addExportedVariables(variables, exportNamesByVariable);\n\t\t\t}\n\t\t}\n\t}\n\n\tdeclare(kind: string): LocalVariable[] {\n\t\tconst variables: LocalVariable[] = [];\n\t\tfor (const element of this.elements) {\n\t\t\tif (element !== null) {\n\t\t\t\tvariables.push(...element.declare(kind, UNKNOWN_EXPRESSION));\n\t\t\t}\n\t\t}\n\t\treturn variables;\n\t}\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tif (path.length === 0) {\n\t\t\tfor (const element of this.elements) {\n\t\t\t\tif (element !== null) {\n\t\t\t\t\telement.deoptimizePath(path);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\tif (path.length > 0) return true;\n\t\tfor (const element of this.elements) {\n\t\t\tif (element !== null && element.hasEffectsWhenAssignedAtPath(EMPTY_PATH, context))\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tmarkDeclarationReached(): void {\n\t\tfor (const element of this.elements) {\n\t\t\tif (element !== null) {\n\t\t\t\telement.markDeclarationReached();\n\t\t\t}\n\t\t}\n\t}\n}\n","import MagicString from 'magic-string';\nimport { BLANK } from '../../utils/blank';\nimport { NodeRenderOptions, RenderOptions } from '../../utils/renderHelpers';\nimport { HasEffectsContext } from '../ExecutionContext';\nimport { EMPTY_PATH, ObjectPath, UNKNOWN_PATH } from '../utils/PathTracker';\nimport LocalVariable from '../variables/LocalVariable';\nimport Variable from '../variables/Variable';\nimport * as NodeType from './NodeType';\nimport { ExpressionEntity } from './shared/Expression';\nimport { ExpressionNode, NodeBase } from './shared/Node';\nimport { PatternNode } from './shared/Pattern';\n\nexport default class AssignmentPattern extends NodeBase implements PatternNode {\n\tleft!: PatternNode;\n\tright!: ExpressionNode;\n\ttype!: NodeType.tAssignmentPattern;\n\tprotected deoptimized = false;\n\n\taddExportedVariables(\n\t\tvariables: Variable[],\n\t\texportNamesByVariable: Map<Variable, string[]>\n\t): void {\n\t\tthis.left.addExportedVariables(variables, exportNamesByVariable);\n\t}\n\n\tdeclare(kind: string, init: ExpressionEntity): LocalVariable[] {\n\t\treturn this.left.declare(kind, init);\n\t}\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tpath.length === 0 && this.left.deoptimizePath(path);\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\treturn path.length > 0 || this.left.hasEffectsWhenAssignedAtPath(EMPTY_PATH, context);\n\t}\n\n\tmarkDeclarationReached(): void {\n\t\tthis.left.markDeclarationReached();\n\t}\n\n\trender(\n\t\tcode: MagicString,\n\t\toptions: RenderOptions,\n\t\t{ isShorthandProperty }: NodeRenderOptions = BLANK\n\t): void {\n\t\tthis.left.render(code, options, { isShorthandProperty });\n\t\tthis.right.render(code, options);\n\t}\n\n\tprotected applyDeoptimizations(): void {\n\t\tthis.deoptimized = true;\n\t\tthis.left.deoptimizePath(EMPTY_PATH);\n\t\tthis.right.deoptimizePath(UNKNOWN_PATH);\n\t\tthis.context.requestTreeshakingPass();\n\t}\n}\n","import { InclusionContext } from '../ExecutionContext';\nimport { UNKNOWN_PATH } from '../utils/PathTracker';\nimport ArrowFunctionExpression from './ArrowFunctionExpression';\nimport * as NodeType from './NodeType';\nimport FunctionNode from './shared/FunctionNode';\nimport { ExpressionNode, IncludeChildren, Node, NodeBase } from './shared/Node';\n\nexport default class AwaitExpression extends NodeBase {\n\targument!: ExpressionNode;\n\ttype!: NodeType.tAwaitExpression;\n\tprotected deoptimized = false;\n\n\thasEffects(): boolean {\n\t\tif (!this.deoptimized) this.applyDeoptimizations();\n\t\treturn true;\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tif (!this.deoptimized) this.applyDeoptimizations();\n\t\tif (!this.included) {\n\t\t\tthis.included = true;\n\t\t\tcheckTopLevelAwait: if (!this.context.usesTopLevelAwait) {\n\t\t\t\tlet parent = this.parent;\n\t\t\t\tdo {\n\t\t\t\t\tif (parent instanceof FunctionNode || parent instanceof ArrowFunctionExpression)\n\t\t\t\t\t\tbreak checkTopLevelAwait;\n\t\t\t\t} while ((parent = (parent as Node).parent as Node));\n\t\t\t\tthis.context.usesTopLevelAwait = true;\n\t\t\t}\n\t\t}\n\t\tthis.argument.include(context, includeChildrenRecursively);\n\t}\n\n\tprotected applyDeoptimizations(): void {\n\t\tthis.deoptimized = true;\n\t\tthis.argument.deoptimizePath(UNKNOWN_PATH);\n\t\tthis.context.requestTreeshakingPass();\n\t}\n}\n","import {\n\tBROKEN_FLOW_BREAK_CONTINUE,\n\tBROKEN_FLOW_ERROR_RETURN_LABEL,\n\tHasEffectsContext,\n\tInclusionContext\n} from '../ExecutionContext';\nimport Identifier from './Identifier';\nimport * as NodeType from './NodeType';\nimport { StatementBase } from './shared/Node';\n\nexport default class BreakStatement extends StatementBase {\n\tlabel!: Identifier | null;\n\ttype!: NodeType.tBreakStatement;\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tif (this.label) {\n\t\t\tif (!context.ignore.labels.has(this.label.name)) return true;\n\t\t\tcontext.includedLabels.add(this.label.name);\n\t\t\tcontext.brokenFlow = BROKEN_FLOW_ERROR_RETURN_LABEL;\n\t\t} else {\n\t\t\tif (!context.ignore.breaks) return true;\n\t\t\tcontext.brokenFlow = BROKEN_FLOW_BREAK_CONTINUE;\n\t\t}\n\t\treturn false;\n\t}\n\n\tinclude(context: InclusionContext): void {\n\t\tthis.included = true;\n\t\tif (this.label) {\n\t\t\tthis.label.include();\n\t\t\tcontext.includedLabels.add(this.label.name);\n\t\t}\n\t\tcontext.brokenFlow = this.label ? BROKEN_FLOW_ERROR_RETURN_LABEL : BROKEN_FLOW_BREAK_CONTINUE;\n\t}\n}\n","import MagicString from 'magic-string';\nimport { NormalizedTreeshakingOptions } from '../../rollup/types';\nimport { BLANK } from '../../utils/blank';\nimport {\n\tfindFirstOccurrenceOutsideComment,\n\tNodeRenderOptions,\n\tRenderOptions\n} from '../../utils/renderHelpers';\nimport { CallOptions } from '../CallOptions';\nimport { DeoptimizableEntity } from '../DeoptimizableEntity';\nimport { HasEffectsContext, InclusionContext } from '../ExecutionContext';\nimport { EVENT_CALLED, NodeEvent } from '../NodeEvents';\nimport {\n\tEMPTY_PATH,\n\tObjectPath,\n\tPathTracker,\n\tSHARED_RECURSION_TRACKER,\n\tUNKNOWN_PATH\n} from '../utils/PathTracker';\nimport Identifier from './Identifier';\nimport MemberExpression from './MemberExpression';\nimport * as NodeType from './NodeType';\nimport SpreadElement from './SpreadElement';\nimport Super from './Super';\nimport {\n\tExpressionEntity,\n\tLiteralValueOrUnknown,\n\tUNKNOWN_EXPRESSION,\n\tUnknownValue\n} from './shared/Expression';\nimport { ExpressionNode, INCLUDE_PARAMETERS, IncludeChildren, NodeBase } from './shared/Node';\n\nexport default class CallExpression extends NodeBase implements DeoptimizableEntity {\n\targuments!: (ExpressionNode | SpreadElement)[];\n\tcallee!: ExpressionNode | Super;\n\toptional!: boolean;\n\ttype!: NodeType.tCallExpression;\n\tprotected deoptimized = false;\n\tprivate callOptions!: CallOptions;\n\tprivate deoptimizableDependentExpressions: DeoptimizableEntity[] = [];\n\tprivate expressionsToBeDeoptimized = new Set<ExpressionEntity>();\n\tprivate returnExpression: ExpressionEntity | null = null;\n\n\tbind(): void {\n\t\tsuper.bind();\n\t\tif (this.callee instanceof Identifier) {\n\t\t\tconst variable = this.scope.findVariable(this.callee.name);\n\n\t\t\tif (variable.isNamespace) {\n\t\t\t\tthis.context.warn(\n\t\t\t\t\t{\n\t\t\t\t\t\tcode: 'CANNOT_CALL_NAMESPACE',\n\t\t\t\t\t\tmessage: `Cannot call a namespace ('${this.callee.name}')`\n\t\t\t\t\t},\n\t\t\t\t\tthis.start\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (this.callee.name === 'eval') {\n\t\t\t\tthis.context.warn(\n\t\t\t\t\t{\n\t\t\t\t\t\tcode: 'EVAL',\n\t\t\t\t\t\tmessage: `Use of eval is strongly discouraged, as it poses security risks and may cause issues with minification`,\n\t\t\t\t\t\turl: 'https://rollupjs.org/guide/en/#avoiding-eval'\n\t\t\t\t\t},\n\t\t\t\t\tthis.start\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tthis.callOptions = {\n\t\t\targs: this.arguments,\n\t\t\tthisParam:\n\t\t\t\tthis.callee instanceof MemberExpression && !this.callee.variable\n\t\t\t\t\t? this.callee.object\n\t\t\t\t\t: null,\n\t\t\twithNew: false\n\t\t};\n\t}\n\n\tdeoptimizeCache(): void {\n\t\tif (this.returnExpression !== UNKNOWN_EXPRESSION) {\n\t\t\tthis.returnExpression = UNKNOWN_EXPRESSION;\n\t\t\tfor (const expression of this.deoptimizableDependentExpressions) {\n\t\t\t\texpression.deoptimizeCache();\n\t\t\t}\n\t\t\tfor (const expression of this.expressionsToBeDeoptimized) {\n\t\t\t\texpression.deoptimizePath(UNKNOWN_PATH);\n\t\t\t}\n\t\t}\n\t}\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tif (\n\t\t\tpath.length === 0 ||\n\t\t\tthis.context.deoptimizationTracker.trackEntityAtPathAndGetIfTracked(path, this)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tconst returnExpression = this.getReturnExpression();\n\t\tif (returnExpression !== UNKNOWN_EXPRESSION) {\n\t\t\treturnExpression.deoptimizePath(path);\n\t\t}\n\t}\n\n\tdeoptimizeThisOnEventAtPath(\n\t\tevent: NodeEvent,\n\t\tpath: ObjectPath,\n\t\tthisParameter: ExpressionEntity,\n\t\trecursionTracker: PathTracker\n\t): void {\n\t\tconst returnExpression = this.getReturnExpression(recursionTracker);\n\t\tif (returnExpression === UNKNOWN_EXPRESSION) {\n\t\t\tthisParameter.deoptimizePath(UNKNOWN_PATH);\n\t\t} else {\n\t\t\trecursionTracker.withTrackedEntityAtPath(\n\t\t\t\tpath,\n\t\t\t\treturnExpression,\n\t\t\t\t() => {\n\t\t\t\t\tthis.expressionsToBeDeoptimized.add(thisParameter);\n\t\t\t\t\treturnExpression.deoptimizeThisOnEventAtPath(\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\tthisParameter,\n\t\t\t\t\t\trecursionTracker\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tundefined\n\t\t\t);\n\t\t}\n\t}\n\n\tgetLiteralValueAtPath(\n\t\tpath: ObjectPath,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): LiteralValueOrUnknown {\n\t\tconst returnExpression = this.getReturnExpression(recursionTracker);\n\t\tif (returnExpression === UNKNOWN_EXPRESSION) {\n\t\t\treturn UnknownValue;\n\t\t}\n\t\treturn recursionTracker.withTrackedEntityAtPath(\n\t\t\tpath,\n\t\t\treturnExpression,\n\t\t\t() => {\n\t\t\t\tthis.deoptimizableDependentExpressions.push(origin);\n\t\t\t\treturn returnExpression.getLiteralValueAtPath(path, recursionTracker, origin);\n\t\t\t},\n\t\t\tUnknownValue\n\t\t);\n\t}\n\n\tgetReturnExpressionWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): ExpressionEntity {\n\t\tconst returnExpression = this.getReturnExpression(recursionTracker);\n\t\tif (this.returnExpression === UNKNOWN_EXPRESSION) {\n\t\t\treturn UNKNOWN_EXPRESSION;\n\t\t}\n\t\treturn recursionTracker.withTrackedEntityAtPath(\n\t\t\tpath,\n\t\t\treturnExpression,\n\t\t\t() => {\n\t\t\t\tthis.deoptimizableDependentExpressions.push(origin);\n\t\t\t\treturn returnExpression.getReturnExpressionWhenCalledAtPath(\n\t\t\t\t\tpath,\n\t\t\t\t\tcallOptions,\n\t\t\t\t\trecursionTracker,\n\t\t\t\t\torigin\n\t\t\t\t);\n\t\t\t},\n\t\t\tUNKNOWN_EXPRESSION\n\t\t);\n\t}\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\ttry {\n\t\t\tfor (const argument of this.arguments) {\n\t\t\t\tif (argument.hasEffects(context)) return true;\n\t\t\t}\n\t\t\tif (\n\t\t\t\t(this.context.options.treeshake as NormalizedTreeshakingOptions).annotations &&\n\t\t\t\tthis.annotations\n\t\t\t)\n\t\t\t\treturn false;\n\t\t\treturn (\n\t\t\t\tthis.callee.hasEffects(context) ||\n\t\t\t\tthis.callee.hasEffectsWhenCalledAtPath(EMPTY_PATH, this.callOptions, context)\n\t\t\t);\n\t\t} finally {\n\t\t\tif (!this.deoptimized) this.applyDeoptimizations();\n\t\t}\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\treturn (\n\t\t\t!context.accessed.trackEntityAtPathAndGetIfTracked(path, this) &&\n\t\t\tthis.getReturnExpression().hasEffectsWhenAccessedAtPath(path, context)\n\t\t);\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\treturn (\n\t\t\t!context.assigned.trackEntityAtPathAndGetIfTracked(path, this) &&\n\t\t\tthis.getReturnExpression().hasEffectsWhenAssignedAtPath(path, context)\n\t\t);\n\t}\n\n\thasEffectsWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\tcontext: HasEffectsContext\n\t): boolean {\n\t\treturn (\n\t\t\t!(\n\t\t\t\tcallOptions.withNew ? context.instantiated : context.called\n\t\t\t).trackEntityAtPathAndGetIfTracked(path, callOptions, this) &&\n\t\t\tthis.getReturnExpression().hasEffectsWhenCalledAtPath(path, callOptions, context)\n\t\t);\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tif (!this.deoptimized) this.applyDeoptimizations();\n\t\tif (includeChildrenRecursively) {\n\t\t\tsuper.include(context, includeChildrenRecursively);\n\t\t\tif (\n\t\t\t\tincludeChildrenRecursively === INCLUDE_PARAMETERS &&\n\t\t\t\tthis.callee instanceof Identifier &&\n\t\t\t\tthis.callee.variable\n\t\t\t) {\n\t\t\t\tthis.callee.variable.markCalledFromTryStatement();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.included = true;\n\t\t\tthis.callee.include(context, false);\n\t\t}\n\t\tthis.callee.includeCallArguments(context, this.arguments);\n\t\tconst returnExpression = this.getReturnExpression();\n\t\tif (!returnExpression.included) {\n\t\t\treturnExpression.include(context, false);\n\t\t}\n\t}\n\n\trender(\n\t\tcode: MagicString,\n\t\toptions: RenderOptions,\n\t\t{ renderedParentType, renderedSurroundingElement }: NodeRenderOptions = BLANK\n\t): void {\n\t\tconst surroundingELement = renderedParentType || renderedSurroundingElement;\n\t\tthis.callee.render(code, options, {\n\t\t\tisCalleeOfRenderedParent: true,\n\t\t\trenderedSurroundingElement: surroundingELement\n\t\t});\n\t\tif (this.arguments.length > 0) {\n\t\t\tif (this.arguments[this.arguments.length - 1].included) {\n\t\t\t\tfor (const arg of this.arguments) {\n\t\t\t\t\targ.render(code, options);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlet lastIncludedIndex = this.arguments.length - 2;\n\t\t\t\twhile (lastIncludedIndex >= 0 && !this.arguments[lastIncludedIndex].included) {\n\t\t\t\t\tlastIncludedIndex--;\n\t\t\t\t}\n\t\t\t\tif (lastIncludedIndex >= 0) {\n\t\t\t\t\tfor (let index = 0; index <= lastIncludedIndex; index++) {\n\t\t\t\t\t\tthis.arguments[index].render(code, options);\n\t\t\t\t\t}\n\t\t\t\t\tcode.remove(\n\t\t\t\t\t\tfindFirstOccurrenceOutsideComment(\n\t\t\t\t\t\t\tcode.original,\n\t\t\t\t\t\t\t',',\n\t\t\t\t\t\t\tthis.arguments[lastIncludedIndex].end\n\t\t\t\t\t\t),\n\t\t\t\t\t\tthis.end - 1\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tcode.remove(\n\t\t\t\t\t\tfindFirstOccurrenceOutsideComment(code.original, '(', this.callee.end) + 1,\n\t\t\t\t\t\tthis.end - 1\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected applyDeoptimizations(): void {\n\t\tthis.deoptimized = true;\n\t\tconst { thisParam } = this.callOptions;\n\t\tif (thisParam) {\n\t\t\tthis.callee.deoptimizeThisOnEventAtPath(\n\t\t\t\tEVENT_CALLED,\n\t\t\t\tEMPTY_PATH,\n\t\t\t\tthisParam,\n\t\t\t\tSHARED_RECURSION_TRACKER\n\t\t\t);\n\t\t}\n\t\tfor (const argument of this.arguments) {\n\t\t\t// This will make sure all properties of parameters behave as \"unknown\"\n\t\t\targument.deoptimizePath(UNKNOWN_PATH);\n\t\t}\n\t\tthis.context.requestTreeshakingPass();\n\t}\n\n\tprivate getReturnExpression(\n\t\trecursionTracker: PathTracker = SHARED_RECURSION_TRACKER\n\t): ExpressionEntity {\n\t\tif (this.returnExpression === null) {\n\t\t\tthis.returnExpression = UNKNOWN_EXPRESSION;\n\t\t\treturn (this.returnExpression = this.callee.getReturnExpressionWhenCalledAtPath(\n\t\t\t\tEMPTY_PATH,\n\t\t\t\tthis.callOptions,\n\t\t\t\trecursionTracker,\n\t\t\t\tthis\n\t\t\t));\n\t\t}\n\t\treturn this.returnExpression;\n\t}\n}\n","import CatchScope from '../scopes/CatchScope';\nimport Scope from '../scopes/Scope';\nimport BlockStatement from './BlockStatement';\nimport * as NodeType from './NodeType';\nimport { UNKNOWN_EXPRESSION } from './shared/Expression';\nimport { GenericEsTreeNode, NodeBase } from './shared/Node';\nimport { PatternNode } from './shared/Pattern';\n\nexport default class CatchClause extends NodeBase {\n\tbody!: BlockStatement;\n\tparam!: PatternNode | null;\n\tpreventChildBlockScope!: true;\n\tscope!: CatchScope;\n\ttype!: NodeType.tCatchClause;\n\n\tcreateScope(parentScope: Scope): void {\n\t\tthis.scope = new CatchScope(parentScope, this.context);\n\t}\n\n\tparseNode(esTreeNode: GenericEsTreeNode): void {\n\t\t// Parameters need to be declared first as the logic is that initializers\n\t\t// of hoisted body variables are associated with parameters of the same\n\t\t// name instead of the variable\n\t\tconst { param } = esTreeNode;\n\t\tif (param) {\n\t\t\t(this.param as GenericEsTreeNode) = new (this.context.nodeConstructors[param.type] ||\n\t\t\t\tthis.context.nodeConstructors.UnknownNode)(param, this, this.scope);\n\t\t\tthis.param!.declare('parameter', UNKNOWN_EXPRESSION);\n\t\t}\n\t\tsuper.parseNode(esTreeNode);\n\t}\n}\n","import CallExpression from './CallExpression';\nimport MemberExpression from './MemberExpression';\nimport * as NodeType from './NodeType';\nimport { NodeBase } from './shared/Node';\n\nexport default class ChainExpression extends NodeBase {\n\texpression!: CallExpression | MemberExpression;\n\ttype!: NodeType.tChainExpression;\n}\n","import { InclusionContext } from '../ExecutionContext';\nimport ClassBodyScope from '../scopes/ClassBodyScope';\nimport Scope from '../scopes/Scope';\nimport MethodDefinition from './MethodDefinition';\nimport * as NodeType from './NodeType';\nimport PropertyDefinition from './PropertyDefinition';\nimport ClassNode from './shared/ClassNode';\nimport { GenericEsTreeNode, IncludeChildren, NodeBase } from './shared/Node';\n\nexport default class ClassBody extends NodeBase {\n\tbody!: (MethodDefinition | PropertyDefinition)[];\n\tscope!: ClassBodyScope;\n\ttype!: NodeType.tClassBody;\n\n\tcreateScope(parentScope: Scope): void {\n\t\tthis.scope = new ClassBodyScope(parentScope, this.parent as ClassNode, this.context);\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tthis.included = true;\n\t\tthis.context.includeVariableInModule(this.scope.thisVariable);\n\t\tfor (const definition of this.body) {\n\t\t\tdefinition.include(context, includeChildrenRecursively);\n\t\t}\n\t}\n\n\tparseNode(esTreeNode: GenericEsTreeNode): void {\n\t\tconst body: NodeBase[] = (this.body = []);\n\t\tfor (const definition of esTreeNode.body) {\n\t\t\tbody.push(\n\t\t\t\tnew this.context.nodeConstructors[definition.type](\n\t\t\t\t\tdefinition,\n\t\t\t\t\tthis,\n\t\t\t\t\tdefinition.static ? this.scope : this.scope.instanceScope\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\tsuper.parseNode(esTreeNode);\n\t}\n}\n","import MagicString from 'magic-string';\nimport { BLANK } from '../../utils/blank';\nimport { NodeRenderOptions, RenderOptions } from '../../utils/renderHelpers';\nimport * as NodeType from './NodeType';\nimport ClassNode from './shared/ClassNode';\n\nexport default class ClassExpression extends ClassNode {\n\ttype!: NodeType.tClassExpression;\n\n\trender(\n\t\tcode: MagicString,\n\t\toptions: RenderOptions,\n\t\t{ renderedParentType, renderedSurroundingElement }: NodeRenderOptions = BLANK\n\t): void {\n\t\tsuper.render(code, options);\n\t\tconst surroundingElement = renderedParentType || renderedSurroundingElement;\n\t\tif (surroundingElement === NodeType.ExpressionStatement) {\n\t\t\tcode.appendRight(this.start, '(');\n\t\t\tcode.prependLeft(this.end, ')');\n\t\t}\n\t}\n}\n","import MagicString from 'magic-string';\nimport { BLANK } from '../../utils/blank';\nimport {\n\tfindFirstOccurrenceOutsideComment,\n\tfindNonWhiteSpace,\n\tNodeRenderOptions,\n\tremoveLineBreaks,\n\tRenderOptions\n} from '../../utils/renderHelpers';\nimport { removeAnnotations } from '../../utils/treeshakeNode';\nimport { CallOptions } from '../CallOptions';\nimport { DeoptimizableEntity } from '../DeoptimizableEntity';\nimport { HasEffectsContext, InclusionContext } from '../ExecutionContext';\nimport { NodeEvent } from '../NodeEvents';\nimport {\n\tEMPTY_PATH,\n\tObjectPath,\n\tPathTracker,\n\tSHARED_RECURSION_TRACKER,\n\tUNKNOWN_PATH\n} from '../utils/PathTracker';\nimport * as NodeType from './NodeType';\nimport SpreadElement from './SpreadElement';\nimport { ExpressionEntity, LiteralValueOrUnknown, UnknownValue } from './shared/Expression';\nimport { MultiExpression } from './shared/MultiExpression';\nimport { ExpressionNode, IncludeChildren, NodeBase } from './shared/Node';\n\nexport default class ConditionalExpression extends NodeBase implements DeoptimizableEntity {\n\talternate!: ExpressionNode;\n\tconsequent!: ExpressionNode;\n\ttest!: ExpressionNode;\n\ttype!: NodeType.tConditionalExpression;\n\n\tprivate expressionsToBeDeoptimized: DeoptimizableEntity[] = [];\n\tprivate isBranchResolutionAnalysed = false;\n\tprivate usedBranch: ExpressionNode | null = null;\n\n\tdeoptimizeCache(): void {\n\t\tif (this.usedBranch !== null) {\n\t\t\tconst unusedBranch = this.usedBranch === this.consequent ? this.alternate : this.consequent;\n\t\t\tthis.usedBranch = null;\n\t\t\tunusedBranch.deoptimizePath(UNKNOWN_PATH);\n\t\t\tfor (const expression of this.expressionsToBeDeoptimized) {\n\t\t\t\texpression.deoptimizeCache();\n\t\t\t}\n\t\t}\n\t}\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tconst usedBranch = this.getUsedBranch();\n\t\tif (usedBranch === null) {\n\t\t\tthis.consequent.deoptimizePath(path);\n\t\t\tthis.alternate.deoptimizePath(path);\n\t\t} else {\n\t\t\tusedBranch.deoptimizePath(path);\n\t\t}\n\t}\n\n\tdeoptimizeThisOnEventAtPath(\n\t\tevent: NodeEvent,\n\t\tpath: ObjectPath,\n\t\tthisParameter: ExpressionEntity,\n\t\trecursionTracker: PathTracker\n\t): void {\n\t\tthis.consequent.deoptimizeThisOnEventAtPath(event, path, thisParameter, recursionTracker);\n\t\tthis.alternate.deoptimizeThisOnEventAtPath(event, path, thisParameter, recursionTracker);\n\t}\n\n\tgetLiteralValueAtPath(\n\t\tpath: ObjectPath,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): LiteralValueOrUnknown {\n\t\tconst usedBranch = this.getUsedBranch();\n\t\tif (usedBranch === null) return UnknownValue;\n\t\tthis.expressionsToBeDeoptimized.push(origin);\n\t\treturn usedBranch.getLiteralValueAtPath(path, recursionTracker, origin);\n\t}\n\n\tgetReturnExpressionWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): ExpressionEntity {\n\t\tconst usedBranch = this.getUsedBranch();\n\t\tif (usedBranch === null)\n\t\t\treturn new MultiExpression([\n\t\t\t\tthis.consequent.getReturnExpressionWhenCalledAtPath(\n\t\t\t\t\tpath,\n\t\t\t\t\tcallOptions,\n\t\t\t\t\trecursionTracker,\n\t\t\t\t\torigin\n\t\t\t\t),\n\t\t\t\tthis.alternate.getReturnExpressionWhenCalledAtPath(\n\t\t\t\t\tpath,\n\t\t\t\t\tcallOptions,\n\t\t\t\t\trecursionTracker,\n\t\t\t\t\torigin\n\t\t\t\t)\n\t\t\t]);\n\t\tthis.expressionsToBeDeoptimized.push(origin);\n\t\treturn usedBranch.getReturnExpressionWhenCalledAtPath(\n\t\t\tpath,\n\t\t\tcallOptions,\n\t\t\trecursionTracker,\n\t\t\torigin\n\t\t);\n\t}\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tif (this.test.hasEffects(context)) return true;\n\t\tconst usedBranch = this.getUsedBranch();\n\t\tif (usedBranch === null) {\n\t\t\treturn this.consequent.hasEffects(context) || this.alternate.hasEffects(context);\n\t\t}\n\t\treturn usedBranch.hasEffects(context);\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\tconst usedBranch = this.getUsedBranch();\n\t\tif (usedBranch === null) {\n\t\t\treturn (\n\t\t\t\tthis.consequent.hasEffectsWhenAccessedAtPath(path, context) ||\n\t\t\t\tthis.alternate.hasEffectsWhenAccessedAtPath(path, context)\n\t\t\t);\n\t\t}\n\t\treturn usedBranch.hasEffectsWhenAccessedAtPath(path, context);\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\tconst usedBranch = this.getUsedBranch();\n\t\tif (usedBranch === null) {\n\t\t\treturn (\n\t\t\t\tthis.consequent.hasEffectsWhenAssignedAtPath(path, context) ||\n\t\t\t\tthis.alternate.hasEffectsWhenAssignedAtPath(path, context)\n\t\t\t);\n\t\t}\n\t\treturn usedBranch.hasEffectsWhenAssignedAtPath(path, context);\n\t}\n\n\thasEffectsWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\tcontext: HasEffectsContext\n\t): boolean {\n\t\tconst usedBranch = this.getUsedBranch();\n\t\tif (usedBranch === null) {\n\t\t\treturn (\n\t\t\t\tthis.consequent.hasEffectsWhenCalledAtPath(path, callOptions, context) ||\n\t\t\t\tthis.alternate.hasEffectsWhenCalledAtPath(path, callOptions, context)\n\t\t\t);\n\t\t}\n\t\treturn usedBranch.hasEffectsWhenCalledAtPath(path, callOptions, context);\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tthis.included = true;\n\t\tconst usedBranch = this.getUsedBranch();\n\t\tif (includeChildrenRecursively || this.test.shouldBeIncluded(context) || usedBranch === null) {\n\t\t\tthis.test.include(context, includeChildrenRecursively);\n\t\t\tthis.consequent.include(context, includeChildrenRecursively);\n\t\t\tthis.alternate.include(context, includeChildrenRecursively);\n\t\t} else {\n\t\t\tusedBranch.include(context, includeChildrenRecursively);\n\t\t}\n\t}\n\n\tincludeCallArguments(context: InclusionContext, args: (ExpressionNode | SpreadElement)[]): void {\n\t\tconst usedBranch = this.getUsedBranch();\n\t\tif (usedBranch === null) {\n\t\t\tthis.consequent.includeCallArguments(context, args);\n\t\t\tthis.alternate.includeCallArguments(context, args);\n\t\t} else {\n\t\t\tusedBranch.includeCallArguments(context, args);\n\t\t}\n\t}\n\n\trender(\n\t\tcode: MagicString,\n\t\toptions: RenderOptions,\n\t\t{\n\t\t\tisCalleeOfRenderedParent,\n\t\t\tpreventASI,\n\t\t\trenderedParentType,\n\t\t\trenderedSurroundingElement\n\t\t}: NodeRenderOptions = BLANK\n\t): void {\n\t\tconst usedBranch = this.getUsedBranch();\n\t\tif (!this.test.included) {\n\t\t\tconst colonPos = findFirstOccurrenceOutsideComment(code.original, ':', this.consequent.end);\n\t\t\tconst inclusionStart = findNonWhiteSpace(\n\t\t\t\tcode.original,\n\t\t\t\t(this.consequent.included\n\t\t\t\t\t? findFirstOccurrenceOutsideComment(code.original, '?', this.test.end)\n\t\t\t\t\t: colonPos) + 1\n\t\t\t);\n\t\t\tif (preventASI) {\n\t\t\t\tremoveLineBreaks(code, inclusionStart, usedBranch!.start);\n\t\t\t}\n\t\t\tcode.remove(this.start, inclusionStart);\n\t\t\tif (this.consequent.included) {\n\t\t\t\tcode.remove(colonPos, this.end);\n\t\t\t}\n\t\t\tremoveAnnotations(this, code);\n\t\t\tusedBranch!.render(code, options, {\n\t\t\t\tisCalleeOfRenderedParent,\n\t\t\t\tpreventASI: true,\n\t\t\t\t...(renderedSurroundingElement\n\t\t\t\t\t? { renderedSurroundingElement }\n\t\t\t\t\t: { renderedParentType: renderedParentType || this.parent.type })\n\t\t\t});\n\t\t} else {\n\t\t\tthis.test.render(code, options, {\n\t\t\t\trenderedSurroundingElement: renderedParentType || renderedSurroundingElement\n\t\t\t});\n\t\t\tthis.consequent.render(code, options);\n\t\t\tthis.alternate.render(code, options);\n\t\t}\n\t}\n\n\tprivate getUsedBranch() {\n\t\tif (this.isBranchResolutionAnalysed) {\n\t\t\treturn this.usedBranch;\n\t\t}\n\t\tthis.isBranchResolutionAnalysed = true;\n\t\tconst testValue = this.test.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this);\n\t\treturn testValue === UnknownValue\n\t\t\t? null\n\t\t\t: (this.usedBranch = testValue ? this.consequent : this.alternate);\n\t}\n}\n","import {\n\tBROKEN_FLOW_BREAK_CONTINUE,\n\tBROKEN_FLOW_ERROR_RETURN_LABEL,\n\tHasEffectsContext,\n\tInclusionContext\n} from '../ExecutionContext';\nimport Identifier from './Identifier';\nimport * as NodeType from './NodeType';\nimport { StatementBase } from './shared/Node';\n\nexport default class ContinueStatement extends StatementBase {\n\tlabel!: Identifier | null;\n\ttype!: NodeType.tContinueStatement;\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tif (this.label) {\n\t\t\tif (!context.ignore.labels.has(this.label.name)) return true;\n\t\t\tcontext.includedLabels.add(this.label.name);\n\t\t\tcontext.brokenFlow = BROKEN_FLOW_ERROR_RETURN_LABEL;\n\t\t} else {\n\t\t\tif (!context.ignore.continues) return true;\n\t\t\tcontext.brokenFlow = BROKEN_FLOW_BREAK_CONTINUE;\n\t\t}\n\t\treturn false;\n\t}\n\n\tinclude(context: InclusionContext): void {\n\t\tthis.included = true;\n\t\tif (this.label) {\n\t\t\tthis.label.include();\n\t\t\tcontext.includedLabels.add(this.label.name);\n\t\t}\n\t\tcontext.brokenFlow = this.label ? BROKEN_FLOW_ERROR_RETURN_LABEL : BROKEN_FLOW_BREAK_CONTINUE;\n\t}\n}\n","import { HasEffectsContext, InclusionContext } from '../ExecutionContext';\nimport * as NodeType from './NodeType';\nimport { ExpressionNode, IncludeChildren, StatementBase, StatementNode } from './shared/Node';\n\nexport default class DoWhileStatement extends StatementBase {\n\tbody!: StatementNode;\n\ttest!: ExpressionNode;\n\ttype!: NodeType.tDoWhileStatement;\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tif (this.test.hasEffects(context)) return true;\n\t\tconst {\n\t\t\tbrokenFlow,\n\t\t\tignore: { breaks, continues }\n\t\t} = context;\n\t\tcontext.ignore.breaks = true;\n\t\tcontext.ignore.continues = true;\n\t\tif (this.body.hasEffects(context)) return true;\n\t\tcontext.ignore.breaks = breaks;\n\t\tcontext.ignore.continues = continues;\n\t\tcontext.brokenFlow = brokenFlow;\n\t\treturn false;\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tthis.included = true;\n\t\tthis.test.include(context, includeChildrenRecursively);\n\t\tconst { brokenFlow } = context;\n\t\tthis.body.includeAsSingleStatement(context, includeChildrenRecursively);\n\t\tcontext.brokenFlow = brokenFlow;\n\t}\n}\n","import * as NodeType from './NodeType';\nimport { StatementBase } from './shared/Node';\n\nexport default class EmptyStatement extends StatementBase {\n\ttype!: NodeType.tEmptyStatement;\n\n\thasEffects(): boolean {\n\t\treturn false;\n\t}\n}\n","import Identifier from './Identifier';\nimport * as NodeType from './NodeType';\nimport { NodeBase } from './shared/Node';\n\nexport default class ExportSpecifier extends NodeBase {\n\texported!: Identifier;\n\tlocal!: Identifier;\n\ttype!: NodeType.tExportSpecifier;\n}\n","import MagicString from 'magic-string';\nimport { NO_SEMICOLON, RenderOptions } from '../../utils/renderHelpers';\nimport { HasEffectsContext, InclusionContext } from '../ExecutionContext';\nimport BlockScope from '../scopes/BlockScope';\nimport Scope from '../scopes/Scope';\nimport { EMPTY_PATH } from '../utils/PathTracker';\nimport * as NodeType from './NodeType';\nimport VariableDeclaration from './VariableDeclaration';\nimport { ExpressionNode, IncludeChildren, StatementBase, StatementNode } from './shared/Node';\nimport { PatternNode } from './shared/Pattern';\n\nexport default class ForInStatement extends StatementBase {\n\tbody!: StatementNode;\n\tleft!: VariableDeclaration | PatternNode;\n\tright!: ExpressionNode;\n\ttype!: NodeType.tForInStatement;\n\tprotected deoptimized = false;\n\n\tcreateScope(parentScope: Scope): void {\n\t\tthis.scope = new BlockScope(parentScope);\n\t}\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tif (!this.deoptimized) this.applyDeoptimizations();\n\t\tif (\n\t\t\t(this.left &&\n\t\t\t\t(this.left.hasEffects(context) ||\n\t\t\t\t\tthis.left.hasEffectsWhenAssignedAtPath(EMPTY_PATH, context))) ||\n\t\t\t(this.right && this.right.hasEffects(context))\n\t\t)\n\t\t\treturn true;\n\t\tconst {\n\t\t\tbrokenFlow,\n\t\t\tignore: { breaks, continues }\n\t\t} = context;\n\t\tcontext.ignore.breaks = true;\n\t\tcontext.ignore.continues = true;\n\t\tif (this.body.hasEffects(context)) return true;\n\t\tcontext.ignore.breaks = breaks;\n\t\tcontext.ignore.continues = continues;\n\t\tcontext.brokenFlow = brokenFlow;\n\t\treturn false;\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tif (!this.deoptimized) this.applyDeoptimizations();\n\t\tthis.included = true;\n\t\tthis.left.include(context, includeChildrenRecursively || true);\n\t\tthis.right.include(context, includeChildrenRecursively);\n\t\tconst { brokenFlow } = context;\n\t\tthis.body.includeAsSingleStatement(context, includeChildrenRecursively);\n\t\tcontext.brokenFlow = brokenFlow;\n\t}\n\n\trender(code: MagicString, options: RenderOptions): void {\n\t\tthis.left.render(code, options, NO_SEMICOLON);\n\t\tthis.right.render(code, options, NO_SEMICOLON);\n\t\t// handle no space between \"in\" and the right side\n\t\tif (code.original.charCodeAt(this.right.start - 1) === 110 /* n */) {\n\t\t\tcode.prependLeft(this.right.start, ' ');\n\t\t}\n\t\tthis.body.render(code, options);\n\t}\n\n\tprotected applyDeoptimizations(): void {\n\t\tthis.deoptimized = true;\n\t\tthis.left.deoptimizePath(EMPTY_PATH);\n\t\tthis.context.requestTreeshakingPass();\n\t}\n}\n","import MagicString from 'magic-string';\nimport { NO_SEMICOLON, RenderOptions } from '../../utils/renderHelpers';\nimport { InclusionContext } from '../ExecutionContext';\nimport BlockScope from '../scopes/BlockScope';\nimport Scope from '../scopes/Scope';\nimport { EMPTY_PATH } from '../utils/PathTracker';\nimport * as NodeType from './NodeType';\nimport VariableDeclaration from './VariableDeclaration';\nimport { ExpressionNode, IncludeChildren, StatementBase, StatementNode } from './shared/Node';\nimport { PatternNode } from './shared/Pattern';\n\nexport default class ForOfStatement extends StatementBase {\n\tawait!: boolean;\n\tbody!: StatementNode;\n\tleft!: VariableDeclaration | PatternNode;\n\tright!: ExpressionNode;\n\ttype!: NodeType.tForOfStatement;\n\tprotected deoptimized = false;\n\n\tcreateScope(parentScope: Scope): void {\n\t\tthis.scope = new BlockScope(parentScope);\n\t}\n\n\thasEffects(): boolean {\n\t\tif (!this.deoptimized) this.applyDeoptimizations();\n\t\t// Placeholder until proper Symbol.Iterator support\n\t\treturn true;\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tif (!this.deoptimized) this.applyDeoptimizations();\n\t\tthis.included = true;\n\t\tthis.left.include(context, includeChildrenRecursively || true);\n\t\tthis.right.include(context, includeChildrenRecursively);\n\t\tconst { brokenFlow } = context;\n\t\tthis.body.includeAsSingleStatement(context, includeChildrenRecursively);\n\t\tcontext.brokenFlow = brokenFlow;\n\t}\n\n\trender(code: MagicString, options: RenderOptions): void {\n\t\tthis.left.render(code, options, NO_SEMICOLON);\n\t\tthis.right.render(code, options, NO_SEMICOLON);\n\t\t// handle no space between \"of\" and the right side\n\t\tif (code.original.charCodeAt(this.right.start - 1) === 102 /* f */) {\n\t\t\tcode.prependLeft(this.right.start, ' ');\n\t\t}\n\t\tthis.body.render(code, options);\n\t}\n\n\tprotected applyDeoptimizations(): void {\n\t\tthis.deoptimized = true;\n\t\tthis.left.deoptimizePath(EMPTY_PATH);\n\t\tthis.context.requestTreeshakingPass();\n\t}\n}\n","import MagicString from 'magic-string';\nimport { NO_SEMICOLON, RenderOptions } from '../../utils/renderHelpers';\nimport { HasEffectsContext, InclusionContext } from '../ExecutionContext';\nimport BlockScope from '../scopes/BlockScope';\nimport Scope from '../scopes/Scope';\nimport * as NodeType from './NodeType';\nimport VariableDeclaration from './VariableDeclaration';\nimport { ExpressionNode, IncludeChildren, StatementBase, StatementNode } from './shared/Node';\n\nexport default class ForStatement extends StatementBase {\n\tbody!: StatementNode;\n\tinit!: VariableDeclaration | ExpressionNode | null;\n\ttest!: ExpressionNode | null;\n\ttype!: NodeType.tForStatement;\n\tupdate!: ExpressionNode | null;\n\n\tcreateScope(parentScope: Scope): void {\n\t\tthis.scope = new BlockScope(parentScope);\n\t}\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tif (\n\t\t\t(this.init && this.init.hasEffects(context)) ||\n\t\t\t(this.test && this.test.hasEffects(context)) ||\n\t\t\t(this.update && this.update.hasEffects(context))\n\t\t)\n\t\t\treturn true;\n\t\tconst {\n\t\t\tbrokenFlow,\n\t\t\tignore: { breaks, continues }\n\t\t} = context;\n\t\tcontext.ignore.breaks = true;\n\t\tcontext.ignore.continues = true;\n\t\tif (this.body.hasEffects(context)) return true;\n\t\tcontext.ignore.breaks = breaks;\n\t\tcontext.ignore.continues = continues;\n\t\tcontext.brokenFlow = brokenFlow;\n\t\treturn false;\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tthis.included = true;\n\t\tif (this.init) this.init.includeAsSingleStatement(context, includeChildrenRecursively);\n\t\tif (this.test) this.test.include(context, includeChildrenRecursively);\n\t\tconst { brokenFlow } = context;\n\t\tif (this.update) this.update.include(context, includeChildrenRecursively);\n\t\tthis.body.includeAsSingleStatement(context, includeChildrenRecursively);\n\t\tcontext.brokenFlow = brokenFlow;\n\t}\n\n\trender(code: MagicString, options: RenderOptions): void {\n\t\tif (this.init) this.init.render(code, options, NO_SEMICOLON);\n\t\tif (this.test) this.test.render(code, options, NO_SEMICOLON);\n\t\tif (this.update) this.update.render(code, options, NO_SEMICOLON);\n\t\tthis.body.render(code, options);\n\t}\n}\n","import MagicString from 'magic-string';\nimport { BLANK } from '../../utils/blank';\nimport { NodeRenderOptions, RenderOptions } from '../../utils/renderHelpers';\nimport * as NodeType from './NodeType';\nimport FunctionNode from './shared/FunctionNode';\n\nexport default class FunctionExpression extends FunctionNode {\n\ttype!: NodeType.tFunctionExpression;\n\n\trender(\n\t\tcode: MagicString,\n\t\toptions: RenderOptions,\n\t\t{ renderedParentType, renderedSurroundingElement }: NodeRenderOptions = BLANK\n\t): void {\n\t\tsuper.render(code, options);\n\t\tconst surroundingElement = renderedParentType || renderedSurroundingElement;\n\t\tif (surroundingElement === NodeType.ExpressionStatement) {\n\t\t\tcode.appendRight(this.start, '(');\n\t\t\tcode.prependLeft(this.end, ')');\n\t\t}\n\t}\n}\n","import Identifier from './Identifier';\nimport * as NodeType from './NodeType';\nimport { NodeBase } from './shared/Node';\n\nexport default class ImportDefaultSpecifier extends NodeBase {\n\tlocal!: Identifier;\n\ttype!: NodeType.tImportDefaultSpecifier;\n}\n","import Identifier from './Identifier';\nimport * as NodeType from './NodeType';\nimport { NodeBase } from './shared/Node';\n\nexport default class ImportNamespaceSpecifier extends NodeBase {\n\tlocal!: Identifier;\n\ttype!: NodeType.tImportNamespaceSpecifier;\n}\n","import Identifier from './Identifier';\nimport * as NodeType from './NodeType';\nimport { NodeBase } from './shared/Node';\n\nexport default class ImportSpecifier extends NodeBase {\n\timported!: Identifier;\n\tlocal!: Identifier;\n\ttype!: NodeType.tImportSpecifier;\n}\n","import MagicString from 'magic-string';\nimport {\n\tfindFirstOccurrenceOutsideComment,\n\tfindNonWhiteSpace,\n\tRenderOptions\n} from '../../utils/renderHelpers';\nimport { HasEffectsContext, InclusionContext } from '../ExecutionContext';\nimport Identifier from './Identifier';\nimport * as NodeType from './NodeType';\nimport { IncludeChildren, StatementBase, StatementNode } from './shared/Node';\n\nexport default class LabeledStatement extends StatementBase {\n\tbody!: StatementNode;\n\tlabel!: Identifier;\n\ttype!: NodeType.tLabeledStatement;\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tconst brokenFlow = context.brokenFlow;\n\t\tcontext.ignore.labels.add(this.label.name);\n\t\tif (this.body.hasEffects(context)) return true;\n\t\tcontext.ignore.labels.delete(this.label.name);\n\t\tif (context.includedLabels.has(this.label.name)) {\n\t\t\tcontext.includedLabels.delete(this.label.name);\n\t\t\tcontext.brokenFlow = brokenFlow;\n\t\t}\n\t\treturn false;\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tthis.included = true;\n\t\tconst brokenFlow = context.brokenFlow;\n\t\tthis.body.include(context, includeChildrenRecursively);\n\t\tif (includeChildrenRecursively || context.includedLabels.has(this.label.name)) {\n\t\t\tthis.label.include();\n\t\t\tcontext.includedLabels.delete(this.label.name);\n\t\t\tcontext.brokenFlow = brokenFlow;\n\t\t}\n\t}\n\n\trender(code: MagicString, options: RenderOptions): void {\n\t\tif (this.label.included) {\n\t\t\tthis.label.render(code, options);\n\t\t} else {\n\t\t\tcode.remove(\n\t\t\t\tthis.start,\n\t\t\t\tfindNonWhiteSpace(\n\t\t\t\t\tcode.original,\n\t\t\t\t\tfindFirstOccurrenceOutsideComment(code.original, ':', this.label.end) + 1\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\tthis.body.render(code, options);\n\t}\n}\n","import MagicString from 'magic-string';\nimport { BLANK } from '../../utils/blank';\nimport {\n\tfindFirstOccurrenceOutsideComment,\n\tfindNonWhiteSpace,\n\tNodeRenderOptions,\n\tremoveLineBreaks,\n\tRenderOptions\n} from '../../utils/renderHelpers';\nimport { removeAnnotations } from '../../utils/treeshakeNode';\nimport { CallOptions } from '../CallOptions';\nimport { DeoptimizableEntity } from '../DeoptimizableEntity';\nimport { HasEffectsContext, InclusionContext } from '../ExecutionContext';\nimport { NodeEvent } from '../NodeEvents';\nimport {\n\tEMPTY_PATH,\n\tObjectPath,\n\tPathTracker,\n\tSHARED_RECURSION_TRACKER,\n\tUNKNOWN_PATH\n} from '../utils/PathTracker';\nimport * as NodeType from './NodeType';\nimport { ExpressionEntity, LiteralValueOrUnknown, UnknownValue } from './shared/Expression';\nimport { MultiExpression } from './shared/MultiExpression';\nimport { ExpressionNode, IncludeChildren, NodeBase } from './shared/Node';\n\nexport type LogicalOperator = '||' | '&&' | '??';\n\nexport default class LogicalExpression extends NodeBase implements DeoptimizableEntity {\n\tleft!: ExpressionNode;\n\toperator!: LogicalOperator;\n\tright!: ExpressionNode;\n\ttype!: NodeType.tLogicalExpression;\n\n\t// We collect deoptimization information if usedBranch !== null\n\tprivate expressionsToBeDeoptimized: DeoptimizableEntity[] = [];\n\tprivate isBranchResolutionAnalysed = false;\n\tprivate usedBranch: ExpressionNode | null = null;\n\n\tdeoptimizeCache(): void {\n\t\tif (this.usedBranch !== null) {\n\t\t\tconst unusedBranch = this.usedBranch === this.left ? this.right : this.left;\n\t\t\tthis.usedBranch = null;\n\t\t\tunusedBranch.deoptimizePath(UNKNOWN_PATH);\n\t\t\tfor (const expression of this.expressionsToBeDeoptimized) {\n\t\t\t\texpression.deoptimizeCache();\n\t\t\t}\n\t\t}\n\t}\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tconst usedBranch = this.getUsedBranch();\n\t\tif (usedBranch === null) {\n\t\t\tthis.left.deoptimizePath(path);\n\t\t\tthis.right.deoptimizePath(path);\n\t\t} else {\n\t\t\tusedBranch.deoptimizePath(path);\n\t\t}\n\t}\n\n\tdeoptimizeThisOnEventAtPath(\n\t\tevent: NodeEvent,\n\t\tpath: ObjectPath,\n\t\tthisParameter: ExpressionEntity,\n\t\trecursionTracker: PathTracker\n\t): void {\n\t\tthis.left.deoptimizeThisOnEventAtPath(event, path, thisParameter, recursionTracker);\n\t\tthis.right.deoptimizeThisOnEventAtPath(event, path, thisParameter, recursionTracker);\n\t}\n\n\tgetLiteralValueAtPath(\n\t\tpath: ObjectPath,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): LiteralValueOrUnknown {\n\t\tconst usedBranch = this.getUsedBranch();\n\t\tif (usedBranch === null) return UnknownValue;\n\t\tthis.expressionsToBeDeoptimized.push(origin);\n\t\treturn usedBranch.getLiteralValueAtPath(path, recursionTracker, origin);\n\t}\n\n\tgetReturnExpressionWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): ExpressionEntity {\n\t\tconst usedBranch = this.getUsedBranch();\n\t\tif (usedBranch === null)\n\t\t\treturn new MultiExpression([\n\t\t\t\tthis.left.getReturnExpressionWhenCalledAtPath(path, callOptions, recursionTracker, origin),\n\t\t\t\tthis.right.getReturnExpressionWhenCalledAtPath(path, callOptions, recursionTracker, origin)\n\t\t\t]);\n\t\tthis.expressionsToBeDeoptimized.push(origin);\n\t\treturn usedBranch.getReturnExpressionWhenCalledAtPath(\n\t\t\tpath,\n\t\t\tcallOptions,\n\t\t\trecursionTracker,\n\t\t\torigin\n\t\t);\n\t}\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tif (this.left.hasEffects(context)) {\n\t\t\treturn true;\n\t\t}\n\t\tif (this.getUsedBranch() !== this.left) {\n\t\t\treturn this.right.hasEffects(context);\n\t\t}\n\t\treturn false;\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\tconst usedBranch = this.getUsedBranch();\n\t\tif (usedBranch === null) {\n\t\t\treturn (\n\t\t\t\tthis.left.hasEffectsWhenAccessedAtPath(path, context) ||\n\t\t\t\tthis.right.hasEffectsWhenAccessedAtPath(path, context)\n\t\t\t);\n\t\t}\n\t\treturn usedBranch.hasEffectsWhenAccessedAtPath(path, context);\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\tconst usedBranch = this.getUsedBranch();\n\t\tif (usedBranch === null) {\n\t\t\treturn (\n\t\t\t\tthis.left.hasEffectsWhenAssignedAtPath(path, context) ||\n\t\t\t\tthis.right.hasEffectsWhenAssignedAtPath(path, context)\n\t\t\t);\n\t\t}\n\t\treturn usedBranch.hasEffectsWhenAssignedAtPath(path, context);\n\t}\n\n\thasEffectsWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\tcontext: HasEffectsContext\n\t): boolean {\n\t\tconst usedBranch = this.getUsedBranch();\n\t\tif (usedBranch === null) {\n\t\t\treturn (\n\t\t\t\tthis.left.hasEffectsWhenCalledAtPath(path, callOptions, context) ||\n\t\t\t\tthis.right.hasEffectsWhenCalledAtPath(path, callOptions, context)\n\t\t\t);\n\t\t}\n\t\treturn usedBranch.hasEffectsWhenCalledAtPath(path, callOptions, context);\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tthis.included = true;\n\t\tconst usedBranch = this.getUsedBranch();\n\t\tif (\n\t\t\tincludeChildrenRecursively ||\n\t\t\t(usedBranch === this.right && this.left.shouldBeIncluded(context)) ||\n\t\t\tusedBranch === null\n\t\t) {\n\t\t\tthis.left.include(context, includeChildrenRecursively);\n\t\t\tthis.right.include(context, includeChildrenRecursively);\n\t\t} else {\n\t\t\tusedBranch.include(context, includeChildrenRecursively);\n\t\t}\n\t}\n\n\trender(\n\t\tcode: MagicString,\n\t\toptions: RenderOptions,\n\t\t{\n\t\t\tisCalleeOfRenderedParent,\n\t\t\tpreventASI,\n\t\t\trenderedParentType,\n\t\t\trenderedSurroundingElement\n\t\t}: NodeRenderOptions = BLANK\n\t): void {\n\t\tif (!this.left.included || !this.right.included) {\n\t\t\tconst operatorPos = findFirstOccurrenceOutsideComment(\n\t\t\t\tcode.original,\n\t\t\t\tthis.operator,\n\t\t\t\tthis.left.end\n\t\t\t);\n\t\t\tif (this.right.included) {\n\t\t\t\tconst removePos = findNonWhiteSpace(code.original, operatorPos + 2);\n\t\t\t\tcode.remove(this.start, removePos);\n\t\t\t\tif (preventASI) {\n\t\t\t\t\tremoveLineBreaks(code, removePos, this.right.start);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcode.remove(operatorPos, this.end);\n\t\t\t}\n\t\t\tremoveAnnotations(this, code);\n\t\t\tthis.getUsedBranch()!.render(code, options, {\n\t\t\t\tisCalleeOfRenderedParent,\n\t\t\t\tpreventASI,\n\t\t\t\t...(renderedSurroundingElement\n\t\t\t\t\t? { renderedSurroundingElement }\n\t\t\t\t\t: { renderedParentType: renderedParentType || this.parent.type })\n\t\t\t});\n\t\t} else {\n\t\t\tthis.left.render(code, options, {\n\t\t\t\tpreventASI,\n\t\t\t\trenderedSurroundingElement: renderedParentType || renderedSurroundingElement\n\t\t\t});\n\t\t\tthis.right.render(code, options);\n\t\t}\n\t}\n\n\tprivate getUsedBranch() {\n\t\tif (!this.isBranchResolutionAnalysed) {\n\t\t\tthis.isBranchResolutionAnalysed = true;\n\t\t\tconst leftValue = this.left.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this);\n\t\t\tif (leftValue === UnknownValue) {\n\t\t\t\treturn null;\n\t\t\t} else {\n\t\t\t\tthis.usedBranch =\n\t\t\t\t\t(this.operator === '||' && leftValue) ||\n\t\t\t\t\t(this.operator === '&&' && !leftValue) ||\n\t\t\t\t\t(this.operator === '??' && leftValue != null)\n\t\t\t\t\t\t? this.left\n\t\t\t\t\t\t: this.right;\n\t\t\t}\n\t\t}\n\t\treturn this.usedBranch;\n\t}\n}\n","import { NormalizedTreeshakingOptions } from '../../rollup/types';\nimport { CallOptions } from '../CallOptions';\nimport { HasEffectsContext } from '../ExecutionContext';\nimport { EMPTY_PATH, ObjectPath, UNKNOWN_PATH } from '../utils/PathTracker';\nimport * as NodeType from './NodeType';\nimport { ExpressionNode, NodeBase } from './shared/Node';\n\nexport default class NewExpression extends NodeBase {\n\targuments!: ExpressionNode[];\n\tcallee!: ExpressionNode;\n\ttype!: NodeType.tNewExpression;\n\tprotected deoptimized = false;\n\tprivate callOptions!: CallOptions;\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tif (!this.deoptimized) this.applyDeoptimizations();\n\t\tfor (const argument of this.arguments) {\n\t\t\tif (argument.hasEffects(context)) return true;\n\t\t}\n\t\tif (\n\t\t\t(this.context.options.treeshake as NormalizedTreeshakingOptions).annotations &&\n\t\t\tthis.annotations\n\t\t)\n\t\t\treturn false;\n\t\treturn (\n\t\t\tthis.callee.hasEffects(context) ||\n\t\t\tthis.callee.hasEffectsWhenCalledAtPath(EMPTY_PATH, this.callOptions, context)\n\t\t);\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath): boolean {\n\t\treturn path.length > 0;\n\t}\n\n\tinitialise(): void {\n\t\tthis.callOptions = {\n\t\t\targs: this.arguments,\n\t\t\tthisParam: null,\n\t\t\twithNew: true\n\t\t};\n\t}\n\n\tprotected applyDeoptimizations(): void {\n\t\tthis.deoptimized = true;\n\t\tfor (const argument of this.arguments) {\n\t\t\t// This will make sure all properties of parameters behave as \"unknown\"\n\t\t\targument.deoptimizePath(UNKNOWN_PATH);\n\t\t}\n\t\tthis.context.requestTreeshakingPass();\n\t}\n}\n","import MagicString from 'magic-string';\nimport { BLANK } from '../../utils/blank';\nimport { NodeRenderOptions, RenderOptions } from '../../utils/renderHelpers';\nimport { CallOptions } from '../CallOptions';\nimport { DeoptimizableEntity } from '../DeoptimizableEntity';\nimport { HasEffectsContext } from '../ExecutionContext';\nimport { NodeEvent } from '../NodeEvents';\nimport {\n\tEMPTY_PATH,\n\tObjectPath,\n\tPathTracker,\n\tSHARED_RECURSION_TRACKER,\n\tUnknownKey\n} from '../utils/PathTracker';\nimport Identifier from './Identifier';\nimport Literal from './Literal';\nimport * as NodeType from './NodeType';\nimport Property from './Property';\nimport SpreadElement from './SpreadElement';\nimport { ExpressionEntity, LiteralValueOrUnknown, UnknownValue } from './shared/Expression';\nimport { NodeBase } from './shared/Node';\nimport { ObjectEntity, ObjectProperty } from './shared/ObjectEntity';\nimport { OBJECT_PROTOTYPE } from './shared/ObjectPrototype';\n\nexport default class ObjectExpression extends NodeBase implements DeoptimizableEntity {\n\tproperties!: (Property | SpreadElement)[];\n\ttype!: NodeType.tObjectExpression;\n\tprivate objectEntity: ObjectEntity | null = null;\n\n\tdeoptimizeCache(): void {\n\t\tthis.getObjectEntity().deoptimizeAllProperties();\n\t}\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tthis.getObjectEntity().deoptimizePath(path);\n\t}\n\n\tdeoptimizeThisOnEventAtPath(\n\t\tevent: NodeEvent,\n\t\tpath: ObjectPath,\n\t\tthisParameter: ExpressionEntity,\n\t\trecursionTracker: PathTracker\n\t): void {\n\t\tthis.getObjectEntity().deoptimizeThisOnEventAtPath(\n\t\t\tevent,\n\t\t\tpath,\n\t\t\tthisParameter,\n\t\t\trecursionTracker\n\t\t);\n\t}\n\n\tgetLiteralValueAtPath(\n\t\tpath: ObjectPath,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): LiteralValueOrUnknown {\n\t\treturn this.getObjectEntity().getLiteralValueAtPath(path, recursionTracker, origin);\n\t}\n\n\tgetReturnExpressionWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): ExpressionEntity {\n\t\treturn this.getObjectEntity().getReturnExpressionWhenCalledAtPath(\n\t\t\tpath,\n\t\t\tcallOptions,\n\t\t\trecursionTracker,\n\t\t\torigin\n\t\t);\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\treturn this.getObjectEntity().hasEffectsWhenAccessedAtPath(path, context);\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\treturn this.getObjectEntity().hasEffectsWhenAssignedAtPath(path, context);\n\t}\n\n\thasEffectsWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\tcontext: HasEffectsContext\n\t): boolean {\n\t\treturn this.getObjectEntity().hasEffectsWhenCalledAtPath(path, callOptions, context);\n\t}\n\n\trender(\n\t\tcode: MagicString,\n\t\toptions: RenderOptions,\n\t\t{ renderedParentType, renderedSurroundingElement }: NodeRenderOptions = BLANK\n\t): void {\n\t\tsuper.render(code, options);\n\t\tconst surroundingElement = renderedParentType || renderedSurroundingElement;\n\t\tif (\n\t\t\tsurroundingElement === NodeType.ExpressionStatement ||\n\t\t\tsurroundingElement === NodeType.ArrowFunctionExpression\n\t\t) {\n\t\t\tcode.appendRight(this.start, '(');\n\t\t\tcode.prependLeft(this.end, ')');\n\t\t}\n\t}\n\n\tprivate getObjectEntity(): ObjectEntity {\n\t\tif (this.objectEntity !== null) {\n\t\t\treturn this.objectEntity;\n\t\t}\n\t\tlet prototype: ExpressionEntity | null = OBJECT_PROTOTYPE;\n\t\tconst properties: ObjectProperty[] = [];\n\t\tfor (const property of this.properties) {\n\t\t\tif (property instanceof SpreadElement) {\n\t\t\t\tproperties.push({ key: UnknownKey, kind: 'init', property });\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet key: string;\n\t\t\tif (property.computed) {\n\t\t\t\tconst keyValue = property.key.getLiteralValueAtPath(\n\t\t\t\t\tEMPTY_PATH,\n\t\t\t\t\tSHARED_RECURSION_TRACKER,\n\t\t\t\t\tthis\n\t\t\t\t);\n\t\t\t\tif (keyValue === UnknownValue) {\n\t\t\t\t\tproperties.push({ key: UnknownKey, kind: property.kind, property });\n\t\t\t\t\tcontinue;\n\t\t\t\t} else {\n\t\t\t\t\tkey = String(keyValue);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tkey =\n\t\t\t\t\tproperty.key instanceof Identifier\n\t\t\t\t\t\t? property.key.name\n\t\t\t\t\t\t: String((property.key as Literal).value);\n\t\t\t\tif (key === '__proto__' && property.kind === 'init') {\n\t\t\t\t\tprototype =\n\t\t\t\t\t\tproperty.value instanceof Literal && property.value.value === null\n\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t: property.value;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tproperties.push({ key, kind: property.kind, property });\n\t\t}\n\t\treturn (this.objectEntity = new ObjectEntity(properties, prototype));\n\t}\n}\n","import { HasEffectsContext } from '../ExecutionContext';\nimport { EMPTY_PATH, ObjectPath } from '../utils/PathTracker';\nimport LocalVariable from '../variables/LocalVariable';\nimport Variable from '../variables/Variable';\nimport * as NodeType from './NodeType';\nimport Property from './Property';\nimport RestElement from './RestElement';\nimport { ExpressionEntity } from './shared/Expression';\nimport { NodeBase } from './shared/Node';\nimport { PatternNode } from './shared/Pattern';\n\nexport default class ObjectPattern extends NodeBase implements PatternNode {\n\tproperties!: (Property | RestElement)[];\n\ttype!: NodeType.tObjectPattern;\n\n\taddExportedVariables(\n\t\tvariables: Variable[],\n\t\texportNamesByVariable: Map<Variable, string[]>\n\t): void {\n\t\tfor (const property of this.properties) {\n\t\t\tif (property.type === NodeType.Property) {\n\t\t\t\t(property.value as unknown as PatternNode).addExportedVariables(\n\t\t\t\t\tvariables,\n\t\t\t\t\texportNamesByVariable\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tproperty.argument.addExportedVariables(variables, exportNamesByVariable);\n\t\t\t}\n\t\t}\n\t}\n\n\tdeclare(kind: string, init: ExpressionEntity): LocalVariable[] {\n\t\tconst variables: LocalVariable[] = [];\n\t\tfor (const property of this.properties) {\n\t\t\tvariables.push(...property.declare(kind, init));\n\t\t}\n\t\treturn variables;\n\t}\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tif (path.length === 0) {\n\t\t\tfor (const property of this.properties) {\n\t\t\t\tproperty.deoptimizePath(path);\n\t\t\t}\n\t\t}\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\tif (path.length > 0) return true;\n\t\tfor (const property of this.properties) {\n\t\t\tif (property.hasEffectsWhenAssignedAtPath(EMPTY_PATH, context)) return true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tmarkDeclarationReached(): void {\n\t\tfor (const property of this.properties) {\n\t\t\tproperty.markDeclarationReached();\n\t\t}\n\t}\n}\n","import * as NodeType from './NodeType';\nimport { NodeBase } from './shared/Node';\n\nexport default class PrivateIdentifier extends NodeBase {\n\tname!: string;\n\ttype!: NodeType.tPrivateIdentifier;\n}\n","import MagicString from 'magic-string';\nimport { NormalizedTreeshakingOptions } from '../../rollup/types';\nimport { RenderOptions } from '../../utils/renderHelpers';\nimport { HasEffectsContext } from '../ExecutionContext';\nimport { UnknownKey } from '../utils/PathTracker';\nimport LocalVariable from '../variables/LocalVariable';\nimport * as NodeType from './NodeType';\nimport { ExpressionEntity, UNKNOWN_EXPRESSION } from './shared/Expression';\nimport MethodBase from './shared/MethodBase';\nimport { ExpressionNode } from './shared/Node';\nimport { PatternNode } from './shared/Pattern';\n\nexport default class Property extends MethodBase implements PatternNode {\n\tkey!: ExpressionNode;\n\tkind!: 'init' | 'get' | 'set';\n\tmethod!: boolean;\n\tshorthand!: boolean;\n\ttype!: NodeType.tProperty;\n\tprotected deoptimized = false;\n\tprivate declarationInit: ExpressionEntity | null = null;\n\n\tdeclare(kind: string, init: ExpressionEntity): LocalVariable[] {\n\t\tthis.declarationInit = init;\n\t\treturn (this.value as PatternNode).declare(kind, UNKNOWN_EXPRESSION);\n\t}\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tif (!this.deoptimized) this.applyDeoptimizations();\n\t\tconst propertyReadSideEffects = (this.context.options.treeshake as NormalizedTreeshakingOptions)\n\t\t\t.propertyReadSideEffects;\n\t\treturn (\n\t\t\t(this.parent.type === 'ObjectPattern' && propertyReadSideEffects === 'always') ||\n\t\t\tthis.key.hasEffects(context) ||\n\t\t\tthis.value.hasEffects(context)\n\t\t);\n\t}\n\n\tmarkDeclarationReached(): void {\n\t\t(this.value as PatternNode).markDeclarationReached();\n\t}\n\n\trender(code: MagicString, options: RenderOptions): void {\n\t\tif (!this.shorthand) {\n\t\t\tthis.key.render(code, options);\n\t\t}\n\t\tthis.value.render(code, options, { isShorthandProperty: this.shorthand });\n\t}\n\n\tprotected applyDeoptimizations(): void {\n\t\tthis.deoptimized = true;\n\t\tif (this.declarationInit !== null) {\n\t\t\tthis.declarationInit.deoptimizePath([UnknownKey, UnknownKey]);\n\t\t\tthis.context.requestTreeshakingPass();\n\t\t}\n\t}\n}\n","import { CallOptions } from '../CallOptions';\nimport { DeoptimizableEntity } from '../DeoptimizableEntity';\nimport { HasEffectsContext } from '../ExecutionContext';\nimport { NodeEvent } from '../NodeEvents';\nimport { ObjectPath, PathTracker } from '../utils/PathTracker';\nimport * as NodeType from './NodeType';\nimport PrivateIdentifier from './PrivateIdentifier';\nimport {\n\tExpressionEntity,\n\tLiteralValueOrUnknown,\n\tUNKNOWN_EXPRESSION,\n\tUnknownValue\n} from './shared/Expression';\nimport { ExpressionNode, NodeBase } from './shared/Node';\n\nexport default class PropertyDefinition extends NodeBase {\n\tcomputed!: boolean;\n\tkey!: ExpressionNode | PrivateIdentifier;\n\tstatic!: boolean;\n\ttype!: NodeType.tPropertyDefinition;\n\tvalue!: ExpressionNode | null;\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tthis.value?.deoptimizePath(path);\n\t}\n\n\tdeoptimizeThisOnEventAtPath(\n\t\tevent: NodeEvent,\n\t\tpath: ObjectPath,\n\t\tthisParameter: ExpressionEntity,\n\t\trecursionTracker: PathTracker\n\t): void {\n\t\tthis.value?.deoptimizeThisOnEventAtPath(event, path, thisParameter, recursionTracker);\n\t}\n\n\tgetLiteralValueAtPath(\n\t\tpath: ObjectPath,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): LiteralValueOrUnknown {\n\t\treturn this.value\n\t\t\t? this.value.getLiteralValueAtPath(path, recursionTracker, origin)\n\t\t\t: UnknownValue;\n\t}\n\n\tgetReturnExpressionWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): ExpressionEntity {\n\t\treturn this.value\n\t\t\t? this.value.getReturnExpressionWhenCalledAtPath(path, callOptions, recursionTracker, origin)\n\t\t\t: UNKNOWN_EXPRESSION;\n\t}\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\treturn (\n\t\t\tthis.key.hasEffects(context) ||\n\t\t\t(this.static && this.value !== null && this.value.hasEffects(context))\n\t\t);\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\treturn !this.value || this.value.hasEffectsWhenAccessedAtPath(path, context);\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\treturn !this.value || this.value.hasEffectsWhenAssignedAtPath(path, context);\n\t}\n\n\thasEffectsWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\tcontext: HasEffectsContext\n\t): boolean {\n\t\treturn !this.value || this.value.hasEffectsWhenCalledAtPath(path, callOptions, context);\n\t}\n}\n","import MagicString from 'magic-string';\nimport { RenderOptions } from '../../utils/renderHelpers';\nimport {\n\tBROKEN_FLOW_ERROR_RETURN_LABEL,\n\tHasEffectsContext,\n\tInclusionContext\n} from '../ExecutionContext';\nimport * as NodeType from './NodeType';\nimport { UNKNOWN_EXPRESSION } from './shared/Expression';\nimport { ExpressionNode, IncludeChildren, StatementBase } from './shared/Node';\n\nexport default class ReturnStatement extends StatementBase {\n\targument!: ExpressionNode | null;\n\ttype!: NodeType.tReturnStatement;\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tif (\n\t\t\t!context.ignore.returnYield ||\n\t\t\t(this.argument !== null && this.argument.hasEffects(context))\n\t\t)\n\t\t\treturn true;\n\t\tcontext.brokenFlow = BROKEN_FLOW_ERROR_RETURN_LABEL;\n\t\treturn false;\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tthis.included = true;\n\t\tif (this.argument) {\n\t\t\tthis.argument.include(context, includeChildrenRecursively);\n\t\t}\n\t\tcontext.brokenFlow = BROKEN_FLOW_ERROR_RETURN_LABEL;\n\t}\n\n\tinitialise(): void {\n\t\tthis.scope.addReturnExpression(this.argument || UNKNOWN_EXPRESSION);\n\t}\n\n\trender(code: MagicString, options: RenderOptions): void {\n\t\tif (this.argument) {\n\t\t\tthis.argument.render(code, options, { preventASI: true });\n\t\t\tif (this.argument.start === this.start + 6 /* 'return'.length */) {\n\t\t\t\tcode.prependLeft(this.start + 6, ' ');\n\t\t\t}\n\t\t}\n\t}\n}\n","import MagicString from 'magic-string';\nimport { BLANK } from '../../utils/blank';\nimport {\n\tgetCommaSeparatedNodesWithBoundaries,\n\tNodeRenderOptions,\n\tremoveLineBreaks,\n\tRenderOptions\n} from '../../utils/renderHelpers';\nimport { treeshakeNode } from '../../utils/treeshakeNode';\nimport { CallOptions } from '../CallOptions';\nimport { DeoptimizableEntity } from '../DeoptimizableEntity';\nimport { HasEffectsContext, InclusionContext } from '../ExecutionContext';\nimport { NodeEvent } from '../NodeEvents';\nimport { ObjectPath, PathTracker } from '../utils/PathTracker';\nimport ExpressionStatement from './ExpressionStatement';\nimport * as NodeType from './NodeType';\nimport { ExpressionEntity, LiteralValueOrUnknown } from './shared/Expression';\nimport { ExpressionNode, IncludeChildren, NodeBase } from './shared/Node';\n\nexport default class SequenceExpression extends NodeBase {\n\texpressions!: ExpressionNode[];\n\ttype!: NodeType.tSequenceExpression;\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tthis.expressions[this.expressions.length - 1].deoptimizePath(path);\n\t}\n\n\tdeoptimizeThisOnEventAtPath(\n\t\tevent: NodeEvent,\n\t\tpath: ObjectPath,\n\t\tthisParameter: ExpressionEntity,\n\t\trecursionTracker: PathTracker\n\t): void {\n\t\tthis.expressions[this.expressions.length - 1].deoptimizeThisOnEventAtPath(\n\t\t\tevent,\n\t\t\tpath,\n\t\t\tthisParameter,\n\t\t\trecursionTracker\n\t\t);\n\t}\n\n\tgetLiteralValueAtPath(\n\t\tpath: ObjectPath,\n\t\trecursionTracker: PathTracker,\n\t\torigin: DeoptimizableEntity\n\t): LiteralValueOrUnknown {\n\t\treturn this.expressions[this.expressions.length - 1].getLiteralValueAtPath(\n\t\t\tpath,\n\t\t\trecursionTracker,\n\t\t\torigin\n\t\t);\n\t}\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tfor (const expression of this.expressions) {\n\t\t\tif (expression.hasEffects(context)) return true;\n\t\t}\n\t\treturn false;\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\treturn (\n\t\t\tpath.length > 0 &&\n\t\t\tthis.expressions[this.expressions.length - 1].hasEffectsWhenAccessedAtPath(path, context)\n\t\t);\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\treturn this.expressions[this.expressions.length - 1].hasEffectsWhenAssignedAtPath(\n\t\t\tpath,\n\t\t\tcontext\n\t\t);\n\t}\n\n\thasEffectsWhenCalledAtPath(\n\t\tpath: ObjectPath,\n\t\tcallOptions: CallOptions,\n\t\tcontext: HasEffectsContext\n\t): boolean {\n\t\treturn this.expressions[this.expressions.length - 1].hasEffectsWhenCalledAtPath(\n\t\t\tpath,\n\t\t\tcallOptions,\n\t\t\tcontext\n\t\t);\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tthis.included = true;\n\t\tconst lastExpression = this.expressions[this.expressions.length - 1];\n\t\tfor (const expression of this.expressions) {\n\t\t\tif (\n\t\t\t\tincludeChildrenRecursively ||\n\t\t\t\t(expression === lastExpression && !(this.parent instanceof ExpressionStatement)) ||\n\t\t\t\texpression.shouldBeIncluded(context)\n\t\t\t)\n\t\t\t\texpression.include(context, includeChildrenRecursively);\n\t\t}\n\t}\n\n\trender(\n\t\tcode: MagicString,\n\t\toptions: RenderOptions,\n\t\t{ renderedParentType, isCalleeOfRenderedParent, preventASI }: NodeRenderOptions = BLANK\n\t): void {\n\t\tlet includedNodes = 0;\n\t\tlet lastSeparatorPos: number | null = null;\n\t\tconst lastNode = this.expressions[this.expressions.length - 1];\n\t\tfor (const { node, separator, start, end } of getCommaSeparatedNodesWithBoundaries(\n\t\t\tthis.expressions,\n\t\t\tcode,\n\t\t\tthis.start,\n\t\t\tthis.end\n\t\t)) {\n\t\t\tif (!node.included) {\n\t\t\t\ttreeshakeNode(node, code, start, end);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tincludedNodes++;\n\t\t\tlastSeparatorPos = separator;\n\t\t\tif (includedNodes === 1 && preventASI) {\n\t\t\t\tremoveLineBreaks(code, start, node.start);\n\t\t\t}\n\t\t\tif (includedNodes === 1) {\n\t\t\t\tif (node === lastNode) {\n\t\t\t\t\tnode.render(code, options, {\n\t\t\t\t\t\tisCalleeOfRenderedParent,\n\t\t\t\t\t\trenderedParentType: renderedParentType || this.parent.type\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tnode.render(code, options, {\n\t\t\t\t\t\trenderedSurroundingElement: renderedParentType || this.parent.type\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tnode.render(code, options);\n\t\t\t}\n\t\t}\n\t\tif (lastSeparatorPos) {\n\t\t\tcode.remove(lastSeparatorPos, this.end);\n\t\t}\n\t}\n}\n","import { ObjectPath } from '../utils/PathTracker';\nimport ThisVariable from '../variables/ThisVariable';\nimport * as NodeType from './NodeType';\nimport { NodeBase } from './shared/Node';\n\nexport default class Super extends NodeBase {\n\ttype!: NodeType.tSuper;\n\n\tvariable!: ThisVariable;\n\n\tbind(): void {\n\t\tthis.variable = this.scope.findVariable('this') as ThisVariable;\n\t}\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tthis.variable.deoptimizePath(path);\n\t}\n\n\tinclude(): void {\n\t\tif (!this.included) {\n\t\t\tthis.included = true;\n\t\t\tthis.context.includeVariableInModule(this.variable);\n\t\t}\n\t}\n}\n","import MagicString from 'magic-string';\nimport { RenderOptions, renderStatementList } from '../../utils/renderHelpers';\nimport {\n\tBROKEN_FLOW_BREAK_CONTINUE,\n\tcreateHasEffectsContext,\n\tHasEffectsContext,\n\tInclusionContext\n} from '../ExecutionContext';\nimport BlockScope from '../scopes/BlockScope';\nimport Scope from '../scopes/Scope';\nimport * as NodeType from './NodeType';\nimport SwitchCase from './SwitchCase';\nimport { ExpressionNode, IncludeChildren, StatementBase } from './shared/Node';\n\nexport default class SwitchStatement extends StatementBase {\n\tcases!: SwitchCase[];\n\tdiscriminant!: ExpressionNode;\n\ttype!: NodeType.tSwitchStatement;\n\n\tprivate defaultCase!: number | null;\n\n\tcreateScope(parentScope: Scope): void {\n\t\tthis.scope = new BlockScope(parentScope);\n\t}\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tif (this.discriminant.hasEffects(context)) return true;\n\t\tconst {\n\t\t\tbrokenFlow,\n\t\t\tignore: { breaks }\n\t\t} = context;\n\t\tlet minBrokenFlow = Infinity;\n\t\tcontext.ignore.breaks = true;\n\t\tfor (const switchCase of this.cases) {\n\t\t\tif (switchCase.hasEffects(context)) return true;\n\t\t\tminBrokenFlow = context.brokenFlow < minBrokenFlow ? context.brokenFlow : minBrokenFlow;\n\t\t\tcontext.brokenFlow = brokenFlow;\n\t\t}\n\t\tif (this.defaultCase !== null && !(minBrokenFlow === BROKEN_FLOW_BREAK_CONTINUE)) {\n\t\t\tcontext.brokenFlow = minBrokenFlow;\n\t\t}\n\t\tcontext.ignore.breaks = breaks;\n\t\treturn false;\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tthis.included = true;\n\t\tthis.discriminant.include(context, includeChildrenRecursively);\n\t\tconst { brokenFlow } = context;\n\t\tlet minBrokenFlow = Infinity;\n\t\tlet isCaseIncluded =\n\t\t\tincludeChildrenRecursively ||\n\t\t\t(this.defaultCase !== null && this.defaultCase < this.cases.length - 1);\n\t\tfor (let caseIndex = this.cases.length - 1; caseIndex >= 0; caseIndex--) {\n\t\t\tconst switchCase = this.cases[caseIndex];\n\t\t\tif (switchCase.included) {\n\t\t\t\tisCaseIncluded = true;\n\t\t\t}\n\t\t\tif (!isCaseIncluded) {\n\t\t\t\tconst hasEffectsContext = createHasEffectsContext();\n\t\t\t\thasEffectsContext.ignore.breaks = true;\n\t\t\t\tisCaseIncluded = switchCase.hasEffects(hasEffectsContext);\n\t\t\t}\n\t\t\tif (isCaseIncluded) {\n\t\t\t\tswitchCase.include(context, includeChildrenRecursively);\n\t\t\t\tminBrokenFlow = minBrokenFlow < context.brokenFlow ? minBrokenFlow : context.brokenFlow;\n\t\t\t\tcontext.brokenFlow = brokenFlow;\n\t\t\t} else {\n\t\t\t\tminBrokenFlow = brokenFlow;\n\t\t\t}\n\t\t}\n\t\tif (\n\t\t\tisCaseIncluded &&\n\t\t\tthis.defaultCase !== null &&\n\t\t\t!(minBrokenFlow === BROKEN_FLOW_BREAK_CONTINUE)\n\t\t) {\n\t\t\tcontext.brokenFlow = minBrokenFlow;\n\t\t}\n\t}\n\n\tinitialise(): void {\n\t\tfor (let caseIndex = 0; caseIndex < this.cases.length; caseIndex++) {\n\t\t\tif (this.cases[caseIndex].test === null) {\n\t\t\t\tthis.defaultCase = caseIndex;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tthis.defaultCase = null;\n\t}\n\n\trender(code: MagicString, options: RenderOptions): void {\n\t\tthis.discriminant.render(code, options);\n\t\tif (this.cases.length > 0) {\n\t\t\trenderStatementList(this.cases, code, this.cases[0].start, this.end - 1, options);\n\t\t}\n\t}\n}\n","import MagicString from 'magic-string';\nimport { RenderOptions } from '../../utils/renderHelpers';\nimport { CallOptions, NO_ARGS } from '../CallOptions';\nimport { HasEffectsContext } from '../ExecutionContext';\nimport { EMPTY_PATH } from '../utils/PathTracker';\nimport Identifier from './Identifier';\nimport * as NodeType from './NodeType';\nimport TemplateLiteral from './TemplateLiteral';\nimport { ExpressionNode, NodeBase } from './shared/Node';\n\nexport default class TaggedTemplateExpression extends NodeBase {\n\tquasi!: TemplateLiteral;\n\ttag!: ExpressionNode;\n\ttype!: NodeType.tTaggedTemplateExpression;\n\n\tprivate callOptions!: CallOptions;\n\n\tbind(): void {\n\t\tsuper.bind();\n\t\tif (this.tag.type === NodeType.Identifier) {\n\t\t\tconst name = (this.tag as Identifier).name;\n\t\t\tconst variable = this.scope.findVariable(name);\n\n\t\t\tif (variable.isNamespace) {\n\t\t\t\tthis.context.warn(\n\t\t\t\t\t{\n\t\t\t\t\t\tcode: 'CANNOT_CALL_NAMESPACE',\n\t\t\t\t\t\tmessage: `Cannot call a namespace ('${name}')`\n\t\t\t\t\t},\n\t\t\t\t\tthis.start\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\treturn (\n\t\t\tsuper.hasEffects(context) ||\n\t\t\tthis.tag.hasEffectsWhenCalledAtPath(EMPTY_PATH, this.callOptions, context)\n\t\t);\n\t}\n\n\tinitialise(): void {\n\t\tthis.callOptions = {\n\t\t\targs: NO_ARGS,\n\t\t\tthisParam: null,\n\t\t\twithNew: false\n\t\t};\n\t}\n\n\trender(code: MagicString, options: RenderOptions): void {\n\t\tthis.tag.render(code, options, { isCalleeOfRenderedParent: true });\n\t\tthis.quasi.render(code, options);\n\t}\n}\n","import * as NodeType from './NodeType';\nimport { GenericEsTreeNode, NodeBase } from './shared/Node';\n\nexport default class TemplateElement extends NodeBase {\n\ttail!: boolean;\n\ttype!: NodeType.tTemplateElement;\n\tvalue!: {\n\t\tcooked: string | null;\n\t\traw: string;\n\t};\n\n\t// Do not try to bind value\n\tbind(): void {}\n\n\thasEffects(): boolean {\n\t\treturn false;\n\t}\n\n\tinclude(): void {\n\t\tthis.included = true;\n\t}\n\n\tparseNode(esTreeNode: GenericEsTreeNode): void {\n\t\tthis.value = esTreeNode.value;\n\t\tsuper.parseNode(esTreeNode);\n\t}\n\n\trender(): void {}\n}\n","import MagicString from 'magic-string';\nimport { HasEffectsContext } from '../ExecutionContext';\nimport { NodeEvent } from '../NodeEvents';\nimport ModuleScope from '../scopes/ModuleScope';\nimport { ObjectPath, PathTracker } from '../utils/PathTracker';\nimport Variable from '../variables/Variable';\nimport * as NodeType from './NodeType';\nimport { ExpressionEntity } from './shared/Expression';\nimport { NodeBase } from './shared/Node';\n\nexport default class ThisExpression extends NodeBase {\n\ttype!: NodeType.tThisExpression;\n\n\tvariable!: Variable;\n\tprivate alias!: string | null;\n\n\tbind(): void {\n\t\tthis.variable = this.scope.findVariable('this');\n\t}\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tthis.variable.deoptimizePath(path);\n\t}\n\n\tdeoptimizeThisOnEventAtPath(\n\t\tevent: NodeEvent,\n\t\tpath: ObjectPath,\n\t\tthisParameter: ExpressionEntity,\n\t\trecursionTracker: PathTracker\n\t): void {\n\t\tthis.variable.deoptimizeThisOnEventAtPath(\n\t\t\tevent,\n\t\t\tpath,\n\t\t\t// We rewrite the parameter so that a ThisVariable can detect self-mutations\n\t\t\tthisParameter === this ? this.variable : thisParameter,\n\t\t\trecursionTracker\n\t\t);\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\treturn path.length > 0 && this.variable.hasEffectsWhenAccessedAtPath(path, context);\n\t}\n\n\thasEffectsWhenAssignedAtPath(path: ObjectPath, context: HasEffectsContext): boolean {\n\t\treturn this.variable.hasEffectsWhenAssignedAtPath(path, context);\n\t}\n\n\tinclude(): void {\n\t\tif (!this.included) {\n\t\t\tthis.included = true;\n\t\t\tthis.context.includeVariableInModule(this.variable);\n\t\t}\n\t}\n\n\tinitialise(): void {\n\t\tthis.alias =\n\t\t\tthis.scope.findLexicalBoundary() instanceof ModuleScope ? this.context.moduleContext : null;\n\t\tif (this.alias === 'undefined') {\n\t\t\tthis.context.warn(\n\t\t\t\t{\n\t\t\t\t\tcode: 'THIS_IS_UNDEFINED',\n\t\t\t\t\tmessage: `The 'this' keyword is equivalent to 'undefined' at the top level of an ES module, and has been rewritten`,\n\t\t\t\t\turl: `https://rollupjs.org/guide/en/#error-this-is-undefined`\n\t\t\t\t},\n\t\t\t\tthis.start\n\t\t\t);\n\t\t}\n\t}\n\n\trender(code: MagicString): void {\n\t\tif (this.alias !== null) {\n\t\t\tcode.overwrite(this.start, this.end, this.alias, {\n\t\t\t\tcontentOnly: false,\n\t\t\t\tstoreName: true\n\t\t\t});\n\t\t}\n\t}\n}\n","import MagicString from 'magic-string';\nimport { RenderOptions } from '../../utils/renderHelpers';\nimport { BROKEN_FLOW_ERROR_RETURN_LABEL, InclusionContext } from '../ExecutionContext';\nimport * as NodeType from './NodeType';\nimport { ExpressionNode, IncludeChildren, StatementBase } from './shared/Node';\n\nexport default class ThrowStatement extends StatementBase {\n\targument!: ExpressionNode;\n\ttype!: NodeType.tThrowStatement;\n\n\thasEffects(): boolean {\n\t\treturn true;\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tthis.included = true;\n\t\tthis.argument.include(context, includeChildrenRecursively);\n\t\tcontext.brokenFlow = BROKEN_FLOW_ERROR_RETURN_LABEL;\n\t}\n\n\trender(code: MagicString, options: RenderOptions): void {\n\t\tthis.argument.render(code, options, { preventASI: true });\n\t\tif (this.argument.start === this.start + 5 /* 'throw'.length */) {\n\t\t\tcode.prependLeft(this.start + 5, ' ');\n\t\t}\n\t}\n}\n","import { NormalizedTreeshakingOptions } from '../../rollup/types';\nimport { HasEffectsContext, InclusionContext } from '../ExecutionContext';\nimport BlockStatement from './BlockStatement';\nimport CatchClause from './CatchClause';\nimport * as NodeType from './NodeType';\nimport { INCLUDE_PARAMETERS, IncludeChildren, StatementBase } from './shared/Node';\n\nexport default class TryStatement extends StatementBase {\n\tblock!: BlockStatement;\n\tfinalizer!: BlockStatement | null;\n\thandler!: CatchClause | null;\n\ttype!: NodeType.tTryStatement;\n\n\tprivate directlyIncluded = false;\n\tprivate includedLabelsAfterBlock: string[] | null = null;\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\treturn (\n\t\t\t((this.context.options.treeshake as NormalizedTreeshakingOptions).tryCatchDeoptimization\n\t\t\t\t? this.block.body.length > 0\n\t\t\t\t: this.block.hasEffects(context)) ||\n\t\t\t(this.finalizer !== null && this.finalizer.hasEffects(context))\n\t\t);\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tconst tryCatchDeoptimization = (this.context.options.treeshake as NormalizedTreeshakingOptions)\n\t\t\t?.tryCatchDeoptimization;\n\t\tconst { brokenFlow } = context;\n\t\tif (!this.directlyIncluded || !tryCatchDeoptimization) {\n\t\t\tthis.included = true;\n\t\t\tthis.directlyIncluded = true;\n\t\t\tthis.block.include(\n\t\t\t\tcontext,\n\t\t\t\ttryCatchDeoptimization ? INCLUDE_PARAMETERS : includeChildrenRecursively\n\t\t\t);\n\t\t\tif (context.includedLabels.size > 0) {\n\t\t\t\tthis.includedLabelsAfterBlock = [...context.includedLabels];\n\t\t\t}\n\t\t\tcontext.brokenFlow = brokenFlow;\n\t\t} else if (this.includedLabelsAfterBlock) {\n\t\t\tfor (const label of this.includedLabelsAfterBlock) {\n\t\t\t\tcontext.includedLabels.add(label);\n\t\t\t}\n\t\t}\n\t\tif (this.handler !== null) {\n\t\t\tthis.handler.include(context, includeChildrenRecursively);\n\t\t\tcontext.brokenFlow = brokenFlow;\n\t\t}\n\t\tif (this.finalizer !== null) {\n\t\t\tthis.finalizer.include(context, includeChildrenRecursively);\n\t\t}\n\t}\n}\n","import { InclusionContext } from '../ExecutionContext';\nimport { NodeBase } from './shared/Node';\n\nexport default class UnknownNode extends NodeBase {\n\thasEffects(): boolean {\n\t\treturn true;\n\t}\n\n\tinclude(context: InclusionContext): void {\n\t\tsuper.include(context, true);\n\t}\n}\n","import MagicString from 'magic-string';\nimport { RenderOptions } from '../../utils/renderHelpers';\nimport {\n\tgetSystemExportFunctionLeft,\n\tgetSystemExportStatement\n} from '../../utils/systemJsRendering';\nimport { HasEffectsContext } from '../ExecutionContext';\nimport { EMPTY_PATH, ObjectPath } from '../utils/PathTracker';\nimport Identifier from './Identifier';\nimport * as NodeType from './NodeType';\nimport { ExpressionNode, NodeBase } from './shared/Node';\n\nexport default class UpdateExpression extends NodeBase {\n\targument!: ExpressionNode;\n\toperator!: '++' | '--';\n\tprefix!: boolean;\n\ttype!: NodeType.tUpdateExpression;\n\tprotected deoptimized = false;\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tif (!this.deoptimized) this.applyDeoptimizations();\n\t\treturn (\n\t\t\tthis.argument.hasEffects(context) ||\n\t\t\tthis.argument.hasEffectsWhenAssignedAtPath(EMPTY_PATH, context)\n\t\t);\n\t}\n\n\thasEffectsWhenAccessedAtPath(path: ObjectPath): boolean {\n\t\treturn path.length > 1;\n\t}\n\n\trender(code: MagicString, options: RenderOptions): void {\n\t\tthis.argument.render(code, options);\n\t\tif (options.format === 'system') {\n\t\t\tconst variable = this.argument.variable;\n\t\t\tconst exportNames = options.exportNamesByVariable.get(variable!);\n\t\t\tif (exportNames && exportNames.length) {\n\t\t\t\tconst _ = options.compact ? '' : ' ';\n\t\t\t\tconst name = variable!.getName();\n\t\t\t\tif (this.prefix) {\n\t\t\t\t\tif (exportNames.length === 1) {\n\t\t\t\t\t\tcode.overwrite(\n\t\t\t\t\t\t\tthis.start,\n\t\t\t\t\t\t\tthis.end,\n\t\t\t\t\t\t\t`exports('${exportNames[0]}',${_}${this.operator}${name})`\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcode.overwrite(\n\t\t\t\t\t\t\tthis.start,\n\t\t\t\t\t\t\tthis.end,\n\t\t\t\t\t\t\t`(${this.operator}${name},${_}${getSystemExportStatement(\n\t\t\t\t\t\t\t\t[variable!],\n\t\t\t\t\t\t\t\toptions\n\t\t\t\t\t\t\t)},${_}${name})`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else if (exportNames.length > 1) {\n\t\t\t\t\tcode.overwrite(\n\t\t\t\t\t\tthis.start,\n\t\t\t\t\t\tthis.end,\n\t\t\t\t\t\t`(${getSystemExportFunctionLeft([variable!], false, options)}${this.operator}${name}))`\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tlet op;\n\t\t\t\t\tswitch (this.operator) {\n\t\t\t\t\t\tcase '++':\n\t\t\t\t\t\t\top = `${name}${_}+${_}1`;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase '--':\n\t\t\t\t\t\t\top = `${name}${_}-${_}1`;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcode.overwrite(\n\t\t\t\t\t\tthis.start,\n\t\t\t\t\t\tthis.end,\n\t\t\t\t\t\t`(exports('${exportNames[0]}',${_}${op}),${_}${name}${this.operator})`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected applyDeoptimizations(): void {\n\t\tthis.deoptimized = true;\n\t\tthis.argument.deoptimizePath(EMPTY_PATH);\n\t\tif (this.argument instanceof Identifier) {\n\t\t\tconst variable = this.scope.findVariable(this.argument.name);\n\t\t\tvariable.isReassigned = true;\n\t\t}\n\t\tthis.context.requestTreeshakingPass();\n\t}\n}\n","import MagicString from 'magic-string';\nimport { BLANK } from '../../utils/blank';\nimport { isReassignedExportsMember } from '../../utils/reassignedExportsMember';\nimport {\n\tfindFirstOccurrenceOutsideComment,\n\tfindNonWhiteSpace,\n\tRenderOptions\n} from '../../utils/renderHelpers';\nimport { HasEffectsContext, InclusionContext } from '../ExecutionContext';\nimport { ObjectPath } from '../utils/PathTracker';\nimport { UNDEFINED_EXPRESSION } from '../values';\nimport Identifier from './Identifier';\nimport * as NodeType from './NodeType';\nimport { ExpressionNode, IncludeChildren, NodeBase } from './shared/Node';\nimport { PatternNode } from './shared/Pattern';\n\nexport default class VariableDeclarator extends NodeBase {\n\tid!: PatternNode;\n\tinit!: ExpressionNode | null;\n\ttype!: NodeType.tVariableDeclarator;\n\n\tdeclareDeclarator(kind: string): void {\n\t\tthis.id.declare(kind, this.init || UNDEFINED_EXPRESSION);\n\t}\n\n\tdeoptimizePath(path: ObjectPath): void {\n\t\tthis.id.deoptimizePath(path);\n\t}\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tconst initEffect = this.init !== null && this.init.hasEffects(context);\n\t\tthis.id.markDeclarationReached();\n\t\treturn initEffect || this.id.hasEffects(context);\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tthis.included = true;\n\t\tif (this.init) {\n\t\t\tthis.init.include(context, includeChildrenRecursively);\n\t\t}\n\t\tthis.id.markDeclarationReached();\n\t\tif (includeChildrenRecursively || this.id.shouldBeIncluded(context)) {\n\t\t\tthis.id.include(context, includeChildrenRecursively);\n\t\t}\n\t}\n\n\trender(code: MagicString, options: RenderOptions): void {\n\t\tconst renderId = this.id.included;\n\t\tif (renderId) {\n\t\t\tthis.id.render(code, options);\n\t\t} else {\n\t\t\tconst operatorPos = findFirstOccurrenceOutsideComment(code.original, '=', this.id.end);\n\t\t\tcode.remove(this.start, findNonWhiteSpace(code.original, operatorPos + 1));\n\t\t}\n\t\tif (this.init) {\n\t\t\tthis.init.render(\n\t\t\t\tcode,\n\t\t\t\toptions,\n\t\t\t\trenderId ? BLANK : { renderedParentType: NodeType.ExpressionStatement }\n\t\t\t);\n\t\t} else if (\n\t\t\tthis.id instanceof Identifier &&\n\t\t\tisReassignedExportsMember(this.id.variable!, options.exportNamesByVariable)\n\t\t) {\n\t\t\tconst _ = options.compact ? '' : ' ';\n\t\t\tcode.appendLeft(this.end, `${_}=${_}void 0`);\n\t\t}\n\t}\n}\n","import { HasEffectsContext, InclusionContext } from '../ExecutionContext';\nimport * as NodeType from './NodeType';\nimport { ExpressionNode, IncludeChildren, StatementBase, StatementNode } from './shared/Node';\n\nexport default class WhileStatement extends StatementBase {\n\tbody!: StatementNode;\n\ttest!: ExpressionNode;\n\ttype!: NodeType.tWhileStatement;\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tif (this.test.hasEffects(context)) return true;\n\t\tconst {\n\t\t\tbrokenFlow,\n\t\t\tignore: { breaks, continues }\n\t\t} = context;\n\t\tcontext.ignore.breaks = true;\n\t\tcontext.ignore.continues = true;\n\t\tif (this.body.hasEffects(context)) return true;\n\t\tcontext.ignore.breaks = breaks;\n\t\tcontext.ignore.continues = continues;\n\t\tcontext.brokenFlow = brokenFlow;\n\t\treturn false;\n\t}\n\n\tinclude(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void {\n\t\tthis.included = true;\n\t\tthis.test.include(context, includeChildrenRecursively);\n\t\tconst { brokenFlow } = context;\n\t\tthis.body.includeAsSingleStatement(context, includeChildrenRecursively);\n\t\tcontext.brokenFlow = brokenFlow;\n\t}\n}\n","import MagicString from 'magic-string';\nimport { RenderOptions } from '../../utils/renderHelpers';\nimport { HasEffectsContext } from '../ExecutionContext';\nimport { UNKNOWN_PATH } from '../utils/PathTracker';\nimport * as NodeType from './NodeType';\nimport { ExpressionNode, NodeBase } from './shared/Node';\n\nexport default class YieldExpression extends NodeBase {\n\targument!: ExpressionNode | null;\n\tdelegate!: boolean;\n\ttype!: NodeType.tYieldExpression;\n\tprotected deoptimized = false;\n\n\thasEffects(context: HasEffectsContext): boolean {\n\t\tif (!this.deoptimized) this.applyDeoptimizations();\n\t\treturn (\n\t\t\t!context.ignore.returnYield || (this.argument !== null && this.argument.hasEffects(context))\n\t\t);\n\t}\n\n\trender(code: MagicString, options: RenderOptions): void {\n\t\tif (this.argument) {\n\t\t\tthis.argument.render(code, options, { preventASI: true });\n\t\t\tif (this.argument.start === this.start + 5 /* 'yield'.length */) {\n\t\t\t\tcode.prependLeft(this.start + 5, ' ');\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected applyDeoptimizations(): void {\n\t\tthis.deoptimized = true;\n\t\tconst { argument } = this;\n\t\tif (argument) {\n\t\t\targument.deoptimizePath(UNKNOWN_PATH);\n\t\t\tthis.context.requestTreeshakingPass();\n\t\t}\n\t}\n}\n","export const MISSING_EXPORT_SHIM_VARIABLE = '_missingExportShim';\n","import Module from '../../Module';\nimport { MISSING_EXPORT_SHIM_VARIABLE } from '../../utils/variableNames';\nimport Variable from './Variable';\n\nexport default class ExportShimVariable extends Variable {\n\tconstructor(module: Module) {\n\t\tsuper(MISSING_EXPORT_SHIM_VARIABLE);\n\t\tthis.module = module;\n\t}\n}\n","import Module, { AstContext } from '../../Module';\nimport { RenderOptions } from '../../utils/renderHelpers';\nimport { RESERVED_NAMES } from '../../utils/reservedNames';\nimport { getSystemExportStatement } from '../../utils/systemJsRendering';\nimport Identifier from '../nodes/Identifier';\nimport Variable from './Variable';\n\nexport default class NamespaceVariable extends Variable {\n\tcontext: AstContext;\n\tisNamespace!: true;\n\tmodule: Module;\n\n\tprivate memberVariables: { [name: string]: Variable } | null = null;\n\tprivate mergedNamespaces: Variable[] = [];\n\tprivate referencedEarly = false;\n\tprivate references: Identifier[] = [];\n\tprivate syntheticNamedExports: boolean | string;\n\n\tconstructor(context: AstContext, syntheticNamedExports: boolean | string) {\n\t\tsuper(context.getModuleName());\n\t\tthis.context = context;\n\t\tthis.module = context.module;\n\t\tthis.syntheticNamedExports = syntheticNamedExports;\n\t}\n\n\taddReference(identifier: Identifier): void {\n\t\tthis.references.push(identifier);\n\t\tthis.name = identifier.name;\n\t}\n\n\tgetMemberVariables(): { [name: string]: Variable } {\n\t\tif (this.memberVariables) {\n\t\t\treturn this.memberVariables;\n\t\t}\n\t\tconst memberVariables: { [name: string]: Variable } = Object.create(null);\n\t\tfor (const name of this.context.getExports().concat(this.context.getReexports())) {\n\t\t\tif (name[0] !== '*' && name !== this.module.info.syntheticNamedExports) {\n\t\t\t\tconst exportedVariable = this.context.traceExport(name);\n\t\t\t\tif (exportedVariable) {\n\t\t\t\t\tmemberVariables[name] = exportedVariable;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn (this.memberVariables = memberVariables);\n\t}\n\n\tinclude(): void {\n\t\tthis.included = true;\n\t\tthis.context.includeAllExports();\n\t}\n\n\tprepareNamespace(mergedNamespaces: Variable[]): void {\n\t\tthis.mergedNamespaces = mergedNamespaces;\n\t\tconst moduleExecIndex = this.context.getModuleExecIndex();\n\t\tfor (const identifier of this.references) {\n\t\t\tif (identifier.context.getModuleExecIndex() <= moduleExecIndex) {\n\t\t\t\tthis.referencedEarly = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\trenderBlock(options: RenderOptions): string {\n\t\tconst _ = options.compact ? '' : ' ';\n\t\tconst n = options.compact ? '' : '\\n';\n\t\tconst t = options.indent;\n\n\t\tconst memberVariables = this.getMemberVariables();\n\t\tconst members = Object.entries(memberVariables).map(([name, original]) => {\n\t\t\tif (this.referencedEarly || original.isReassigned) {\n\t\t\t\treturn `${t}get ${name}${_}()${_}{${_}return ${original.getName()}${\n\t\t\t\t\toptions.compact ? '' : ';'\n\t\t\t\t}${_}}`;\n\t\t\t}\n\n\t\t\tconst safeName = RESERVED_NAMES[name] ? `'${name}'` : name;\n\n\t\t\treturn `${t}${safeName}: ${original.getName()}`;\n\t\t});\n\n\t\tif (options.namespaceToStringTag) {\n\t\t\tmembers.unshift(`${t}[Symbol.toStringTag]:${_}'Module'`);\n\t\t}\n\n\t\tconst needsObjectAssign = this.mergedNamespaces.length > 0 || this.syntheticNamedExports;\n\t\tif (!needsObjectAssign) members.unshift(`${t}__proto__:${_}null`);\n\n\t\tlet output = `{${n}${members.join(`,${n}`)}${n}}`;\n\t\tif (needsObjectAssign) {\n\t\t\tconst assignmentArgs: string[] = ['/*#__PURE__*/Object.create(null)'];\n\t\t\tif (this.mergedNamespaces.length > 0) {\n\t\t\t\tassignmentArgs.push(...this.mergedNamespaces.map(variable => variable.getName()));\n\t\t\t}\n\t\t\tif (this.syntheticNamedExports) {\n\t\t\t\tassignmentArgs.push(this.module.getSyntheticNamespace().getName());\n\t\t\t}\n\t\t\tif (members.length > 0) {\n\t\t\t\tassignmentArgs.push(output);\n\t\t\t}\n\t\t\toutput = `/*#__PURE__*/Object.assign(${assignmentArgs.join(`,${_}`)})`;\n\t\t}\n\t\tif (options.freeze) {\n\t\t\toutput = `/*#__PURE__*/Object.freeze(${output})`;\n\t\t}\n\n\t\tconst name = this.getName();\n\t\toutput = `${options.varOrConst} ${name}${_}=${_}${output};`;\n\n\t\tif (options.format === 'system' && options.exportNamesByVariable.has(this)) {\n\t\t\toutput += `${n}${getSystemExportStatement([this], options)};`;\n\t\t}\n\n\t\treturn output;\n\t}\n\n\trenderFirst(): boolean {\n\t\treturn this.referencedEarly;\n\t}\n}\n\nNamespaceVariable.prototype.isNamespace = true;\n","import Module, { AstContext } from '../../Module';\nimport { RESERVED_NAMES } from '../../utils/reservedNames';\nimport ExportDefaultVariable from './ExportDefaultVariable';\nimport Variable from './Variable';\n\nexport default class SyntheticNamedExportVariable extends Variable {\n\tcontext: AstContext;\n\tmodule: Module;\n\tsyntheticNamespace: Variable;\n\n\tprivate baseVariable: Variable | null = null;\n\n\tconstructor(context: AstContext, name: string, syntheticNamespace: Variable) {\n\t\tsuper(name);\n\t\tthis.context = context;\n\t\tthis.module = context.module;\n\t\tthis.syntheticNamespace = syntheticNamespace;\n\t}\n\n\tgetBaseVariable(): Variable {\n\t\tif (this.baseVariable) return this.baseVariable;\n\t\tlet baseVariable = this.syntheticNamespace;\n\t\twhile (\n\t\t\tbaseVariable instanceof ExportDefaultVariable ||\n\t\t\tbaseVariable instanceof SyntheticNamedExportVariable\n\t\t) {\n\t\t\tif (baseVariable instanceof ExportDefaultVariable) {\n\t\t\t\tconst original = baseVariable.getOriginalVariable();\n\t\t\t\tif (original === baseVariable) break;\n\t\t\t\tbaseVariable = original;\n\t\t\t}\n\t\t\tif (baseVariable instanceof SyntheticNamedExportVariable) {\n\t\t\t\tbaseVariable = baseVariable.syntheticNamespace;\n\t\t\t}\n\t\t}\n\t\treturn (this.baseVariable = baseVariable);\n\t}\n\n\tgetBaseVariableName(): string {\n\t\treturn this.syntheticNamespace.getBaseVariableName();\n\t}\n\n\tgetName(): string {\n\t\tconst name = this.name;\n\t\treturn `${this.syntheticNamespace.getName()}${getPropertyAccess(name)}`;\n\t}\n\n\tinclude(): void {\n\t\tif (!this.included) {\n\t\t\tthis.included = true;\n\t\t\tthis.context.includeVariableInModule(this.syntheticNamespace);\n\t\t}\n\t}\n\n\tsetRenderNames(baseName: string | null, name: string | null): void {\n\t\tsuper.setRenderNames(baseName, name);\n\t}\n}\n\nconst getPropertyAccess = (name: string) => {\n\treturn !RESERVED_NAMES[name] && /^(?!\\d)[\\w$]+$/.test(name)\n\t\t? `.${name}`\n\t\t: `[${JSON.stringify(name)}]`;\n};\n","export function getId(m: { id: string | null }): string {\n\treturn m.id!;\n}\n","import { InputOptions, Plugin, SerializedTimings } from '../rollup/types';\n\ntype StartTime = [number, number];\n\ninterface Timer {\n\tmemory: number;\n\tstartMemory: number;\n\tstartTime: StartTime;\n\ttime: number;\n\ttotalMemory: number;\n}\n\ninterface Timers {\n\t[label: string]: Timer;\n}\n\nconst NOOP = (): void => {};\nlet getStartTime = (): StartTime => [0, 0];\nlet getElapsedTime: (previous: StartTime) => number = () => 0;\nlet getMemory: () => number = () => 0;\nlet timers: Timers = {};\n\nconst normalizeHrTime = (time: [number, number]) => time[0] * 1e3 + time[1] / 1e6;\n\nfunction setTimeHelpers() {\n\tif (typeof process !== 'undefined' && typeof process.hrtime === 'function') {\n\t\tgetStartTime = process.hrtime.bind(process);\n\t\tgetElapsedTime = previous => normalizeHrTime(process.hrtime(previous));\n\t} else if (typeof performance !== 'undefined' && typeof performance.now === 'function') {\n\t\tgetStartTime = () => [performance.now(), 0];\n\t\tgetElapsedTime = previous => performance.now() - previous[0];\n\t}\n\tif (typeof process !== 'undefined' && typeof process.memoryUsage === 'function') {\n\t\tgetMemory = () => process.memoryUsage().heapUsed;\n\t}\n}\n\nfunction getPersistedLabel(label: string, level: number) {\n\tswitch (level) {\n\t\tcase 1:\n\t\t\treturn `# ${label}`;\n\t\tcase 2:\n\t\t\treturn `## ${label}`;\n\t\tcase 3:\n\t\t\treturn label;\n\t\tdefault:\n\t\t\treturn `${' '.repeat(level - 4)}- ${label}`;\n\t}\n}\n\nfunction timeStartImpl(label: string, level = 3) {\n\tlabel = getPersistedLabel(label, level);\n\tif (!timers.hasOwnProperty(label)) {\n\t\ttimers[label] = {\n\t\t\tmemory: 0,\n\t\t\tstartMemory: undefined as never,\n\t\t\tstartTime: undefined as never,\n\t\t\ttime: 0,\n\t\t\ttotalMemory: 0\n\t\t};\n\t}\n\tconst currentMemory = getMemory();\n\ttimers[label].startTime = getStartTime();\n\ttimers[label].startMemory = currentMemory;\n}\n\nfunction timeEndImpl(label: string, level = 3) {\n\tlabel = getPersistedLabel(label, level);\n\tif (timers.hasOwnProperty(label)) {\n\t\tconst currentMemory = getMemory();\n\t\ttimers[label].time += getElapsedTime(timers[label].startTime);\n\t\ttimers[label].totalMemory = Math.max(timers[label].totalMemory, currentMemory);\n\t\ttimers[label].memory += currentMemory - timers[label].startMemory;\n\t}\n}\n\nexport function getTimings(): SerializedTimings {\n\tconst newTimings: SerializedTimings = {};\n\tfor (const [label, { time, memory, totalMemory }] of Object.entries(timers)) {\n\t\tnewTimings[label] = [time, memory, totalMemory];\n\t}\n\treturn newTimings;\n}\n\nexport let timeStart: (label: string, level?: number) => void = NOOP,\n\ttimeEnd: (label: string, level?: number) => void = NOOP;\n\nconst TIMED_PLUGIN_HOOKS: { [hook: string]: boolean } = {\n\tload: true,\n\tresolveDynamicImport: true,\n\tresolveId: true,\n\ttransform: true\n};\n\nfunction getPluginWithTimers(plugin: any, index: number): Plugin {\n\tconst timedPlugin: { [hook: string]: any } = {};\n\n\tfor (const hook of Object.keys(plugin)) {\n\t\tif (TIMED_PLUGIN_HOOKS[hook] === true) {\n\t\t\tlet timerLabel = `plugin ${index}`;\n\t\t\tif (plugin.name) {\n\t\t\t\ttimerLabel += ` (${plugin.name})`;\n\t\t\t}\n\t\t\ttimerLabel += ` - ${hook}`;\n\t\t\ttimedPlugin[hook] = function (...args: unknown[]) {\n\t\t\t\ttimeStart(timerLabel, 4);\n\t\t\t\tlet result = plugin[hook].apply(this === timedPlugin ? plugin : this, args);\n\t\t\t\ttimeEnd(timerLabel, 4);\n\t\t\t\tif (result && typeof result.then === 'function') {\n\t\t\t\t\ttimeStart(`${timerLabel} (async)`, 4);\n\t\t\t\t\tresult = result.then((hookResult: unknown) => {\n\t\t\t\t\t\ttimeEnd(`${timerLabel} (async)`, 4);\n\t\t\t\t\t\treturn hookResult;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t};\n\t\t} else {\n\t\t\ttimedPlugin[hook] = plugin[hook];\n\t\t}\n\t}\n\treturn timedPlugin as Plugin;\n}\n\nexport function initialiseTimers(inputOptions: InputOptions): void {\n\tif (inputOptions.perf) {\n\t\ttimers = {};\n\t\tsetTimeHelpers();\n\t\ttimeStart = timeStartImpl;\n\t\ttimeEnd = timeEndImpl;\n\t\tinputOptions.plugins = inputOptions.plugins!.map(getPluginWithTimers);\n\t} else {\n\t\ttimeStart = NOOP;\n\t\ttimeEnd = NOOP;\n\t}\n}\n","import ExternalModule from '../ExternalModule';\nimport Module from '../Module';\n\nexport function markModuleAndImpureDependenciesAsExecuted(baseModule: Module): void {\n\tbaseModule.isExecuted = true;\n\tconst modules = [baseModule];\n\tconst visitedModules = new Set<string>();\n\tfor (const module of modules) {\n\t\tfor (const dependency of [...module.dependencies, ...module.implicitlyLoadedBefore]) {\n\t\t\tif (\n\t\t\t\t!(dependency instanceof ExternalModule) &&\n\t\t\t\t!dependency.isExecuted &&\n\t\t\t\t(dependency.info.hasModuleSideEffects || module.implicitlyLoadedBefore.has(dependency)) &&\n\t\t\t\t!visitedModules.has(dependency.id)\n\t\t\t) {\n\t\t\t\tdependency.isExecuted = true;\n\t\t\t\tvisitedModules.add(dependency.id);\n\t\t\t\tmodules.push(dependency);\n\t\t\t}\n\t\t}\n\t}\n}\n","import * as acorn from 'acorn';\nimport { locate } from 'locate-character';\nimport MagicString from 'magic-string';\nimport extractAssignedNames from 'rollup-pluginutils/src/extractAssignedNames';\nimport ExternalModule from './ExternalModule';\nimport Graph from './Graph';\nimport { createHasEffectsContext, createInclusionContext } from './ast/ExecutionContext';\nimport ExportAllDeclaration from './ast/nodes/ExportAllDeclaration';\nimport ExportDefaultDeclaration from './ast/nodes/ExportDefaultDeclaration';\nimport ExportNamedDeclaration from './ast/nodes/ExportNamedDeclaration';\nimport Identifier from './ast/nodes/Identifier';\nimport ImportDeclaration from './ast/nodes/ImportDeclaration';\nimport ImportExpression from './ast/nodes/ImportExpression';\nimport ImportSpecifier from './ast/nodes/ImportSpecifier';\nimport Literal from './ast/nodes/Literal';\nimport MetaProperty from './ast/nodes/MetaProperty';\nimport * as NodeType from './ast/nodes/NodeType';\nimport Program from './ast/nodes/Program';\nimport TemplateLiteral from './ast/nodes/TemplateLiteral';\nimport VariableDeclaration from './ast/nodes/VariableDeclaration';\nimport { nodeConstructors } from './ast/nodes/index';\nimport { ExpressionNode, NodeBase } from './ast/nodes/shared/Node';\nimport ModuleScope from './ast/scopes/ModuleScope';\nimport { PathTracker, UNKNOWN_PATH } from './ast/utils/PathTracker';\nimport ExportDefaultVariable from './ast/variables/ExportDefaultVariable';\nimport ExportShimVariable from './ast/variables/ExportShimVariable';\nimport ExternalVariable from './ast/variables/ExternalVariable';\nimport NamespaceVariable from './ast/variables/NamespaceVariable';\nimport SyntheticNamedExportVariable from './ast/variables/SyntheticNamedExportVariable';\nimport Variable from './ast/variables/Variable';\nimport {\n\tCustomPluginOptions,\n\tDecodedSourceMapOrMissing,\n\tEmittedFile,\n\tExistingDecodedSourceMap,\n\tModuleInfo,\n\tModuleJSON,\n\tModuleOptions,\n\tNormalizedInputOptions,\n\tPartialNull,\n\tPreserveEntrySignaturesOption,\n\tResolvedIdMap,\n\tRollupError,\n\tRollupLogProps,\n\tRollupWarning,\n\tTransformModuleJSON\n} from './rollup/types';\nimport { EMPTY_OBJECT } from './utils/blank';\nimport {\n\taugmentCodeLocation,\n\terrAmbiguousExternalNamespaces,\n\terrCircularReexport,\n\terrMissingExport,\n\terrNamespaceConflict,\n\terror,\n\terrSyntheticNamedExportsNeedNamespaceExport\n} from './utils/error';\nimport { getId } from './utils/getId';\nimport { getOrCreate } from './utils/getOrCreate';\nimport { getOriginalLocation } from './utils/getOriginalLocation';\nimport { makeLegal } from './utils/identifierHelpers';\nimport { basename, extname } from './utils/path';\nimport relativeId from './utils/relativeId';\nimport { RenderOptions } from './utils/renderHelpers';\nimport { timeEnd, timeStart } from './utils/timers';\nimport { markModuleAndImpureDependenciesAsExecuted } from './utils/traverseStaticDependencies';\nimport { MISSING_EXPORT_SHIM_VARIABLE } from './utils/variableNames';\n\ninterface ImportDescription {\n\tmodule: Module | ExternalModule;\n\tname: string;\n\tsource: string;\n\tstart: number;\n}\n\ninterface ExportDescription {\n\tidentifier: string | null;\n\tlocalName: string;\n}\n\ninterface ReexportDescription {\n\tlocalName: string;\n\tmodule: Module | ExternalModule;\n\tsource: string;\n\tstart: number;\n}\n\nexport interface AstContext {\n\taddDynamicImport: (node: ImportExpression) => void;\n\taddExport: (\n\t\tnode: ExportAllDeclaration | ExportNamedDeclaration | ExportDefaultDeclaration\n\t) => void;\n\taddImport: (node: ImportDeclaration) => void;\n\taddImportMeta: (node: MetaProperty) => void;\n\tcode: string;\n\tdeoptimizationTracker: PathTracker;\n\terror: (props: RollupError, pos: number) => never;\n\tfileName: string;\n\tgetExports: () => string[];\n\tgetModuleExecIndex: () => number;\n\tgetModuleName: () => string;\n\tgetReexports: () => string[];\n\timportDescriptions: { [name: string]: ImportDescription };\n\tincludeAllExports: () => void;\n\tincludeDynamicImport: (node: ImportExpression) => void;\n\tincludeVariableInModule: (variable: Variable) => void;\n\tmagicString: MagicString;\n\tmodule: Module; // not to be used for tree-shaking\n\tmoduleContext: string;\n\tnodeConstructors: { [name: string]: typeof NodeBase };\n\toptions: NormalizedInputOptions;\n\trequestTreeshakingPass: () => void;\n\ttraceExport: (name: string) => Variable | null;\n\ttraceVariable: (name: string) => Variable | null;\n\tusesTopLevelAwait: boolean;\n\twarn: (warning: RollupWarning, pos: number) => void;\n}\n\nconst MISSING_EXPORT_SHIM_DESCRIPTION: ExportDescription = {\n\tidentifier: null,\n\tlocalName: MISSING_EXPORT_SHIM_VARIABLE\n};\n\nfunction getVariableForExportNameRecursive(\n\ttarget: Module | ExternalModule,\n\tname: string,\n\timporterForSideEffects: Module | undefined,\n\tisExportAllSearch: boolean,\n\tsearchedNamesAndModules = new Map<string, Set<Module | ExternalModule>>(),\n\tskipExternalNamespaceReexports: boolean | undefined\n): Variable | null {\n\tconst searchedModules = searchedNamesAndModules.get(name);\n\tif (searchedModules) {\n\t\tif (searchedModules.has(target)) {\n\t\t\treturn isExportAllSearch ? null : error(errCircularReexport(name, target.id));\n\t\t}\n\t\tsearchedModules.add(target);\n\t} else {\n\t\tsearchedNamesAndModules.set(name, new Set([target]));\n\t}\n\treturn target.getVariableForExportName(name, {\n\t\timporterForSideEffects,\n\t\tisExportAllSearch,\n\t\tsearchedNamesAndModules,\n\t\tskipExternalNamespaceReexports\n\t});\n}\n\nfunction getAndExtendSideEffectModules(variable: Variable, module: Module): Set<Module> {\n\tconst sideEffectModules = getOrCreate(\n\t\tmodule.sideEffectDependenciesByVariable,\n\t\tvariable,\n\t\t() => new Set()\n\t);\n\tlet currentVariable: Variable | null = variable;\n\tconst referencedVariables = new Set([currentVariable]);\n\twhile (true) {\n\t\tconst importingModule = currentVariable.module! as Module;\n\t\tcurrentVariable =\n\t\t\tcurrentVariable instanceof ExportDefaultVariable\n\t\t\t\t? currentVariable.getDirectOriginalVariable()\n\t\t\t\t: currentVariable instanceof SyntheticNamedExportVariable\n\t\t\t\t? currentVariable.syntheticNamespace\n\t\t\t\t: null;\n\t\tif (!currentVariable || referencedVariables.has(currentVariable)) {\n\t\t\tbreak;\n\t\t}\n\t\treferencedVariables.add(currentVariable);\n\t\tsideEffectModules.add(importingModule);\n\t\tconst originalSideEffects =\n\t\t\timportingModule.sideEffectDependenciesByVariable.get(currentVariable);\n\t\tif (originalSideEffects) {\n\t\t\tfor (const module of originalSideEffects) {\n\t\t\t\tsideEffectModules.add(module);\n\t\t\t}\n\t\t}\n\t}\n\treturn sideEffectModules;\n}\n\nexport default class Module {\n\talternativeReexportModules = new Map<Variable, Module>();\n\tast: Program | null = null;\n\tchunkFileNames = new Set<string>();\n\tchunkName: string | null = null;\n\tcycles = new Set<symbol>();\n\tdependencies = new Set<Module | ExternalModule>();\n\tdynamicDependencies = new Set<Module | ExternalModule>();\n\tdynamicImporters: string[] = [];\n\tdynamicImports: {\n\t\targument: string | ExpressionNode;\n\t\tnode: ImportExpression;\n\t\tresolution: Module | ExternalModule | string | null;\n\t}[] = [];\n\texcludeFromSourcemap: boolean;\n\texecIndex = Infinity;\n\texportAllSources = new Set<string>();\n\texports: { [name: string]: ExportDescription } = Object.create(null);\n\texportsAll: { [name: string]: string } = Object.create(null);\n\timplicitlyLoadedAfter = new Set<Module>();\n\timplicitlyLoadedBefore = new Set<Module>();\n\timportDescriptions: { [name: string]: ImportDescription } = Object.create(null);\n\timportMetas: MetaProperty[] = [];\n\timportedFromNotTreeshaken = false;\n\timporters: string[] = [];\n\timports = new Set<Variable>();\n\tincludedDynamicImporters: Module[] = [];\n\tinfo: ModuleInfo;\n\tisExecuted = false;\n\tisUserDefinedEntryPoint = false;\n\tnamespace!: NamespaceVariable;\n\toriginalCode!: string;\n\toriginalSourcemap!: ExistingDecodedSourceMap | null;\n\tpreserveSignature: PreserveEntrySignaturesOption = this.options.preserveEntrySignatures;\n\treexportDescriptions: { [name: string]: ReexportDescription } = Object.create(null);\n\tresolvedIds!: ResolvedIdMap;\n\tscope!: ModuleScope;\n\tsideEffectDependenciesByVariable = new Map<Variable, Set<Module>>();\n\tsourcemapChain!: DecodedSourceMapOrMissing[];\n\tsources = new Set<string>();\n\ttransformFiles?: EmittedFile[];\n\tuserChunkNames = new Set<string>();\n\tusesTopLevelAwait = false;\n\n\tprivate allExportNames: Set<string> | null = null;\n\tprivate astContext!: AstContext;\n\tprivate readonly context: string;\n\tprivate customTransformCache!: boolean;\n\tprivate exportAllModules: (Module | ExternalModule)[] = [];\n\tprivate exportNamesByVariable: Map<Variable, string[]> | null = null;\n\tprivate exportShimVariable: ExportShimVariable = new ExportShimVariable(this);\n\tprivate magicString!: MagicString;\n\tprivate namespaceReexportsByName: Record<string, Variable | null> = Object.create(null);\n\tprivate relevantDependencies: Set<Module | ExternalModule> | null = null;\n\tprivate syntheticExports = new Map<string, SyntheticNamedExportVariable>();\n\tprivate syntheticNamespace: Variable | null | undefined = null;\n\tprivate transformDependencies: string[] = [];\n\tprivate transitiveReexports: string[] | null = null;\n\n\tconstructor(\n\t\tprivate readonly graph: Graph,\n\t\tpublic readonly id: string,\n\t\tprivate readonly options: NormalizedInputOptions,\n\t\tisEntry: boolean,\n\t\thasModuleSideEffects: boolean | 'no-treeshake',\n\t\tsyntheticNamedExports: boolean | string,\n\t\tmeta: CustomPluginOptions\n\t) {\n\t\tthis.excludeFromSourcemap = /\\0/.test(id);\n\t\tthis.context = options.moduleContext(id);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-this-alias\n\t\tconst module = this;\n\t\tthis.info = {\n\t\t\tast: null,\n\t\t\tcode: null,\n\t\t\tget dynamicallyImportedIds() {\n\t\t\t\tconst dynamicallyImportedIds: string[] = [];\n\t\t\t\tfor (const { resolution } of module.dynamicImports) {\n\t\t\t\t\tif (resolution instanceof Module || resolution instanceof ExternalModule) {\n\t\t\t\t\t\tdynamicallyImportedIds.push(resolution.id);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn dynamicallyImportedIds;\n\t\t\t},\n\t\t\tget dynamicImporters() {\n\t\t\t\treturn module.dynamicImporters.sort();\n\t\t\t},\n\t\t\thasModuleSideEffects,\n\t\t\tid,\n\t\t\tget implicitlyLoadedAfterOneOf() {\n\t\t\t\treturn Array.from(module.implicitlyLoadedAfter, getId);\n\t\t\t},\n\t\t\tget implicitlyLoadedBefore() {\n\t\t\t\treturn Array.from(module.implicitlyLoadedBefore, getId);\n\t\t\t},\n\t\t\tget importedIds() {\n\t\t\t\treturn Array.from(module.sources, source => module.resolvedIds[source].id);\n\t\t\t},\n\t\t\tget importers() {\n\t\t\t\treturn module.importers.sort();\n\t\t\t},\n\t\t\tisEntry,\n\t\t\tisExternal: false,\n\t\t\tmeta,\n\t\t\tsyntheticNamedExports\n\t\t};\n\t}\n\n\tbasename(): string {\n\t\tconst base = basename(this.id);\n\t\tconst ext = extname(this.id);\n\n\t\treturn makeLegal(ext ? base.slice(0, -ext.length) : base);\n\t}\n\n\tbindReferences(): void {\n\t\tthis.ast!.bind();\n\t}\n\n\terror(props: RollupError, pos: number): never {\n\t\tthis.addLocationToLogProps(props, pos);\n\t\treturn error(props);\n\t}\n\n\tgetAllExportNames(): Set<string> {\n\t\tif (this.allExportNames) {\n\t\t\treturn this.allExportNames;\n\t\t}\n\t\tconst allExportNames = (this.allExportNames = new Set<string>());\n\t\tfor (const name of Object.keys(this.exports)) {\n\t\t\tallExportNames.add(name);\n\t\t}\n\t\tfor (const name of Object.keys(this.reexportDescriptions)) {\n\t\t\tallExportNames.add(name);\n\t\t}\n\t\tfor (const module of this.exportAllModules) {\n\t\t\tif (module instanceof ExternalModule) {\n\t\t\t\tallExportNames.add(`*${module.id}`);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tfor (const name of module.getAllExportNames()) {\n\t\t\t\tif (name !== 'default') allExportNames.add(name);\n\t\t\t}\n\t\t}\n\n\t\treturn allExportNames;\n\t}\n\n\tgetDependenciesToBeIncluded(): Set<Module | ExternalModule> {\n\t\tif (this.relevantDependencies) return this.relevantDependencies;\n\t\tconst relevantDependencies = new Set<Module | ExternalModule>();\n\t\tconst necessaryDependencies = new Set<Module | ExternalModule>();\n\t\tconst alwaysCheckedDependencies = new Set<Module>();\n\n\t\tlet dependencyVariables: Set<Variable> | IterableIterator<Variable> = this.imports.keys();\n\t\tif (\n\t\t\tthis.info.isEntry ||\n\t\t\tthis.includedDynamicImporters.length > 0 ||\n\t\t\tthis.namespace.included ||\n\t\t\tthis.implicitlyLoadedAfter.size > 0\n\t\t) {\n\t\t\tdependencyVariables = new Set(dependencyVariables);\n\t\t\tfor (const exportName of [...this.getReexports(), ...this.getExports()]) {\n\t\t\t\tconst exportedVariable = this.getVariableForExportName(exportName);\n\t\t\t\tif (exportedVariable) {\n\t\t\t\t\tdependencyVariables.add(exportedVariable);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (let variable of dependencyVariables) {\n\t\t\tconst sideEffectDependencies = this.sideEffectDependenciesByVariable.get(variable);\n\t\t\tif (sideEffectDependencies) {\n\t\t\t\tfor (const module of sideEffectDependencies) {\n\t\t\t\t\talwaysCheckedDependencies.add(module);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (variable instanceof SyntheticNamedExportVariable) {\n\t\t\t\tvariable = variable.getBaseVariable();\n\t\t\t} else if (variable instanceof ExportDefaultVariable) {\n\t\t\t\tvariable = variable.getOriginalVariable();\n\t\t\t}\n\t\t\tnecessaryDependencies.add(variable.module!);\n\t\t}\n\t\tif (!this.options.treeshake || this.info.hasModuleSideEffects === 'no-treeshake') {\n\t\t\tfor (const dependency of this.dependencies) {\n\t\t\t\trelevantDependencies.add(dependency);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.addRelevantSideEffectDependencies(\n\t\t\t\trelevantDependencies,\n\t\t\t\tnecessaryDependencies,\n\t\t\t\talwaysCheckedDependencies\n\t\t\t);\n\t\t}\n\t\tfor (const dependency of necessaryDependencies) {\n\t\t\trelevantDependencies.add(dependency);\n\t\t}\n\t\treturn (this.relevantDependencies = relevantDependencies);\n\t}\n\n\tgetExportNamesByVariable(): Map<Variable, string[]> {\n\t\tif (this.exportNamesByVariable) {\n\t\t\treturn this.exportNamesByVariable;\n\t\t}\n\t\tconst exportNamesByVariable: Map<Variable, string[]> = new Map();\n\t\tfor (const exportName of this.getAllExportNames()) {\n\t\t\tif (exportName === this.info.syntheticNamedExports) continue;\n\t\t\tlet tracedVariable = this.getVariableForExportName(exportName);\n\t\t\tif (tracedVariable instanceof ExportDefaultVariable) {\n\t\t\t\ttracedVariable = tracedVariable.getOriginalVariable();\n\t\t\t}\n\t\t\tif (\n\t\t\t\t!tracedVariable ||\n\t\t\t\t!(tracedVariable.included || tracedVariable instanceof ExternalVariable)\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst existingExportNames = exportNamesByVariable.get(tracedVariable);\n\t\t\tif (existingExportNames) {\n\t\t\t\texistingExportNames.push(exportName);\n\t\t\t} else {\n\t\t\t\texportNamesByVariable.set(tracedVariable, [exportName]);\n\t\t\t}\n\t\t}\n\t\treturn (this.exportNamesByVariable = exportNamesByVariable);\n\t}\n\n\tgetExports(): string[] {\n\t\treturn Object.keys(this.exports);\n\t}\n\n\tgetReexports(): string[] {\n\t\tif (this.transitiveReexports) {\n\t\t\treturn this.transitiveReexports;\n\t\t}\n\t\t// to avoid infinite recursion when using circular `export * from X`\n\t\tthis.transitiveReexports = [];\n\n\t\tconst reexports = new Set<string>();\n\t\tfor (const name in this.reexportDescriptions) {\n\t\t\treexports.add(name);\n\t\t}\n\t\tfor (const module of this.exportAllModules) {\n\t\t\tif (module instanceof ExternalModule) {\n\t\t\t\treexports.add(`*${module.id}`);\n\t\t\t} else {\n\t\t\t\tfor (const name of [...module.getReexports(), ...module.getExports()]) {\n\t\t\t\t\tif (name !== 'default') reexports.add(name);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn (this.transitiveReexports = [...reexports]);\n\t}\n\n\tgetRenderedExports(): { removedExports: string[]; renderedExports: string[] } {\n\t\t// only direct exports are counted here, not reexports at all\n\t\tconst renderedExports: string[] = [];\n\t\tconst removedExports: string[] = [];\n\t\tfor (const exportName in this.exports) {\n\t\t\tconst variable = this.getVariableForExportName(exportName);\n\t\t\t(variable && variable.included ? renderedExports : removedExports).push(exportName);\n\t\t}\n\t\treturn { removedExports, renderedExports };\n\t}\n\n\tgetSyntheticNamespace(): Variable {\n\t\tif (this.syntheticNamespace === null) {\n\t\t\tthis.syntheticNamespace = undefined;\n\t\t\tthis.syntheticNamespace = this.getVariableForExportName(\n\t\t\t\ttypeof this.info.syntheticNamedExports === 'string'\n\t\t\t\t\t? this.info.syntheticNamedExports\n\t\t\t\t\t: 'default'\n\t\t\t);\n\t\t}\n\t\tif (!this.syntheticNamespace) {\n\t\t\treturn error(\n\t\t\t\terrSyntheticNamedExportsNeedNamespaceExport(this.id, this.info.syntheticNamedExports)\n\t\t\t);\n\t\t}\n\t\treturn this.syntheticNamespace;\n\t}\n\n\tgetVariableForExportName(\n\t\tname: string,\n\t\t{\n\t\t\timporterForSideEffects,\n\t\t\tisExportAllSearch,\n\t\t\tsearchedNamesAndModules,\n\t\t\tskipExternalNamespaceReexports\n\t\t}: {\n\t\t\timporterForSideEffects?: Module;\n\t\t\tisExportAllSearch?: boolean;\n\t\t\tsearchedNamesAndModules?: Map<string, Set<Module | ExternalModule>>;\n\t\t\tskipExternalNamespaceReexports?: boolean;\n\t\t} = EMPTY_OBJECT\n\t): Variable | null {\n\t\tif (name[0] === '*') {\n\t\t\tif (name.length === 1) {\n\t\t\t\t// export * from './other'\n\t\t\t\treturn this.namespace;\n\t\t\t} else {\n\t\t\t\t// export * from 'external'\n\t\t\t\tconst module = this.graph.modulesById.get(name.slice(1)) as ExternalModule;\n\t\t\t\treturn module.getVariableForExportName('*');\n\t\t\t}\n\t\t}\n\n\t\t// export { foo } from './other'\n\t\tconst reexportDeclaration = this.reexportDescriptions[name];\n\t\tif (reexportDeclaration) {\n\t\t\tconst variable = getVariableForExportNameRecursive(\n\t\t\t\treexportDeclaration.module,\n\t\t\t\treexportDeclaration.localName,\n\t\t\t\timporterForSideEffects,\n\t\t\t\tfalse,\n\t\t\t\tsearchedNamesAndModules,\n\t\t\t\tfalse\n\t\t\t);\n\n\t\t\tif (!variable) {\n\t\t\t\treturn this.error(\n\t\t\t\t\terrMissingExport(reexportDeclaration.localName, this.id, reexportDeclaration.module.id),\n\t\t\t\t\treexportDeclaration.start\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (importerForSideEffects) {\n\t\t\t\tsetAlternativeExporterIfCyclic(variable, importerForSideEffects, this);\n\t\t\t}\n\t\t\treturn variable;\n\t\t}\n\n\t\tconst exportDeclaration = this.exports[name];\n\t\tif (exportDeclaration) {\n\t\t\tif (exportDeclaration === MISSING_EXPORT_SHIM_DESCRIPTION) {\n\t\t\t\treturn this.exportShimVariable;\n\t\t\t}\n\t\t\tconst name = exportDeclaration.localName;\n\t\t\tconst variable = this.traceVariable(name, importerForSideEffects)!;\n\t\t\tif (importerForSideEffects) {\n\t\t\t\tgetOrCreate(\n\t\t\t\t\timporterForSideEffects.sideEffectDependenciesByVariable,\n\t\t\t\t\tvariable,\n\t\t\t\t\t() => new Set()\n\t\t\t\t).add(this);\n\t\t\t\tsetAlternativeExporterIfCyclic(variable, importerForSideEffects, this);\n\t\t\t}\n\t\t\treturn variable;\n\t\t}\n\n\t\tif (name !== 'default') {\n\t\t\tconst foundNamespaceReexport =\n\t\t\t\tname in this.namespaceReexportsByName\n\t\t\t\t\t? this.namespaceReexportsByName[name]\n\t\t\t\t\t: this.getVariableFromNamespaceReexports(\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\timporterForSideEffects,\n\t\t\t\t\t\t\tsearchedNamesAndModules,\n\t\t\t\t\t\t\tskipExternalNamespaceReexports\n\t\t\t\t\t );\n\t\t\tif (!skipExternalNamespaceReexports) {\n\t\t\t\tthis.namespaceReexportsByName[name] = foundNamespaceReexport;\n\t\t\t}\n\t\t\tif (foundNamespaceReexport) {\n\t\t\t\treturn foundNamespaceReexport;\n\t\t\t}\n\t\t}\n\n\t\tif (this.info.syntheticNamedExports) {\n\t\t\tlet syntheticExport = this.syntheticExports.get(name);\n\t\t\tif (!syntheticExport) {\n\t\t\t\tconst syntheticNamespace = this.getSyntheticNamespace();\n\t\t\t\tsyntheticExport = new SyntheticNamedExportVariable(\n\t\t\t\t\tthis.astContext,\n\t\t\t\t\tname,\n\t\t\t\t\tsyntheticNamespace\n\t\t\t\t);\n\t\t\t\tthis.syntheticExports.set(name, syntheticExport);\n\t\t\t\treturn syntheticExport;\n\t\t\t}\n\t\t\treturn syntheticExport;\n\t\t}\n\n\t\t// we don't want to create shims when we are just\n\t\t// probing export * modules for exports\n\t\tif (!isExportAllSearch) {\n\t\t\tif (this.options.shimMissingExports) {\n\t\t\t\tthis.shimMissingExport(name);\n\t\t\t\treturn this.exportShimVariable;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\thasEffects(): boolean {\n\t\treturn (\n\t\t\tthis.info.hasModuleSideEffects === 'no-treeshake' ||\n\t\t\t(this.ast!.included && this.ast!.hasEffects(createHasEffectsContext()))\n\t\t);\n\t}\n\n\tinclude(): void {\n\t\tconst context = createInclusionContext();\n\t\tif (this.ast!.shouldBeIncluded(context)) this.ast!.include(context, false);\n\t}\n\n\tincludeAllExports(includeNamespaceMembers: boolean): void {\n\t\tif (!this.isExecuted) {\n\t\t\tmarkModuleAndImpureDependenciesAsExecuted(this);\n\t\t\tthis.graph.needsTreeshakingPass = true;\n\t\t}\n\n\t\tfor (const exportName of this.getExports()) {\n\t\t\tif (includeNamespaceMembers || exportName !== this.info.syntheticNamedExports) {\n\t\t\t\tconst variable = this.getVariableForExportName(exportName)!;\n\t\t\t\tvariable.deoptimizePath(UNKNOWN_PATH);\n\t\t\t\tif (!variable.included) {\n\t\t\t\t\tthis.includeVariable(variable);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (const name of this.getReexports()) {\n\t\t\tconst variable = this.getVariableForExportName(name);\n\t\t\tif (variable) {\n\t\t\t\tvariable.deoptimizePath(UNKNOWN_PATH);\n\t\t\t\tif (!variable.included) {\n\t\t\t\t\tthis.includeVariable(variable);\n\t\t\t\t}\n\t\t\t\tif (variable instanceof ExternalVariable) {\n\t\t\t\t\tvariable.module.reexported = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (includeNamespaceMembers) {\n\t\t\tthis.namespace.prepareNamespace(this.includeAndGetAdditionalMergedNamespaces());\n\t\t}\n\t}\n\n\tincludeAllInBundle(): void {\n\t\tthis.ast!.include(createInclusionContext(), true);\n\t\tthis.includeAllExports(false);\n\t}\n\n\tisIncluded(): boolean {\n\t\treturn this.ast!.included || this.namespace.included || this.importedFromNotTreeshaken;\n\t}\n\n\tlinkImports(): void {\n\t\tthis.addModulesToImportDescriptions(this.importDescriptions);\n\t\tthis.addModulesToImportDescriptions(this.reexportDescriptions);\n\t\tfor (const name in this.exports) {\n\t\t\tif (name !== 'default' && name !== this.info.syntheticNamedExports) {\n\t\t\t\tthis.exportsAll[name] = this.id;\n\t\t\t}\n\t\t}\n\t\tconst externalExportAllModules: ExternalModule[] = [];\n\t\tfor (const source of this.exportAllSources) {\n\t\t\tconst module = this.graph.modulesById.get(this.resolvedIds[source].id)!;\n\t\t\tif (module instanceof ExternalModule) {\n\t\t\t\texternalExportAllModules.push(module);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.exportAllModules.push(module);\n\t\t\tfor (const name in module.exportsAll) {\n\t\t\t\tif (name in this.exportsAll) {\n\t\t\t\t\tthis.options.onwarn(errNamespaceConflict(name, this, module));\n\t\t\t\t} else {\n\t\t\t\t\tthis.exportsAll[name] = module.exportsAll[name];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.exportAllModules.push(...externalExportAllModules);\n\t}\n\n\trender(options: RenderOptions): MagicString {\n\t\tconst magicString = this.magicString.clone();\n\t\tthis.ast!.render(magicString, options);\n\t\tthis.usesTopLevelAwait = this.astContext.usesTopLevelAwait;\n\t\treturn magicString;\n\t}\n\n\tsetSource({\n\t\tast,\n\t\tcode,\n\t\tcustomTransformCache,\n\t\toriginalCode,\n\t\toriginalSourcemap,\n\t\tresolvedIds,\n\t\tsourcemapChain,\n\t\ttransformDependencies,\n\t\ttransformFiles,\n\t\t...moduleOptions\n\t}: TransformModuleJSON & {\n\t\ttransformFiles?: EmittedFile[] | undefined;\n\t}): void {\n\t\tthis.info.code = code;\n\t\tthis.originalCode = originalCode;\n\t\tthis.originalSourcemap = originalSourcemap;\n\t\tthis.sourcemapChain = sourcemapChain;\n\t\tif (transformFiles) {\n\t\t\tthis.transformFiles = transformFiles;\n\t\t}\n\t\tthis.transformDependencies = transformDependencies;\n\t\tthis.customTransformCache = customTransformCache;\n\t\tthis.updateOptions(moduleOptions);\n\n\t\ttimeStart('generate ast', 3);\n\n\t\tif (!ast) {\n\t\t\tast = this.tryParse();\n\t\t}\n\n\t\ttimeEnd('generate ast', 3);\n\n\t\tthis.resolvedIds = resolvedIds || Object.create(null);\n\n\t\t// By default, `id` is the file name. Custom resolvers and loaders\n\t\t// can change that, but it makes sense to use it for the source file name\n\t\tconst fileName = this.id;\n\n\t\tthis.magicString = new MagicString(code, {\n\t\t\tfilename: (this.excludeFromSourcemap ? null : fileName)!, // don't include plugin helpers in sourcemap\n\t\t\tindentExclusionRanges: []\n\t\t});\n\n\t\ttimeStart('analyse ast', 3);\n\n\t\tthis.astContext = {\n\t\t\taddDynamicImport: this.addDynamicImport.bind(this),\n\t\t\taddExport: this.addExport.bind(this),\n\t\t\taddImport: this.addImport.bind(this),\n\t\t\taddImportMeta: this.addImportMeta.bind(this),\n\t\t\tcode, // Only needed for debugging\n\t\t\tdeoptimizationTracker: this.graph.deoptimizationTracker,\n\t\t\terror: this.error.bind(this),\n\t\t\tfileName, // Needed for warnings\n\t\t\tgetExports: this.getExports.bind(this),\n\t\t\tgetModuleExecIndex: () => this.execIndex,\n\t\t\tgetModuleName: this.basename.bind(this),\n\t\t\tgetReexports: this.getReexports.bind(this),\n\t\t\timportDescriptions: this.importDescriptions,\n\t\t\tincludeAllExports: () => this.includeAllExports(true),\n\t\t\tincludeDynamicImport: this.includeDynamicImport.bind(this),\n\t\t\tincludeVariableInModule: this.includeVariableInModule.bind(this),\n\t\t\tmagicString: this.magicString,\n\t\t\tmodule: this,\n\t\t\tmoduleContext: this.context,\n\t\t\tnodeConstructors,\n\t\t\toptions: this.options,\n\t\t\trequestTreeshakingPass: () => (this.graph.needsTreeshakingPass = true),\n\t\t\ttraceExport: this.getVariableForExportName.bind(this),\n\t\t\ttraceVariable: this.traceVariable.bind(this),\n\t\t\tusesTopLevelAwait: false,\n\t\t\twarn: this.warn.bind(this)\n\t\t};\n\n\t\tthis.scope = new ModuleScope(this.graph.scope, this.astContext);\n\t\tthis.namespace = new NamespaceVariable(this.astContext, this.info.syntheticNamedExports);\n\t\tthis.ast = new Program(ast, { context: this.astContext, type: 'Module' }, this.scope);\n\t\tthis.info.ast = ast;\n\n\t\ttimeEnd('analyse ast', 3);\n\t}\n\n\ttoJSON(): ModuleJSON {\n\t\treturn {\n\t\t\tast: this.ast!.esTreeNode,\n\t\t\tcode: this.info.code!,\n\t\t\tcustomTransformCache: this.customTransformCache,\n\t\t\tdependencies: Array.from(this.dependencies, getId),\n\t\t\tid: this.id,\n\t\t\tmeta: this.info.meta,\n\t\t\tmoduleSideEffects: this.info.hasModuleSideEffects,\n\t\t\toriginalCode: this.originalCode,\n\t\t\toriginalSourcemap: this.originalSourcemap,\n\t\t\tresolvedIds: this.resolvedIds,\n\t\t\tsourcemapChain: this.sourcemapChain,\n\t\t\tsyntheticNamedExports: this.info.syntheticNamedExports,\n\t\t\ttransformDependencies: this.transformDependencies,\n\t\t\ttransformFiles: this.transformFiles\n\t\t};\n\t}\n\n\ttraceVariable(name: string, importerForSideEffects?: Module): Variable | null {\n\t\tconst localVariable = this.scope.variables.get(name);\n\t\tif (localVariable) {\n\t\t\treturn localVariable;\n\t\t}\n\n\t\tif (name in this.importDescriptions) {\n\t\t\tconst importDeclaration = this.importDescriptions[name];\n\t\t\tconst otherModule = importDeclaration.module;\n\n\t\t\tif (otherModule instanceof Module && importDeclaration.name === '*') {\n\t\t\t\treturn otherModule.namespace;\n\t\t\t}\n\n\t\t\tconst declaration = otherModule.getVariableForExportName(importDeclaration.name, {\n\t\t\t\timporterForSideEffects: importerForSideEffects || this\n\t\t\t});\n\n\t\t\tif (!declaration) {\n\t\t\t\treturn this.error(\n\t\t\t\t\terrMissingExport(importDeclaration.name, this.id, otherModule.id),\n\t\t\t\t\timportDeclaration.start\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn declaration;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\ttryParse(): acorn.Node {\n\t\ttry {\n\t\t\treturn this.graph.contextParse(this.info.code!);\n\t\t} catch (err) {\n\t\t\tlet message = err.message.replace(/ \\(\\d+:\\d+\\)$/, '');\n\t\t\tif (this.id.endsWith('.json')) {\n\t\t\t\tmessage += ' (Note that you need @rollup/plugin-json to import JSON files)';\n\t\t\t} else if (!this.id.endsWith('.js')) {\n\t\t\t\tmessage += ' (Note that you need plugins to import files that are not JavaScript)';\n\t\t\t}\n\t\t\treturn this.error(\n\t\t\t\t{\n\t\t\t\t\tcode: 'PARSE_ERROR',\n\t\t\t\t\tmessage,\n\t\t\t\t\tparserError: err\n\t\t\t\t},\n\t\t\t\terr.pos\n\t\t\t);\n\t\t}\n\t}\n\n\tupdateOptions({\n\t\tmeta,\n\t\tmoduleSideEffects,\n\t\tsyntheticNamedExports\n\t}: Partial<PartialNull<ModuleOptions>>): void {\n\t\tif (moduleSideEffects != null) {\n\t\t\tthis.info.hasModuleSideEffects = moduleSideEffects;\n\t\t}\n\t\tif (syntheticNamedExports != null) {\n\t\t\tthis.info.syntheticNamedExports = syntheticNamedExports;\n\t\t}\n\t\tif (meta != null) {\n\t\t\tthis.info.meta = { ...this.info.meta, ...meta };\n\t\t}\n\t}\n\n\twarn(props: RollupWarning, pos: number): void {\n\t\tthis.addLocationToLogProps(props, pos);\n\t\tthis.options.onwarn(props);\n\t}\n\n\tprivate addDynamicImport(node: ImportExpression) {\n\t\tlet argument: ExpressionNode | string = node.source;\n\t\tif (argument instanceof TemplateLiteral) {\n\t\t\tif (argument.quasis.length === 1 && argument.quasis[0].value.cooked) {\n\t\t\t\targument = argument.quasis[0].value.cooked;\n\t\t\t}\n\t\t} else if (argument instanceof Literal && typeof argument.value === 'string') {\n\t\t\targument = argument.value;\n\t\t}\n\t\tthis.dynamicImports.push({ argument, node, resolution: null });\n\t}\n\n\tprivate addExport(\n\t\tnode: ExportAllDeclaration | ExportNamedDeclaration | ExportDefaultDeclaration\n\t) {\n\t\tif (node instanceof ExportDefaultDeclaration) {\n\t\t\t// export default foo;\n\n\t\t\tthis.exports.default = {\n\t\t\t\tidentifier: node.variable.getAssignedVariableName(),\n\t\t\t\tlocalName: 'default'\n\t\t\t};\n\t\t} else if (node instanceof ExportAllDeclaration) {\n\t\t\tconst source = node.source.value;\n\t\t\tthis.sources.add(source);\n\t\t\tif (node.exported) {\n\t\t\t\t// export * as name from './other'\n\n\t\t\t\tconst name = node.exported.name;\n\t\t\t\tthis.reexportDescriptions[name] = {\n\t\t\t\t\tlocalName: '*',\n\t\t\t\t\tmodule: null as never, // filled in later,\n\t\t\t\t\tsource,\n\t\t\t\t\tstart: node.start\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\t// export * from './other'\n\n\t\t\t\tthis.exportAllSources.add(source);\n\t\t\t}\n\t\t} else if (node.source instanceof Literal) {\n\t\t\t// export { name } from './other'\n\n\t\t\tconst source = node.source.value;\n\t\t\tthis.sources.add(source);\n\t\t\tfor (const specifier of node.specifiers) {\n\t\t\t\tconst name = specifier.exported.name;\n\t\t\t\tthis.reexportDescriptions[name] = {\n\t\t\t\t\tlocalName: specifier.local.name,\n\t\t\t\t\tmodule: null as never, // filled in later,\n\t\t\t\t\tsource,\n\t\t\t\t\tstart: specifier.start\n\t\t\t\t};\n\t\t\t}\n\t\t} else if (node.declaration) {\n\t\t\tconst declaration = node.declaration;\n\t\t\tif (declaration instanceof VariableDeclaration) {\n\t\t\t\t// export var { foo, bar } = ...\n\t\t\t\t// export var foo = 1, bar = 2;\n\n\t\t\t\tfor (const declarator of declaration.declarations) {\n\t\t\t\t\tfor (const localName of extractAssignedNames(declarator.id)) {\n\t\t\t\t\t\tthis.exports[localName] = { identifier: null, localName };\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// export function foo () {}\n\n\t\t\t\tconst localName = (declaration.id as Identifier).name;\n\t\t\t\tthis.exports[localName] = { identifier: null, localName };\n\t\t\t}\n\t\t} else {\n\t\t\t// export { foo, bar, baz }\n\n\t\t\tfor (const specifier of node.specifiers) {\n\t\t\t\tconst localName = specifier.local.name;\n\t\t\t\tconst exportedName = specifier.exported.name;\n\t\t\t\tthis.exports[exportedName] = { identifier: null, localName };\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate addImport(node: ImportDeclaration) {\n\t\tconst source = node.source.value;\n\t\tthis.sources.add(source);\n\t\tfor (const specifier of node.specifiers) {\n\t\t\tconst isDefault = specifier.type === NodeType.ImportDefaultSpecifier;\n\t\t\tconst isNamespace = specifier.type === NodeType.ImportNamespaceSpecifier;\n\n\t\t\tconst name = isDefault\n\t\t\t\t? 'default'\n\t\t\t\t: isNamespace\n\t\t\t\t? '*'\n\t\t\t\t: (specifier as ImportSpecifier).imported.name;\n\t\t\tthis.importDescriptions[specifier.local.name] = {\n\t\t\t\tmodule: null as never, // filled in later\n\t\t\t\tname,\n\t\t\t\tsource,\n\t\t\t\tstart: specifier.start\n\t\t\t};\n\t\t}\n\t}\n\n\tprivate addImportMeta(node: MetaProperty) {\n\t\tthis.importMetas.push(node);\n\t}\n\n\tprivate addLocationToLogProps(props: RollupLogProps, pos: number): void {\n\t\tprops.id = this.id;\n\t\tprops.pos = pos;\n\t\tlet code = this.info.code;\n\t\tconst location = locate(code!, pos, { offsetLine: 1 });\n\t\tif (location) {\n\t\t\tlet { column, line } = location;\n\t\t\ttry {\n\t\t\t\t({ column, line } = getOriginalLocation(this.sourcemapChain, { column, line }));\n\t\t\t\tcode = this.originalCode;\n\t\t\t} catch (e) {\n\t\t\t\tthis.options.onwarn({\n\t\t\t\t\tcode: 'SOURCEMAP_ERROR',\n\t\t\t\t\tid: this.id,\n\t\t\t\t\tloc: {\n\t\t\t\t\t\tcolumn,\n\t\t\t\t\t\tfile: this.id,\n\t\t\t\t\t\tline\n\t\t\t\t\t},\n\t\t\t\t\tmessage: `Error when using sourcemap for reporting an error: ${e.message}`,\n\t\t\t\t\tpos\n\t\t\t\t});\n\t\t\t}\n\t\t\taugmentCodeLocation(props, { column, line }, code!, this.id);\n\t\t}\n\t}\n\n\tprivate addModulesToImportDescriptions(importDescription: {\n\t\t[name: string]: ImportDescription | ReexportDescription;\n\t}) {\n\t\tfor (const specifier of Object.values(importDescription)) {\n\t\t\tconst id = this.resolvedIds[specifier.source].id;\n\t\t\tspecifier.module = this.graph.modulesById.get(id)!;\n\t\t}\n\t}\n\n\tprivate addRelevantSideEffectDependencies(\n\t\trelevantDependencies: Set<Module | ExternalModule>,\n\t\tnecessaryDependencies: Set<Module | ExternalModule>,\n\t\talwaysCheckedDependencies: Set<Module | ExternalModule>\n\t) {\n\t\tconst handledDependencies = new Set<Module | ExternalModule>();\n\n\t\tconst addSideEffectDependencies = (possibleDependencies: Set<Module | ExternalModule>) => {\n\t\t\tfor (const dependency of possibleDependencies) {\n\t\t\t\tif (handledDependencies.has(dependency)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\thandledDependencies.add(dependency);\n\t\t\t\tif (necessaryDependencies.has(dependency)) {\n\t\t\t\t\trelevantDependencies.add(dependency);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (!(dependency.info.hasModuleSideEffects || alwaysCheckedDependencies.has(dependency))) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (dependency instanceof ExternalModule || dependency.hasEffects()) {\n\t\t\t\t\trelevantDependencies.add(dependency);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\taddSideEffectDependencies(dependency.dependencies);\n\t\t\t}\n\t\t};\n\n\t\taddSideEffectDependencies(this.dependencies);\n\t\taddSideEffectDependencies(alwaysCheckedDependencies);\n\t}\n\n\tprivate getVariableFromNamespaceReexports(\n\t\tname: string,\n\t\timporterForSideEffects?: Module,\n\t\tsearchedNamesAndModules?: Map<string, Set<Module | ExternalModule>>,\n\t\tskipExternalNamespaceReexports = false\n\t): Variable | null {\n\t\tlet foundSyntheticDeclaration: SyntheticNamedExportVariable | null = null;\n\t\tconst skipExternalNamespaceValues = [{ searchedNamesAndModules, skipExternalNamespaces: true }];\n\t\tif (!skipExternalNamespaceReexports) {\n\t\t\tconst clonedSearchedNamesAndModules = new Map<string, Set<Module | ExternalModule>>();\n\t\t\tfor (const [name, modules] of searchedNamesAndModules || []) {\n\t\t\t\tclonedSearchedNamesAndModules.set(name, new Set(modules));\n\t\t\t}\n\t\t\tskipExternalNamespaceValues.push({\n\t\t\t\tsearchedNamesAndModules: clonedSearchedNamesAndModules,\n\t\t\t\tskipExternalNamespaces: false\n\t\t\t});\n\t\t}\n\t\tfor (const { skipExternalNamespaces, searchedNamesAndModules } of skipExternalNamespaceValues) {\n\t\t\tconst foundDeclarations = new Set<Variable>();\n\t\t\tfor (const module of this.exportAllModules) {\n\t\t\t\tif (module instanceof Module || !skipExternalNamespaces) {\n\t\t\t\t\tconst declaration = getVariableForExportNameRecursive(\n\t\t\t\t\t\tmodule,\n\t\t\t\t\t\tname,\n\t\t\t\t\t\timporterForSideEffects,\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t\tsearchedNamesAndModules,\n\t\t\t\t\t\tskipExternalNamespaces\n\t\t\t\t\t);\n\n\t\t\t\t\tif (declaration) {\n\t\t\t\t\t\tif (!(declaration instanceof SyntheticNamedExportVariable)) {\n\t\t\t\t\t\t\tfoundDeclarations.add(declaration);\n\t\t\t\t\t\t} else if (!foundSyntheticDeclaration) {\n\t\t\t\t\t\t\tfoundSyntheticDeclaration = declaration;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (foundDeclarations.size === 1) {\n\t\t\t\treturn [...foundDeclarations][0];\n\t\t\t}\n\t\t\tif (foundDeclarations.size > 1) {\n\t\t\t\tif (skipExternalNamespaces) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tconst foundDeclarationList = [...(foundDeclarations as Set<ExternalVariable>)];\n\t\t\t\tconst usedDeclaration = foundDeclarationList[0];\n\t\t\t\tthis.options.onwarn(\n\t\t\t\t\terrAmbiguousExternalNamespaces(\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tthis.id,\n\t\t\t\t\t\tusedDeclaration.module.id,\n\t\t\t\t\t\tfoundDeclarationList.map(declaration => declaration.module.id)\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\treturn usedDeclaration;\n\t\t\t}\n\t\t}\n\t\tif (foundSyntheticDeclaration) {\n\t\t\treturn foundSyntheticDeclaration;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprivate includeAndGetAdditionalMergedNamespaces(): Variable[] {\n\t\tconst mergedNamespaces: Variable[] = [];\n\t\tfor (const module of this.exportAllModules) {\n\t\t\tif (module instanceof ExternalModule) {\n\t\t\t\tconst externalVariable = module.getVariableForExportName('*');\n\t\t\t\texternalVariable.include();\n\t\t\t\tthis.imports.add(externalVariable);\n\t\t\t\tmergedNamespaces.push(externalVariable);\n\t\t\t} else if (module.info.syntheticNamedExports) {\n\t\t\t\tconst syntheticNamespace = module.getSyntheticNamespace();\n\t\t\t\tsyntheticNamespace.include();\n\t\t\t\tthis.imports.add(syntheticNamespace);\n\t\t\t\tmergedNamespaces.push(syntheticNamespace);\n\t\t\t}\n\t\t}\n\t\treturn mergedNamespaces;\n\t}\n\n\tprivate includeDynamicImport(node: ImportExpression) {\n\t\tconst resolution = (\n\t\t\tthis.dynamicImports.find(dynamicImport => dynamicImport.node === node) as {\n\t\t\t\tresolution: string | Module | ExternalModule | undefined;\n\t\t\t}\n\t\t).resolution;\n\t\tif (resolution instanceof Module) {\n\t\t\tresolution.includedDynamicImporters.push(this);\n\t\t\tresolution.includeAllExports(true);\n\t\t}\n\t}\n\n\tprivate includeVariable(variable: Variable) {\n\t\tif (!variable.included) {\n\t\t\tvariable.include();\n\t\t\tthis.graph.needsTreeshakingPass = true;\n\t\t\tconst variableModule = variable.module;\n\t\t\tif (variableModule && variableModule instanceof Module) {\n\t\t\t\tif (!variableModule.isExecuted) {\n\t\t\t\t\tmarkModuleAndImpureDependenciesAsExecuted(variableModule);\n\t\t\t\t}\n\t\t\t\tif (variableModule !== this) {\n\t\t\t\t\tconst sideEffectModules = getAndExtendSideEffectModules(variable, this);\n\t\t\t\t\tfor (const module of sideEffectModules) {\n\t\t\t\t\t\tif (!module.isExecuted) {\n\t\t\t\t\t\t\tmarkModuleAndImpureDependenciesAsExecuted(module);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate includeVariableInModule(variable: Variable) {\n\t\tthis.includeVariable(variable);\n\t\tconst variableModule = variable.module;\n\t\tif (variableModule && variableModule !== this) {\n\t\t\tthis.imports.add(variable);\n\t\t}\n\t}\n\n\tprivate shimMissingExport(name: string): void {\n\t\tthis.options.onwarn({\n\t\t\tcode: 'SHIMMED_EXPORT',\n\t\t\texporter: relativeId(this.id),\n\t\t\texportName: name,\n\t\t\tmessage: `Missing export \"${name}\" has been shimmed in module ${relativeId(this.id)}.`\n\t\t});\n\t\tthis.exports[name] = MISSING_EXPORT_SHIM_DESCRIPTION;\n\t}\n}\n\n// if there is a cyclic import in the reexport chain, we should not\n// import from the original module but from the cyclic module to not\n// mess up execution order.\nfunction setAlternativeExporterIfCyclic(variable: Variable, importer: Module, reexporter: Module) {\n\tif (variable.module instanceof Module && variable.module !== reexporter) {\n\t\tconst exporterCycles = variable.module.cycles;\n\t\tif (exporterCycles.size > 0) {\n\t\t\tconst importerCycles = reexporter.cycles;\n\t\t\tfor (const cycleSymbol of importerCycles) {\n\t\t\t\tif (exporterCycles.has(cycleSymbol)) {\n\t\t\t\t\timporter.alternativeReexportModules.set(variable, reexporter);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","import { DecodedSourceMapOrMissing, ExistingDecodedSourceMap } from '../rollup/types';\n\nexport function getOriginalLocation(\n\tsourcemapChain: DecodedSourceMapOrMissing[],\n\tlocation: { column: number; line: number; name?: string; source?: string }\n): { column: number; line: number } {\n\t// This cast is guaranteed. If it were a missing Map, it wouldn't have a mappings.\n\tconst filteredSourcemapChain = sourcemapChain.filter(\n\t\tsourcemap => sourcemap.mappings\n\t) as ExistingDecodedSourceMap[];\n\n\twhile (filteredSourcemapChain.length > 0) {\n\t\tconst sourcemap = filteredSourcemapChain.pop()!;\n\t\tconst line = sourcemap.mappings[location.line - 1];\n\t\tlet locationFound = false;\n\n\t\tif (line !== undefined) {\n\t\t\tfor (const segment of line) {\n\t\t\t\tif (segment[0] >= location.column) {\n\t\t\t\t\tif (segment.length === 1) break;\n\t\t\t\t\tlocation = {\n\t\t\t\t\t\tcolumn: segment[3],\n\t\t\t\t\t\tline: segment[2] + 1,\n\t\t\t\t\t\tname: segment.length === 5 ? sourcemap.names[segment[4]] : undefined,\n\t\t\t\t\t\tsource: sourcemap.sources[segment[1]]\n\t\t\t\t\t};\n\t\t\t\t\tlocationFound = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!locationFound) {\n\t\t\tthrow new Error(\"Can't resolve original location of error.\");\n\t\t}\n\t}\n\treturn location;\n}\n","export default function removeJsExtension(name: string): string {\n\treturn name.endsWith('.js') ? name.slice(0, -3) : name;\n}\n","import { NormalizedOutputOptions } from '../../rollup/types';\nimport removeJsExtension from './removeJsExtension';\n\nexport default function getCompleteAmdId(\n\toptions: NormalizedOutputOptions['amd'],\n\tchunkId: string\n): string {\n\tif (!options.autoId) {\n\t\treturn options.id || '';\n\t} else {\n\t\treturn `${options.basePath ? options.basePath + '/' : ''}${removeJsExtension(chunkId)}`;\n\t}\n}\n","import { ChunkDependencies, ChunkExports } from '../../Chunk';\nimport { GetInterop } from '../../rollup/types';\nimport {\n\tdefaultInteropHelpersByInteropType,\n\tisDefaultAProperty,\n\tnamespaceInteropHelpersByInteropType\n} from '../../utils/interopHelpers';\nimport { RESERVED_NAMES } from '../../utils/reservedNames';\n\nexport function getExportBlock(\n\texports: ChunkExports,\n\tdependencies: ChunkDependencies,\n\tnamedExportsMode: boolean,\n\tinterop: GetInterop,\n\tcompact: boolean | undefined,\n\tt: string,\n\texternalLiveBindings: boolean,\n\tmechanism = 'return '\n): string {\n\tconst _ = compact ? '' : ' ';\n\tconst n = compact ? '' : '\\n';\n\tif (!namedExportsMode) {\n\t\treturn `${n}${n}${mechanism}${getSingleDefaultExport(\n\t\t\texports,\n\t\t\tdependencies,\n\t\t\tinterop,\n\t\t\texternalLiveBindings\n\t\t)};`;\n\t}\n\n\tlet exportBlock = '';\n\n\tfor (const {\n\t\tdefaultVariableName,\n\t\tid,\n\t\tisChunk,\n\t\tname,\n\t\tnamedExportsMode: depNamedExportsMode,\n\t\tnamespaceVariableName,\n\t\treexports\n\t} of dependencies) {\n\t\tif (reexports && namedExportsMode) {\n\t\t\tfor (const specifier of reexports) {\n\t\t\t\tif (specifier.reexported !== '*') {\n\t\t\t\t\tconst importName = getReexportedImportName(\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tspecifier.imported,\n\t\t\t\t\t\tdepNamedExportsMode,\n\t\t\t\t\t\tisChunk,\n\t\t\t\t\t\tdefaultVariableName!,\n\t\t\t\t\t\tnamespaceVariableName!,\n\t\t\t\t\t\tinterop,\n\t\t\t\t\t\tid,\n\t\t\t\t\t\texternalLiveBindings\n\t\t\t\t\t);\n\t\t\t\t\tif (exportBlock) exportBlock += n;\n\t\t\t\t\texportBlock +=\n\t\t\t\t\t\tspecifier.imported !== '*' && specifier.needsLiveBinding\n\t\t\t\t\t\t\t? `Object.defineProperty(exports,${_}'${specifier.reexported}',${_}{${n}` +\n\t\t\t\t\t\t\t `${t}enumerable:${_}true,${n}` +\n\t\t\t\t\t\t\t `${t}get:${_}function${_}()${_}{${n}` +\n\t\t\t\t\t\t\t `${t}${t}return ${importName};${n}${t}}${n}});`\n\t\t\t\t\t\t\t: `exports.${specifier.reexported}${_}=${_}${importName};`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (const { exported, local } of exports) {\n\t\tconst lhs = `exports${RESERVED_NAMES[exported] ? `['${exported}']` : `.${exported}`}`;\n\t\tconst rhs = local;\n\t\tif (lhs !== rhs) {\n\t\t\tif (exportBlock) exportBlock += n;\n\t\t\texportBlock += `${lhs}${_}=${_}${rhs};`;\n\t\t}\n\t}\n\n\tfor (const { name, reexports } of dependencies) {\n\t\tif (reexports && namedExportsMode) {\n\t\t\tfor (const specifier of reexports) {\n\t\t\t\tif (specifier.reexported === '*') {\n\t\t\t\t\tif (exportBlock) exportBlock += n;\n\t\t\t\t\tif (specifier.needsLiveBinding) {\n\t\t\t\t\t\texportBlock +=\n\t\t\t\t\t\t\t`Object.keys(${name}).forEach(function${_}(k)${_}{${n}` +\n\t\t\t\t\t\t\t`${t}if${_}(k${_}!==${_}'default'${_}&&${_}!exports.hasOwnProperty(k))${_}Object.defineProperty(exports,${_}k,${_}{${n}` +\n\t\t\t\t\t\t\t`${t}${t}enumerable:${_}true,${n}` +\n\t\t\t\t\t\t\t`${t}${t}get:${_}function${_}()${_}{${n}` +\n\t\t\t\t\t\t\t`${t}${t}${t}return ${name}[k];${n}` +\n\t\t\t\t\t\t\t`${t}${t}}${n}${t}});${n}});`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\texportBlock +=\n\t\t\t\t\t\t\t`Object.keys(${name}).forEach(function${_}(k)${_}{${n}` +\n\t\t\t\t\t\t\t`${t}if${_}(k${_}!==${_}'default'${_}&&${_}!exports.hasOwnProperty(k))${_}exports[k]${_}=${_}${name}[k];${n}});`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif (exportBlock) {\n\t\treturn `${n}${n}${exportBlock}`;\n\t}\n\n\treturn '';\n}\n\nfunction getSingleDefaultExport(\n\texports: ChunkExports,\n\tdependencies: ChunkDependencies,\n\tinterop: GetInterop,\n\texternalLiveBindings: boolean\n) {\n\tif (exports.length > 0) {\n\t\treturn exports[0].local;\n\t} else {\n\t\tfor (const {\n\t\t\tdefaultVariableName,\n\t\t\tid,\n\t\t\tisChunk,\n\t\t\tname,\n\t\t\tnamedExportsMode: depNamedExportsMode,\n\t\t\tnamespaceVariableName,\n\t\t\treexports\n\t\t} of dependencies) {\n\t\t\tif (reexports) {\n\t\t\t\treturn getReexportedImportName(\n\t\t\t\t\tname,\n\t\t\t\t\treexports[0].imported,\n\t\t\t\t\tdepNamedExportsMode,\n\t\t\t\t\tisChunk,\n\t\t\t\t\tdefaultVariableName!,\n\t\t\t\t\tnamespaceVariableName!,\n\t\t\t\t\tinterop,\n\t\t\t\t\tid,\n\t\t\t\t\texternalLiveBindings\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction getReexportedImportName(\n\tmoduleVariableName: string,\n\timported: string,\n\tdepNamedExportsMode: boolean,\n\tisChunk: boolean,\n\tdefaultVariableName: string,\n\tnamespaceVariableName: string,\n\tinterop: GetInterop,\n\tmoduleId: string,\n\texternalLiveBindings: boolean\n) {\n\tif (imported === 'default') {\n\t\tif (!isChunk) {\n\t\t\tconst moduleInterop = String(interop(moduleId));\n\t\t\tconst variableName = defaultInteropHelpersByInteropType[moduleInterop]\n\t\t\t\t? defaultVariableName\n\t\t\t\t: moduleVariableName;\n\t\t\treturn isDefaultAProperty(moduleInterop, externalLiveBindings)\n\t\t\t\t? `${variableName}['default']`\n\t\t\t\t: variableName;\n\t\t}\n\t\treturn depNamedExportsMode ? `${moduleVariableName}['default']` : moduleVariableName;\n\t}\n\tif (imported === '*') {\n\t\treturn (\n\t\t\tisChunk\n\t\t\t\t? !depNamedExportsMode\n\t\t\t\t: namespaceInteropHelpersByInteropType[String(interop(moduleId))]\n\t\t)\n\t\t\t? namespaceVariableName\n\t\t\t: moduleVariableName;\n\t}\n\treturn `${moduleVariableName}.${imported}`;\n}\n\nfunction getEsModuleExport(_: string): string {\n\treturn `Object.defineProperty(exports,${_}'__esModule',${_}{${_}value:${_}true${_}});`;\n}\n\nfunction getNamespaceToStringExport(_: string): string {\n\treturn `exports[Symbol.toStringTag]${_}=${_}'Module';`;\n}\n\nexport function getNamespaceMarkers(\n\thasNamedExports: boolean,\n\taddEsModule: boolean,\n\taddNamespaceToStringTag: boolean,\n\t_: string,\n\tn: string\n): string {\n\tlet namespaceMarkers = '';\n\tif (hasNamedExports) {\n\t\tif (addEsModule) {\n\t\t\tnamespaceMarkers += getEsModuleExport(_);\n\t\t}\n\t\tif (addNamespaceToStringTag) {\n\t\t\tif (namespaceMarkers) {\n\t\t\t\tnamespaceMarkers += n;\n\t\t\t}\n\t\t\tnamespaceMarkers += getNamespaceToStringExport(_);\n\t\t}\n\t}\n\treturn namespaceMarkers;\n}\n","import { ModuleDeclarationDependency, ReexportSpecifier } from '../../Chunk';\nimport { GetInterop } from '../../rollup/types';\nimport {\n\tdefaultInteropHelpersByInteropType,\n\tgetDefaultOnlyHelper,\n\tgetHelpersBlock,\n\tnamespaceInteropHelpersByInteropType\n} from '../../utils/interopHelpers';\n\nexport default function getInteropBlock(\n\tdependencies: ModuleDeclarationDependency[],\n\tvarOrConst: string,\n\tinterop: GetInterop,\n\texternalLiveBindings: boolean,\n\tfreeze: boolean,\n\tnamespaceToStringTag: boolean,\n\taccessedGlobals: Set<string>,\n\t_: string,\n\tn: string,\n\ts: string,\n\tt: string\n): string {\n\tconst neededInteropHelpers = new Set<string>();\n\tconst interopStatements: string[] = [];\n\tconst addInteropStatement = (\n\t\thelperVariableName: string,\n\t\thelper: string,\n\t\tdependencyVariableName: string\n\t): void => {\n\t\tneededInteropHelpers.add(helper);\n\t\tinteropStatements.push(\n\t\t\t`${varOrConst} ${helperVariableName}${_}=${_}/*#__PURE__*/${helper}(${dependencyVariableName});`\n\t\t);\n\t};\n\tfor (const {\n\t\tdefaultVariableName,\n\t\timports,\n\t\tid,\n\t\tisChunk,\n\t\tname,\n\t\tnamedExportsMode,\n\t\tnamespaceVariableName,\n\t\treexports\n\t} of dependencies) {\n\t\tif (isChunk) {\n\t\t\tfor (const { imported, reexported } of [\n\t\t\t\t...(imports || []),\n\t\t\t\t...(reexports || [])\n\t\t\t] as ReexportSpecifier[]) {\n\t\t\t\tif (imported === '*' && reexported !== '*') {\n\t\t\t\t\tif (!namedExportsMode) {\n\t\t\t\t\t\taddInteropStatement(namespaceVariableName!, getDefaultOnlyHelper(), name);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconst moduleInterop = String(interop(id));\n\t\t\tlet hasDefault = false;\n\t\t\tlet hasNamespace = false;\n\t\t\tfor (const { imported, reexported } of [\n\t\t\t\t...(imports || []),\n\t\t\t\t...(reexports || [])\n\t\t\t] as ReexportSpecifier[]) {\n\t\t\t\tlet helper: string | undefined | null;\n\t\t\t\tlet variableName: string | undefined;\n\t\t\t\tif (imported === 'default') {\n\t\t\t\t\tif (!hasDefault) {\n\t\t\t\t\t\thasDefault = true;\n\t\t\t\t\t\tif (defaultVariableName !== namespaceVariableName) {\n\t\t\t\t\t\t\tvariableName = defaultVariableName!;\n\t\t\t\t\t\t\thelper = defaultInteropHelpersByInteropType[moduleInterop];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (imported === '*' && reexported !== '*') {\n\t\t\t\t\tif (!hasNamespace) {\n\t\t\t\t\t\thasNamespace = true;\n\t\t\t\t\t\thelper = namespaceInteropHelpersByInteropType[moduleInterop];\n\t\t\t\t\t\tvariableName = namespaceVariableName!;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (helper) {\n\t\t\t\t\taddInteropStatement(variableName!, helper, name);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn `${getHelpersBlock(\n\t\tneededInteropHelpers,\n\t\taccessedGlobals,\n\t\t_,\n\t\tn,\n\t\ts,\n\t\tt,\n\t\texternalLiveBindings,\n\t\tfreeze,\n\t\tnamespaceToStringTag\n\t)}${interopStatements.length > 0 ? `${interopStatements.join(n)}${n}${n}` : ''}`;\n}\n","import removeJsExtension from './removeJsExtension';\n\n// AMD resolution will only respect the AMD baseUrl if the .js extension is omitted.\n// The assumption is that this makes sense for all relative ids:\n// https://requirejs.org/docs/api.html#jsfiles\nexport default function removeExtensionFromRelativeAmdId(id: string): string {\n\treturn id[0] === '.' ? removeJsExtension(id) : id;\n}\n","import { ChunkDependencies } from '../../Chunk';\nimport { RollupWarning } from '../../rollup/types';\nimport { printQuotedStringList } from '../../utils/printStringList';\n\nconst builtins = {\n\tassert: true,\n\tbuffer: true,\n\tconsole: true,\n\tconstants: true,\n\tdomain: true,\n\tevents: true,\n\thttp: true,\n\thttps: true,\n\tos: true,\n\tpath: true,\n\tprocess: true,\n\tpunycode: true,\n\tquerystring: true,\n\tstream: true,\n\tstring_decoder: true,\n\ttimers: true,\n\ttty: true,\n\turl: true,\n\tutil: true,\n\tvm: true,\n\tzlib: true\n};\n\nexport default function warnOnBuiltins(\n\twarn: (warning: RollupWarning) => void,\n\tdependencies: ChunkDependencies\n): void {\n\tconst externalBuiltins = dependencies.map(({ id }) => id).filter(id => id in builtins);\n\n\tif (!externalBuiltins.length) return;\n\n\twarn({\n\t\tcode: 'MISSING_NODE_BUILTINS',\n\t\tmessage: `Creating a browser bundle that depends on Node.js built-in modules (${printQuotedStringList(\n\t\t\texternalBuiltins\n\t\t)}). You might need to include https://github.com/snowpackjs/rollup-plugin-polyfill-node`,\n\t\tmodules: externalBuiltins\n\t});\n}\n","// Generate strings which dereference dotted properties, but use array notation `['prop-deref']`\n// if the property name isn't trivial\nconst shouldUseDot = /^[a-zA-Z$_][a-zA-Z0-9$_]*$/;\n\nexport function property(prop: string): string {\n\treturn shouldUseDot.test(prop) ? `.${prop}` : `['${prop}']`;\n}\n\nexport function keypath(keypath: string): string {\n\treturn keypath.split('.').map(property).join('');\n}\n","import { GlobalsOption } from '../../rollup/types';\nimport { property } from './sanitize';\n\nexport default function setupNamespace(\n\tname: string,\n\troot: string,\n\tglobals: GlobalsOption,\n\tcompact: boolean | undefined\n): string {\n\tconst _ = compact ? '' : ' ';\n\tconst parts = name.split('.');\n\tparts[0] = (typeof globals === 'function' ? globals(parts[0]) : globals[parts[0]]) || parts[0];\n\tparts.pop();\n\n\tlet acc = root;\n\treturn (\n\t\tparts\n\t\t\t.map(\n\t\t\t\tpart => ((acc += property(part)), `${acc}${_}=${_}${acc}${_}||${_}{}${compact ? '' : ';'}`)\n\t\t\t)\n\t\t\t.join(compact ? ',' : '\\n') + (compact && parts.length ? ';' : '\\n')\n\t);\n}\n\nexport function assignToDeepVariable(\n\tdeepName: string,\n\troot: string,\n\tglobals: GlobalsOption,\n\tcompact: boolean | undefined,\n\tassignment: string\n): string {\n\tconst _ = compact ? '' : ' ';\n\tconst parts = deepName.split('.');\n\tparts[0] = (typeof globals === 'function' ? globals(parts[0]) : globals[parts[0]]) || parts[0];\n\tconst last = parts.pop();\n\n\tlet acc = root;\n\tlet deepAssignment = parts\n\t\t.map(part => ((acc += property(part)), `${acc}${_}=${_}${acc}${_}||${_}{}`))\n\t\t.concat(`${acc}${property(last!)}`)\n\t\t.join(`,${_}`)\n\t\t.concat(`${_}=${_}${assignment}`);\n\tif (parts.length > 0) {\n\t\tdeepAssignment = `(${deepAssignment})`;\n\t}\n\treturn deepAssignment;\n}\n","import { ModuleDeclarationDependency } from '../../Chunk';\n\nexport default function trimEmptyImports(\n\tdependencies: ModuleDeclarationDependency[]\n): ModuleDeclarationDependency[] {\n\tlet i = dependencies.length;\n\n\twhile (i--) {\n\t\tconst { imports, reexports } = dependencies[i];\n\t\tif (imports || reexports) {\n\t\t\treturn dependencies.slice(0, i + 1);\n\t\t}\n\t}\n\n\treturn [];\n}\n","import { Bundle, Bundle as MagicStringBundle } from 'magic-string';\nimport { NormalizedOutputOptions } from '../rollup/types';\nimport { error } from '../utils/error';\nimport { isLegal } from '../utils/identifierHelpers';\nimport { getExportBlock, getNamespaceMarkers } from './shared/getExportBlock';\nimport getInteropBlock from './shared/getInteropBlock';\nimport { keypath } from './shared/sanitize';\nimport setupNamespace from './shared/setupNamespace';\nimport trimEmptyImports from './shared/trimEmptyImports';\nimport warnOnBuiltins from './shared/warnOnBuiltins';\nimport { FinaliserOptions } from './index';\n\nconst thisProp = (name: string) => `this${keypath(name)}`;\n\nexport default function iife(\n\tmagicString: MagicStringBundle,\n\t{\n\t\taccessedGlobals,\n\t\tdependencies,\n\t\texports,\n\t\thasExports,\n\t\tindentString: t,\n\t\tintro,\n\t\tnamedExportsMode,\n\t\toutro,\n\t\tvarOrConst,\n\t\twarn\n\t}: FinaliserOptions,\n\t{\n\t\tcompact,\n\t\tesModule,\n\t\textend,\n\t\tfreeze,\n\t\texternalLiveBindings,\n\t\tglobals,\n\t\tinterop,\n\t\tname,\n\t\tnamespaceToStringTag,\n\t\tstrict\n\t}: NormalizedOutputOptions\n): Bundle {\n\tconst _ = compact ? '' : ' ';\n\tconst s = compact ? '' : ';';\n\tconst n = compact ? '' : '\\n';\n\n\tconst isNamespaced = name && name.indexOf('.') !== -1;\n\tconst useVariableAssignment = !extend && !isNamespaced;\n\n\tif (name && useVariableAssignment && !isLegal(name)) {\n\t\treturn error({\n\t\t\tcode: 'ILLEGAL_IDENTIFIER_AS_NAME',\n\t\t\tmessage: `Given name \"${name}\" is not a legal JS identifier. If you need this, you can try \"output.extend: true\".`\n\t\t});\n\t}\n\n\twarnOnBuiltins(warn, dependencies);\n\n\tconst external = trimEmptyImports(dependencies);\n\tconst deps = external.map(dep => dep.globalName || 'null');\n\tconst args = external.map(m => m.name);\n\n\tif (hasExports && !name) {\n\t\twarn({\n\t\t\tcode: 'MISSING_NAME_OPTION_FOR_IIFE_EXPORT',\n\t\t\tmessage: `If you do not supply \"output.name\", you may not be able to access the exports of an IIFE bundle.`\n\t\t});\n\t}\n\n\tif (namedExportsMode && hasExports) {\n\t\tif (extend) {\n\t\t\tdeps.unshift(`${thisProp(name!)}${_}=${_}${thisProp(name!)}${_}||${_}{}`);\n\t\t\targs.unshift('exports');\n\t\t} else {\n\t\t\tdeps.unshift('{}');\n\t\t\targs.unshift('exports');\n\t\t}\n\t}\n\n\tconst useStrict = strict ? `${t}'use strict';${n}` : '';\n\tconst interopBlock = getInteropBlock(\n\t\tdependencies,\n\t\tvarOrConst,\n\t\tinterop,\n\t\texternalLiveBindings,\n\t\tfreeze,\n\t\tnamespaceToStringTag,\n\t\taccessedGlobals,\n\t\t_,\n\t\tn,\n\t\ts,\n\t\tt\n\t);\n\tmagicString.prepend(`${intro}${interopBlock}`);\n\n\tlet wrapperIntro = `(function${_}(${args.join(`,${_}`)})${_}{${n}${useStrict}${n}`;\n\tif (hasExports) {\n\t\tif (name && !(extend && namedExportsMode)) {\n\t\t\twrapperIntro =\n\t\t\t\t(useVariableAssignment ? `${varOrConst} ${name}` : thisProp(name)) +\n\t\t\t\t`${_}=${_}${wrapperIntro}`;\n\t\t}\n\t\tif (isNamespaced) {\n\t\t\twrapperIntro = setupNamespace(name!, 'this', globals, compact) + wrapperIntro;\n\t\t}\n\t}\n\n\tlet wrapperOutro = `${n}${n}}(${deps.join(`,${_}`)}));`;\n\tif (hasExports && !extend && namedExportsMode) {\n\t\twrapperOutro = `${n}${n}${t}return exports;${wrapperOutro}`;\n\t}\n\n\tconst exportBlock = getExportBlock(\n\t\texports,\n\t\tdependencies,\n\t\tnamedExportsMode,\n\t\tinterop,\n\t\tcompact,\n\t\tt,\n\t\texternalLiveBindings\n\t);\n\tlet namespaceMarkers = getNamespaceMarkers(\n\t\tnamedExportsMode && hasExports,\n\t\tesModule,\n\t\tnamespaceToStringTag,\n\t\t_,\n\t\tn\n\t);\n\tif (namespaceMarkers) {\n\t\tnamespaceMarkers = n + n + namespaceMarkers;\n\t}\n\tmagicString.append(`${exportBlock}${namespaceMarkers}${outro}`);\n\treturn magicString.indent(t).prepend(wrapperIntro).append(wrapperOutro);\n}\n","import { Bundle, Bundle as MagicStringBundle } from 'magic-string';\nimport { ChunkExports, ModuleDeclarations } from '../Chunk';\nimport { NormalizedOutputOptions } from '../rollup/types';\nimport { MISSING_EXPORT_SHIM_VARIABLE } from '../utils/variableNames';\nimport { FinaliserOptions } from './index';\n\nfunction getStarExcludes({ dependencies, exports }: ModuleDeclarations): Set<string> {\n\tconst starExcludes = new Set(exports.map(expt => expt.exported));\n\tif (!starExcludes.has('default')) starExcludes.add('default');\n\t// also include reexport names\n\tfor (const { reexports } of dependencies) {\n\t\tif (reexports) {\n\t\t\tfor (const reexport of reexports) {\n\t\t\t\tif (reexport.imported !== '*' && !starExcludes.has(reexport.reexported))\n\t\t\t\t\tstarExcludes.add(reexport.reexported);\n\t\t\t}\n\t\t}\n\t}\n\treturn starExcludes;\n}\n\nconst getStarExcludesBlock = (\n\tstarExcludes: Set<string> | undefined,\n\tvarOrConst: string,\n\t_: string,\n\tt: string,\n\tn: string\n): string =>\n\tstarExcludes\n\t\t? `${n}${t}${varOrConst} _starExcludes${_}=${_}{${_}${[...starExcludes]\n\t\t\t\t.map(prop => `${prop}:${_}1`)\n\t\t\t\t.join(`,${_}`)}${_}};`\n\t\t: '';\n\nconst getImportBindingsBlock = (\n\timportBindings: string[],\n\t_: string,\n\tt: string,\n\tn: string\n): string => (importBindings.length ? `${n}${t}var ${importBindings.join(`,${_}`)};` : '');\n\nfunction getExportsBlock(\n\texports: { name: string; value: string }[],\n\t_: string,\n\tt: string,\n\tn: string\n): string {\n\tif (exports.length === 0) {\n\t\treturn '';\n\t}\n\tif (exports.length === 1) {\n\t\treturn `${t}${t}${t}exports('${exports[0].name}',${_}${exports[0].value});${n}${n}`;\n\t}\n\treturn (\n\t\t`${t}${t}${t}exports({${n}` +\n\t\texports.map(({ name, value }) => `${t}${t}${t}${t}${name}:${_}${value}`).join(`,${n}`) +\n\t\t`${n}${t}${t}${t}});${n}${n}`\n\t);\n}\n\nconst getHoistedExportsBlock = (exports: ChunkExports, _: string, t: string, n: string): string =>\n\tgetExportsBlock(\n\t\texports\n\t\t\t.filter(expt => expt.hoisted || expt.uninitialized)\n\t\t\t.map(expt => ({ name: expt.exported, value: expt.uninitialized ? 'void 0' : expt.local })),\n\t\t_,\n\t\tt,\n\t\tn\n\t);\n\nconst getMissingExportsBlock = (exports: ChunkExports, _: string, t: string, n: string): string =>\n\tgetExportsBlock(\n\t\texports\n\t\t\t.filter(expt => expt.local === MISSING_EXPORT_SHIM_VARIABLE)\n\t\t\t.map(expt => ({ name: expt.exported, value: MISSING_EXPORT_SHIM_VARIABLE })),\n\t\t_,\n\t\tt,\n\t\tn\n\t);\n\nconst getSyntheticExportsBlock = (exports: ChunkExports, _: string, t: string, n: string): string =>\n\tgetExportsBlock(\n\t\texports\n\t\t\t.filter(expt => expt.expression)\n\t\t\t.map(expt => ({ name: expt.exported, value: expt.local })),\n\t\t_,\n\t\tt,\n\t\tn\n\t);\n\nexport default function system(\n\tmagicString: MagicStringBundle,\n\t{\n\t\taccessedGlobals,\n\t\tdependencies,\n\t\texports,\n\t\thasExports,\n\t\tindentString: t,\n\t\tintro,\n\t\toutro,\n\t\tusesTopLevelAwait,\n\t\tvarOrConst\n\t}: FinaliserOptions,\n\toptions: NormalizedOutputOptions\n): Bundle {\n\tconst n = options.compact ? '' : '\\n';\n\tconst _ = options.compact ? '' : ' ';\n\n\tconst dependencyIds = dependencies.map(m => `'${m.id}'`);\n\n\tconst importBindings: string[] = [];\n\tlet starExcludes: Set<string> | undefined;\n\tconst setters: string[] = [];\n\n\tfor (const { imports, reexports } of dependencies) {\n\t\tconst setter: string[] = [];\n\t\tif (imports) {\n\t\t\tfor (const specifier of imports) {\n\t\t\t\timportBindings.push(specifier.local);\n\t\t\t\tif (specifier.imported === '*') {\n\t\t\t\t\tsetter.push(`${specifier.local}${_}=${_}module;`);\n\t\t\t\t} else {\n\t\t\t\t\tsetter.push(`${specifier.local}${_}=${_}module.${specifier.imported};`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (reexports) {\n\t\t\tlet createdSetter = false;\n\t\t\t// bulk-reexport form\n\t\t\tif (\n\t\t\t\treexports.length > 1 ||\n\t\t\t\t(reexports.length === 1 &&\n\t\t\t\t\t(reexports[0].reexported === '*' || reexports[0].imported === '*'))\n\t\t\t) {\n\t\t\t\t// star reexports\n\t\t\t\tfor (const specifier of reexports) {\n\t\t\t\t\tif (specifier.reexported !== '*') continue;\n\t\t\t\t\t// need own exports list for deduping in star export case\n\t\t\t\t\tif (!starExcludes) {\n\t\t\t\t\t\tstarExcludes = getStarExcludes({ dependencies, exports });\n\t\t\t\t\t}\n\t\t\t\t\tif (!createdSetter) {\n\t\t\t\t\t\tsetter.push(`${varOrConst} _setter${_}=${_}{};`);\n\t\t\t\t\t\tcreatedSetter = true;\n\t\t\t\t\t}\n\t\t\t\t\tsetter.push(`for${_}(var _$p${_}in${_}module)${_}{`);\n\t\t\t\t\tsetter.push(`${t}if${_}(!_starExcludes[_$p])${_}_setter[_$p]${_}=${_}module[_$p];`);\n\t\t\t\t\tsetter.push('}');\n\t\t\t\t}\n\t\t\t\t// star import reexport\n\t\t\t\tfor (const specifier of reexports) {\n\t\t\t\t\tif (specifier.imported !== '*' || specifier.reexported === '*') continue;\n\t\t\t\t\tsetter.push(`exports('${specifier.reexported}',${_}module);`);\n\t\t\t\t}\n\t\t\t\t// reexports\n\t\t\t\tfor (const specifier of reexports) {\n\t\t\t\t\tif (specifier.reexported === '*' || specifier.imported === '*') continue;\n\t\t\t\t\tif (!createdSetter) {\n\t\t\t\t\t\tsetter.push(`${varOrConst} _setter${_}=${_}{};`);\n\t\t\t\t\t\tcreatedSetter = true;\n\t\t\t\t\t}\n\t\t\t\t\tsetter.push(`_setter.${specifier.reexported}${_}=${_}module.${specifier.imported};`);\n\t\t\t\t}\n\t\t\t\tif (createdSetter) {\n\t\t\t\t\tsetter.push('exports(_setter);');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// single reexport\n\t\t\t\tfor (const specifier of reexports) {\n\t\t\t\t\tsetter.push(`exports('${specifier.reexported}',${_}module.${specifier.imported});`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tsetters.push(setter.join(`${n}${t}${t}${t}`));\n\t}\n\n\tconst registeredName = options.name ? `'${options.name}',${_}` : '';\n\tconst wrapperParams = accessedGlobals.has('module')\n\t\t? `exports,${_}module`\n\t\t: hasExports\n\t\t? 'exports'\n\t\t: '';\n\n\tlet wrapperStart =\n\t\t`System.register(${registeredName}[` +\n\t\tdependencyIds.join(`,${_}`) +\n\t\t`],${_}function${_}(${wrapperParams})${_}{${n}${t}${options.strict ? \"'use strict';\" : ''}` +\n\t\tgetStarExcludesBlock(starExcludes, varOrConst, _, t, n) +\n\t\tgetImportBindingsBlock(importBindings, _, t, n) +\n\t\t`${n}${t}return${_}{${\n\t\t\tsetters.length\n\t\t\t\t? `${n}${t}${t}setters:${_}[${setters\n\t\t\t\t\t\t.map(s =>\n\t\t\t\t\t\t\ts\n\t\t\t\t\t\t\t\t? `function${_}(module)${_}{${n}${t}${t}${t}${s}${n}${t}${t}}`\n\t\t\t\t\t\t\t\t: options.systemNullSetters\n\t\t\t\t\t\t\t\t? `null`\n\t\t\t\t\t\t\t\t: `function${_}()${_}{}`\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join(`,${_}`)}],`\n\t\t\t\t: ''\n\t\t}${n}`;\n\twrapperStart +=\n\t\t`${t}${t}execute:${_}${usesTopLevelAwait ? `async${_}` : ''}function${_}()${_}{${n}${n}` +\n\t\tgetHoistedExportsBlock(exports, _, t, n);\n\n\tconst wrapperEnd =\n\t\t`${n}${n}` +\n\t\tgetSyntheticExportsBlock(exports, _, t, n) +\n\t\tgetMissingExportsBlock(exports, _, t, n) +\n\t\t`${t}${t}}${n}${t}}${options.compact ? '' : ';'}${n}});`;\n\n\tif (intro) magicString.prepend(intro);\n\tif (outro) magicString.append(outro);\n\treturn magicString.indent(`${t}${t}${t}`).append(wrapperEnd).prepend(wrapperStart);\n}\n","import { Bundle, Bundle as MagicStringBundle } from 'magic-string';\nimport { NormalizedOutputOptions } from '../rollup/types';\nimport { error } from '../utils/error';\nimport getCompleteAmdId from './shared/getCompleteAmdId';\nimport { getExportBlock, getNamespaceMarkers } from './shared/getExportBlock';\nimport getInteropBlock from './shared/getInteropBlock';\nimport removeExtensionFromRelativeAmdId from './shared/removeExtensionFromRelativeAmdId';\nimport { keypath, property } from './shared/sanitize';\nimport { assignToDeepVariable } from './shared/setupNamespace';\nimport trimEmptyImports from './shared/trimEmptyImports';\nimport warnOnBuiltins from './shared/warnOnBuiltins';\nimport { FinaliserOptions } from './index';\n\nfunction globalProp(name: string, globalVar: string) {\n\tif (!name) return 'null';\n\treturn `${globalVar}${keypath(name)}`;\n}\n\nfunction safeAccess(name: string, globalVar: string, _: string) {\n\tconst parts = name.split('.');\n\n\tlet acc = globalVar;\n\treturn parts.map(part => (acc += property(part))).join(`${_}&&${_}`);\n}\n\nexport default function umd(\n\tmagicString: MagicStringBundle,\n\t{\n\t\taccessedGlobals,\n\t\tdependencies,\n\t\texports,\n\t\thasExports,\n\t\tid,\n\t\tindentString: t,\n\t\tintro,\n\t\tnamedExportsMode,\n\t\toutro,\n\t\tvarOrConst,\n\t\twarn\n\t}: FinaliserOptions,\n\t{\n\t\tamd,\n\t\tcompact,\n\t\tesModule,\n\t\textend,\n\t\texternalLiveBindings,\n\t\tfreeze,\n\t\tinterop,\n\t\tname,\n\t\tnamespaceToStringTag,\n\t\tglobals,\n\t\tnoConflict,\n\t\tstrict\n\t}: NormalizedOutputOptions\n): Bundle {\n\tconst _ = compact ? '' : ' ';\n\tconst n = compact ? '' : '\\n';\n\tconst s = compact ? '' : ';';\n\tconst factoryVar = compact ? 'f' : 'factory';\n\tconst globalVar = compact ? 'g' : 'global';\n\n\tif (hasExports && !name) {\n\t\treturn error({\n\t\t\tcode: 'MISSING_NAME_OPTION_FOR_IIFE_EXPORT',\n\t\t\tmessage:\n\t\t\t\t'You must supply \"output.name\" for UMD bundles that have exports so that the exports are accessible in environments without a module loader.'\n\t\t});\n\t}\n\n\twarnOnBuiltins(warn, dependencies);\n\n\tconst amdDeps = dependencies.map(m => `'${removeExtensionFromRelativeAmdId(m.id)}'`);\n\tconst cjsDeps = dependencies.map(m => `require('${m.id}')`);\n\n\tconst trimmedImports = trimEmptyImports(dependencies);\n\tconst globalDeps = trimmedImports.map(module => globalProp(module.globalName, globalVar));\n\tconst factoryArgs = trimmedImports.map(m => m.name);\n\n\tif (namedExportsMode && (hasExports || noConflict)) {\n\t\tamdDeps.unshift(`'exports'`);\n\t\tcjsDeps.unshift(`exports`);\n\t\tglobalDeps.unshift(\n\t\t\tassignToDeepVariable(\n\t\t\t\tname!,\n\t\t\t\tglobalVar,\n\t\t\t\tglobals,\n\t\t\t\tcompact,\n\t\t\t\t`${extend ? `${globalProp(name!, globalVar)}${_}||${_}` : ''}{}`\n\t\t\t)\n\t\t);\n\n\t\tfactoryArgs.unshift('exports');\n\t}\n\n\tconst completeAmdId = getCompleteAmdId(amd, id);\n\tconst amdParams =\n\t\t(completeAmdId ? `'${completeAmdId}',${_}` : ``) +\n\t\t(amdDeps.length ? `[${amdDeps.join(`,${_}`)}],${_}` : ``);\n\n\tconst define = amd.define;\n\tconst cjsExport = !namedExportsMode && hasExports ? `module.exports${_}=${_}` : ``;\n\tconst useStrict = strict ? `${_}'use strict';${n}` : ``;\n\n\tlet iifeExport;\n\n\tif (noConflict) {\n\t\tconst noConflictExportsVar = compact ? 'e' : 'exports';\n\t\tlet factory;\n\n\t\tif (!namedExportsMode && hasExports) {\n\t\t\tfactory = `var ${noConflictExportsVar}${_}=${_}${assignToDeepVariable(\n\t\t\t\tname!,\n\t\t\t\tglobalVar,\n\t\t\t\tglobals,\n\t\t\t\tcompact,\n\t\t\t\t`${factoryVar}(${globalDeps.join(`,${_}`)})`\n\t\t\t)};`;\n\t\t} else {\n\t\t\tconst module = globalDeps.shift();\n\t\t\tfactory =\n\t\t\t\t`var ${noConflictExportsVar}${_}=${_}${module};${n}` +\n\t\t\t\t`${t}${t}${factoryVar}(${[noConflictExportsVar].concat(globalDeps).join(`,${_}`)});`;\n\t\t}\n\t\tiifeExport =\n\t\t\t`(function${_}()${_}{${n}` +\n\t\t\t`${t}${t}var current${_}=${_}${safeAccess(name!, globalVar, _)};${n}` +\n\t\t\t`${t}${t}${factory}${n}` +\n\t\t\t`${t}${t}${noConflictExportsVar}.noConflict${_}=${_}function${_}()${_}{${_}` +\n\t\t\t`${globalProp(name!, globalVar)}${_}=${_}current;${_}return ${noConflictExportsVar}${\n\t\t\t\tcompact ? '' : '; '\n\t\t\t}};${n}` +\n\t\t\t`${t}}())`;\n\t} else {\n\t\tiifeExport = `${factoryVar}(${globalDeps.join(`,${_}`)})`;\n\t\tif (!namedExportsMode && hasExports) {\n\t\t\tiifeExport = assignToDeepVariable(name!, globalVar, globals, compact, iifeExport);\n\t\t}\n\t}\n\n\tconst iifeNeedsGlobal = hasExports || (noConflict && namedExportsMode) || globalDeps.length > 0;\n\tconst globalParam = iifeNeedsGlobal ? `${globalVar},${_}` : '';\n\tconst globalArg = iifeNeedsGlobal ? `this,${_}` : '';\n\tconst iifeStart = iifeNeedsGlobal\n\t\t? `(${globalVar}${_}=${_}typeof globalThis${_}!==${_}'undefined'${_}?${_}globalThis${_}:${_}${globalVar}${_}||${_}self,${_}`\n\t\t: '';\n\tconst iifeEnd = iifeNeedsGlobal ? ')' : '';\n\tconst cjsIntro = iifeNeedsGlobal\n\t\t? `${t}typeof exports${_}===${_}'object'${_}&&${_}typeof module${_}!==${_}'undefined'${_}?` +\n\t\t `${_}${cjsExport}${factoryVar}(${cjsDeps.join(`,${_}`)})${_}:${n}`\n\t\t: '';\n\n\t// factory function should be wrapped by parentheses to avoid lazy parsing\n\tconst wrapperIntro =\n\t\t`(function${_}(${globalParam}${factoryVar})${_}{${n}` +\n\t\tcjsIntro +\n\t\t`${t}typeof ${define}${_}===${_}'function'${_}&&${_}${define}.amd${_}?${_}${define}(${amdParams}${factoryVar})${_}:${n}` +\n\t\t`${t}${iifeStart}${iifeExport}${iifeEnd};${n}` +\n\t\t`}(${globalArg}(function${_}(${factoryArgs.join(', ')})${_}{${useStrict}${n}`;\n\n\tconst wrapperOutro = n + n + '})));';\n\n\tmagicString.prepend(\n\t\t`${intro}${getInteropBlock(\n\t\t\tdependencies,\n\t\t\tvarOrConst,\n\t\t\tinterop,\n\t\t\texternalLiveBindings,\n\t\t\tfreeze,\n\t\t\tnamespaceToStringTag,\n\t\t\taccessedGlobals,\n\t\t\t_,\n\t\t\tn,\n\t\t\ts,\n\t\t\tt\n\t\t)}`\n\t);\n\n\tconst exportBlock = getExportBlock(\n\t\texports,\n\t\tdependencies,\n\t\tnamedExportsMode,\n\t\tinterop,\n\t\tcompact,\n\t\tt,\n\t\texternalLiveBindings\n\t);\n\tlet namespaceMarkers = getNamespaceMarkers(\n\t\tnamedExportsMode && hasExports,\n\t\tesModule,\n\t\tnamespaceToStringTag,\n\t\t_,\n\t\tn\n\t);\n\tif (namespaceMarkers) {\n\t\tnamespaceMarkers = n + n + namespaceMarkers;\n\t}\n\tmagicString.append(`${exportBlock}${namespaceMarkers}${outro}`);\n\treturn magicString.trim().indent(t).append(wrapperOutro).prepend(wrapperIntro);\n}\n","import { Bundle as MagicStringBundle } from 'magic-string';\nimport { ChunkDependencies, ChunkExports } from '../Chunk';\nimport { NormalizedOutputOptions, RollupWarning } from '../rollup/types';\nimport amd from './amd';\nimport cjs from './cjs';\nimport es from './es';\nimport iife from './iife';\nimport system from './system';\nimport umd from './umd';\n\nexport interface FinaliserOptions {\n\taccessedGlobals: Set<string>;\n\tdependencies: ChunkDependencies;\n\texports: ChunkExports;\n\thasExports: boolean;\n\tid: string;\n\tindentString: string;\n\tintro: string;\n\tisEntryFacade: boolean;\n\tisModuleFacade: boolean;\n\tnamedExportsMode: boolean;\n\toutro: string;\n\tusesTopLevelAwait: boolean;\n\tvarOrConst: 'var' | 'const';\n\twarn(warning: RollupWarning): void;\n}\n\nexport type Finaliser = (\n\tmagicString: MagicStringBundle,\n\tfinaliserOptions: FinaliserOptions,\n\toptions: NormalizedOutputOptions\n) => MagicStringBundle;\n\nexport default { amd, cjs, es, iife, system, umd } as {\n\t[format: string]: Finaliser;\n};\n","import { Bundle, Bundle as MagicStringBundle } from 'magic-string';\nimport { NormalizedOutputOptions } from '../rollup/types';\nimport getCompleteAmdId from './shared/getCompleteAmdId';\nimport { getExportBlock, getNamespaceMarkers } from './shared/getExportBlock';\nimport getInteropBlock from './shared/getInteropBlock';\nimport removeExtensionFromRelativeAmdId from './shared/removeExtensionFromRelativeAmdId';\nimport warnOnBuiltins from './shared/warnOnBuiltins';\nimport { FinaliserOptions } from './index';\n\nexport default function amd(\n\tmagicString: MagicStringBundle,\n\t{\n\t\taccessedGlobals,\n\t\tdependencies,\n\t\texports,\n\t\thasExports,\n\t\tid,\n\t\tindentString: t,\n\t\tintro,\n\t\tisEntryFacade,\n\t\tisModuleFacade,\n\t\tnamedExportsMode,\n\t\toutro,\n\t\tvarOrConst,\n\t\twarn\n\t}: FinaliserOptions,\n\t{\n\t\tamd,\n\t\tcompact,\n\t\tesModule,\n\t\texternalLiveBindings,\n\t\tfreeze,\n\t\tinterop,\n\t\tnamespaceToStringTag,\n\t\tstrict\n\t}: NormalizedOutputOptions\n): Bundle {\n\twarnOnBuiltins(warn, dependencies);\n\tconst deps = dependencies.map(m => `'${removeExtensionFromRelativeAmdId(m.id)}'`);\n\tconst args = dependencies.map(m => m.name);\n\tconst n = compact ? '' : '\\n';\n\tconst s = compact ? '' : ';';\n\tconst _ = compact ? '' : ' ';\n\n\tif (namedExportsMode && hasExports) {\n\t\targs.unshift(`exports`);\n\t\tdeps.unshift(`'exports'`);\n\t}\n\n\tif (accessedGlobals.has('require')) {\n\t\targs.unshift('require');\n\t\tdeps.unshift(`'require'`);\n\t}\n\n\tif (accessedGlobals.has('module')) {\n\t\targs.unshift('module');\n\t\tdeps.unshift(`'module'`);\n\t}\n\n\tconst completeAmdId = getCompleteAmdId(amd, id);\n\tconst params =\n\t\t(completeAmdId ? `'${completeAmdId}',${_}` : ``) +\n\t\t(deps.length ? `[${deps.join(`,${_}`)}],${_}` : ``);\n\tconst useStrict = strict ? `${_}'use strict';` : '';\n\n\tmagicString.prepend(\n\t\t`${intro}${getInteropBlock(\n\t\t\tdependencies,\n\t\t\tvarOrConst,\n\t\t\tinterop,\n\t\t\texternalLiveBindings,\n\t\t\tfreeze,\n\t\t\tnamespaceToStringTag,\n\t\t\taccessedGlobals,\n\t\t\t_,\n\t\t\tn,\n\t\t\ts,\n\t\t\tt\n\t\t)}`\n\t);\n\n\tconst exportBlock = getExportBlock(\n\t\texports,\n\t\tdependencies,\n\t\tnamedExportsMode,\n\t\tinterop,\n\t\tcompact,\n\t\tt,\n\t\texternalLiveBindings\n\t);\n\tlet namespaceMarkers = getNamespaceMarkers(\n\t\tnamedExportsMode && hasExports,\n\t\tisEntryFacade && esModule,\n\t\tisModuleFacade && namespaceToStringTag,\n\t\t_,\n\t\tn\n\t);\n\tif (namespaceMarkers) {\n\t\tnamespaceMarkers = n + n + namespaceMarkers;\n\t}\n\tmagicString.append(`${exportBlock}${namespaceMarkers}${outro}`);\n\treturn magicString\n\t\t.indent(t)\n\t\t.prepend(`${amd.define}(${params}function${_}(${args.join(`,${_}`)})${_}{${useStrict}${n}${n}`)\n\t\t.append(`${n}${n}});`);\n}\n","import { Bundle, Bundle as MagicStringBundle } from 'magic-string';\nimport { ChunkDependencies } from '../Chunk';\nimport { NormalizedOutputOptions } from '../rollup/types';\nimport { getExportBlock, getNamespaceMarkers } from './shared/getExportBlock';\nimport getInteropBlock from './shared/getInteropBlock';\nimport { FinaliserOptions } from './index';\n\nexport default function cjs(\n\tmagicString: MagicStringBundle,\n\t{\n\t\taccessedGlobals,\n\t\tdependencies,\n\t\texports,\n\t\thasExports,\n\t\tindentString: t,\n\t\tintro,\n\t\tisEntryFacade,\n\t\tisModuleFacade,\n\t\tnamedExportsMode,\n\t\toutro,\n\t\tvarOrConst\n\t}: FinaliserOptions,\n\t{\n\t\tcompact,\n\t\tesModule,\n\t\texternalLiveBindings,\n\t\tfreeze,\n\t\tinterop,\n\t\tnamespaceToStringTag,\n\t\tstrict\n\t}: NormalizedOutputOptions\n): Bundle {\n\tconst n = compact ? '' : '\\n';\n\tconst s = compact ? '' : ';';\n\tconst _ = compact ? '' : ' ';\n\n\tconst useStrict = strict ? `'use strict';${n}${n}` : '';\n\tlet namespaceMarkers = getNamespaceMarkers(\n\t\tnamedExportsMode && hasExports,\n\t\tisEntryFacade && esModule,\n\t\tisModuleFacade && namespaceToStringTag,\n\t\t_,\n\t\tn\n\t);\n\tif (namespaceMarkers) {\n\t\tnamespaceMarkers += n + n;\n\t}\n\tconst importBlock = getImportBlock(dependencies, compact, varOrConst, n, _);\n\tconst interopBlock = getInteropBlock(\n\t\tdependencies,\n\t\tvarOrConst,\n\t\tinterop,\n\t\texternalLiveBindings,\n\t\tfreeze,\n\t\tnamespaceToStringTag,\n\t\taccessedGlobals,\n\t\t_,\n\t\tn,\n\t\ts,\n\t\tt\n\t);\n\n\tmagicString.prepend(`${useStrict}${intro}${namespaceMarkers}${importBlock}${interopBlock}`);\n\n\tconst exportBlock = getExportBlock(\n\t\texports,\n\t\tdependencies,\n\t\tnamedExportsMode,\n\t\tinterop,\n\t\tcompact,\n\t\tt,\n\t\texternalLiveBindings,\n\t\t`module.exports${_}=${_}`\n\t);\n\n\treturn magicString.append(`${exportBlock}${outro}`);\n}\n\nfunction getImportBlock(\n\tdependencies: ChunkDependencies,\n\tcompact: boolean,\n\tvarOrConst: string,\n\tn: string,\n\t_: string\n): string {\n\tlet importBlock = '';\n\tlet definingVariable = false;\n\tfor (const { id, name, reexports, imports } of dependencies) {\n\t\tif (!reexports && !imports) {\n\t\t\tif (importBlock) {\n\t\t\t\timportBlock += !compact || definingVariable ? `;${n}` : ',';\n\t\t\t}\n\t\t\tdefiningVariable = false;\n\t\t\timportBlock += `require('${id}')`;\n\t\t} else {\n\t\t\timportBlock +=\n\t\t\t\tcompact && definingVariable ? ',' : `${importBlock ? `;${n}` : ''}${varOrConst} `;\n\t\t\tdefiningVariable = true;\n\t\t\timportBlock += `${name}${_}=${_}require('${id}')`;\n\t\t}\n\t}\n\tif (importBlock) {\n\t\treturn `${importBlock};${n}${n}`;\n\t}\n\treturn '';\n}\n","import { Bundle, Bundle as MagicStringBundle } from 'magic-string';\nimport { ChunkDependencies, ChunkExports, ImportSpecifier, ReexportSpecifier } from '../Chunk';\nimport { NormalizedOutputOptions } from '../rollup/types';\nimport { FinaliserOptions } from './index';\n\nexport default function es(\n\tmagicString: MagicStringBundle,\n\t{ intro, outro, dependencies, exports, varOrConst }: FinaliserOptions,\n\t{ compact }: NormalizedOutputOptions\n): Bundle {\n\tconst _ = compact ? '' : ' ';\n\tconst n = compact ? '' : '\\n';\n\n\tconst importBlock = getImportBlock(dependencies, _);\n\tif (importBlock.length > 0) intro += importBlock.join(n) + n + n;\n\tif (intro) magicString.prepend(intro);\n\n\tconst exportBlock = getExportBlock(exports, _, varOrConst);\n\tif (exportBlock.length) magicString.append(n + n + exportBlock.join(n).trim());\n\tif (outro) magicString.append(outro);\n\n\treturn magicString.trim();\n}\n\nfunction getImportBlock(dependencies: ChunkDependencies, _: string): string[] {\n\tconst importBlock: string[] = [];\n\tfor (const { id, reexports, imports, name } of dependencies) {\n\t\tif (!reexports && !imports) {\n\t\t\timportBlock.push(`import${_}'${id}';`);\n\t\t\tcontinue;\n\t\t}\n\t\tif (imports) {\n\t\t\tlet defaultImport: ImportSpecifier | null = null;\n\t\t\tlet starImport: ImportSpecifier | null = null;\n\t\t\tconst importedNames: ImportSpecifier[] = [];\n\t\t\tfor (const specifier of imports) {\n\t\t\t\tif (specifier.imported === 'default') {\n\t\t\t\t\tdefaultImport = specifier;\n\t\t\t\t} else if (specifier.imported === '*') {\n\t\t\t\t\tstarImport = specifier;\n\t\t\t\t} else {\n\t\t\t\t\timportedNames.push(specifier);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (starImport) {\n\t\t\t\timportBlock.push(`import${_}*${_}as ${starImport.local} from${_}'${id}';`);\n\t\t\t}\n\t\t\tif (defaultImport && importedNames.length === 0) {\n\t\t\t\timportBlock.push(`import ${defaultImport.local} from${_}'${id}';`);\n\t\t\t} else if (importedNames.length > 0) {\n\t\t\t\timportBlock.push(\n\t\t\t\t\t`import ${defaultImport ? `${defaultImport.local},${_}` : ''}{${_}${importedNames\n\t\t\t\t\t\t.map(specifier => {\n\t\t\t\t\t\t\tif (specifier.imported === specifier.local) {\n\t\t\t\t\t\t\t\treturn specifier.imported;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn `${specifier.imported} as ${specifier.local}`;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.join(`,${_}`)}${_}}${_}from${_}'${id}';`\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (reexports) {\n\t\t\tlet starExport: ReexportSpecifier | null = null;\n\t\t\tconst namespaceReexports: ReexportSpecifier[] = [];\n\t\t\tconst namedReexports: ReexportSpecifier[] = [];\n\t\t\tfor (const specifier of reexports) {\n\t\t\t\tif (specifier.reexported === '*') {\n\t\t\t\t\tstarExport = specifier;\n\t\t\t\t} else if (specifier.imported === '*') {\n\t\t\t\t\tnamespaceReexports.push(specifier);\n\t\t\t\t} else {\n\t\t\t\t\tnamedReexports.push(specifier);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (starExport) {\n\t\t\t\timportBlock.push(`export${_}*${_}from${_}'${id}';`);\n\t\t\t}\n\t\t\tif (namespaceReexports.length > 0) {\n\t\t\t\tif (\n\t\t\t\t\t!imports ||\n\t\t\t\t\t!imports.some(specifier => specifier.imported === '*' && specifier.local === name)\n\t\t\t\t) {\n\t\t\t\t\timportBlock.push(`import${_}*${_}as ${name} from${_}'${id}';`);\n\t\t\t\t}\n\t\t\t\tfor (const specifier of namespaceReexports) {\n\t\t\t\t\timportBlock.push(\n\t\t\t\t\t\t`export${_}{${_}${\n\t\t\t\t\t\t\tname === specifier.reexported ? name : `${name} as ${specifier.reexported}`\n\t\t\t\t\t\t} };`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (namedReexports.length > 0) {\n\t\t\t\timportBlock.push(\n\t\t\t\t\t`export${_}{${_}${namedReexports\n\t\t\t\t\t\t.map(specifier => {\n\t\t\t\t\t\t\tif (specifier.imported === specifier.reexported) {\n\t\t\t\t\t\t\t\treturn specifier.imported;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn `${specifier.imported} as ${specifier.reexported}`;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.join(`,${_}`)}${_}}${_}from${_}'${id}';`\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\treturn importBlock;\n}\n\nfunction getExportBlock(exports: ChunkExports, _: string, varOrConst: string): string[] {\n\tconst exportBlock: string[] = [];\n\tconst exportDeclaration: string[] = [];\n\tfor (const specifier of exports) {\n\t\tif (specifier.expression) {\n\t\t\texportBlock.push(`${varOrConst} ${specifier.local}${_}=${_}${specifier.expression};`);\n\t\t}\n\t\texportDeclaration.push(\n\t\t\tspecifier.exported === specifier.local\n\t\t\t\t? specifier.local\n\t\t\t\t: `${specifier.local} as ${specifier.exported}`\n\t\t);\n\t}\n\tif (exportDeclaration.length) {\n\t\texportBlock.push(`export${_}{${_}${exportDeclaration.join(`,${_}`)}${_}};`);\n\t}\n\treturn exportBlock;\n}\n","import { DecodedSourceMap, SourceMap } from 'magic-string';\nimport Module from '../Module';\nimport {\n\tDecodedSourceMapOrMissing,\n\tExistingDecodedSourceMap,\n\tSourceMapSegment,\n\tWarningHandler\n} from '../rollup/types';\nimport { error } from './error';\nimport { basename, dirname, relative, resolve } from './path';\n\nclass Source {\n\tcontent: string;\n\tfilename: string;\n\tisOriginal: boolean;\n\n\tconstructor(filename: string, content: string) {\n\t\tthis.isOriginal = true;\n\t\tthis.filename = filename;\n\t\tthis.content = content;\n\t}\n\n\ttraceSegment(line: number, column: number, name: string): SourceMapSegmentObject {\n\t\treturn { column, line, name, source: this };\n\t}\n}\n\ninterface SourceMapSegmentObject {\n\tcolumn: number;\n\tline: number;\n\tname: string;\n\tsource: Source;\n}\n\nclass Link {\n\tmappings: SourceMapSegment[][];\n\tnames: string[];\n\tsources: (Source | Link)[];\n\n\tconstructor(\n\t\tmap: { mappings: SourceMapSegment[][]; names: string[] },\n\t\tsources: (Source | Link)[]\n\t) {\n\t\tthis.sources = sources;\n\t\tthis.names = map.names;\n\t\tthis.mappings = map.mappings;\n\t}\n\n\ttraceMappings() {\n\t\tconst sources: string[] = [];\n\t\tconst sourcesContent: string[] = [];\n\t\tconst names: string[] = [];\n\t\tconst nameIndexMap: Map<string, number> = new Map();\n\n\t\tconst mappings = [];\n\n\t\tfor (const line of this.mappings) {\n\t\t\tconst tracedLine: SourceMapSegment[] = [];\n\n\t\t\tfor (const segment of line) {\n\t\t\t\tif (segment.length == 1) continue;\n\t\t\t\tconst source = this.sources[segment[1]];\n\t\t\t\tif (!source) continue;\n\n\t\t\t\tconst traced = source.traceSegment(\n\t\t\t\t\tsegment[2],\n\t\t\t\t\tsegment[3],\n\t\t\t\t\tsegment.length === 5 ? this.names[segment[4]] : ''\n\t\t\t\t);\n\n\t\t\t\tif (traced) {\n\t\t\t\t\t// newer sources are more likely to be used, so search backwards.\n\t\t\t\t\tlet sourceIndex = sources.lastIndexOf(traced.source.filename);\n\t\t\t\t\tif (sourceIndex === -1) {\n\t\t\t\t\t\tsourceIndex = sources.length;\n\t\t\t\t\t\tsources.push(traced.source.filename);\n\t\t\t\t\t\tsourcesContent[sourceIndex] = traced.source.content;\n\t\t\t\t\t} else if (sourcesContent[sourceIndex] == null) {\n\t\t\t\t\t\tsourcesContent[sourceIndex] = traced.source.content;\n\t\t\t\t\t} else if (\n\t\t\t\t\t\ttraced.source.content != null &&\n\t\t\t\t\t\tsourcesContent[sourceIndex] !== traced.source.content\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn error({\n\t\t\t\t\t\t\tmessage: `Multiple conflicting contents for sourcemap source ${traced.source.filename}`\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tconst tracedSegment: SourceMapSegment = [\n\t\t\t\t\t\tsegment[0],\n\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\ttraced.line,\n\t\t\t\t\t\ttraced.column\n\t\t\t\t\t];\n\n\t\t\t\t\tif (traced.name) {\n\t\t\t\t\t\tlet nameIndex = nameIndexMap.get(traced.name);\n\t\t\t\t\t\tif (nameIndex === undefined) {\n\t\t\t\t\t\t\tnameIndex = names.length;\n\t\t\t\t\t\t\tnames.push(traced.name);\n\t\t\t\t\t\t\tnameIndexMap.set(traced.name, nameIndex);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t(tracedSegment as SourceMapSegment)[4] = nameIndex;\n\t\t\t\t\t}\n\n\t\t\t\t\ttracedLine.push(tracedSegment);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tmappings.push(tracedLine);\n\t\t}\n\n\t\treturn { mappings, names, sources, sourcesContent };\n\t}\n\n\ttraceSegment(line: number, column: number, name: string): SourceMapSegmentObject | null {\n\t\tconst segments = this.mappings[line];\n\t\tif (!segments) return null;\n\n\t\t// binary search through segments for the given column\n\t\tlet i = 0;\n\t\tlet j = segments.length - 1;\n\n\t\twhile (i <= j) {\n\t\t\tconst m = (i + j) >> 1;\n\t\t\tconst segment = segments[m];\n\t\t\tif (segment[0] === column) {\n\t\t\t\tif (segment.length == 1) return null;\n\t\t\t\tconst source = this.sources[segment[1]];\n\t\t\t\tif (!source) return null;\n\n\t\t\t\treturn source.traceSegment(\n\t\t\t\t\tsegment[2],\n\t\t\t\t\tsegment[3],\n\t\t\t\t\tsegment.length === 5 ? this.names[segment[4]] : name\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (segment[0] > column) {\n\t\t\t\tj = m - 1;\n\t\t\t} else {\n\t\t\t\ti = m + 1;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n}\n\nfunction getLinkMap(warn: WarningHandler) {\n\treturn function linkMap(source: Source | Link, map: DecodedSourceMapOrMissing) {\n\t\tif (map.mappings) {\n\t\t\treturn new Link(map, [source]);\n\t\t}\n\n\t\twarn({\n\t\t\tcode: 'SOURCEMAP_BROKEN',\n\t\t\tmessage:\n\t\t\t\t`Sourcemap is likely to be incorrect: a plugin (${map.plugin}) was used to transform ` +\n\t\t\t\t\"files, but didn't generate a sourcemap for the transformation. Consult the plugin \" +\n\t\t\t\t'documentation for help',\n\t\t\tplugin: map.plugin,\n\t\t\turl: `https://rollupjs.org/guide/en/#warning-sourcemap-is-likely-to-be-incorrect`\n\t\t});\n\n\t\treturn new Link(\n\t\t\t{\n\t\t\t\tmappings: [],\n\t\t\t\tnames: []\n\t\t\t},\n\t\t\t[source]\n\t\t);\n\t};\n}\n\nfunction getCollapsedSourcemap(\n\tid: string,\n\toriginalCode: string,\n\toriginalSourcemap: ExistingDecodedSourceMap | null,\n\tsourcemapChain: DecodedSourceMapOrMissing[],\n\tlinkMap: (source: Source | Link, map: DecodedSourceMapOrMissing) => Link\n): Source | Link {\n\tlet source: Source | Link;\n\n\tif (!originalSourcemap) {\n\t\tsource = new Source(id, originalCode);\n\t} else {\n\t\tconst sources = originalSourcemap.sources;\n\t\tconst sourcesContent = originalSourcemap.sourcesContent || [];\n\t\tconst directory = dirname(id) || '.';\n\t\tconst sourceRoot = originalSourcemap.sourceRoot || '.';\n\n\t\tconst baseSources = sources.map(\n\t\t\t(source, i) => new Source(resolve(directory, sourceRoot, source), sourcesContent[i])\n\t\t);\n\t\tsource = new Link(originalSourcemap, baseSources);\n\t}\n\treturn sourcemapChain.reduce(linkMap, source);\n}\n\nexport function collapseSourcemaps(\n\tfile: string,\n\tmap: DecodedSourceMap,\n\tmodules: Module[],\n\tbundleSourcemapChain: DecodedSourceMapOrMissing[],\n\texcludeContent: boolean | undefined,\n\twarn: WarningHandler\n): SourceMap {\n\tconst linkMap = getLinkMap(warn);\n\tconst moduleSources = modules\n\t\t.filter(module => !module.excludeFromSourcemap)\n\t\t.map(module =>\n\t\t\tgetCollapsedSourcemap(\n\t\t\t\tmodule.id,\n\t\t\t\tmodule.originalCode,\n\t\t\t\tmodule.originalSourcemap,\n\t\t\t\tmodule.sourcemapChain,\n\t\t\t\tlinkMap\n\t\t\t)\n\t\t);\n\n\t// DecodedSourceMap (from magic-string) uses a number[] instead of the more\n\t// correct SourceMapSegment tuples. Cast it here to gain type safety.\n\tlet source = new Link(map as ExistingDecodedSourceMap, moduleSources);\n\n\tsource = bundleSourcemapChain.reduce(linkMap, source);\n\n\tlet { sources, sourcesContent, names, mappings } = source.traceMappings();\n\n\tif (file) {\n\t\tconst directory = dirname(file);\n\t\tsources = sources.map((source: string) => relative(directory, source));\n\t\tfile = basename(file);\n\t}\n\n\tsourcesContent = (excludeContent ? null : sourcesContent) as string[];\n\n\treturn new SourceMap({ file, mappings, names, sources, sourcesContent });\n}\n\nexport function collapseSourcemap(\n\tid: string,\n\toriginalCode: string,\n\toriginalSourcemap: ExistingDecodedSourceMap | null,\n\tsourcemapChain: DecodedSourceMapOrMissing[],\n\twarn: WarningHandler\n): ExistingDecodedSourceMap | null {\n\tif (!sourcemapChain.length) {\n\t\treturn originalSourcemap;\n\t}\n\n\tconst source = getCollapsedSourcemap(\n\t\tid,\n\t\toriginalCode,\n\t\toriginalSourcemap,\n\t\tsourcemapChain,\n\t\tgetLinkMap(warn)\n\t) as Link;\n\tconst map = source.traceMappings();\n\treturn { version: 3, ...map };\n}\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","import sha256 from 'hash.js/lib/hash/sha/256';\n\nexport const createHash = (): {\n\tdigest: (format: string) => string;\n\tupdate: (data: unknown) => void;\n} => sha256();\n","import Chunk from '../Chunk';\nimport ExternalModule from '../ExternalModule';\nimport Module from '../Module';\nimport ChildScope from '../ast/scopes/ChildScope';\nimport ExportDefaultVariable from '../ast/variables/ExportDefaultVariable';\nimport SyntheticNamedExportVariable from '../ast/variables/SyntheticNamedExportVariable';\nimport Variable from '../ast/variables/Variable';\nimport { GetInterop, InternalModuleFormat } from '../rollup/types';\nimport {\n\tcanDefaultBeTakenFromNamespace,\n\tdefaultInteropHelpersByInteropType,\n\tisDefaultAProperty,\n\tnamespaceInteropHelpersByInteropType\n} from './interopHelpers';\nimport { getSafeName } from './safeName';\n\nexport interface DependenciesToBeDeconflicted {\n\tdeconflictedDefault: Set<ExternalModule>;\n\tdeconflictedNamespace: Set<ExternalModule | Chunk>;\n\tdependencies: Set<ExternalModule | Chunk>;\n}\n\nconst DECONFLICT_IMPORTED_VARIABLES_BY_FORMAT: {\n\t[format in InternalModuleFormat]: (\n\t\tusedNames: Set<string>,\n\t\timports: Set<Variable>,\n\t\tdependenciesToBeDeconflicted: DependenciesToBeDeconflicted,\n\t\tinterop: GetInterop,\n\t\tpreserveModules: boolean,\n\t\texternalLiveBindings: boolean,\n\t\tchunkByModule: Map<Module, Chunk>,\n\t\tsyntheticExports: Set<SyntheticNamedExportVariable>\n\t) => void;\n} = {\n\tamd: deconflictImportsOther,\n\tcjs: deconflictImportsOther,\n\tes: deconflictImportsEsmOrSystem,\n\tiife: deconflictImportsOther,\n\tsystem: deconflictImportsEsmOrSystem,\n\tumd: deconflictImportsOther\n};\n\nexport function deconflictChunk(\n\tmodules: Module[],\n\tdependenciesToBeDeconflicted: DependenciesToBeDeconflicted,\n\timports: Set<Variable>,\n\tusedNames: Set<string>,\n\tformat: InternalModuleFormat,\n\tinterop: GetInterop,\n\tpreserveModules: boolean,\n\texternalLiveBindings: boolean,\n\tchunkByModule: Map<Module, Chunk>,\n\tsyntheticExports: Set<SyntheticNamedExportVariable>,\n\texportNamesByVariable: Map<Variable, string[]>,\n\taccessedGlobalsByScope: Map<ChildScope, Set<string>>,\n\tincludedNamespaces: Set<Module>\n): void {\n\tconst reversedModules = modules.slice().reverse();\n\tfor (const module of reversedModules) {\n\t\tmodule.scope.addUsedOutsideNames(\n\t\t\tusedNames,\n\t\t\tformat,\n\t\t\texportNamesByVariable,\n\t\t\taccessedGlobalsByScope\n\t\t);\n\t}\n\tdeconflictTopLevelVariables(usedNames, reversedModules, includedNamespaces);\n\tDECONFLICT_IMPORTED_VARIABLES_BY_FORMAT[format](\n\t\tusedNames,\n\t\timports,\n\t\tdependenciesToBeDeconflicted,\n\t\tinterop,\n\t\tpreserveModules,\n\t\texternalLiveBindings,\n\t\tchunkByModule,\n\t\tsyntheticExports\n\t);\n\n\tfor (const module of reversedModules) {\n\t\tmodule.scope.deconflict(format, exportNamesByVariable, accessedGlobalsByScope);\n\t}\n}\n\nfunction deconflictImportsEsmOrSystem(\n\tusedNames: Set<string>,\n\timports: Set<Variable>,\n\tdependenciesToBeDeconflicted: DependenciesToBeDeconflicted,\n\t_interop: GetInterop,\n\tpreserveModules: boolean,\n\t_externalLiveBindings: boolean,\n\tchunkByModule: Map<Module, Chunk>,\n\tsyntheticExports: Set<SyntheticNamedExportVariable>\n) {\n\t// This is needed for namespace reexports\n\tfor (const dependency of dependenciesToBeDeconflicted.dependencies) {\n\t\tif (preserveModules || dependency instanceof ExternalModule) {\n\t\t\tdependency.variableName = getSafeName(dependency.suggestedVariableName, usedNames);\n\t\t}\n\t}\n\tfor (const variable of imports) {\n\t\tconst module = variable.module!;\n\t\tconst name = variable.name;\n\t\tif (variable.isNamespace && (preserveModules || module instanceof ExternalModule)) {\n\t\t\tvariable.setRenderNames(\n\t\t\t\tnull,\n\t\t\t\t(module instanceof ExternalModule ? module : chunkByModule.get(module)!).variableName\n\t\t\t);\n\t\t} else if (module instanceof ExternalModule && name === 'default') {\n\t\t\tvariable.setRenderNames(\n\t\t\t\tnull,\n\t\t\t\tgetSafeName(\n\t\t\t\t\t[...module.exportedVariables].some(\n\t\t\t\t\t\t([exportedVariable, exportedName]) => exportedName === '*' && exportedVariable.included\n\t\t\t\t\t)\n\t\t\t\t\t\t? module.suggestedVariableName + '__default'\n\t\t\t\t\t\t: module.suggestedVariableName,\n\t\t\t\t\tusedNames\n\t\t\t\t)\n\t\t\t);\n\t\t} else {\n\t\t\tvariable.setRenderNames(null, getSafeName(name, usedNames));\n\t\t}\n\t}\n\tfor (const variable of syntheticExports) {\n\t\tvariable.setRenderNames(null, getSafeName(variable.name, usedNames));\n\t}\n}\n\nfunction deconflictImportsOther(\n\tusedNames: Set<string>,\n\timports: Set<Variable>,\n\t{ deconflictedDefault, deconflictedNamespace, dependencies }: DependenciesToBeDeconflicted,\n\tinterop: GetInterop,\n\tpreserveModules: boolean,\n\texternalLiveBindings: boolean,\n\tchunkByModule: Map<Module, Chunk>\n) {\n\tfor (const chunkOrExternalModule of dependencies) {\n\t\tchunkOrExternalModule.variableName = getSafeName(\n\t\t\tchunkOrExternalModule.suggestedVariableName,\n\t\t\tusedNames\n\t\t);\n\t}\n\tfor (const externalModuleOrChunk of deconflictedNamespace) {\n\t\texternalModuleOrChunk.namespaceVariableName = getSafeName(\n\t\t\t`${externalModuleOrChunk.suggestedVariableName}__namespace`,\n\t\t\tusedNames\n\t\t);\n\t}\n\tfor (const externalModule of deconflictedDefault) {\n\t\tif (\n\t\t\tdeconflictedNamespace.has(externalModule) &&\n\t\t\tcanDefaultBeTakenFromNamespace(String(interop(externalModule.id)), externalLiveBindings)\n\t\t) {\n\t\t\texternalModule.defaultVariableName = externalModule.namespaceVariableName;\n\t\t} else {\n\t\t\texternalModule.defaultVariableName = getSafeName(\n\t\t\t\t`${externalModule.suggestedVariableName}__default`,\n\t\t\t\tusedNames\n\t\t\t);\n\t\t}\n\t}\n\tfor (const variable of imports) {\n\t\tconst module = variable.module;\n\t\tif (module instanceof ExternalModule) {\n\t\t\tconst name = variable.name;\n\t\t\tif (name === 'default') {\n\t\t\t\tconst moduleInterop = String(interop(module.id));\n\t\t\t\tconst variableName = defaultInteropHelpersByInteropType[moduleInterop]\n\t\t\t\t\t? module.defaultVariableName\n\t\t\t\t\t: module.variableName;\n\t\t\t\tif (isDefaultAProperty(moduleInterop, externalLiveBindings)) {\n\t\t\t\t\tvariable.setRenderNames(variableName, 'default');\n\t\t\t\t} else {\n\t\t\t\t\tvariable.setRenderNames(null, variableName);\n\t\t\t\t}\n\t\t\t} else if (name === '*') {\n\t\t\t\tvariable.setRenderNames(\n\t\t\t\t\tnull,\n\t\t\t\t\tnamespaceInteropHelpersByInteropType[String(interop(module.id))]\n\t\t\t\t\t\t? module.namespaceVariableName\n\t\t\t\t\t\t: module.variableName\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\t// if the second parameter is `null`, it uses its \"name\" for the property name\n\t\t\t\tvariable.setRenderNames(module.variableName, null);\n\t\t\t}\n\t\t} else {\n\t\t\tconst chunk = chunkByModule.get(module!)!;\n\t\t\tif (preserveModules && variable.isNamespace) {\n\t\t\t\tvariable.setRenderNames(\n\t\t\t\t\tnull,\n\t\t\t\t\tchunk.exportMode === 'default' ? chunk.namespaceVariableName : chunk.variableName\n\t\t\t\t);\n\t\t\t} else if (chunk.exportMode === 'default') {\n\t\t\t\tvariable.setRenderNames(null, chunk.variableName);\n\t\t\t} else {\n\t\t\t\tvariable.setRenderNames(\n\t\t\t\t\tchunk.variableName,\n\t\t\t\t\tchunk.getVariableExportName(variable) as string | null\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction deconflictTopLevelVariables(\n\tusedNames: Set<string>,\n\tmodules: Module[],\n\tincludedNamespaces: Set<Module>\n) {\n\tfor (const module of modules) {\n\t\tfor (const variable of module.scope.variables.values()) {\n\t\t\tif (\n\t\t\t\tvariable.included &&\n\t\t\t\t// this will only happen for exports in some formats\n\t\t\t\t!(\n\t\t\t\t\tvariable.renderBaseName ||\n\t\t\t\t\t(variable instanceof ExportDefaultVariable && variable.getOriginalVariable() !== variable)\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tvariable.setRenderNames(null, getSafeName(variable.name, usedNames));\n\t\t\t}\n\t\t}\n\t\tif (includedNamespaces.has(module)) {\n\t\t\tconst namespace = module.namespace;\n\t\t\tnamespace.setRenderNames(null, getSafeName(namespace.name, usedNames));\n\t\t}\n\t}\n}\n","const needsEscapeRegEx = /[\\\\'\\r\\n\\u2028\\u2029]/;\nconst quoteNewlineRegEx = /(['\\r\\n\\u2028\\u2029])/g;\nconst backSlashRegEx = /\\\\/g;\nexport function escapeId(id: string): string {\n\tif (!id.match(needsEscapeRegEx)) return id;\n\treturn id.replace(backSlashRegEx, '\\\\\\\\').replace(quoteNewlineRegEx, '\\\\$1');\n}\n","import Chunk from '../Chunk';\nimport { NormalizedOutputOptions, WarningHandler } from '../rollup/types';\nimport {\n\terrIncompatibleExportOptionValue,\n\terrMixedExport,\n\terror,\n\terrPreferNamedExports\n} from './error';\n\nexport default function getExportMode(\n\tchunk: Chunk,\n\t{ exports: exportMode, name, format }: NormalizedOutputOptions,\n\tunsetOptions: Set<string>,\n\tfacadeModuleId: string,\n\twarn: WarningHandler\n): 'default' | 'named' | 'none' {\n\tconst exportKeys = chunk.getExportNames();\n\n\tif (exportMode === 'default') {\n\t\tif (exportKeys.length !== 1 || exportKeys[0] !== 'default') {\n\t\t\treturn error(errIncompatibleExportOptionValue('default', exportKeys, facadeModuleId));\n\t\t}\n\t} else if (exportMode === 'none' && exportKeys.length) {\n\t\treturn error(errIncompatibleExportOptionValue('none', exportKeys, facadeModuleId));\n\t}\n\n\tif (exportMode === 'auto') {\n\t\tif (exportKeys.length === 0) {\n\t\t\texportMode = 'none';\n\t\t} else if (exportKeys.length === 1 && exportKeys[0] === 'default') {\n\t\t\tif (format === 'cjs' && unsetOptions.has('exports')) {\n\t\t\t\twarn(errPreferNamedExports(facadeModuleId));\n\t\t\t}\n\t\t\texportMode = 'default';\n\t\t} else {\n\t\t\tif (format !== 'es' && exportKeys.indexOf('default') !== -1) {\n\t\t\t\twarn(errMixedExport(facadeModuleId, name));\n\t\t\t}\n\t\t\texportMode = 'named';\n\t\t}\n\t}\n\n\treturn exportMode;\n}\n","import Module from '../Module';\n\nfunction guessIndentString(code: string) {\n\tconst lines = code.split('\\n');\n\n\tconst tabbed = lines.filter(line => /^\\t+/.test(line));\n\tconst spaced = lines.filter(line => /^ {2,}/.test(line));\n\n\tif (tabbed.length === 0 && spaced.length === 0) {\n\t\treturn null;\n\t}\n\n\t// More lines tabbed than spaced? Assume tabs, and\n\t// default to tabs in the case of a tie (or nothing\n\t// to go on)\n\tif (tabbed.length >= spaced.length) {\n\t\treturn '\\t';\n\t}\n\n\t// Otherwise, we need to guess the multiple\n\tconst min = spaced.reduce((previous, current) => {\n\t\tconst numSpaces = /^ +/.exec(current)![0].length;\n\t\treturn Math.min(numSpaces, previous);\n\t}, Infinity);\n\n\treturn new Array(min + 1).join(' ');\n}\n\nexport default function getIndentString(\n\tmodules: Module[],\n\toptions: { indent: true | string }\n): string {\n\tif (options.indent !== true) return options.indent;\n\n\tfor (let i = 0; i < modules.length; i++) {\n\t\tconst indent = guessIndentString(modules[i].originalCode);\n\t\tif (indent !== null) return indent;\n\t}\n\n\treturn '\\t';\n}\n","import Chunk from '../Chunk';\nimport ExternalModule from '../ExternalModule';\nimport Module from '../Module';\n\nexport function getStaticDependencies(\n\tchunk: Chunk,\n\torderedModules: Module[],\n\tchunkByModule: Map<Module, Chunk>\n): Set<Chunk | ExternalModule> {\n\tconst staticDependencyBlocks: (Chunk | ExternalModule)[][] = [];\n\tconst handledDependencies = new Set<Module>();\n\tfor (let modulePos = orderedModules.length - 1; modulePos >= 0; modulePos--) {\n\t\tconst module = orderedModules[modulePos];\n\t\tif (!handledDependencies.has(module)) {\n\t\t\tconst staticDependencies: (Chunk | ExternalModule)[] = [];\n\t\t\taddStaticDependencies(module, staticDependencies, handledDependencies, chunk, chunkByModule);\n\t\t\tstaticDependencyBlocks.unshift(staticDependencies);\n\t\t}\n\t}\n\tconst dependencies = new Set<Chunk | ExternalModule>();\n\tfor (const block of staticDependencyBlocks) {\n\t\tfor (const dependency of block) {\n\t\t\tdependencies.add(dependency);\n\t\t}\n\t}\n\treturn dependencies;\n}\n\nfunction addStaticDependencies(\n\tmodule: Module,\n\tstaticDependencies: (Chunk | ExternalModule)[],\n\thandledModules: Set<Module>,\n\tchunk: Chunk,\n\tchunkByModule: Map<Module, Chunk>\n): void {\n\tconst dependencies = module.getDependenciesToBeIncluded();\n\tfor (const dependency of dependencies) {\n\t\tif (dependency instanceof ExternalModule) {\n\t\t\tstaticDependencies.push(dependency);\n\t\t\tcontinue;\n\t\t}\n\t\tconst dependencyChunk = chunkByModule.get(dependency)!;\n\t\tif (dependencyChunk !== chunk) {\n\t\t\tstaticDependencies.push(dependencyChunk);\n\t\t\tcontinue;\n\t\t}\n\t\tif (!handledModules.has(dependency)) {\n\t\t\thandledModules.add(dependency);\n\t\t\taddStaticDependencies(dependency, staticDependencies, handledModules, chunk, chunkByModule);\n\t\t}\n\t}\n}\n","import { decode } from 'sourcemap-codec';\nimport { ExistingDecodedSourceMap, ExistingRawSourceMap, SourceMapInput } from '../rollup/types';\n\ntype Input = SourceMapInput | ExistingDecodedSourceMap | undefined;\n\nexport function decodedSourcemap(map: Input): ExistingDecodedSourceMap | null {\n\tif (!map) return null;\n\n\tif (typeof map === 'string') {\n\t\tmap = JSON.parse(map) as ExistingRawSourceMap;\n\t}\n\tif (map.mappings === '') {\n\t\treturn {\n\t\t\tmappings: [],\n\t\t\tnames: [],\n\t\t\tsources: [],\n\t\t\tversion: 3\n\t\t};\n\t}\n\n\tlet mappings;\n\tif (typeof map.mappings === 'string') {\n\t\tmappings = decode(map.mappings);\n\t} else {\n\t\tmappings = map.mappings;\n\t}\n\n\treturn { ...(map as ExistingRawSourceMap | ExistingDecodedSourceMap), mappings };\n}\n","import { errFailedValidation, error } from './error';\nimport { extname } from './path';\nimport { isPathFragment } from './relativeId';\n\nexport function renderNamePattern(\n\tpattern: string,\n\tpatternName: string,\n\treplacements: { [name: string]: () => string }\n): string {\n\tif (isPathFragment(pattern))\n\t\treturn error(\n\t\t\terrFailedValidation(\n\t\t\t\t`Invalid pattern \"${pattern}\" for \"${patternName}\", patterns can be neither absolute nor relative paths.`\n\t\t\t)\n\t\t);\n\treturn pattern.replace(/\\[(\\w+)\\]/g, (_match, type) => {\n\t\tif (!replacements.hasOwnProperty(type)) {\n\t\t\treturn error(\n\t\t\t\terrFailedValidation(`\"[${type}]\" is not a valid placeholder in \"${patternName}\" pattern.`)\n\t\t\t);\n\t\t}\n\t\tconst replacement = replacements[type]();\n\t\tif (isPathFragment(replacement))\n\t\t\treturn error(\n\t\t\t\terrFailedValidation(\n\t\t\t\t\t`Invalid substitution \"${replacement}\" for placeholder \"[${type}]\" in \"${patternName}\" pattern, can be neither absolute nor relative path.`\n\t\t\t\t)\n\t\t\t);\n\t\treturn replacement;\n\t});\n}\n\nexport function makeUnique(name: string, existingNames: Record<string, any>): string {\n\tconst existingNamesLowercase = new Set(Object.keys(existingNames).map(key => key.toLowerCase()));\n\tif (!existingNamesLowercase.has(name.toLocaleLowerCase())) return name;\n\n\tconst ext = extname(name);\n\tname = name.substr(0, name.length - ext.length);\n\tlet uniqueName: string,\n\t\tuniqueIndex = 1;\n\twhile (existingNamesLowercase.has((uniqueName = name + ++uniqueIndex + ext).toLowerCase()));\n\treturn uniqueName;\n}\n","import MagicString, { Bundle as MagicStringBundle, SourceMap } from 'magic-string';\nimport { relative } from '../browser/path';\nimport ExternalModule from './ExternalModule';\nimport Module from './Module';\nimport ExportDefaultDeclaration from './ast/nodes/ExportDefaultDeclaration';\nimport FunctionDeclaration from './ast/nodes/FunctionDeclaration';\nimport ChildScope from './ast/scopes/ChildScope';\nimport { UNDEFINED_EXPRESSION } from './ast/values';\nimport ExportDefaultVariable from './ast/variables/ExportDefaultVariable';\nimport ExportShimVariable from './ast/variables/ExportShimVariable';\nimport LocalVariable from './ast/variables/LocalVariable';\nimport NamespaceVariable from './ast/variables/NamespaceVariable';\nimport SyntheticNamedExportVariable from './ast/variables/SyntheticNamedExportVariable';\nimport Variable from './ast/variables/Variable';\nimport finalisers from './finalisers/index';\nimport {\n\tDecodedSourceMapOrMissing,\n\tGetInterop,\n\tGlobalsOption,\n\tInternalModuleFormat,\n\tNormalizedInputOptions,\n\tNormalizedOutputOptions,\n\tPreRenderedChunk,\n\tRenderedChunk,\n\tRenderedModule,\n\tWarningHandler\n} from './rollup/types';\nimport { PluginDriver } from './utils/PluginDriver';\nimport { Addons } from './utils/addons';\nimport { collapseSourcemaps } from './utils/collapseSourcemaps';\nimport { createHash } from './utils/crypto';\nimport { deconflictChunk, DependenciesToBeDeconflicted } from './utils/deconflictChunk';\nimport {\n\terrCyclicCrossChunkReexport,\n\terrFailedValidation,\n\terror,\n\terrUnexpectedNamedImport,\n\terrUnexpectedNamespaceReexport\n} from './utils/error';\nimport { escapeId } from './utils/escapeId';\nimport { assignExportsToMangledNames, assignExportsToNames } from './utils/exportNames';\nimport getExportMode from './utils/getExportMode';\nimport { getId } from './utils/getId';\nimport getIndentString from './utils/getIndentString';\nimport { getOrCreate } from './utils/getOrCreate';\nimport { getStaticDependencies } from './utils/getStaticDependencies';\nimport { makeLegal } from './utils/identifierHelpers';\nimport {\n\tdefaultInteropHelpersByInteropType,\n\tHELPER_NAMES,\n\tisDefaultAProperty,\n\tnamespaceInteropHelpersByInteropType\n} from './utils/interopHelpers';\nimport { basename, dirname, extname, isAbsolute, normalize, resolve } from './utils/path';\nimport relativeId, { getAliasName } from './utils/relativeId';\nimport renderChunk from './utils/renderChunk';\nimport { RenderOptions } from './utils/renderHelpers';\nimport { makeUnique, renderNamePattern } from './utils/renderNamePattern';\nimport { timeEnd, timeStart } from './utils/timers';\nimport { MISSING_EXPORT_SHIM_VARIABLE } from './utils/variableNames';\n\nexport interface ModuleDeclarations {\n\tdependencies: ModuleDeclarationDependency[];\n\texports: ChunkExports;\n}\n\nexport interface ModuleDeclarationDependency {\n\tdefaultVariableName: string | undefined;\n\tglobalName: string;\n\tid: string;\n\timports: ImportSpecifier[] | null;\n\tisChunk: boolean;\n\tname: string;\n\tnamedExportsMode: boolean;\n\tnamespaceVariableName: string | undefined;\n\treexports: ReexportSpecifier[] | null;\n}\n\nexport type ChunkDependencies = ModuleDeclarationDependency[];\n\nexport type ChunkExports = {\n\texported: string;\n\texpression: string | null;\n\thoisted: boolean;\n\tlocal: string;\n\tuninitialized: boolean;\n}[];\n\nexport interface ReexportSpecifier {\n\timported: string;\n\tneedsLiveBinding: boolean;\n\treexported: string;\n}\n\nexport interface ImportSpecifier {\n\timported: string;\n\tlocal: string;\n}\n\ninterface FacadeName {\n\tfileName?: string;\n\tname?: string;\n}\n\nconst NON_ASSET_EXTENSIONS = ['.js', '.jsx', '.ts', '.tsx'];\n\nfunction getGlobalName(\n\tmodule: ExternalModule,\n\tglobals: GlobalsOption,\n\thasExports: boolean,\n\twarn: WarningHandler\n) {\n\tconst globalName = typeof globals === 'function' ? globals(module.id) : globals[module.id];\n\tif (globalName) {\n\t\treturn globalName;\n\t}\n\n\tif (hasExports) {\n\t\twarn({\n\t\t\tcode: 'MISSING_GLOBAL_NAME',\n\t\t\tguess: module.variableName,\n\t\t\tmessage: `No name was provided for external module '${module.id}' in output.globals – guessing '${module.variableName}'`,\n\t\t\tsource: module.id\n\t\t});\n\t\treturn module.variableName;\n\t}\n}\n\nexport default class Chunk {\n\tentryModules: Module[] = [];\n\texecIndex: number;\n\texportMode: 'none' | 'named' | 'default' = 'named';\n\tfacadeModule: Module | null = null;\n\tid: string | null = null;\n\tnamespaceVariableName = '';\n\tsuggestedVariableName: string;\n\tvariableName = '';\n\n\tprivate accessedGlobalsByScope = new Map<ChildScope, Set<string>>();\n\tprivate dependencies = new Set<ExternalModule | Chunk>();\n\tprivate dynamicDependencies = new Set<ExternalModule | Chunk>();\n\tprivate dynamicEntryModules: Module[] = [];\n\tprivate dynamicName: string | null = null;\n\tprivate exportNamesByVariable = new Map<Variable, string[]>();\n\tprivate exports = new Set<Variable>();\n\tprivate exportsByName: Record<string, Variable> = Object.create(null);\n\tprivate fileName: string | null = null;\n\tprivate implicitEntryModules: Module[] = [];\n\tprivate implicitlyLoadedBefore = new Set<Chunk>();\n\tprivate imports = new Set<Variable>();\n\tprivate indentString: string = undefined as never;\n\tprivate readonly isEmpty: boolean = true;\n\tprivate name: string | null = null;\n\tprivate needsExportsShim = false;\n\tprivate renderedDependencies: Map<ExternalModule | Chunk, ModuleDeclarationDependency> | null =\n\t\tnull;\n\tprivate renderedExports: ChunkExports | null = null;\n\tprivate renderedHash: string = undefined as never;\n\tprivate renderedModuleSources = new Map<Module, MagicString>();\n\tprivate renderedModules: {\n\t\t[moduleId: string]: RenderedModule;\n\t} = Object.create(null);\n\tprivate renderedSource: MagicStringBundle | null = null;\n\tprivate sortedExportNames: string[] | null = null;\n\tprivate strictFacade = false;\n\tprivate usedModules: Module[] = undefined as never;\n\tconstructor(\n\t\tprivate readonly orderedModules: Module[],\n\t\tprivate readonly inputOptions: NormalizedInputOptions,\n\t\tprivate readonly outputOptions: NormalizedOutputOptions,\n\t\tprivate readonly unsetOptions: Set<string>,\n\t\tprivate readonly pluginDriver: PluginDriver,\n\t\tprivate readonly modulesById: Map<string, Module | ExternalModule>,\n\t\tprivate readonly chunkByModule: Map<Module, Chunk>,\n\t\tprivate readonly facadeChunkByModule: Map<Module, Chunk>,\n\t\tprivate readonly includedNamespaces: Set<Module>,\n\t\tprivate readonly manualChunkAlias: string | null\n\t) {\n\t\tthis.execIndex = orderedModules.length > 0 ? orderedModules[0].execIndex : Infinity;\n\t\tconst chunkModules = new Set(orderedModules);\n\n\t\tfor (const module of orderedModules) {\n\t\t\tif (module.namespace.included) {\n\t\t\t\tincludedNamespaces.add(module);\n\t\t\t}\n\t\t\tif (this.isEmpty && module.isIncluded()) {\n\t\t\t\tthis.isEmpty = false;\n\t\t\t}\n\t\t\tif (module.info.isEntry || outputOptions.preserveModules) {\n\t\t\t\tthis.entryModules.push(module);\n\t\t\t}\n\t\t\tfor (const importer of module.includedDynamicImporters) {\n\t\t\t\tif (!chunkModules.has(importer)) {\n\t\t\t\t\tthis.dynamicEntryModules.push(module);\n\t\t\t\t\t// Modules with synthetic exports need an artificial namespace for dynamic imports\n\t\t\t\t\tif (module.info.syntheticNamedExports && !outputOptions.preserveModules) {\n\t\t\t\t\t\tincludedNamespaces.add(module);\n\t\t\t\t\t\tthis.exports.add(module.namespace);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (module.implicitlyLoadedAfter.size > 0) {\n\t\t\t\tthis.implicitEntryModules.push(module);\n\t\t\t}\n\t\t}\n\t\tthis.suggestedVariableName = makeLegal(this.generateVariableName());\n\t}\n\n\tprivate static generateFacade(\n\t\tinputOptions: NormalizedInputOptions,\n\t\toutputOptions: NormalizedOutputOptions,\n\t\tunsetOptions: Set<string>,\n\t\tpluginDriver: PluginDriver,\n\t\tmodulesById: Map<string, Module | ExternalModule>,\n\t\tchunkByModule: Map<Module, Chunk>,\n\t\tfacadeChunkByModule: Map<Module, Chunk>,\n\t\tincludedNamespaces: Set<Module>,\n\t\tfacadedModule: Module,\n\t\tfacadeName: FacadeName\n\t): Chunk {\n\t\tconst chunk = new Chunk(\n\t\t\t[],\n\t\t\tinputOptions,\n\t\t\toutputOptions,\n\t\t\tunsetOptions,\n\t\t\tpluginDriver,\n\t\t\tmodulesById,\n\t\t\tchunkByModule,\n\t\t\tfacadeChunkByModule,\n\t\t\tincludedNamespaces,\n\t\t\tnull\n\t\t);\n\t\tchunk.assignFacadeName(facadeName, facadedModule);\n\t\tif (!facadeChunkByModule.has(facadedModule)) {\n\t\t\tfacadeChunkByModule.set(facadedModule, chunk);\n\t\t}\n\t\tfor (const dependency of facadedModule.getDependenciesToBeIncluded()) {\n\t\t\tchunk.dependencies.add(\n\t\t\t\tdependency instanceof Module ? chunkByModule.get(dependency)! : dependency\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\t!chunk.dependencies.has(chunkByModule.get(facadedModule)!) &&\n\t\t\tfacadedModule.info.hasModuleSideEffects &&\n\t\t\tfacadedModule.hasEffects()\n\t\t) {\n\t\t\tchunk.dependencies.add(chunkByModule.get(facadedModule)!);\n\t\t}\n\t\tchunk.ensureReexportsAreAvailableForModule(facadedModule);\n\t\tchunk.facadeModule = facadedModule;\n\t\tchunk.strictFacade = true;\n\t\treturn chunk;\n\t}\n\n\tcanModuleBeFacade(module: Module, exposedVariables: Set<Variable>): boolean {\n\t\tconst moduleExportNamesByVariable = module.getExportNamesByVariable();\n\t\tfor (const exposedVariable of this.exports) {\n\t\t\tif (!moduleExportNamesByVariable.has(exposedVariable)) {\n\t\t\t\tif (\n\t\t\t\t\tmoduleExportNamesByVariable.size === 0 &&\n\t\t\t\t\tmodule.isUserDefinedEntryPoint &&\n\t\t\t\t\tmodule.preserveSignature === 'strict' &&\n\t\t\t\t\tthis.unsetOptions.has('preserveEntrySignatures')\n\t\t\t\t) {\n\t\t\t\t\tthis.inputOptions.onwarn({\n\t\t\t\t\t\tcode: 'EMPTY_FACADE',\n\t\t\t\t\t\tid: module.id,\n\t\t\t\t\t\tmessage: `To preserve the export signature of the entry module \"${relativeId(\n\t\t\t\t\t\t\tmodule.id\n\t\t\t\t\t\t)}\", an empty facade chunk was created. This often happens when creating a bundle for a web app where chunks are placed in script tags and exports are ignored. In this case it is recommended to set \"preserveEntrySignatures: false\" to avoid this and reduce the number of chunks. Otherwise if this is intentional, set \"preserveEntrySignatures: 'strict'\" explicitly to silence this warning.`,\n\t\t\t\t\t\turl: 'https://rollupjs.org/guide/en/#preserveentrysignatures'\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tfor (const exposedVariable of exposedVariables) {\n\t\t\tif (\n\t\t\t\t!(moduleExportNamesByVariable.has(exposedVariable) || exposedVariable.module === module)\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\tgenerateExports(): void {\n\t\tthis.sortedExportNames = null;\n\t\tconst remainingExports = new Set(this.exports);\n\t\tif (\n\t\t\tthis.facadeModule !== null &&\n\t\t\t(this.facadeModule.preserveSignature !== false || this.strictFacade)\n\t\t) {\n\t\t\tconst exportNamesByVariable = this.facadeModule.getExportNamesByVariable();\n\t\t\tfor (const [variable, exportNames] of exportNamesByVariable) {\n\t\t\t\tthis.exportNamesByVariable.set(variable, [...exportNames]);\n\t\t\t\tfor (const exportName of exportNames) {\n\t\t\t\t\tthis.exportsByName[exportName] = variable;\n\t\t\t\t}\n\t\t\t\tremainingExports.delete(variable);\n\t\t\t}\n\t\t}\n\t\tif (this.outputOptions.minifyInternalExports) {\n\t\t\tassignExportsToMangledNames(remainingExports, this.exportsByName, this.exportNamesByVariable);\n\t\t} else {\n\t\t\tassignExportsToNames(remainingExports, this.exportsByName, this.exportNamesByVariable);\n\t\t}\n\t\tif (this.outputOptions.preserveModules || (this.facadeModule && this.facadeModule.info.isEntry))\n\t\t\tthis.exportMode = getExportMode(\n\t\t\t\tthis,\n\t\t\t\tthis.outputOptions,\n\t\t\t\tthis.unsetOptions,\n\t\t\t\tthis.facadeModule!.id,\n\t\t\t\tthis.inputOptions.onwarn\n\t\t\t);\n\t}\n\n\tgenerateFacades(): Chunk[] {\n\t\tconst facades: Chunk[] = [];\n\t\tconst entryModules = new Set([...this.entryModules, ...this.implicitEntryModules]);\n\t\tconst exposedVariables = new Set<Variable>(\n\t\t\tthis.dynamicEntryModules.map(module => module.namespace)\n\t\t);\n\t\tfor (const module of entryModules) {\n\t\t\tif (module.preserveSignature) {\n\t\t\t\tfor (const exportedVariable of module.getExportNamesByVariable().keys()) {\n\t\t\t\t\texposedVariables.add(exportedVariable);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (const module of entryModules) {\n\t\t\tconst requiredFacades: FacadeName[] = Array.from(module.userChunkNames, name => ({\n\t\t\t\tname\n\t\t\t}));\n\t\t\tif (requiredFacades.length === 0 && module.isUserDefinedEntryPoint) {\n\t\t\t\trequiredFacades.push({});\n\t\t\t}\n\t\t\trequiredFacades.push(...Array.from(module.chunkFileNames, fileName => ({ fileName })));\n\t\t\tif (requiredFacades.length === 0) {\n\t\t\t\trequiredFacades.push({});\n\t\t\t}\n\t\t\tif (!this.facadeModule) {\n\t\t\t\tconst needsStrictFacade =\n\t\t\t\t\tmodule.preserveSignature === 'strict' ||\n\t\t\t\t\t(module.preserveSignature === 'exports-only' &&\n\t\t\t\t\t\tmodule.getExportNamesByVariable().size !== 0);\n\t\t\t\tif (\n\t\t\t\t\t!needsStrictFacade ||\n\t\t\t\t\tthis.outputOptions.preserveModules ||\n\t\t\t\t\tthis.canModuleBeFacade(module, exposedVariables)\n\t\t\t\t) {\n\t\t\t\t\tthis.facadeModule = module;\n\t\t\t\t\tthis.facadeChunkByModule.set(module, this);\n\t\t\t\t\tif (module.preserveSignature) {\n\t\t\t\t\t\tthis.strictFacade = needsStrictFacade;\n\t\t\t\t\t}\n\t\t\t\t\tthis.assignFacadeName(requiredFacades.shift()!, module);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (const facadeName of requiredFacades) {\n\t\t\t\tfacades.push(\n\t\t\t\t\tChunk.generateFacade(\n\t\t\t\t\t\tthis.inputOptions,\n\t\t\t\t\t\tthis.outputOptions,\n\t\t\t\t\t\tthis.unsetOptions,\n\t\t\t\t\t\tthis.pluginDriver,\n\t\t\t\t\t\tthis.modulesById,\n\t\t\t\t\t\tthis.chunkByModule,\n\t\t\t\t\t\tthis.facadeChunkByModule,\n\t\t\t\t\t\tthis.includedNamespaces,\n\t\t\t\t\t\tmodule,\n\t\t\t\t\t\tfacadeName\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tfor (const module of this.dynamicEntryModules) {\n\t\t\tif (module.info.syntheticNamedExports) continue;\n\t\t\tif (!this.facadeModule && this.canModuleBeFacade(module, exposedVariables)) {\n\t\t\t\tthis.facadeModule = module;\n\t\t\t\tthis.facadeChunkByModule.set(module, this);\n\t\t\t\tthis.strictFacade = true;\n\t\t\t\tthis.dynamicName = getChunkNameFromModule(module);\n\t\t\t} else if (\n\t\t\t\tthis.facadeModule === module &&\n\t\t\t\t!this.strictFacade &&\n\t\t\t\tthis.canModuleBeFacade(module, exposedVariables)\n\t\t\t) {\n\t\t\t\tthis.strictFacade = true;\n\t\t\t} else if (!this.facadeChunkByModule.get(module)?.strictFacade) {\n\t\t\t\tthis.includedNamespaces.add(module);\n\t\t\t\tthis.exports.add(module.namespace);\n\t\t\t}\n\t\t}\n\t\treturn facades;\n\t}\n\n\tgenerateId(\n\t\taddons: Addons,\n\t\toptions: NormalizedOutputOptions,\n\t\texistingNames: Record<string, unknown>,\n\t\tincludeHash: boolean\n\t): string {\n\t\tif (this.fileName !== null) {\n\t\t\treturn this.fileName;\n\t\t}\n\t\tconst [pattern, patternName] =\n\t\t\tthis.facadeModule && this.facadeModule.isUserDefinedEntryPoint\n\t\t\t\t? [options.entryFileNames, 'output.entryFileNames']\n\t\t\t\t: [options.chunkFileNames, 'output.chunkFileNames'];\n\t\treturn makeUnique(\n\t\t\trenderNamePattern(\n\t\t\t\ttypeof pattern === 'function' ? pattern(this.getChunkInfo()) : pattern,\n\t\t\t\tpatternName,\n\t\t\t\t{\n\t\t\t\t\tformat: () => options.format,\n\t\t\t\t\thash: () =>\n\t\t\t\t\t\tincludeHash\n\t\t\t\t\t\t\t? this.computeContentHashWithDependencies(addons, options, existingNames)\n\t\t\t\t\t\t\t: '[hash]',\n\t\t\t\t\tname: () => this.getChunkName()\n\t\t\t\t}\n\t\t\t),\n\t\t\texistingNames\n\t\t);\n\t}\n\n\tgenerateIdPreserveModules(\n\t\tpreserveModulesRelativeDir: string,\n\t\toptions: NormalizedOutputOptions,\n\t\texistingNames: Record<string, unknown>,\n\t\tunsetOptions: Set<string>\n\t): string {\n\t\tconst id = this.orderedModules[0].id;\n\t\tconst sanitizedId = this.outputOptions.sanitizeFileName(id);\n\t\tlet path: string;\n\t\tif (isAbsolute(id)) {\n\t\t\tconst extension = extname(id);\n\t\t\tconst pattern = unsetOptions.has('entryFileNames')\n\t\t\t\t? '[name][assetExtname].js'\n\t\t\t\t: options.entryFileNames;\n\t\t\tconst currentDir = dirname(sanitizedId);\n\t\t\tconst fileName = renderNamePattern(\n\t\t\t\ttypeof pattern === 'function' ? pattern(this.getChunkInfo()) : pattern,\n\t\t\t\t'output.entryFileNames',\n\t\t\t\t{\n\t\t\t\t\tassetExtname: () => (NON_ASSET_EXTENSIONS.includes(extension) ? '' : extension),\n\t\t\t\t\text: () => extension.substr(1),\n\t\t\t\t\textname: () => extension,\n\t\t\t\t\tformat: () => options.format as string,\n\t\t\t\t\tname: () => this.getChunkName()\n\t\t\t\t}\n\t\t\t);\n\t\t\tconst currentPath = `${currentDir}/${fileName}`;\n\t\t\tconst { preserveModulesRoot } = options;\n\t\t\tif (preserveModulesRoot && currentPath.startsWith(preserveModulesRoot)) {\n\t\t\t\tpath = currentPath.slice(preserveModulesRoot.length).replace(/^[\\\\/]/, '');\n\t\t\t} else {\n\t\t\t\tpath = relative(preserveModulesRelativeDir, currentPath);\n\t\t\t}\n\t\t} else {\n\t\t\tpath = `_virtual/${basename(sanitizedId)}`;\n\t\t}\n\t\treturn makeUnique(normalize(path), existingNames);\n\t}\n\n\tgetChunkInfo(): PreRenderedChunk {\n\t\tconst facadeModule = this.facadeModule;\n\t\tconst getChunkName = this.getChunkName.bind(this);\n\t\treturn {\n\t\t\texports: this.getExportNames(),\n\t\t\tfacadeModuleId: facadeModule && facadeModule.id,\n\t\t\tisDynamicEntry: this.dynamicEntryModules.length > 0,\n\t\t\tisEntry: facadeModule !== null && facadeModule.info.isEntry,\n\t\t\tisImplicitEntry: this.implicitEntryModules.length > 0,\n\t\t\tmodules: this.renderedModules,\n\t\t\tget name() {\n\t\t\t\treturn getChunkName();\n\t\t\t},\n\t\t\ttype: 'chunk'\n\t\t};\n\t}\n\n\tgetChunkInfoWithFileNames(): RenderedChunk {\n\t\treturn Object.assign(this.getChunkInfo(), {\n\t\t\tcode: undefined,\n\t\t\tdynamicImports: Array.from(this.dynamicDependencies, getId),\n\t\t\tfileName: this.id!,\n\t\t\timplicitlyLoadedBefore: Array.from(this.implicitlyLoadedBefore, getId),\n\t\t\timportedBindings: this.getImportedBindingsPerDependency(),\n\t\t\timports: Array.from(this.dependencies, getId),\n\t\t\tmap: undefined,\n\t\t\treferencedFiles: this.getReferencedFiles()\n\t\t});\n\t}\n\n\tgetChunkName(): string {\n\t\treturn (\n\t\t\tthis.name || (this.name = this.outputOptions.sanitizeFileName(this.getFallbackChunkName()))\n\t\t);\n\t}\n\n\tgetExportNames(): string[] {\n\t\treturn (\n\t\t\tthis.sortedExportNames || (this.sortedExportNames = Object.keys(this.exportsByName).sort())\n\t\t);\n\t}\n\n\tgetRenderedHash(): string {\n\t\tif (this.renderedHash) return this.renderedHash;\n\t\tconst hash = createHash();\n\t\tconst hashAugmentation = this.pluginDriver.hookReduceValueSync(\n\t\t\t'augmentChunkHash',\n\t\t\t'',\n\t\t\t[this.getChunkInfo()],\n\t\t\t(augmentation, pluginHash) => {\n\t\t\t\tif (pluginHash) {\n\t\t\t\t\taugmentation += pluginHash;\n\t\t\t\t}\n\t\t\t\treturn augmentation;\n\t\t\t}\n\t\t);\n\t\thash.update(hashAugmentation);\n\t\thash.update(this.renderedSource!.toString());\n\t\thash.update(\n\t\t\tthis.getExportNames()\n\t\t\t\t.map(exportName => {\n\t\t\t\t\tconst variable = this.exportsByName[exportName];\n\t\t\t\t\treturn `${relativeId((variable.module as Module).id).replace(/\\\\/g, '/')}:${\n\t\t\t\t\t\tvariable.name\n\t\t\t\t\t}:${exportName}`;\n\t\t\t\t})\n\t\t\t\t.join(',')\n\t\t);\n\t\treturn (this.renderedHash = hash.digest('hex'));\n\t}\n\n\tgetVariableExportName(variable: Variable): string {\n\t\tif (this.outputOptions.preserveModules && variable instanceof NamespaceVariable) {\n\t\t\treturn '*';\n\t\t}\n\t\treturn this.exportNamesByVariable.get(variable)![0];\n\t}\n\n\tlink(): void {\n\t\tthis.dependencies = getStaticDependencies(this, this.orderedModules, this.chunkByModule);\n\t\tfor (const module of this.orderedModules) {\n\t\t\tthis.addDependenciesToChunk(module.dynamicDependencies, this.dynamicDependencies);\n\t\t\tthis.addDependenciesToChunk(module.implicitlyLoadedBefore, this.implicitlyLoadedBefore);\n\t\t\tthis.setUpChunkImportsAndExportsForModule(module);\n\t\t}\n\t}\n\n\t// prerender allows chunk hashes and names to be generated before finalizing\n\tpreRender(options: NormalizedOutputOptions, inputBase: string): void {\n\t\tconst magicString = new MagicStringBundle({ separator: options.compact ? '' : '\\n\\n' });\n\t\tthis.usedModules = [];\n\t\tthis.indentString = getIndentString(this.orderedModules, options);\n\n\t\tconst n = options.compact ? '' : '\\n';\n\t\tconst _ = options.compact ? '' : ' ';\n\n\t\tconst renderOptions: RenderOptions = {\n\t\t\tcompact: options.compact,\n\t\t\tdynamicImportFunction: options.dynamicImportFunction,\n\t\t\texportNamesByVariable: this.exportNamesByVariable,\n\t\t\tformat: options.format,\n\t\t\tfreeze: options.freeze,\n\t\t\tindent: this.indentString,\n\t\t\tnamespaceToStringTag: options.namespaceToStringTag,\n\t\t\toutputPluginDriver: this.pluginDriver,\n\t\t\tvarOrConst: options.preferConst ? 'const' : 'var'\n\t\t};\n\n\t\t// for static and dynamic entry points, inline the execution list to avoid loading latency\n\t\tif (\n\t\t\toptions.hoistTransitiveImports &&\n\t\t\t!this.outputOptions.preserveModules &&\n\t\t\tthis.facadeModule !== null\n\t\t) {\n\t\t\tfor (const dep of this.dependencies) {\n\t\t\t\tif (dep instanceof Chunk) this.inlineChunkDependencies(dep);\n\t\t\t}\n\t\t}\n\n\t\tthis.prepareDynamicImportsAndImportMetas();\n\t\tthis.setIdentifierRenderResolutions(options);\n\n\t\tlet hoistedSource = '';\n\t\tconst renderedModules = this.renderedModules;\n\n\t\tfor (const module of this.orderedModules) {\n\t\t\tlet renderedLength = 0;\n\t\t\tif (module.isIncluded() || this.includedNamespaces.has(module)) {\n\t\t\t\tconst source = module.render(renderOptions).trim();\n\t\t\t\trenderedLength = source.length();\n\t\t\t\tif (renderedLength) {\n\t\t\t\t\tif (options.compact && source.lastLine().indexOf('//') !== -1) source.append('\\n');\n\t\t\t\t\tthis.renderedModuleSources.set(module, source);\n\t\t\t\t\tmagicString.addSource(source);\n\t\t\t\t\tthis.usedModules.push(module);\n\t\t\t\t}\n\t\t\t\tconst namespace = module.namespace;\n\t\t\t\tif (this.includedNamespaces.has(module) && !this.outputOptions.preserveModules) {\n\t\t\t\t\tconst rendered = namespace.renderBlock(renderOptions);\n\t\t\t\t\tif (namespace.renderFirst()) hoistedSource += n + rendered;\n\t\t\t\t\telse magicString.addSource(new MagicString(rendered));\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst { renderedExports, removedExports } = module.getRenderedExports();\n\t\t\tconst { renderedModuleSources } = this;\n\t\t\trenderedModules[module.id] = {\n\t\t\t\tget code() {\n\t\t\t\t\treturn renderedModuleSources.get(module)?.toString() ?? null;\n\t\t\t\t},\n\t\t\t\toriginalLength: module.originalCode.length,\n\t\t\t\tremovedExports,\n\t\t\t\trenderedExports,\n\t\t\t\trenderedLength\n\t\t\t};\n\t\t}\n\n\t\tif (hoistedSource) magicString.prepend(hoistedSource + n + n);\n\n\t\tif (this.needsExportsShim) {\n\t\t\tmagicString.prepend(\n\t\t\t\t`${n}${renderOptions.varOrConst} ${MISSING_EXPORT_SHIM_VARIABLE}${_}=${_}void 0;${n}${n}`\n\t\t\t);\n\t\t}\n\t\tif (options.compact) {\n\t\t\tthis.renderedSource = magicString;\n\t\t} else {\n\t\t\tthis.renderedSource = magicString.trim();\n\t\t}\n\n\t\tthis.renderedHash = undefined as never;\n\n\t\tif (this.isEmpty && this.getExportNames().length === 0 && this.dependencies.size === 0) {\n\t\t\tconst chunkName = this.getChunkName();\n\t\t\tthis.inputOptions.onwarn({\n\t\t\t\tchunkName,\n\t\t\t\tcode: 'EMPTY_BUNDLE',\n\t\t\t\tmessage: `Generated an empty chunk: \"${chunkName}\"`\n\t\t\t});\n\t\t}\n\n\t\tthis.setExternalRenderPaths(options, inputBase);\n\n\t\tthis.renderedDependencies = this.getChunkDependencyDeclarations(options);\n\t\tthis.renderedExports =\n\t\t\tthis.exportMode === 'none' ? [] : this.getChunkExportDeclarations(options.format);\n\t}\n\n\tasync render(\n\t\toptions: NormalizedOutputOptions,\n\t\taddons: Addons,\n\t\toutputChunk: RenderedChunk\n\t): Promise<{ code: string; map: SourceMap }> {\n\t\ttimeStart('render format', 2);\n\n\t\tconst format = options.format;\n\t\tconst finalise = finalisers[format];\n\t\tif (options.dynamicImportFunction && format !== 'es') {\n\t\t\tthis.inputOptions.onwarn({\n\t\t\t\tcode: 'INVALID_OPTION',\n\t\t\t\tmessage: '\"output.dynamicImportFunction\" is ignored for formats other than \"es\".'\n\t\t\t});\n\t\t}\n\n\t\t// populate ids in the rendered declarations only here\n\t\t// as chunk ids known only after prerender\n\t\tfor (const dependency of this.dependencies) {\n\t\t\tconst renderedDependency = this.renderedDependencies!.get(dependency)!;\n\t\t\tif (dependency instanceof ExternalModule) {\n\t\t\t\tconst originalId = dependency.renderPath;\n\t\t\t\trenderedDependency.id = escapeId(\n\t\t\t\t\tdependency.renormalizeRenderPath ? this.getRelativePath(originalId, false) : originalId\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\trenderedDependency.namedExportsMode = dependency.exportMode !== 'default';\n\t\t\t\trenderedDependency.id = escapeId(this.getRelativePath(dependency.id!, false));\n\t\t\t}\n\t\t}\n\n\t\tthis.finaliseDynamicImports(options);\n\t\tthis.finaliseImportMetas(format);\n\n\t\tconst hasExports =\n\t\t\tthis.renderedExports!.length !== 0 ||\n\t\t\t[...this.renderedDependencies!.values()].some(\n\t\t\t\tdep => (dep.reexports && dep.reexports.length !== 0)!\n\t\t\t);\n\n\t\tlet usesTopLevelAwait = false;\n\t\tconst accessedGlobals = new Set<string>();\n\t\tfor (const module of this.orderedModules) {\n\t\t\tif (module.usesTopLevelAwait) {\n\t\t\t\tusesTopLevelAwait = true;\n\t\t\t}\n\t\t\tconst accessedGlobalVariables = this.accessedGlobalsByScope.get(module.scope);\n\t\t\tif (accessedGlobalVariables) {\n\t\t\t\tfor (const name of accessedGlobalVariables) {\n\t\t\t\t\taccessedGlobals.add(name);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (usesTopLevelAwait && format !== 'es' && format !== 'system') {\n\t\t\treturn error({\n\t\t\t\tcode: 'INVALID_TLA_FORMAT',\n\t\t\t\tmessage: `Module format ${format} does not support top-level await. Use the \"es\" or \"system\" output formats rather.`\n\t\t\t});\n\t\t}\n\n\t\t/* istanbul ignore next */\n\t\tif (!this.id) {\n\t\t\tthrow new Error('Internal Error: expecting chunk id');\n\t\t}\n\n\t\tconst magicString = finalise(\n\t\t\tthis.renderedSource!,\n\t\t\t{\n\t\t\t\taccessedGlobals,\n\t\t\t\tdependencies: [...this.renderedDependencies!.values()],\n\t\t\t\texports: this.renderedExports!,\n\t\t\t\thasExports,\n\t\t\t\tid: this.id,\n\t\t\t\tindentString: this.indentString,\n\t\t\t\tintro: addons.intro!,\n\t\t\t\tisEntryFacade:\n\t\t\t\t\tthis.outputOptions.preserveModules ||\n\t\t\t\t\t(this.facadeModule !== null && this.facadeModule.info.isEntry),\n\t\t\t\tisModuleFacade: this.facadeModule !== null,\n\t\t\t\tnamedExportsMode: this.exportMode !== 'default',\n\t\t\t\toutro: addons.outro!,\n\t\t\t\tusesTopLevelAwait,\n\t\t\t\tvarOrConst: options.preferConst ? 'const' : 'var',\n\t\t\t\twarn: this.inputOptions.onwarn\n\t\t\t},\n\t\t\toptions\n\t\t);\n\t\tif (addons.banner) magicString.prepend(addons.banner);\n\t\tif (addons.footer) magicString.append(addons.footer);\n\t\tconst prevCode = magicString.toString();\n\n\t\ttimeEnd('render format', 2);\n\n\t\tlet map: SourceMap = null as never;\n\t\tconst chunkSourcemapChain: DecodedSourceMapOrMissing[] = [];\n\n\t\tlet code = await renderChunk({\n\t\t\tcode: prevCode,\n\t\t\toptions,\n\t\t\toutputPluginDriver: this.pluginDriver,\n\t\t\trenderChunk: outputChunk,\n\t\t\tsourcemapChain: chunkSourcemapChain\n\t\t});\n\t\tif (options.sourcemap) {\n\t\t\ttimeStart('sourcemap', 2);\n\n\t\t\tlet file: string;\n\t\t\tif (options.file) file = resolve(options.sourcemapFile || options.file);\n\t\t\telse if (options.dir) file = resolve(options.dir, this.id);\n\t\t\telse file = resolve(this.id);\n\n\t\t\tconst decodedMap = magicString.generateDecodedMap({});\n\t\t\tmap = collapseSourcemaps(\n\t\t\t\tfile,\n\t\t\t\tdecodedMap,\n\t\t\t\tthis.usedModules,\n\t\t\t\tchunkSourcemapChain,\n\t\t\t\toptions.sourcemapExcludeSources,\n\t\t\t\tthis.inputOptions.onwarn\n\t\t\t);\n\t\t\tmap.sources = map.sources\n\t\t\t\t.map(sourcePath => {\n\t\t\t\t\tconst { sourcemapPathTransform } = options;\n\n\t\t\t\t\tif (sourcemapPathTransform) {\n\t\t\t\t\t\tconst newSourcePath = sourcemapPathTransform(sourcePath, `${file}.map`) as unknown;\n\n\t\t\t\t\t\tif (typeof newSourcePath !== 'string') {\n\t\t\t\t\t\t\terror(errFailedValidation(`sourcemapPathTransform function must return a string.`));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn newSourcePath;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn sourcePath;\n\t\t\t\t})\n\t\t\t\t.map(normalize);\n\n\t\t\ttimeEnd('sourcemap', 2);\n\t\t}\n\t\tif (!options.compact && code[code.length - 1] !== '\\n') code += '\\n';\n\t\treturn { code, map };\n\t}\n\n\tprivate addDependenciesToChunk(\n\t\tmoduleDependencies: Set<Module | ExternalModule>,\n\t\tchunkDependencies: Set<Chunk | ExternalModule>\n\t) {\n\t\tfor (const module of moduleDependencies) {\n\t\t\tif (module instanceof Module) {\n\t\t\t\tconst chunk = this.chunkByModule.get(module);\n\t\t\t\tif (chunk && chunk !== this) {\n\t\t\t\t\tchunkDependencies.add(chunk);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tchunkDependencies.add(module);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate assignFacadeName({ fileName, name }: FacadeName, facadedModule: Module) {\n\t\tif (fileName) {\n\t\t\tthis.fileName = fileName;\n\t\t} else {\n\t\t\tthis.name = this.outputOptions.sanitizeFileName(\n\t\t\t\tname || getChunkNameFromModule(facadedModule)\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate checkCircularDependencyImport(variable: Variable, importingModule: Module) {\n\t\tconst variableModule = variable.module;\n\t\tif (variableModule instanceof Module) {\n\t\t\tconst exportChunk = this.chunkByModule.get(variableModule);\n\t\t\tlet alternativeReexportModule;\n\t\t\tdo {\n\t\t\t\talternativeReexportModule = importingModule.alternativeReexportModules.get(variable);\n\t\t\t\tif (alternativeReexportModule) {\n\t\t\t\t\tconst exportingChunk = this.chunkByModule.get(alternativeReexportModule);\n\t\t\t\t\tif (exportingChunk && exportingChunk !== exportChunk) {\n\t\t\t\t\t\tthis.inputOptions.onwarn(\n\t\t\t\t\t\t\terrCyclicCrossChunkReexport(\n\t\t\t\t\t\t\t\tvariableModule.getExportNamesByVariable().get(variable)![0],\n\t\t\t\t\t\t\t\tvariableModule.id,\n\t\t\t\t\t\t\t\talternativeReexportModule.id,\n\t\t\t\t\t\t\t\timportingModule.id\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\timportingModule = alternativeReexportModule;\n\t\t\t\t}\n\t\t\t} while (alternativeReexportModule);\n\t\t}\n\t}\n\n\tprivate computeContentHashWithDependencies(\n\t\taddons: Addons,\n\t\toptions: NormalizedOutputOptions,\n\t\texistingNames: Record<string, unknown>\n\t): string {\n\t\tconst hash = createHash();\n\t\thash.update(\n\t\t\t[addons.intro, addons.outro, addons.banner, addons.footer].map(addon => addon || '').join(':')\n\t\t);\n\t\thash.update(options.format as string);\n\t\tconst dependenciesForHashing = new Set<Chunk | ExternalModule>([this]);\n\t\tfor (const current of dependenciesForHashing) {\n\t\t\tif (current instanceof ExternalModule) {\n\t\t\t\thash.update(':' + current.renderPath);\n\t\t\t} else {\n\t\t\t\thash.update(current.getRenderedHash());\n\t\t\t\thash.update(current.generateId(addons, options, existingNames, false));\n\t\t\t}\n\t\t\tif (current instanceof ExternalModule) continue;\n\t\t\tfor (const dependency of [...current.dependencies, ...current.dynamicDependencies]) {\n\t\t\t\tdependenciesForHashing.add(dependency);\n\t\t\t}\n\t\t}\n\t\treturn hash.digest('hex').substr(0, 8);\n\t}\n\n\tprivate ensureReexportsAreAvailableForModule(module: Module) {\n\t\tconst map = module.getExportNamesByVariable();\n\t\tfor (const exportedVariable of map.keys()) {\n\t\t\tconst isSynthetic = exportedVariable instanceof SyntheticNamedExportVariable;\n\t\t\tconst importedVariable = isSynthetic\n\t\t\t\t? (exportedVariable as SyntheticNamedExportVariable).getBaseVariable()\n\t\t\t\t: exportedVariable;\n\t\t\tif (!(importedVariable instanceof NamespaceVariable && this.outputOptions.preserveModules)) {\n\t\t\t\tthis.checkCircularDependencyImport(importedVariable, module);\n\t\t\t\tconst exportingModule = importedVariable.module;\n\t\t\t\tif (exportingModule instanceof Module) {\n\t\t\t\t\tconst chunk = this.chunkByModule.get(exportingModule);\n\t\t\t\t\tif (chunk && chunk !== this) {\n\t\t\t\t\t\tchunk.exports.add(importedVariable);\n\t\t\t\t\t\tif (isSynthetic) {\n\t\t\t\t\t\t\tthis.imports.add(importedVariable);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate finaliseDynamicImports(options: NormalizedOutputOptions) {\n\t\tconst stripKnownJsExtensions = options.format === 'amd';\n\t\tfor (const [module, code] of this.renderedModuleSources) {\n\t\t\tfor (const { node, resolution } of module.dynamicImports) {\n\t\t\t\tconst chunk = this.chunkByModule.get(resolution as Module);\n\t\t\t\tconst facadeChunk = this.facadeChunkByModule.get(resolution as Module);\n\t\t\t\tif (!resolution || !node.included || chunk === this) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst renderedResolution =\n\t\t\t\t\tresolution instanceof Module\n\t\t\t\t\t\t? `'${this.getRelativePath((facadeChunk || chunk!).id!, stripKnownJsExtensions)}'`\n\t\t\t\t\t\t: resolution instanceof ExternalModule\n\t\t\t\t\t\t? `'${\n\t\t\t\t\t\t\t\tresolution.renormalizeRenderPath\n\t\t\t\t\t\t\t\t\t? this.getRelativePath(resolution.renderPath, stripKnownJsExtensions)\n\t\t\t\t\t\t\t\t\t: resolution.renderPath\n\t\t\t\t\t\t }'`\n\t\t\t\t\t\t: resolution;\n\t\t\t\tnode.renderFinalResolution(\n\t\t\t\t\tcode,\n\t\t\t\t\trenderedResolution,\n\t\t\t\t\tresolution instanceof Module &&\n\t\t\t\t\t\t!facadeChunk?.strictFacade &&\n\t\t\t\t\t\tchunk!.exportNamesByVariable.get(resolution.namespace)![0],\n\t\t\t\t\toptions\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate finaliseImportMetas(format: InternalModuleFormat): void {\n\t\tfor (const [module, code] of this.renderedModuleSources) {\n\t\t\tfor (const importMeta of module.importMetas) {\n\t\t\t\timportMeta.renderFinalMechanism(code, this.id!, format, this.pluginDriver);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate generateVariableName(): string {\n\t\tif (this.manualChunkAlias) {\n\t\t\treturn this.manualChunkAlias;\n\t\t}\n\t\tconst moduleForNaming =\n\t\t\tthis.entryModules[0] ||\n\t\t\tthis.implicitEntryModules[0] ||\n\t\t\tthis.dynamicEntryModules[0] ||\n\t\t\tthis.orderedModules[this.orderedModules.length - 1];\n\t\tif (moduleForNaming) {\n\t\t\treturn moduleForNaming.chunkName || getAliasName(moduleForNaming.id);\n\t\t}\n\t\treturn 'chunk';\n\t}\n\n\tprivate getChunkDependencyDeclarations(\n\t\toptions: NormalizedOutputOptions\n\t): Map<Chunk | ExternalModule, ModuleDeclarationDependency> {\n\t\tconst importSpecifiers = this.getImportSpecifiers();\n\t\tconst reexportSpecifiers = this.getReexportSpecifiers();\n\t\tconst dependencyDeclaration = new Map<Chunk | ExternalModule, ModuleDeclarationDependency>();\n\t\tfor (const dep of this.dependencies) {\n\t\t\tconst imports = importSpecifiers.get(dep) || null;\n\t\t\tconst reexports = reexportSpecifiers.get(dep) || null;\n\t\t\tconst namedExportsMode = dep instanceof ExternalModule || dep.exportMode !== 'default';\n\n\t\t\tdependencyDeclaration.set(dep, {\n\t\t\t\tdefaultVariableName: (dep as ExternalModule).defaultVariableName,\n\t\t\t\tglobalName: (dep instanceof ExternalModule &&\n\t\t\t\t\t(options.format === 'umd' || options.format === 'iife') &&\n\t\t\t\t\tgetGlobalName(\n\t\t\t\t\t\tdep,\n\t\t\t\t\t\toptions.globals,\n\t\t\t\t\t\t(imports || reexports) !== null,\n\t\t\t\t\t\tthis.inputOptions.onwarn\n\t\t\t\t\t)) as string,\n\t\t\t\tid: undefined as never, // chunk id updated on render\n\t\t\t\timports,\n\t\t\t\tisChunk: dep instanceof Chunk,\n\t\t\t\tname: dep.variableName,\n\t\t\t\tnamedExportsMode,\n\t\t\t\tnamespaceVariableName: (dep as ExternalModule).namespaceVariableName,\n\t\t\t\treexports\n\t\t\t});\n\t\t}\n\n\t\treturn dependencyDeclaration;\n\t}\n\n\tprivate getChunkExportDeclarations(format: InternalModuleFormat): ChunkExports {\n\t\tconst exports: ChunkExports = [];\n\t\tfor (const exportName of this.getExportNames()) {\n\t\t\tif (exportName[0] === '*') continue;\n\n\t\t\tconst variable = this.exportsByName[exportName];\n\t\t\tif (!(variable instanceof SyntheticNamedExportVariable)) {\n\t\t\t\tconst module = variable.module;\n\t\t\t\tif (module && this.chunkByModule.get(module as Module) !== this) continue;\n\t\t\t}\n\t\t\tlet expression = null;\n\t\t\tlet hoisted = false;\n\t\t\tlet uninitialized = false;\n\t\t\tlet local = variable.getName();\n\t\t\tif (variable instanceof LocalVariable) {\n\t\t\t\tif (variable.init === UNDEFINED_EXPRESSION) {\n\t\t\t\t\tuninitialized = true;\n\t\t\t\t}\n\t\t\t\tfor (const declaration of variable.declarations) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tdeclaration.parent instanceof FunctionDeclaration ||\n\t\t\t\t\t\t(declaration instanceof ExportDefaultDeclaration &&\n\t\t\t\t\t\t\tdeclaration.declaration instanceof FunctionDeclaration)\n\t\t\t\t\t) {\n\t\t\t\t\t\thoisted = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (variable instanceof SyntheticNamedExportVariable) {\n\t\t\t\texpression = local;\n\t\t\t\tif (format === 'es') {\n\t\t\t\t\tlocal = variable.renderName!;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\texports.push({\n\t\t\t\texported: exportName,\n\t\t\t\texpression,\n\t\t\t\thoisted,\n\t\t\t\tlocal,\n\t\t\t\tuninitialized\n\t\t\t});\n\t\t}\n\t\treturn exports;\n\t}\n\n\tprivate getDependenciesToBeDeconflicted(\n\t\taddNonNamespacesAndInteropHelpers: boolean,\n\t\taddDependenciesWithoutBindings: boolean,\n\t\tinterop: GetInterop\n\t): DependenciesToBeDeconflicted {\n\t\tconst dependencies = new Set<Chunk | ExternalModule>();\n\t\tconst deconflictedDefault = new Set<ExternalModule>();\n\t\tconst deconflictedNamespace = new Set<Chunk | ExternalModule>();\n\t\tfor (const variable of [...this.exportNamesByVariable.keys(), ...this.imports]) {\n\t\t\tif (addNonNamespacesAndInteropHelpers || variable.isNamespace) {\n\t\t\t\tconst module = variable.module!;\n\t\t\t\tif (module instanceof ExternalModule) {\n\t\t\t\t\tdependencies.add(module);\n\t\t\t\t\tif (addNonNamespacesAndInteropHelpers) {\n\t\t\t\t\t\tif (variable.name === 'default') {\n\t\t\t\t\t\t\tif (defaultInteropHelpersByInteropType[String(interop(module.id))]) {\n\t\t\t\t\t\t\t\tdeconflictedDefault.add(module);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (variable.name === '*') {\n\t\t\t\t\t\t\tif (namespaceInteropHelpersByInteropType[String(interop(module.id))]) {\n\t\t\t\t\t\t\t\tdeconflictedNamespace.add(module);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst chunk = this.chunkByModule.get(module)!;\n\t\t\t\t\tif (chunk !== this) {\n\t\t\t\t\t\tdependencies.add(chunk);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\taddNonNamespacesAndInteropHelpers &&\n\t\t\t\t\t\t\tchunk.exportMode === 'default' &&\n\t\t\t\t\t\t\tvariable.isNamespace\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tdeconflictedNamespace.add(chunk);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (addDependenciesWithoutBindings) {\n\t\t\tfor (const dependency of this.dependencies) {\n\t\t\t\tdependencies.add(dependency);\n\t\t\t}\n\t\t}\n\t\treturn { deconflictedDefault, deconflictedNamespace, dependencies };\n\t}\n\n\tprivate getFallbackChunkName(): string {\n\t\tif (this.manualChunkAlias) {\n\t\t\treturn this.manualChunkAlias;\n\t\t}\n\t\tif (this.dynamicName) {\n\t\t\treturn this.dynamicName;\n\t\t}\n\t\tif (this.fileName) {\n\t\t\treturn getAliasName(this.fileName);\n\t\t}\n\t\treturn getAliasName(this.orderedModules[this.orderedModules.length - 1].id);\n\t}\n\n\tprivate getImportSpecifiers(): Map<Chunk | ExternalModule, ImportSpecifier[]> {\n\t\tconst { interop } = this.outputOptions;\n\t\tconst importsByDependency = new Map<Chunk | ExternalModule, ImportSpecifier[]>();\n\t\tfor (const variable of this.imports) {\n\t\t\tconst module = variable.module!;\n\t\t\tlet dependency: Chunk | ExternalModule;\n\t\t\tlet imported: string;\n\t\t\tif (module instanceof ExternalModule) {\n\t\t\t\tdependency = module;\n\t\t\t\timported = variable.name;\n\t\t\t\tif (imported !== 'default' && imported !== '*' && interop(module.id) === 'defaultOnly') {\n\t\t\t\t\treturn error(errUnexpectedNamedImport(module.id, imported, false));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdependency = this.chunkByModule.get(module)!;\n\t\t\t\timported = dependency.getVariableExportName(variable);\n\t\t\t}\n\t\t\tgetOrCreate(importsByDependency, dependency, () => []).push({\n\t\t\t\timported,\n\t\t\t\tlocal: variable.getName()\n\t\t\t});\n\t\t}\n\t\treturn importsByDependency;\n\t}\n\n\tprivate getImportedBindingsPerDependency(): { [imported: string]: string[] } {\n\t\tconst importSpecifiers: { [imported: string]: string[] } = {};\n\t\tfor (const [dependency, declaration] of this.renderedDependencies!) {\n\t\t\tconst specifiers = new Set<string>();\n\t\t\tif (declaration.imports) {\n\t\t\t\tfor (const { imported } of declaration.imports) {\n\t\t\t\t\tspecifiers.add(imported);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (declaration.reexports) {\n\t\t\t\tfor (const { imported } of declaration.reexports) {\n\t\t\t\t\tspecifiers.add(imported);\n\t\t\t\t}\n\t\t\t}\n\t\t\timportSpecifiers[dependency.id!] = [...specifiers];\n\t\t}\n\t\treturn importSpecifiers;\n\t}\n\n\tprivate getReexportSpecifiers(): Map<Chunk | ExternalModule, ReexportSpecifier[]> {\n\t\tconst { externalLiveBindings, interop } = this.outputOptions;\n\t\tconst reexportSpecifiers = new Map<Chunk | ExternalModule, ReexportSpecifier[]>();\n\t\tfor (let exportName of this.getExportNames()) {\n\t\t\tlet dependency: Chunk | ExternalModule;\n\t\t\tlet imported: string;\n\t\t\tlet needsLiveBinding = false;\n\t\t\tif (exportName[0] === '*') {\n\t\t\t\tconst id = exportName.substr(1);\n\t\t\t\tif (interop(id) === 'defaultOnly') {\n\t\t\t\t\tthis.inputOptions.onwarn(errUnexpectedNamespaceReexport(id));\n\t\t\t\t}\n\t\t\t\tneedsLiveBinding = externalLiveBindings;\n\t\t\t\tdependency = this.modulesById.get(id) as ExternalModule;\n\t\t\t\timported = exportName = '*';\n\t\t\t} else {\n\t\t\t\tconst variable = this.exportsByName[exportName];\n\t\t\t\tif (variable instanceof SyntheticNamedExportVariable) continue;\n\t\t\t\tconst module = variable.module!;\n\t\t\t\tif (module instanceof Module) {\n\t\t\t\t\tdependency = this.chunkByModule.get(module)!;\n\t\t\t\t\tif (dependency === this) continue;\n\t\t\t\t\timported = dependency.getVariableExportName(variable);\n\t\t\t\t\tneedsLiveBinding = variable.isReassigned;\n\t\t\t\t} else {\n\t\t\t\t\tdependency = module;\n\t\t\t\t\timported = variable.name;\n\t\t\t\t\tif (imported !== 'default' && imported !== '*' && interop(module.id) === 'defaultOnly') {\n\t\t\t\t\t\treturn error(errUnexpectedNamedImport(module.id, imported, true));\n\t\t\t\t\t}\n\t\t\t\t\tneedsLiveBinding =\n\t\t\t\t\t\texternalLiveBindings &&\n\t\t\t\t\t\t(imported !== 'default' || isDefaultAProperty(String(interop(module.id)), true));\n\t\t\t\t}\n\t\t\t}\n\t\t\tgetOrCreate(reexportSpecifiers, dependency, () => []).push({\n\t\t\t\timported,\n\t\t\t\tneedsLiveBinding,\n\t\t\t\treexported: exportName\n\t\t\t});\n\t\t}\n\t\treturn reexportSpecifiers;\n\t}\n\n\tprivate getReferencedFiles(): string[] {\n\t\tconst referencedFiles: string[] = [];\n\t\tfor (const module of this.orderedModules) {\n\t\t\tfor (const meta of module.importMetas) {\n\t\t\t\tconst fileName = meta.getReferencedFileName(this.pluginDriver);\n\t\t\t\tif (fileName) {\n\t\t\t\t\treferencedFiles.push(fileName);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn referencedFiles;\n\t}\n\n\tprivate getRelativePath(targetPath: string, stripJsExtension: boolean): string {\n\t\tlet relativePath = normalize(relative(dirname(this.id!), targetPath));\n\t\tif (stripJsExtension && relativePath.endsWith('.js')) {\n\t\t\trelativePath = relativePath.slice(0, -3);\n\t\t}\n\t\tif (relativePath === '..') return '../../' + basename(targetPath);\n\t\tif (relativePath === '') return '../' + basename(targetPath);\n\t\treturn relativePath.startsWith('../') ? relativePath : './' + relativePath;\n\t}\n\n\tprivate inlineChunkDependencies(chunk: Chunk) {\n\t\tfor (const dep of chunk.dependencies) {\n\t\t\tif (this.dependencies.has(dep)) continue;\n\t\t\tthis.dependencies.add(dep);\n\t\t\tif (dep instanceof Chunk) {\n\t\t\t\tthis.inlineChunkDependencies(dep);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate prepareDynamicImportsAndImportMetas() {\n\t\tconst accessedGlobalsByScope = this.accessedGlobalsByScope;\n\t\tfor (const module of this.orderedModules) {\n\t\t\tfor (const { node, resolution } of module.dynamicImports) {\n\t\t\t\tif (node.included) {\n\t\t\t\t\tif (resolution instanceof Module) {\n\t\t\t\t\t\tconst chunk = this.chunkByModule.get(resolution);\n\t\t\t\t\t\tif (chunk === this) {\n\t\t\t\t\t\t\tnode.setInternalResolution(resolution.namespace);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode.setExternalResolution(\n\t\t\t\t\t\t\t\tthis.facadeChunkByModule.get(resolution)?.exportMode || chunk!.exportMode,\n\t\t\t\t\t\t\t\tresolution,\n\t\t\t\t\t\t\t\tthis.outputOptions,\n\t\t\t\t\t\t\t\tthis.pluginDriver,\n\t\t\t\t\t\t\t\taccessedGlobalsByScope\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnode.setExternalResolution(\n\t\t\t\t\t\t\t'external',\n\t\t\t\t\t\t\tresolution,\n\t\t\t\t\t\t\tthis.outputOptions,\n\t\t\t\t\t\t\tthis.pluginDriver,\n\t\t\t\t\t\t\taccessedGlobalsByScope\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const importMeta of module.importMetas) {\n\t\t\t\timportMeta.addAccessedGlobals(this.outputOptions.format, accessedGlobalsByScope);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate setExternalRenderPaths(options: NormalizedOutputOptions, inputBase: string) {\n\t\tfor (const dependency of [...this.dependencies, ...this.dynamicDependencies]) {\n\t\t\tif (dependency instanceof ExternalModule) {\n\t\t\t\tdependency.setRenderPath(options, inputBase);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate setIdentifierRenderResolutions({\n\t\tformat,\n\t\tinterop,\n\t\tnamespaceToStringTag\n\t}: NormalizedOutputOptions) {\n\t\tconst syntheticExports = new Set<SyntheticNamedExportVariable>();\n\t\tfor (const exportName of this.getExportNames()) {\n\t\t\tconst exportVariable = this.exportsByName[exportName];\n\t\t\tif (exportVariable instanceof ExportShimVariable) {\n\t\t\t\tthis.needsExportsShim = true;\n\t\t\t}\n\t\t\tif (\n\t\t\t\tformat !== 'es' &&\n\t\t\t\tformat !== 'system' &&\n\t\t\t\texportVariable.isReassigned &&\n\t\t\t\t!exportVariable.isId\n\t\t\t) {\n\t\t\t\texportVariable.setRenderNames('exports', exportName);\n\t\t\t} else if (exportVariable instanceof SyntheticNamedExportVariable) {\n\t\t\t\tsyntheticExports.add(exportVariable);\n\t\t\t} else {\n\t\t\t\texportVariable.setRenderNames(null, null);\n\t\t\t}\n\t\t}\n\n\t\tconst usedNames = new Set<string>(['Object', 'Promise']);\n\t\tif (this.needsExportsShim) {\n\t\t\tusedNames.add(MISSING_EXPORT_SHIM_VARIABLE);\n\t\t}\n\t\tif (namespaceToStringTag) {\n\t\t\tusedNames.add('Symbol');\n\t\t}\n\t\tswitch (format) {\n\t\t\tcase 'system':\n\t\t\t\tusedNames.add('module').add('exports');\n\t\t\t\tbreak;\n\t\t\tcase 'es':\n\t\t\t\tbreak;\n\t\t\tcase 'cjs':\n\t\t\t\tusedNames.add('module').add('require').add('__filename').add('__dirname');\n\t\t\t// fallthrough\n\t\t\tdefault:\n\t\t\t\tusedNames.add('exports');\n\t\t\t\tfor (const helper of HELPER_NAMES) {\n\t\t\t\t\tusedNames.add(helper);\n\t\t\t\t}\n\t\t}\n\n\t\tdeconflictChunk(\n\t\t\tthis.orderedModules,\n\t\t\tthis.getDependenciesToBeDeconflicted(\n\t\t\t\tformat !== 'es' && format !== 'system',\n\t\t\t\tformat === 'amd' || format === 'umd' || format === 'iife',\n\t\t\t\tinterop\n\t\t\t),\n\t\t\tthis.imports,\n\t\t\tusedNames,\n\t\t\tformat,\n\t\t\tinterop,\n\t\t\tthis.outputOptions.preserveModules,\n\t\t\tthis.outputOptions.externalLiveBindings,\n\t\t\tthis.chunkByModule,\n\t\t\tsyntheticExports,\n\t\t\tthis.exportNamesByVariable,\n\t\t\tthis.accessedGlobalsByScope,\n\t\t\tthis.includedNamespaces\n\t\t);\n\t}\n\n\tprivate setUpChunkImportsAndExportsForModule(module: Module) {\n\t\tconst moduleImports = new Set(module.imports);\n\t\t// when we are not preserving modules, we need to make all namespace variables available for\n\t\t// rendering the namespace object\n\t\tif (!this.outputOptions.preserveModules) {\n\t\t\tif (this.includedNamespaces.has(module)) {\n\t\t\t\tconst memberVariables = module.namespace.getMemberVariables();\n\t\t\t\tfor (const variable of Object.values(memberVariables)) {\n\t\t\t\t\tmoduleImports.add(variable);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (let variable of moduleImports) {\n\t\t\tif (variable instanceof ExportDefaultVariable) {\n\t\t\t\tvariable = variable.getOriginalVariable();\n\t\t\t}\n\t\t\tif (variable instanceof SyntheticNamedExportVariable) {\n\t\t\t\tvariable = variable.getBaseVariable();\n\t\t\t}\n\t\t\tconst chunk = this.chunkByModule.get(variable.module as Module);\n\t\t\tif (chunk !== this) {\n\t\t\t\tthis.imports.add(variable);\n\t\t\t\tif (\n\t\t\t\t\t!(variable instanceof NamespaceVariable && this.outputOptions.preserveModules) &&\n\t\t\t\t\tvariable.module instanceof Module\n\t\t\t\t) {\n\t\t\t\t\tchunk!.exports.add(variable);\n\t\t\t\t\tthis.checkCircularDependencyImport(variable, module);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (\n\t\t\tthis.includedNamespaces.has(module) ||\n\t\t\t(module.info.isEntry && module.preserveSignature !== false) ||\n\t\t\tmodule.includedDynamicImporters.some(importer => this.chunkByModule.get(importer) !== this)\n\t\t) {\n\t\t\tthis.ensureReexportsAreAvailableForModule(module);\n\t\t}\n\t\tfor (const { node, resolution } of module.dynamicImports) {\n\t\t\tif (\n\t\t\t\tnode.included &&\n\t\t\t\tresolution instanceof Module &&\n\t\t\t\tthis.chunkByModule.get(resolution) === this &&\n\t\t\t\t!this.includedNamespaces.has(resolution)\n\t\t\t) {\n\t\t\t\tthis.includedNamespaces.add(resolution);\n\t\t\t\tthis.ensureReexportsAreAvailableForModule(resolution);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction getChunkNameFromModule(module: Module): string {\n\treturn module.chunkName || getAliasName(module.id);\n}\n","import Variable from '../ast/variables/Variable';\nimport { toBase64 } from './base64';\nimport { RESERVED_NAMES } from './reservedNames';\n\nexport function assignExportsToMangledNames(\n\texports: Set<Variable>,\n\texportsByName: Record<string, Variable>,\n\texportNamesByVariable: Map<Variable, string[]>\n): void {\n\tlet nameIndex = 0;\n\tfor (const variable of exports) {\n\t\tlet exportName = variable.name[0];\n\t\tif (exportsByName[exportName]) {\n\t\t\tdo {\n\t\t\t\texportName = toBase64(++nameIndex);\n\t\t\t\t// skip past leading number identifiers\n\t\t\t\tif (exportName.charCodeAt(0) === 49 /* '1' */) {\n\t\t\t\t\tnameIndex += 9 * 64 ** (exportName.length - 1);\n\t\t\t\t\texportName = toBase64(nameIndex);\n\t\t\t\t}\n\t\t\t} while (RESERVED_NAMES[exportName] || exportsByName[exportName]);\n\t\t}\n\t\texportsByName[exportName] = variable;\n\t\texportNamesByVariable.set(variable, [exportName]);\n\t}\n}\n\nexport function assignExportsToNames(\n\texports: Set<Variable>,\n\texportsByName: Record<string, Variable>,\n\texportNamesByVariable: Map<Variable, string[]>\n): void {\n\tfor (const variable of exports) {\n\t\tlet nameIndex = 0;\n\t\tlet exportName = variable.name;\n\t\twhile (exportsByName[exportName]) {\n\t\t\texportName = variable.name + '$' + ++nameIndex;\n\t\t}\n\t\texportsByName[exportName] = variable;\n\t\texportNamesByVariable.set(variable, [exportName]);\n\t}\n}\n","import {\n\tDecodedSourceMapOrMissing,\n\tNormalizedOutputOptions,\n\tPlugin,\n\tRenderedChunk,\n\tSourceMapInput\n} from '../rollup/types';\nimport { PluginDriver } from './PluginDriver';\nimport { decodedSourcemap } from './decodedSourcemap';\n\nexport default function renderChunk({\n\tcode,\n\toptions,\n\toutputPluginDriver,\n\trenderChunk,\n\tsourcemapChain\n}: {\n\tcode: string;\n\toptions: NormalizedOutputOptions;\n\toutputPluginDriver: PluginDriver;\n\trenderChunk: RenderedChunk;\n\tsourcemapChain: DecodedSourceMapOrMissing[];\n}): Promise<string> {\n\tconst renderChunkReducer = (\n\t\tcode: string,\n\t\tresult: { code: string; map?: SourceMapInput } | string | null | undefined,\n\t\tplugin: Plugin\n\t): string => {\n\t\tif (result == null) return code;\n\n\t\tif (typeof result === 'string')\n\t\t\tresult = {\n\t\t\t\tcode: result,\n\t\t\t\tmap: undefined\n\t\t\t};\n\n\t\t// strict null check allows 'null' maps to not be pushed to the chain, while 'undefined' gets the missing map warning\n\t\tif (result.map !== null) {\n\t\t\tconst map = decodedSourcemap(result.map);\n\t\t\tsourcemapChain.push(map || { missing: true, plugin: plugin.name });\n\t\t}\n\n\t\treturn result.code;\n\t};\n\n\treturn outputPluginDriver.hookReduceArg0(\n\t\t'renderChunk',\n\t\t[code, renderChunk, options],\n\t\trenderChunkReducer\n\t);\n}\n","export enum BuildPhase {\n\tLOAD_AND_PARSE = 0,\n\tANALYSE,\n\tGENERATE\n}\n","import Chunk from '../Chunk';\nimport Graph from '../Graph';\nimport Module from '../Module';\nimport {\n\tEmittedChunk,\n\tFilePlaceholder,\n\tNormalizedInputOptions,\n\tNormalizedOutputOptions,\n\tOutputBundleWithPlaceholders,\n\tWarningHandler\n} from '../rollup/types';\nimport { BuildPhase } from './buildPhase';\nimport { createHash } from './crypto';\nimport {\n\terrAssetNotFinalisedForFileName,\n\terrAssetReferenceIdNotFoundForSetSource,\n\terrAssetSourceAlreadySet,\n\terrChunkNotGeneratedForFileName,\n\terrFailedValidation,\n\terrFileNameConflict,\n\terrFileReferenceIdNotFoundForFilename,\n\terrInvalidRollupPhaseForChunkEmission,\n\terrNoAssetSourceSet,\n\terror,\n\twarnDeprecation\n} from './error';\nimport { extname } from './path';\nimport { isPathFragment } from './relativeId';\nimport { makeUnique, renderNamePattern } from './renderNamePattern';\n\nfunction generateAssetFileName(\n\tname: string | undefined,\n\tsource: string | Uint8Array,\n\toutputOptions: NormalizedOutputOptions,\n\tbundle: OutputBundleWithPlaceholders\n): string {\n\tconst emittedName = outputOptions.sanitizeFileName(name || 'asset');\n\treturn makeUnique(\n\t\trenderNamePattern(\n\t\t\ttypeof outputOptions.assetFileNames === 'function'\n\t\t\t\t? outputOptions.assetFileNames({ name, source, type: 'asset' })\n\t\t\t\t: outputOptions.assetFileNames,\n\t\t\t'output.assetFileNames',\n\t\t\t{\n\t\t\t\text: () => extname(emittedName).substr(1),\n\t\t\t\textname: () => extname(emittedName),\n\t\t\t\thash() {\n\t\t\t\t\tconst hash = createHash();\n\t\t\t\t\thash.update(emittedName);\n\t\t\t\t\thash.update(':');\n\t\t\t\t\thash.update(source);\n\t\t\t\t\treturn hash.digest('hex').substr(0, 8);\n\t\t\t\t},\n\t\t\t\tname: () => emittedName.substr(0, emittedName.length - extname(emittedName).length)\n\t\t\t}\n\t\t),\n\t\tbundle\n\t);\n}\n\nfunction reserveFileNameInBundle(\n\tfileName: string,\n\tbundle: OutputBundleWithPlaceholders,\n\twarn: WarningHandler\n) {\n\tif (fileName in bundle) {\n\t\twarn(errFileNameConflict(fileName));\n\t}\n\tbundle[fileName] = FILE_PLACEHOLDER;\n}\n\ninterface ConsumedChunk {\n\tfileName: string | undefined;\n\tmodule: null | Module;\n\tname: string;\n\ttype: 'chunk';\n}\n\ninterface ConsumedAsset {\n\tfileName: string | undefined;\n\tname: string | undefined;\n\tsource: string | Uint8Array | undefined;\n\ttype: 'asset';\n}\n\ninterface EmittedFile {\n\t[key: string]: unknown;\n\tfileName?: string;\n\tname?: string;\n\ttype: 'chunk' | 'asset';\n}\n\ntype ConsumedFile = ConsumedChunk | ConsumedAsset;\n\nexport const FILE_PLACEHOLDER: FilePlaceholder = {\n\ttype: 'placeholder'\n};\n\nfunction hasValidType(\n\temittedFile: unknown\n): emittedFile is { [key: string]: unknown; type: 'asset' | 'chunk' } {\n\treturn Boolean(\n\t\temittedFile &&\n\t\t\t((emittedFile as { [key: string]: unknown }).type === 'asset' ||\n\t\t\t\t(emittedFile as { [key: string]: unknown }).type === 'chunk')\n\t);\n}\n\nfunction hasValidName(emittedFile: {\n\t[key: string]: unknown;\n\ttype: 'asset' | 'chunk';\n}): emittedFile is EmittedFile {\n\tconst validatedName = emittedFile.fileName || emittedFile.name;\n\treturn !validatedName || (typeof validatedName === 'string' && !isPathFragment(validatedName));\n}\n\nfunction getValidSource(\n\tsource: unknown,\n\temittedFile: { fileName?: string; name?: string },\n\tfileReferenceId: string | null\n): string | Uint8Array {\n\tif (!(typeof source === 'string' || source instanceof Uint8Array)) {\n\t\tconst assetName = emittedFile.fileName || emittedFile.name || fileReferenceId;\n\t\treturn error(\n\t\t\terrFailedValidation(\n\t\t\t\t`Could not set source for ${\n\t\t\t\t\ttypeof assetName === 'string' ? `asset \"${assetName}\"` : 'unnamed asset'\n\t\t\t\t}, asset source needs to be a string, Uint8Array or Buffer.`\n\t\t\t)\n\t\t);\n\t}\n\treturn source;\n}\n\nfunction getAssetFileName(file: ConsumedAsset, referenceId: string): string {\n\tif (typeof file.fileName !== 'string') {\n\t\treturn error(errAssetNotFinalisedForFileName(file.name || referenceId));\n\t}\n\treturn file.fileName;\n}\n\nfunction getChunkFileName(\n\tfile: ConsumedChunk,\n\tfacadeChunkByModule: Map<Module, Chunk> | null\n): string {\n\tconst fileName = file.fileName || (file.module && facadeChunkByModule?.get(file.module)?.id);\n\tif (!fileName) return error(errChunkNotGeneratedForFileName(file.fileName || file.name));\n\treturn fileName;\n}\n\nexport class FileEmitter {\n\tprivate bundle: OutputBundleWithPlaceholders | null = null;\n\tprivate facadeChunkByModule: Map<Module, Chunk> | null = null;\n\tprivate filesByReferenceId: Map<string, ConsumedFile>;\n\tprivate outputOptions: NormalizedOutputOptions | null = null;\n\n\tconstructor(\n\t\tprivate readonly graph: Graph,\n\t\tprivate readonly options: NormalizedInputOptions,\n\t\tbaseFileEmitter?: FileEmitter\n\t) {\n\t\tthis.filesByReferenceId = baseFileEmitter\n\t\t\t? new Map(baseFileEmitter.filesByReferenceId)\n\t\t\t: new Map();\n\t}\n\n\tpublic assertAssetsFinalized = (): void => {\n\t\tfor (const [referenceId, emittedFile] of this.filesByReferenceId.entries()) {\n\t\t\tif (emittedFile.type === 'asset' && typeof emittedFile.fileName !== 'string')\n\t\t\t\treturn error(errNoAssetSourceSet(emittedFile.name || referenceId));\n\t\t}\n\t};\n\n\tpublic emitFile = (emittedFile: unknown): string => {\n\t\tif (!hasValidType(emittedFile)) {\n\t\t\treturn error(\n\t\t\t\terrFailedValidation(\n\t\t\t\t\t`Emitted files must be of type \"asset\" or \"chunk\", received \"${\n\t\t\t\t\t\temittedFile && (emittedFile as any).type\n\t\t\t\t\t}\".`\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\tif (!hasValidName(emittedFile)) {\n\t\t\treturn error(\n\t\t\t\terrFailedValidation(\n\t\t\t\t\t`The \"fileName\" or \"name\" properties of emitted files must be strings that are neither absolute nor relative paths, received \"${\n\t\t\t\t\t\temittedFile.fileName || emittedFile.name\n\t\t\t\t\t}\".`\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\tif (emittedFile.type === 'chunk') {\n\t\t\treturn this.emitChunk(emittedFile);\n\t\t} else {\n\t\t\treturn this.emitAsset(emittedFile);\n\t\t}\n\t};\n\n\tpublic getFileName = (fileReferenceId: string): string => {\n\t\tconst emittedFile = this.filesByReferenceId.get(fileReferenceId);\n\t\tif (!emittedFile) return error(errFileReferenceIdNotFoundForFilename(fileReferenceId));\n\t\tif (emittedFile.type === 'chunk') {\n\t\t\treturn getChunkFileName(emittedFile, this.facadeChunkByModule);\n\t\t} else {\n\t\t\treturn getAssetFileName(emittedFile, fileReferenceId);\n\t\t}\n\t};\n\n\tpublic setAssetSource = (referenceId: string, requestedSource: unknown): void => {\n\t\tconst consumedFile = this.filesByReferenceId.get(referenceId);\n\t\tif (!consumedFile) return error(errAssetReferenceIdNotFoundForSetSource(referenceId));\n\t\tif (consumedFile.type !== 'asset') {\n\t\t\treturn error(\n\t\t\t\terrFailedValidation(\n\t\t\t\t\t`Asset sources can only be set for emitted assets but \"${referenceId}\" is an emitted chunk.`\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\tif (consumedFile.source !== undefined) {\n\t\t\treturn error(errAssetSourceAlreadySet(consumedFile.name || referenceId));\n\t\t}\n\t\tconst source = getValidSource(requestedSource, consumedFile, referenceId);\n\t\tif (this.bundle) {\n\t\t\tthis.finalizeAsset(consumedFile, source, referenceId, this.bundle);\n\t\t} else {\n\t\t\tconsumedFile.source = source;\n\t\t}\n\t};\n\n\tpublic setOutputBundle = (\n\t\toutputBundle: OutputBundleWithPlaceholders,\n\t\toutputOptions: NormalizedOutputOptions,\n\t\tfacadeChunkByModule: Map<Module, Chunk>\n\t): void => {\n\t\tthis.outputOptions = outputOptions;\n\t\tthis.bundle = outputBundle;\n\t\tthis.facadeChunkByModule = facadeChunkByModule;\n\t\tfor (const emittedFile of this.filesByReferenceId.values()) {\n\t\t\tif (emittedFile.fileName) {\n\t\t\t\treserveFileNameInBundle(emittedFile.fileName, this.bundle, this.options.onwarn);\n\t\t\t}\n\t\t}\n\t\tfor (const [referenceId, consumedFile] of this.filesByReferenceId.entries()) {\n\t\t\tif (consumedFile.type === 'asset' && consumedFile.source !== undefined) {\n\t\t\t\tthis.finalizeAsset(consumedFile, consumedFile.source, referenceId, this.bundle);\n\t\t\t}\n\t\t}\n\t};\n\n\tprivate assignReferenceId(file: ConsumedFile, idBase: string): string {\n\t\tlet referenceId: string | undefined;\n\t\tdo {\n\t\t\tconst hash = createHash();\n\t\t\tif (referenceId) {\n\t\t\t\thash.update(referenceId);\n\t\t\t} else {\n\t\t\t\thash.update(idBase);\n\t\t\t}\n\t\t\treferenceId = hash.digest('hex').substr(0, 8);\n\t\t} while (this.filesByReferenceId.has(referenceId));\n\t\tthis.filesByReferenceId.set(referenceId, file);\n\t\treturn referenceId;\n\t}\n\n\tprivate emitAsset(emittedAsset: EmittedFile): string {\n\t\tconst source =\n\t\t\ttypeof emittedAsset.source !== 'undefined'\n\t\t\t\t? getValidSource(emittedAsset.source, emittedAsset, null)\n\t\t\t\t: undefined;\n\t\tconst consumedAsset: ConsumedAsset = {\n\t\t\tfileName: emittedAsset.fileName,\n\t\t\tname: emittedAsset.name,\n\t\t\tsource,\n\t\t\ttype: 'asset'\n\t\t};\n\t\tconst referenceId = this.assignReferenceId(\n\t\t\tconsumedAsset,\n\t\t\temittedAsset.fileName || emittedAsset.name || emittedAsset.type\n\t\t);\n\t\tif (this.bundle) {\n\t\t\tif (emittedAsset.fileName) {\n\t\t\t\treserveFileNameInBundle(emittedAsset.fileName, this.bundle, this.options.onwarn);\n\t\t\t}\n\t\t\tif (source !== undefined) {\n\t\t\t\tthis.finalizeAsset(consumedAsset, source, referenceId, this.bundle);\n\t\t\t}\n\t\t}\n\t\treturn referenceId;\n\t}\n\n\tprivate emitChunk(emittedChunk: EmittedFile): string {\n\t\tif (this.graph.phase > BuildPhase.LOAD_AND_PARSE) {\n\t\t\treturn error(errInvalidRollupPhaseForChunkEmission());\n\t\t}\n\t\tif (typeof emittedChunk.id !== 'string') {\n\t\t\treturn error(\n\t\t\t\terrFailedValidation(\n\t\t\t\t\t`Emitted chunks need to have a valid string id, received \"${emittedChunk.id}\"`\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\tconst consumedChunk: ConsumedChunk = {\n\t\t\tfileName: emittedChunk.fileName,\n\t\t\tmodule: null,\n\t\t\tname: emittedChunk.name || emittedChunk.id,\n\t\t\ttype: 'chunk'\n\t\t};\n\t\tthis.graph.moduleLoader\n\t\t\t.emitChunk(emittedChunk as unknown as EmittedChunk)\n\t\t\t.then(module => (consumedChunk.module = module))\n\t\t\t.catch(() => {\n\t\t\t\t// Avoid unhandled Promise rejection as the error will be thrown later\n\t\t\t\t// once module loading has finished\n\t\t\t});\n\n\t\treturn this.assignReferenceId(consumedChunk, emittedChunk.id);\n\t}\n\n\tprivate finalizeAsset(\n\t\tconsumedFile: ConsumedFile,\n\t\tsource: string | Uint8Array,\n\t\treferenceId: string,\n\t\tbundle: OutputBundleWithPlaceholders\n\t): void {\n\t\tconst fileName =\n\t\t\tconsumedFile.fileName ||\n\t\t\tfindExistingAssetFileNameWithSource(bundle, source) ||\n\t\t\tgenerateAssetFileName(consumedFile.name, source, this.outputOptions!, bundle);\n\n\t\t// We must not modify the original assets to avoid interaction between outputs\n\t\tconst assetWithFileName = { ...consumedFile, fileName, source };\n\t\tthis.filesByReferenceId.set(referenceId, assetWithFileName);\n\t\tconst { options } = this;\n\t\tbundle[fileName] = {\n\t\t\tfileName,\n\t\t\tget isAsset(): true {\n\t\t\t\twarnDeprecation(\n\t\t\t\t\t'Accessing \"isAsset\" on files in the bundle is deprecated, please use \"type === \\'asset\\'\" instead',\n\t\t\t\t\ttrue,\n\t\t\t\t\toptions\n\t\t\t\t);\n\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tname: consumedFile.name,\n\t\t\tsource,\n\t\t\ttype: 'asset'\n\t\t};\n\t}\n}\n\nfunction findExistingAssetFileNameWithSource(\n\tbundle: OutputBundleWithPlaceholders,\n\tsource: string | Uint8Array\n): string | null {\n\tfor (const [fileName, outputFile] of Object.entries(bundle)) {\n\t\tif (outputFile.type === 'asset' && areSourcesEqual(source, outputFile.source)) return fileName;\n\t}\n\treturn null;\n}\n\nfunction areSourcesEqual(\n\tsourceA: string | Uint8Array | Buffer,\n\tsourceB: string | Uint8Array | Buffer\n): boolean {\n\tif (typeof sourceA === 'string') {\n\t\treturn sourceA === sourceB;\n\t}\n\tif (typeof sourceB === 'string') {\n\t\treturn false;\n\t}\n\tif ('equals' in sourceA) {\n\t\treturn sourceA.equals(sourceB);\n\t}\n\tif (sourceA.length !== sourceB.length) {\n\t\treturn false;\n\t}\n\tfor (let index = 0; index < sourceA.length; index++) {\n\t\tif (sourceA[index] !== sourceB[index]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n","import { NormalizedOutputOptions } from '../rollup/types';\nimport { PluginDriver } from './PluginDriver';\nimport { error } from './error';\n\nexport interface Addons {\n\tbanner?: string;\n\tfooter?: string;\n\tintro?: string;\n\toutro?: string;\n}\n\nconst concatSep = (out: string, next: string) => (next ? `${out}\\n${next}` : out);\nconst concatDblSep = (out: string, next: string) => (next ? `${out}\\n\\n${next}` : out);\n\nexport async function createAddons(\n\toptions: NormalizedOutputOptions,\n\toutputPluginDriver: PluginDriver\n): Promise<Addons> {\n\ttry {\n\t\tlet [banner, footer, intro, outro] = await Promise.all([\n\t\t\toutputPluginDriver.hookReduceValue('banner', options.banner(), [], concatSep),\n\t\t\toutputPluginDriver.hookReduceValue('footer', options.footer(), [], concatSep),\n\t\t\toutputPluginDriver.hookReduceValue('intro', options.intro(), [], concatDblSep),\n\t\t\toutputPluginDriver.hookReduceValue('outro', options.outro(), [], concatDblSep)\n\t\t]);\n\t\tif (intro) intro += '\\n\\n';\n\t\tif (outro) outro = `\\n\\n${outro}`;\n\t\tif (banner.length) banner += '\\n';\n\t\tif (footer.length) footer = '\\n' + footer;\n\n\t\treturn { banner, footer, intro, outro };\n\t} catch (err) {\n\t\treturn error({\n\t\t\tcode: 'ADDON_ERROR',\n\t\t\tmessage: `Could not retrieve ${err.hook}. Check configuration of plugin ${err.plugin}.\n\\tError Message: ${err.message}`\n\t\t});\n\t}\n}\n","import ExternalModule from '../ExternalModule';\nimport Module from '../Module';\nimport { getOrCreate } from './getOrCreate';\n\ntype DependentModuleMap = Map<Module, Set<Module>>;\ntype ChunkDefinitions = { alias: string | null; modules: Module[] }[];\n\nexport function getChunkAssignments(\n\tentryModules: Module[],\n\tmanualChunkAliasByEntry: Map<Module, string>\n): ChunkDefinitions {\n\tconst chunkDefinitions: ChunkDefinitions = [];\n\tconst modulesInManualChunks = new Set<Module>(manualChunkAliasByEntry.keys());\n\tconst manualChunkModulesByAlias: Record<string, Module[]> = Object.create(null);\n\tfor (const [entry, alias] of manualChunkAliasByEntry) {\n\t\tconst chunkModules = (manualChunkModulesByAlias[alias] =\n\t\t\tmanualChunkModulesByAlias[alias] || []);\n\t\taddStaticDependenciesToManualChunk(entry, chunkModules, modulesInManualChunks);\n\t}\n\tfor (const [alias, modules] of Object.entries(manualChunkModulesByAlias)) {\n\t\tchunkDefinitions.push({ alias, modules });\n\t}\n\n\tconst assignedEntryPointsByModule: DependentModuleMap = new Map();\n\tconst { dependentEntryPointsByModule, dynamicEntryModules } = analyzeModuleGraph(entryModules);\n\tconst dynamicallyDependentEntryPointsByDynamicEntry: DependentModuleMap =\n\t\tgetDynamicDependentEntryPoints(dependentEntryPointsByModule, dynamicEntryModules);\n\tconst staticEntries = new Set(entryModules);\n\n\tfunction assignEntryToStaticDependencies(\n\t\tentry: Module,\n\t\tdynamicDependentEntryPoints: Set<Module> | null\n\t) {\n\t\tconst modulesToHandle = new Set([entry]);\n\t\tfor (const module of modulesToHandle) {\n\t\t\tconst assignedEntryPoints = getOrCreate(assignedEntryPointsByModule, module, () => new Set());\n\t\t\tif (\n\t\t\t\tdynamicDependentEntryPoints &&\n\t\t\t\tareEntryPointsContainedOrDynamicallyDependent(\n\t\t\t\t\tdynamicDependentEntryPoints,\n\t\t\t\t\tdependentEntryPointsByModule.get(module)!\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t} else {\n\t\t\t\tassignedEntryPoints.add(entry);\n\t\t\t}\n\t\t\tfor (const dependency of module.getDependenciesToBeIncluded()) {\n\t\t\t\tif (!(dependency instanceof ExternalModule || modulesInManualChunks.has(dependency))) {\n\t\t\t\t\tmodulesToHandle.add(dependency);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction areEntryPointsContainedOrDynamicallyDependent(\n\t\tentryPoints: Set<Module>,\n\t\tcontainedIn: Set<Module>\n\t): boolean {\n\t\tconst entriesToCheck = new Set(entryPoints);\n\t\tfor (const entry of entriesToCheck) {\n\t\t\tif (!containedIn.has(entry)) {\n\t\t\t\tif (staticEntries.has(entry)) return false;\n\t\t\t\tconst dynamicallyDependentEntryPoints =\n\t\t\t\t\tdynamicallyDependentEntryPointsByDynamicEntry.get(entry)!;\n\t\t\t\tfor (const dependentEntry of dynamicallyDependentEntryPoints) {\n\t\t\t\t\tentriesToCheck.add(dependentEntry);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\tfor (const entry of entryModules) {\n\t\tif (!modulesInManualChunks.has(entry)) {\n\t\t\tassignEntryToStaticDependencies(entry, null);\n\t\t}\n\t}\n\n\tfor (const entry of dynamicEntryModules) {\n\t\tif (!modulesInManualChunks.has(entry)) {\n\t\t\tassignEntryToStaticDependencies(\n\t\t\t\tentry,\n\t\t\t\tdynamicallyDependentEntryPointsByDynamicEntry.get(entry)!\n\t\t\t);\n\t\t}\n\t}\n\n\tchunkDefinitions.push(\n\t\t...createChunks([...entryModules, ...dynamicEntryModules], assignedEntryPointsByModule)\n\t);\n\treturn chunkDefinitions;\n}\n\nfunction addStaticDependenciesToManualChunk(\n\tentry: Module,\n\tmanualChunkModules: Module[],\n\tmodulesInManualChunks: Set<Module>\n) {\n\tconst modulesToHandle = new Set([entry]);\n\tfor (const module of modulesToHandle) {\n\t\tmodulesInManualChunks.add(module);\n\t\tmanualChunkModules.push(module);\n\t\tfor (const dependency of module.dependencies) {\n\t\t\tif (!(dependency instanceof ExternalModule || modulesInManualChunks.has(dependency))) {\n\t\t\t\tmodulesToHandle.add(dependency);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction analyzeModuleGraph(entryModules: Module[]): {\n\tdependentEntryPointsByModule: DependentModuleMap;\n\tdynamicEntryModules: Set<Module>;\n} {\n\tconst dynamicEntryModules = new Set<Module>();\n\tconst dependentEntryPointsByModule: DependentModuleMap = new Map();\n\tconst entriesToHandle = new Set(entryModules);\n\tfor (const currentEntry of entriesToHandle) {\n\t\tconst modulesToHandle = new Set<Module>([currentEntry]);\n\t\tfor (const module of modulesToHandle) {\n\t\t\tgetOrCreate(dependentEntryPointsByModule, module, () => new Set()).add(currentEntry);\n\t\t\tfor (const dependency of module.getDependenciesToBeIncluded()) {\n\t\t\t\tif (!(dependency instanceof ExternalModule)) {\n\t\t\t\t\tmodulesToHandle.add(dependency);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const { resolution } of module.dynamicImports) {\n\t\t\t\tif (resolution instanceof Module && resolution.includedDynamicImporters.length > 0) {\n\t\t\t\t\tdynamicEntryModules.add(resolution);\n\t\t\t\t\tentriesToHandle.add(resolution);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const dependency of module.implicitlyLoadedBefore) {\n\t\t\t\tdynamicEntryModules.add(dependency);\n\t\t\t\tentriesToHandle.add(dependency);\n\t\t\t}\n\t\t}\n\t}\n\treturn { dependentEntryPointsByModule, dynamicEntryModules };\n}\n\nfunction getDynamicDependentEntryPoints(\n\tdependentEntryPointsByModule: DependentModuleMap,\n\tdynamicEntryModules: Set<Module>\n): DependentModuleMap {\n\tconst dynamicallyDependentEntryPointsByDynamicEntry: DependentModuleMap = new Map();\n\tfor (const dynamicEntry of dynamicEntryModules) {\n\t\tconst dynamicDependentEntryPoints = getOrCreate(\n\t\t\tdynamicallyDependentEntryPointsByDynamicEntry,\n\t\t\tdynamicEntry,\n\t\t\t() => new Set()\n\t\t);\n\t\tfor (const importer of [\n\t\t\t...dynamicEntry.includedDynamicImporters,\n\t\t\t...dynamicEntry.implicitlyLoadedAfter\n\t\t]) {\n\t\t\tfor (const entryPoint of dependentEntryPointsByModule.get(importer)!) {\n\t\t\t\tdynamicDependentEntryPoints.add(entryPoint);\n\t\t\t}\n\t\t}\n\t}\n\treturn dynamicallyDependentEntryPointsByDynamicEntry;\n}\n\nfunction createChunks(\n\tallEntryPoints: Module[],\n\tassignedEntryPointsByModule: DependentModuleMap\n): ChunkDefinitions {\n\tconst chunkModules: { [chunkSignature: string]: Module[] } = Object.create(null);\n\tfor (const [module, assignedEntryPoints] of assignedEntryPointsByModule) {\n\t\tlet chunkSignature = '';\n\t\tfor (const entry of allEntryPoints) {\n\t\t\tchunkSignature += assignedEntryPoints.has(entry) ? 'X' : '_';\n\t\t}\n\t\tconst chunk = chunkModules[chunkSignature];\n\t\tif (chunk) {\n\t\t\tchunk.push(module);\n\t\t} else {\n\t\t\tchunkModules[chunkSignature] = [module];\n\t\t}\n\t}\n\treturn Object.values(chunkModules).map(modules => ({\n\t\talias: null,\n\t\tmodules\n\t}));\n}\n","import ExternalModule from '../ExternalModule';\nimport Module from '../Module';\nimport relativeId from './relativeId';\n\ninterface OrderedExecutionUnit {\n\texecIndex: number;\n}\n\nconst compareExecIndex = <T extends OrderedExecutionUnit>(unitA: T, unitB: T) =>\n\tunitA.execIndex > unitB.execIndex ? 1 : -1;\n\nexport function sortByExecutionOrder(units: OrderedExecutionUnit[]): void {\n\tunits.sort(compareExecIndex);\n}\n\nexport function analyseModuleExecution(entryModules: Module[]): {\n\tcyclePaths: string[][];\n\torderedModules: Module[];\n} {\n\tlet nextExecIndex = 0;\n\tconst cyclePaths: string[][] = [];\n\tconst analysedModules = new Set<Module | ExternalModule>();\n\tconst dynamicImports = new Set<Module>();\n\tconst parents = new Map<Module | ExternalModule, Module | null>();\n\tconst orderedModules: Module[] = [];\n\n\tconst analyseModule = (module: Module | ExternalModule) => {\n\t\tif (module instanceof Module) {\n\t\t\tfor (const dependency of module.dependencies) {\n\t\t\t\tif (parents.has(dependency)) {\n\t\t\t\t\tif (!analysedModules.has(dependency)) {\n\t\t\t\t\t\tcyclePaths.push(getCyclePath(dependency as Module, module, parents));\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tparents.set(dependency, module);\n\t\t\t\tanalyseModule(dependency);\n\t\t\t}\n\n\t\t\tfor (const dependency of module.implicitlyLoadedBefore) {\n\t\t\t\tdynamicImports.add(dependency);\n\t\t\t}\n\t\t\tfor (const { resolution } of module.dynamicImports) {\n\t\t\t\tif (resolution instanceof Module) {\n\t\t\t\t\tdynamicImports.add(resolution);\n\t\t\t\t}\n\t\t\t}\n\t\t\torderedModules.push(module);\n\t\t}\n\n\t\tmodule.execIndex = nextExecIndex++;\n\t\tanalysedModules.add(module);\n\t};\n\n\tfor (const curEntry of entryModules) {\n\t\tif (!parents.has(curEntry)) {\n\t\t\tparents.set(curEntry, null);\n\t\t\tanalyseModule(curEntry);\n\t\t}\n\t}\n\tfor (const curEntry of dynamicImports) {\n\t\tif (!parents.has(curEntry)) {\n\t\t\tparents.set(curEntry, null);\n\t\t\tanalyseModule(curEntry);\n\t\t}\n\t}\n\n\treturn { cyclePaths, orderedModules };\n}\n\nfunction getCyclePath(\n\tmodule: Module,\n\tparent: Module,\n\tparents: Map<Module | ExternalModule, Module | null>\n) {\n\tconst cycleSymbol = Symbol(module.id);\n\tconst path = [relativeId(module.id)];\n\tlet nextModule = parent;\n\tmodule.cycles.add(cycleSymbol);\n\twhile (nextModule !== module) {\n\t\tnextModule.cycles.add(cycleSymbol);\n\t\tpath.push(relativeId(nextModule.id));\n\t\tnextModule = parents.get(nextModule)!;\n\t}\n\tpath.push(path[0]);\n\tpath.reverse();\n\treturn path;\n}\n","import Chunk from './Chunk';\nimport ExternalModule from './ExternalModule';\nimport Graph from './Graph';\nimport Module from './Module';\nimport {\n\tGetManualChunk,\n\tNormalizedInputOptions,\n\tNormalizedOutputOptions,\n\tOutputAsset,\n\tOutputBundle,\n\tOutputBundleWithPlaceholders,\n\tOutputChunk,\n\tWarningHandler\n} from './rollup/types';\nimport { FILE_PLACEHOLDER } from './utils/FileEmitter';\nimport { PluginDriver } from './utils/PluginDriver';\nimport { Addons, createAddons } from './utils/addons';\nimport { getChunkAssignments } from './utils/chunkAssignment';\nimport commondir from './utils/commondir';\nimport {\n\terrCannotAssignModuleToChunk,\n\terrChunkInvalid,\n\terror,\n\twarnDeprecation\n} from './utils/error';\nimport { sortByExecutionOrder } from './utils/executionOrder';\nimport { basename, isAbsolute } from './utils/path';\nimport { timeEnd, timeStart } from './utils/timers';\n\nexport default class Bundle {\n\tprivate facadeChunkByModule = new Map<Module, Chunk>();\n\tprivate includedNamespaces = new Set<Module>();\n\n\tconstructor(\n\t\tprivate readonly outputOptions: NormalizedOutputOptions,\n\t\tprivate readonly unsetOptions: Set<string>,\n\t\tprivate readonly inputOptions: NormalizedInputOptions,\n\t\tprivate readonly pluginDriver: PluginDriver,\n\t\tprivate readonly graph: Graph\n\t) {}\n\n\tasync generate(isWrite: boolean): Promise<OutputBundle> {\n\t\ttimeStart('GENERATE', 1);\n\t\tconst outputBundle: OutputBundleWithPlaceholders = Object.create(null);\n\t\tthis.pluginDriver.setOutputBundle(outputBundle, this.outputOptions, this.facadeChunkByModule);\n\t\ttry {\n\t\t\tawait this.pluginDriver.hookParallel('renderStart', [this.outputOptions, this.inputOptions]);\n\n\t\t\ttimeStart('generate chunks', 2);\n\t\t\tconst chunks = await this.generateChunks();\n\t\t\tif (chunks.length > 1) {\n\t\t\t\tvalidateOptionsForMultiChunkOutput(this.outputOptions, this.inputOptions.onwarn);\n\t\t\t}\n\t\t\tconst inputBase = commondir(getAbsoluteEntryModulePaths(chunks));\n\t\t\ttimeEnd('generate chunks', 2);\n\n\t\t\ttimeStart('render modules', 2);\n\n\t\t\t// We need to create addons before prerender because at the moment, there\n\t\t\t// can be no async code between prerender and render due to internal state\n\t\t\tconst addons = await createAddons(this.outputOptions, this.pluginDriver);\n\t\t\tthis.prerenderChunks(chunks, inputBase);\n\t\t\ttimeEnd('render modules', 2);\n\n\t\t\tawait this.addFinalizedChunksToBundle(chunks, inputBase, addons, outputBundle);\n\t\t} catch (error) {\n\t\t\tawait this.pluginDriver.hookParallel('renderError', [error]);\n\t\t\tthrow error;\n\t\t}\n\t\tawait this.pluginDriver.hookSeq('generateBundle', [\n\t\t\tthis.outputOptions,\n\t\t\toutputBundle as OutputBundle,\n\t\t\tisWrite\n\t\t]);\n\t\tthis.finaliseAssets(outputBundle);\n\n\t\ttimeEnd('GENERATE', 1);\n\t\treturn outputBundle as OutputBundle;\n\t}\n\n\tprivate async addFinalizedChunksToBundle(\n\t\tchunks: Chunk[],\n\t\tinputBase: string,\n\t\taddons: Addons,\n\t\toutputBundle: OutputBundleWithPlaceholders\n\t): Promise<void> {\n\t\tthis.assignChunkIds(chunks, inputBase, addons, outputBundle);\n\t\tfor (const chunk of chunks) {\n\t\t\toutputBundle[chunk.id!] = chunk.getChunkInfoWithFileNames() as OutputChunk;\n\t\t}\n\t\tawait Promise.all(\n\t\t\tchunks.map(async chunk => {\n\t\t\t\tconst outputChunk = outputBundle[chunk.id!] as OutputChunk;\n\t\t\t\tObject.assign(outputChunk, await chunk.render(this.outputOptions, addons, outputChunk));\n\t\t\t})\n\t\t);\n\t}\n\n\tprivate async addManualChunks(\n\t\tmanualChunks: Record<string, string[]>\n\t): Promise<Map<Module, string>> {\n\t\tconst manualChunkAliasByEntry = new Map<Module, string>();\n\t\tconst chunkEntries = await Promise.all(\n\t\t\tObject.entries(manualChunks).map(async ([alias, files]) => ({\n\t\t\t\talias,\n\t\t\t\tentries: await this.graph.moduleLoader.addAdditionalModules(files)\n\t\t\t}))\n\t\t);\n\t\tfor (const { alias, entries } of chunkEntries) {\n\t\t\tfor (const entry of entries) {\n\t\t\t\taddModuleToManualChunk(alias, entry, manualChunkAliasByEntry);\n\t\t\t}\n\t\t}\n\t\treturn manualChunkAliasByEntry;\n\t}\n\n\tprivate assignChunkIds(\n\t\tchunks: Chunk[],\n\t\tinputBase: string,\n\t\taddons: Addons,\n\t\tbundle: OutputBundleWithPlaceholders\n\t) {\n\t\tconst entryChunks: Chunk[] = [];\n\t\tconst otherChunks: Chunk[] = [];\n\t\tfor (const chunk of chunks) {\n\t\t\t(chunk.facadeModule && chunk.facadeModule.isUserDefinedEntryPoint\n\t\t\t\t? entryChunks\n\t\t\t\t: otherChunks\n\t\t\t).push(chunk);\n\t\t}\n\n\t\t// make sure entry chunk names take precedence with regard to deconflicting\n\t\tconst chunksForNaming: Chunk[] = entryChunks.concat(otherChunks);\n\t\tfor (const chunk of chunksForNaming) {\n\t\t\tif (this.outputOptions.file) {\n\t\t\t\tchunk.id = basename(this.outputOptions.file);\n\t\t\t} else if (this.outputOptions.preserveModules) {\n\t\t\t\tchunk.id = chunk.generateIdPreserveModules(\n\t\t\t\t\tinputBase,\n\t\t\t\t\tthis.outputOptions,\n\t\t\t\t\tbundle,\n\t\t\t\t\tthis.unsetOptions\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tchunk.id = chunk.generateId(addons, this.outputOptions, bundle, true);\n\t\t\t}\n\t\t\tbundle[chunk.id] = FILE_PLACEHOLDER;\n\t\t}\n\t}\n\n\tprivate assignManualChunks(getManualChunk: GetManualChunk): Map<Module, string> {\n\t\tconst manualChunkAliasByEntry = new Map<Module, string>();\n\t\tconst manualChunksApi = {\n\t\t\tgetModuleIds: () => this.graph.modulesById.keys(),\n\t\t\tgetModuleInfo: this.graph.getModuleInfo\n\t\t};\n\t\tfor (const module of this.graph.modulesById.values()) {\n\t\t\tif (module instanceof Module) {\n\t\t\t\tconst manualChunkAlias = getManualChunk(module.id, manualChunksApi);\n\t\t\t\tif (typeof manualChunkAlias === 'string') {\n\t\t\t\t\taddModuleToManualChunk(manualChunkAlias, module, manualChunkAliasByEntry);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn manualChunkAliasByEntry;\n\t}\n\n\tprivate finaliseAssets(outputBundle: OutputBundleWithPlaceholders): void {\n\t\tfor (const file of Object.values(outputBundle)) {\n\t\t\tif (!file.type) {\n\t\t\t\twarnDeprecation(\n\t\t\t\t\t'A plugin is directly adding properties to the bundle object in the \"generateBundle\" hook. This is deprecated and will be removed in a future Rollup version, please use \"this.emitFile\" instead.',\n\t\t\t\t\ttrue,\n\t\t\t\t\tthis.inputOptions\n\t\t\t\t);\n\t\t\t\t(file as OutputAsset).type = 'asset';\n\t\t\t}\n\t\t\tif (this.outputOptions.validate && typeof (file as OutputChunk).code == 'string') {\n\t\t\t\ttry {\n\t\t\t\t\tthis.graph.contextParse((file as OutputChunk).code, {\n\t\t\t\t\t\tallowHashBang: true,\n\t\t\t\t\t\tecmaVersion: 'latest'\n\t\t\t\t\t});\n\t\t\t\t} catch (exception) {\n\t\t\t\t\tthis.inputOptions.onwarn(errChunkInvalid(file as OutputChunk, exception));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.pluginDriver.finaliseAssets();\n\t}\n\n\tprivate async generateChunks(): Promise<Chunk[]> {\n\t\tconst { manualChunks } = this.outputOptions;\n\t\tconst manualChunkAliasByEntry =\n\t\t\ttypeof manualChunks === 'object'\n\t\t\t\t? await this.addManualChunks(manualChunks)\n\t\t\t\t: this.assignManualChunks(manualChunks);\n\t\tconst chunks: Chunk[] = [];\n\t\tconst chunkByModule = new Map<Module, Chunk>();\n\t\tfor (const { alias, modules } of this.outputOptions.inlineDynamicImports\n\t\t\t? [{ alias: null, modules: getIncludedModules(this.graph.modulesById) }]\n\t\t\t: this.outputOptions.preserveModules\n\t\t\t? getIncludedModules(this.graph.modulesById).map(module => ({\n\t\t\t\t\talias: null,\n\t\t\t\t\tmodules: [module]\n\t\t\t }))\n\t\t\t: getChunkAssignments(this.graph.entryModules, manualChunkAliasByEntry)) {\n\t\t\tsortByExecutionOrder(modules);\n\t\t\tconst chunk = new Chunk(\n\t\t\t\tmodules,\n\t\t\t\tthis.inputOptions,\n\t\t\t\tthis.outputOptions,\n\t\t\t\tthis.unsetOptions,\n\t\t\t\tthis.pluginDriver,\n\t\t\t\tthis.graph.modulesById,\n\t\t\t\tchunkByModule,\n\t\t\t\tthis.facadeChunkByModule,\n\t\t\t\tthis.includedNamespaces,\n\t\t\t\talias\n\t\t\t);\n\t\t\tchunks.push(chunk);\n\t\t\tfor (const module of modules) {\n\t\t\t\tchunkByModule.set(module, chunk);\n\t\t\t}\n\t\t}\n\t\tfor (const chunk of chunks) {\n\t\t\tchunk.link();\n\t\t}\n\t\tconst facades: Chunk[] = [];\n\t\tfor (const chunk of chunks) {\n\t\t\tfacades.push(...chunk.generateFacades());\n\t\t}\n\t\treturn [...chunks, ...facades];\n\t}\n\n\tprivate prerenderChunks(chunks: Chunk[], inputBase: string): void {\n\t\tfor (const chunk of chunks) {\n\t\t\tchunk.generateExports();\n\t\t}\n\t\tfor (const chunk of chunks) {\n\t\t\tchunk.preRender(this.outputOptions, inputBase);\n\t\t}\n\t}\n}\n\nfunction getAbsoluteEntryModulePaths(chunks: Chunk[]): string[] {\n\tconst absoluteEntryModulePaths: string[] = [];\n\tfor (const chunk of chunks) {\n\t\tfor (const entryModule of chunk.entryModules) {\n\t\t\tif (isAbsolute(entryModule.id)) {\n\t\t\t\tabsoluteEntryModulePaths.push(entryModule.id);\n\t\t\t}\n\t\t}\n\t}\n\treturn absoluteEntryModulePaths;\n}\n\nfunction validateOptionsForMultiChunkOutput(\n\toutputOptions: NormalizedOutputOptions,\n\tonWarn: WarningHandler\n) {\n\tif (outputOptions.format === 'umd' || outputOptions.format === 'iife')\n\t\treturn error({\n\t\t\tcode: 'INVALID_OPTION',\n\t\t\tmessage: 'UMD and IIFE output formats are not supported for code-splitting builds.'\n\t\t});\n\tif (typeof outputOptions.file === 'string')\n\t\treturn error({\n\t\t\tcode: 'INVALID_OPTION',\n\t\t\tmessage:\n\t\t\t\t'When building multiple chunks, the \"output.dir\" option must be used, not \"output.file\". ' +\n\t\t\t\t'To inline dynamic imports, set the \"inlineDynamicImports\" option.'\n\t\t});\n\tif (outputOptions.sourcemapFile)\n\t\treturn error({\n\t\t\tcode: 'INVALID_OPTION',\n\t\t\tmessage: '\"output.sourcemapFile\" is only supported for single-file builds.'\n\t\t});\n\tif (!outputOptions.amd.autoId && outputOptions.amd.id)\n\t\tonWarn({\n\t\t\tcode: 'INVALID_OPTION',\n\t\t\tmessage:\n\t\t\t\t'\"output.amd.id\" is only properly supported for single-file builds. Use \"output.amd.autoId\" and \"output.amd.basePath\".'\n\t\t});\n}\n\nfunction getIncludedModules(modulesById: Map<string, Module | ExternalModule>): Module[] {\n\treturn [...modulesById.values()].filter(\n\t\tmodule =>\n\t\t\tmodule instanceof Module &&\n\t\t\t(module.isIncluded() || module.info.isEntry || module.includedDynamicImporters.length > 0)\n\t) as Module[];\n}\n\nfunction addModuleToManualChunk(\n\talias: string,\n\tmodule: Module,\n\tmanualChunkAliasByEntry: Map<Module, string>\n) {\n\tconst existingAlias = manualChunkAliasByEntry.get(module);\n\tif (typeof existingAlias === 'string' && existingAlias !== alias) {\n\t\treturn error(errCannotAssignModuleToChunk(module.id, alias, existingAlias));\n\t}\n\tmanualChunkAliasByEntry.set(module, alias);\n}\n","import * as path from './path';\n\n// ported from https://github.com/substack/node-commondir\nexport default function commondir(files: string[]): string {\n\tif (files.length === 0) return '/';\n\tif (files.length === 1) return path.dirname(files[0]);\n\tconst commonSegments = files.slice(1).reduce((commonSegments, file) => {\n\t\tconst pathSegements = file.split(/\\/+|\\\\+/);\n\t\tlet i;\n\t\tfor (\n\t\t\ti = 0;\n\t\t\tcommonSegments[i] === pathSegements[i] &&\n\t\t\ti < Math.min(commonSegments.length, pathSegements.length);\n\t\t\ti++\n\t\t);\n\t\treturn commonSegments.slice(0, i);\n\t}, files[0].split(/\\/+|\\\\+/));\n\n\t// Windows correctly handles paths with forward-slashes\n\treturn commonSegments.length > 1 ? commonSegments.join('/') : '/';\n}\n","// Reserved word lists for various dialects of the language\n\nvar reservedWords = {\n 3: \"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile\",\n 5: \"class enum extends super const export import\",\n 6: \"enum\",\n strict: \"implements interface let package private protected public static yield\",\n strictBind: \"eval arguments\"\n};\n\n// And the keywords\n\nvar ecma5AndLessKeywords = \"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this\";\n\nvar keywords = {\n 5: ecma5AndLessKeywords,\n \"5module\": ecma5AndLessKeywords + \" export import\",\n 6: ecma5AndLessKeywords + \" const class extends export import super\"\n};\n\nvar keywordRelationalOperator = /^in(stanceof)?$/;\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point above 128.\n// Generated by `bin/generate-identifier-regex.js`.\nvar nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08c7\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\u9ffc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7ca\\ua7f5-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab69\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\nvar nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08d3-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf\\u1ac0\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1df9\\u1dfb-\\u1dff\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\";\n\nvar nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\");\nvar nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\");\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by bin/generate-identifier-regex.js\n\n// eslint-disable-next-line comma-spacing\nvar astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938];\n\n// eslint-disable-next-line comma-spacing\nvar astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239];\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code, set) {\n var pos = 0x10000;\n for (var i = 0; i < set.length; i += 2) {\n pos += set[i];\n if (pos > code) { return false }\n pos += set[i + 1];\n if (pos >= code) { return true }\n }\n}\n\n// Test whether a given character code starts an identifier.\n\nfunction isIdentifierStart(code, astral) {\n if (code < 65) { return code === 36 }\n if (code < 91) { return true }\n if (code < 97) { return code === 95 }\n if (code < 123) { return true }\n if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)) }\n if (astral === false) { return false }\n return isInAstralSet(code, astralIdentifierStartCodes)\n}\n\n// Test whether a given character is part of an identifier.\n\nfunction isIdentifierChar(code, astral) {\n if (code < 48) { return code === 36 }\n if (code < 58) { return true }\n if (code < 65) { return false }\n if (code < 91) { return true }\n if (code < 97) { return code === 95 }\n if (code < 123) { return true }\n if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)) }\n if (astral === false) { return false }\n return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes)\n}\n\n// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between regular\n// expressions and divisions. It is set on all token types that can\n// be followed by an expression (thus, a slash after them would be a\n// regular expression).\n//\n// The `startsExpr` property is used to check if the token ends a\n// `yield` expression. It is set on all token types that either can\n// directly start an expression (like a quotation mark) or can\n// continue an expression (like the body of a string).\n//\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nvar TokenType = function TokenType(label, conf) {\n if ( conf === void 0 ) conf = {};\n\n this.label = label;\n this.keyword = conf.keyword;\n this.beforeExpr = !!conf.beforeExpr;\n this.startsExpr = !!conf.startsExpr;\n this.isLoop = !!conf.isLoop;\n this.isAssign = !!conf.isAssign;\n this.prefix = !!conf.prefix;\n this.postfix = !!conf.postfix;\n this.binop = conf.binop || null;\n this.updateContext = null;\n};\n\nfunction binop(name, prec) {\n return new TokenType(name, {beforeExpr: true, binop: prec})\n}\nvar beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true};\n\n// Map keyword names to token types.\n\nvar keywords$1 = {};\n\n// Succinct definitions of keyword token types\nfunction kw(name, options) {\n if ( options === void 0 ) options = {};\n\n options.keyword = name;\n return keywords$1[name] = new TokenType(name, options)\n}\n\nvar types = {\n num: new TokenType(\"num\", startsExpr),\n regexp: new TokenType(\"regexp\", startsExpr),\n string: new TokenType(\"string\", startsExpr),\n name: new TokenType(\"name\", startsExpr),\n privateId: new TokenType(\"privateId\", startsExpr),\n eof: new TokenType(\"eof\"),\n\n // Punctuation token types.\n bracketL: new TokenType(\"[\", {beforeExpr: true, startsExpr: true}),\n bracketR: new TokenType(\"]\"),\n braceL: new TokenType(\"{\", {beforeExpr: true, startsExpr: true}),\n braceR: new TokenType(\"}\"),\n parenL: new TokenType(\"(\", {beforeExpr: true, startsExpr: true}),\n parenR: new TokenType(\")\"),\n comma: new TokenType(\",\", beforeExpr),\n semi: new TokenType(\";\", beforeExpr),\n colon: new TokenType(\":\", beforeExpr),\n dot: new TokenType(\".\"),\n question: new TokenType(\"?\", beforeExpr),\n questionDot: new TokenType(\"?.\"),\n arrow: new TokenType(\"=>\", beforeExpr),\n template: new TokenType(\"template\"),\n invalidTemplate: new TokenType(\"invalidTemplate\"),\n ellipsis: new TokenType(\"...\", beforeExpr),\n backQuote: new TokenType(\"`\", startsExpr),\n dollarBraceL: new TokenType(\"${\", {beforeExpr: true, startsExpr: true}),\n\n // Operators. These carry several kinds of properties to help the\n // parser use them properly (the presence of these properties is\n // what categorizes them as operators).\n //\n // `binop`, when present, specifies that this operator is a binary\n // operator, and will refer to its precedence.\n //\n // `prefix` and `postfix` mark the operator as a prefix or postfix\n // unary operator.\n //\n // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n // binary operators with a very low precedence, that should result\n // in AssignmentExpression nodes.\n\n eq: new TokenType(\"=\", {beforeExpr: true, isAssign: true}),\n assign: new TokenType(\"_=\", {beforeExpr: true, isAssign: true}),\n incDec: new TokenType(\"++/--\", {prefix: true, postfix: true, startsExpr: true}),\n prefix: new TokenType(\"!/~\", {beforeExpr: true, prefix: true, startsExpr: true}),\n logicalOR: binop(\"||\", 1),\n logicalAND: binop(\"&&\", 2),\n bitwiseOR: binop(\"|\", 3),\n bitwiseXOR: binop(\"^\", 4),\n bitwiseAND: binop(\"&\", 5),\n equality: binop(\"==/!=/===/!==\", 6),\n relational: binop(\"</>/<=/>=\", 7),\n bitShift: binop(\"<</>>/>>>\", 8),\n plusMin: new TokenType(\"+/-\", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}),\n modulo: binop(\"%\", 10),\n star: binop(\"*\", 10),\n slash: binop(\"/\", 10),\n starstar: new TokenType(\"**\", {beforeExpr: true}),\n coalesce: binop(\"??\", 1),\n\n // Keyword token types.\n _break: kw(\"break\"),\n _case: kw(\"case\", beforeExpr),\n _catch: kw(\"catch\"),\n _continue: kw(\"continue\"),\n _debugger: kw(\"debugger\"),\n _default: kw(\"default\", beforeExpr),\n _do: kw(\"do\", {isLoop: true, beforeExpr: true}),\n _else: kw(\"else\", beforeExpr),\n _finally: kw(\"finally\"),\n _for: kw(\"for\", {isLoop: true}),\n _function: kw(\"function\", startsExpr),\n _if: kw(\"if\"),\n _return: kw(\"return\", beforeExpr),\n _switch: kw(\"switch\"),\n _throw: kw(\"throw\", beforeExpr),\n _try: kw(\"try\"),\n _var: kw(\"var\"),\n _const: kw(\"const\"),\n _while: kw(\"while\", {isLoop: true}),\n _with: kw(\"with\"),\n _new: kw(\"new\", {beforeExpr: true, startsExpr: true}),\n _this: kw(\"this\", startsExpr),\n _super: kw(\"super\", startsExpr),\n _class: kw(\"class\", startsExpr),\n _extends: kw(\"extends\", beforeExpr),\n _export: kw(\"export\"),\n _import: kw(\"import\", startsExpr),\n _null: kw(\"null\", startsExpr),\n _true: kw(\"true\", startsExpr),\n _false: kw(\"false\", startsExpr),\n _in: kw(\"in\", {beforeExpr: true, binop: 7}),\n _instanceof: kw(\"instanceof\", {beforeExpr: true, binop: 7}),\n _typeof: kw(\"typeof\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _void: kw(\"void\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _delete: kw(\"delete\", {beforeExpr: true, prefix: true, startsExpr: true})\n};\n\n// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\n\nvar lineBreak = /\\r\\n?|\\n|\\u2028|\\u2029/;\nvar lineBreakG = new RegExp(lineBreak.source, \"g\");\n\nfunction isNewLine(code, ecma2019String) {\n return code === 10 || code === 13 || (!ecma2019String && (code === 0x2028 || code === 0x2029))\n}\n\nvar nonASCIIwhitespace = /[\\u1680\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]/;\n\nvar skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\nvar ref = Object.prototype;\nvar hasOwnProperty = ref.hasOwnProperty;\nvar toString = ref.toString;\n\n// Checks if an object has a property.\n\nfunction has(obj, propName) {\n return hasOwnProperty.call(obj, propName)\n}\n\nvar isArray = Array.isArray || (function (obj) { return (\n toString.call(obj) === \"[object Array]\"\n); });\n\nfunction wordsRegexp(words) {\n return new RegExp(\"^(?:\" + words.replace(/ /g, \"|\") + \")$\")\n}\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nvar Position = function Position(line, col) {\n this.line = line;\n this.column = col;\n};\n\nPosition.prototype.offset = function offset (n) {\n return new Position(this.line, this.column + n)\n};\n\nvar SourceLocation = function SourceLocation(p, start, end) {\n this.start = start;\n this.end = end;\n if (p.sourceFile !== null) { this.source = p.sourceFile; }\n};\n\n// The `getLineInfo` function is mostly useful when the\n// `locations` option is off (for performance reasons) and you\n// want to find the line/column position for a given character\n// offset. `input` should be the code string that the offset refers\n// into.\n\nfunction getLineInfo(input, offset) {\n for (var line = 1, cur = 0;;) {\n lineBreakG.lastIndex = cur;\n var match = lineBreakG.exec(input);\n if (match && match.index < offset) {\n ++line;\n cur = match.index + match[0].length;\n } else {\n return new Position(line, offset - cur)\n }\n }\n}\n\n// A second argument must be given to configure the parser process.\n// These options are recognized (only `ecmaVersion` is required):\n\nvar defaultOptions = {\n // `ecmaVersion` indicates the ECMAScript version to parse. Must be\n // either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10\n // (2019), 11 (2020), 12 (2021), 13 (2022), or `\"latest\"` (the\n // latest version the library supports). This influences support\n // for strict mode, the set of reserved words, and support for\n // new syntax features.\n ecmaVersion: null,\n // `sourceType` indicates the mode the code should be parsed in.\n // Can be either `\"script\"` or `\"module\"`. This influences global\n // strict mode and parsing of `import` and `export` declarations.\n sourceType: \"script\",\n // `onInsertedSemicolon` can be a callback that will be called\n // when a semicolon is automatically inserted. It will be passed\n // the position of the comma as an offset, and if `locations` is\n // enabled, it is given the location as a `{line, column}` object\n // as second argument.\n onInsertedSemicolon: null,\n // `onTrailingComma` is similar to `onInsertedSemicolon`, but for\n // trailing commas.\n onTrailingComma: null,\n // By default, reserved words are only enforced if ecmaVersion >= 5.\n // Set `allowReserved` to a boolean value to explicitly turn this on\n // an off. When this option has the value \"never\", reserved words\n // and keywords can also not be used as property names.\n allowReserved: null,\n // When enabled, a return at the top level is not considered an\n // error.\n allowReturnOutsideFunction: false,\n // When enabled, import/export statements are not constrained to\n // appearing at the top of the program, and an import.meta expression\n // in a script isn't considered an error.\n allowImportExportEverywhere: false,\n // By default, await identifiers are allowed to appear at the top-level scope only if ecmaVersion >= 2022.\n // When enabled, await identifiers are allowed to appear at the top-level scope,\n // but they are still not allowed in non-async functions.\n allowAwaitOutsideFunction: null,\n // When enabled, super identifiers are not constrained to\n // appearing in methods and do not raise an error when they appear elsewhere.\n allowSuperOutsideMethod: null,\n // When enabled, hashbang directive in the beginning of file\n // is allowed and treated as a line comment.\n allowHashBang: false,\n // When `locations` is on, `loc` properties holding objects with\n // `start` and `end` properties in `{line, column}` form (with\n // line being 1-based and column 0-based) will be attached to the\n // nodes.\n locations: false,\n // A function can be passed as `onToken` option, which will\n // cause Acorn to call that function with object in the same\n // format as tokens returned from `tokenizer().getToken()`. Note\n // that you are not allowed to call the parser from the\n // callback—that will corrupt its internal state.\n onToken: null,\n // A function can be passed as `onComment` option, which will\n // cause Acorn to call that function with `(block, text, start,\n // end)` parameters whenever a comment is skipped. `block` is a\n // boolean indicating whether this is a block (`/* */`) comment,\n // `text` is the content of the comment, and `start` and `end` are\n // character offsets that denote the start and end of the comment.\n // When the `locations` option is on, two more parameters are\n // passed, the full `{line, column}` locations of the start and\n // end of the comments. Note that you are not allowed to call the\n // parser from the callback—that will corrupt its internal state.\n onComment: null,\n // Nodes have their start and end characters offsets recorded in\n // `start` and `end` properties (directly on the node, rather than\n // the `loc` object, which holds line/column data. To also add a\n // [semi-standardized][range] `range` property holding a `[start,\n // end]` array with the same numbers, set the `ranges` option to\n // `true`.\n //\n // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n ranges: false,\n // It is possible to parse multiple files into a single AST by\n // passing the tree produced by parsing the first file as\n // `program` option in subsequent parses. This will add the\n // toplevel forms of the parsed file to the `Program` (top) node\n // of an existing parse tree.\n program: null,\n // When `locations` is on, you can pass this to record the source\n // file in every node's `loc` object.\n sourceFile: null,\n // This value, if given, is stored in every node, whether\n // `locations` is on or off.\n directSourceFile: null,\n // When enabled, parenthesized expressions are represented by\n // (non-standard) ParenthesizedExpression nodes\n preserveParens: false\n};\n\n// Interpret and default an options object\n\nvar warnedAboutEcmaVersion = false;\n\nfunction getOptions(opts) {\n var options = {};\n\n for (var opt in defaultOptions)\n { options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt]; }\n\n if (options.ecmaVersion === \"latest\") {\n options.ecmaVersion = 1e8;\n } else if (options.ecmaVersion == null) {\n if (!warnedAboutEcmaVersion && typeof console === \"object\" && console.warn) {\n warnedAboutEcmaVersion = true;\n console.warn(\"Since Acorn 8.0.0, options.ecmaVersion is required.\\nDefaulting to 2020, but this will stop working in the future.\");\n }\n options.ecmaVersion = 11;\n } else if (options.ecmaVersion >= 2015) {\n options.ecmaVersion -= 2009;\n }\n\n if (options.allowReserved == null)\n { options.allowReserved = options.ecmaVersion < 5; }\n if (options.allowAwaitOutsideFunction == null)\n { options.allowAwaitOutsideFunction = options.ecmaVersion >= 13; }\n\n if (isArray(options.onToken)) {\n var tokens = options.onToken;\n options.onToken = function (token) { return tokens.push(token); };\n }\n if (isArray(options.onComment))\n { options.onComment = pushComment(options, options.onComment); }\n\n return options\n}\n\nfunction pushComment(options, array) {\n return function(block, text, start, end, startLoc, endLoc) {\n var comment = {\n type: block ? \"Block\" : \"Line\",\n value: text,\n start: start,\n end: end\n };\n if (options.locations)\n { comment.loc = new SourceLocation(this, startLoc, endLoc); }\n if (options.ranges)\n { comment.range = [start, end]; }\n array.push(comment);\n }\n}\n\n// Each scope gets a bitset that may contain these flags\nvar\n SCOPE_TOP = 1,\n SCOPE_FUNCTION = 2,\n SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION,\n SCOPE_ASYNC = 4,\n SCOPE_GENERATOR = 8,\n SCOPE_ARROW = 16,\n SCOPE_SIMPLE_CATCH = 32,\n SCOPE_SUPER = 64,\n SCOPE_DIRECT_SUPER = 128;\n\nfunction functionFlags(async, generator) {\n return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0)\n}\n\n// Used in checkLVal* and declareName to determine the type of a binding\nvar\n BIND_NONE = 0, // Not a binding\n BIND_VAR = 1, // Var-style binding\n BIND_LEXICAL = 2, // Let- or const-style binding\n BIND_FUNCTION = 3, // Function declaration\n BIND_SIMPLE_CATCH = 4, // Simple (identifier pattern) catch binding\n BIND_OUTSIDE = 5; // Special case for function names as bound inside the function\n\nvar Parser = function Parser(options, input, startPos) {\n this.options = options = getOptions(options);\n this.sourceFile = options.sourceFile;\n this.keywords = wordsRegexp(keywords[options.ecmaVersion >= 6 ? 6 : options.sourceType === \"module\" ? \"5module\" : 5]);\n var reserved = \"\";\n if (options.allowReserved !== true) {\n reserved = reservedWords[options.ecmaVersion >= 6 ? 6 : options.ecmaVersion === 5 ? 5 : 3];\n if (options.sourceType === \"module\") { reserved += \" await\"; }\n }\n this.reservedWords = wordsRegexp(reserved);\n var reservedStrict = (reserved ? reserved + \" \" : \"\") + reservedWords.strict;\n this.reservedWordsStrict = wordsRegexp(reservedStrict);\n this.reservedWordsStrictBind = wordsRegexp(reservedStrict + \" \" + reservedWords.strictBind);\n this.input = String(input);\n\n // Used to signal to callers of `readWord1` whether the word\n // contained any escape sequences. This is needed because words with\n // escape sequences must not be interpreted as keywords.\n this.containsEsc = false;\n\n // Set up token state\n\n // The current position of the tokenizer in the input.\n if (startPos) {\n this.pos = startPos;\n this.lineStart = this.input.lastIndexOf(\"\\n\", startPos - 1) + 1;\n this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length;\n } else {\n this.pos = this.lineStart = 0;\n this.curLine = 1;\n }\n\n // Properties of the current token:\n // Its type\n this.type = types.eof;\n // For tokens that include more information than their type, the value\n this.value = null;\n // Its start and end offset\n this.start = this.end = this.pos;\n // And, if locations are used, the {line, column} object\n // corresponding to those offsets\n this.startLoc = this.endLoc = this.curPosition();\n\n // Position information for the previous token\n this.lastTokEndLoc = this.lastTokStartLoc = null;\n this.lastTokStart = this.lastTokEnd = this.pos;\n\n // The context stack is used to superficially track syntactic\n // context to predict whether a regular expression is allowed in a\n // given position.\n this.context = this.initialContext();\n this.exprAllowed = true;\n\n // Figure out if it's a module code.\n this.inModule = options.sourceType === \"module\";\n this.strict = this.inModule || this.strictDirective(this.pos);\n\n // Used to signify the start of a potential arrow function\n this.potentialArrowAt = -1;\n this.potentialArrowInForAwait = false;\n\n // Positions to delayed-check that yield/await does not exist in default parameters.\n this.yieldPos = this.awaitPos = this.awaitIdentPos = 0;\n // Labels in scope.\n this.labels = [];\n // Thus-far undefined exports.\n this.undefinedExports = Object.create(null);\n\n // If enabled, skip leading hashbang line.\n if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === \"#!\")\n { this.skipLineComment(2); }\n\n // Scope tracking for duplicate variable names (see scope.js)\n this.scopeStack = [];\n this.enterScope(SCOPE_TOP);\n\n // For RegExp validation\n this.regexpState = null;\n\n // The stack of private names.\n // Each element has two properties: 'declared' and 'used'.\n // When it exited from the outermost class definition, all used private names must be declared.\n this.privateNameStack = [];\n};\n\nvar prototypeAccessors = { inFunction: { configurable: true },inGenerator: { configurable: true },inAsync: { configurable: true },allowSuper: { configurable: true },allowDirectSuper: { configurable: true },treatFunctionsAsVar: { configurable: true },inNonArrowFunction: { configurable: true } };\n\nParser.prototype.parse = function parse () {\n var node = this.options.program || this.startNode();\n this.nextToken();\n return this.parseTopLevel(node)\n};\n\nprototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 };\nprototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 && !this.currentVarScope().inClassFieldInit };\nprototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 && !this.currentVarScope().inClassFieldInit };\nprototypeAccessors.allowSuper.get = function () {\n var ref = this.currentThisScope();\n var flags = ref.flags;\n var inClassFieldInit = ref.inClassFieldInit;\n return (flags & SCOPE_SUPER) > 0 || inClassFieldInit || this.options.allowSuperOutsideMethod\n};\nprototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 };\nprototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) };\nprototypeAccessors.inNonArrowFunction.get = function () {\n var ref = this.currentThisScope();\n var flags = ref.flags;\n var inClassFieldInit = ref.inClassFieldInit;\n return (flags & SCOPE_FUNCTION) > 0 || inClassFieldInit\n};\n\nParser.extend = function extend () {\n var plugins = [], len = arguments.length;\n while ( len-- ) plugins[ len ] = arguments[ len ];\n\n var cls = this;\n for (var i = 0; i < plugins.length; i++) { cls = plugins[i](cls); }\n return cls\n};\n\nParser.parse = function parse (input, options) {\n return new this(options, input).parse()\n};\n\nParser.parseExpressionAt = function parseExpressionAt (input, pos, options) {\n var parser = new this(options, input, pos);\n parser.nextToken();\n return parser.parseExpression()\n};\n\nParser.tokenizer = function tokenizer (input, options) {\n return new this(options, input)\n};\n\nObject.defineProperties( Parser.prototype, prototypeAccessors );\n\nvar pp = Parser.prototype;\n\n// ## Parser utilities\n\nvar literal = /^(?:'((?:\\\\.|[^'\\\\])*?)'|\"((?:\\\\.|[^\"\\\\])*?)\")/;\npp.strictDirective = function(start) {\n for (;;) {\n // Try to find string literal.\n skipWhiteSpace.lastIndex = start;\n start += skipWhiteSpace.exec(this.input)[0].length;\n var match = literal.exec(this.input.slice(start));\n if (!match) { return false }\n if ((match[1] || match[2]) === \"use strict\") {\n skipWhiteSpace.lastIndex = start + match[0].length;\n var spaceAfter = skipWhiteSpace.exec(this.input), end = spaceAfter.index + spaceAfter[0].length;\n var next = this.input.charAt(end);\n return next === \";\" || next === \"}\" ||\n (lineBreak.test(spaceAfter[0]) &&\n !(/[(`.[+\\-/*%<>=,?^&]/.test(next) || next === \"!\" && this.input.charAt(end + 1) === \"=\"))\n }\n start += match[0].length;\n\n // Skip semicolon, if any.\n skipWhiteSpace.lastIndex = start;\n start += skipWhiteSpace.exec(this.input)[0].length;\n if (this.input[start] === \";\")\n { start++; }\n }\n};\n\n// Predicate that tests whether the next token is of the given\n// type, and if yes, consumes it as a side effect.\n\npp.eat = function(type) {\n if (this.type === type) {\n this.next();\n return true\n } else {\n return false\n }\n};\n\n// Tests whether parsed token is a contextual keyword.\n\npp.isContextual = function(name) {\n return this.type === types.name && this.value === name && !this.containsEsc\n};\n\n// Consumes contextual keyword if possible.\n\npp.eatContextual = function(name) {\n if (!this.isContextual(name)) { return false }\n this.next();\n return true\n};\n\n// Asserts that following token is given contextual keyword.\n\npp.expectContextual = function(name) {\n if (!this.eatContextual(name)) { this.unexpected(); }\n};\n\n// Test whether a semicolon can be inserted at the current position.\n\npp.canInsertSemicolon = function() {\n return this.type === types.eof ||\n this.type === types.braceR ||\n lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n};\n\npp.insertSemicolon = function() {\n if (this.canInsertSemicolon()) {\n if (this.options.onInsertedSemicolon)\n { this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc); }\n return true\n }\n};\n\n// Consume a semicolon, or, failing that, see if we are allowed to\n// pretend that there is a semicolon at this position.\n\npp.semicolon = function() {\n if (!this.eat(types.semi) && !this.insertSemicolon()) { this.unexpected(); }\n};\n\npp.afterTrailingComma = function(tokType, notNext) {\n if (this.type === tokType) {\n if (this.options.onTrailingComma)\n { this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc); }\n if (!notNext)\n { this.next(); }\n return true\n }\n};\n\n// Expect a token of a given type. If found, consume it, otherwise,\n// raise an unexpected token error.\n\npp.expect = function(type) {\n this.eat(type) || this.unexpected();\n};\n\n// Raise an unexpected token error.\n\npp.unexpected = function(pos) {\n this.raise(pos != null ? pos : this.start, \"Unexpected token\");\n};\n\nfunction DestructuringErrors() {\n this.shorthandAssign =\n this.trailingComma =\n this.parenthesizedAssign =\n this.parenthesizedBind =\n this.doubleProto =\n -1;\n}\n\npp.checkPatternErrors = function(refDestructuringErrors, isAssign) {\n if (!refDestructuringErrors) { return }\n if (refDestructuringErrors.trailingComma > -1)\n { this.raiseRecoverable(refDestructuringErrors.trailingComma, \"Comma is not permitted after the rest element\"); }\n var parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind;\n if (parens > -1) { this.raiseRecoverable(parens, \"Parenthesized pattern\"); }\n};\n\npp.checkExpressionErrors = function(refDestructuringErrors, andThrow) {\n if (!refDestructuringErrors) { return false }\n var shorthandAssign = refDestructuringErrors.shorthandAssign;\n var doubleProto = refDestructuringErrors.doubleProto;\n if (!andThrow) { return shorthandAssign >= 0 || doubleProto >= 0 }\n if (shorthandAssign >= 0)\n { this.raise(shorthandAssign, \"Shorthand property assignments are valid only in destructuring patterns\"); }\n if (doubleProto >= 0)\n { this.raiseRecoverable(doubleProto, \"Redefinition of __proto__ property\"); }\n};\n\npp.checkYieldAwaitInDefaultParams = function() {\n if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos))\n { this.raise(this.yieldPos, \"Yield expression cannot be a default value\"); }\n if (this.awaitPos)\n { this.raise(this.awaitPos, \"Await expression cannot be a default value\"); }\n};\n\npp.isSimpleAssignTarget = function(expr) {\n if (expr.type === \"ParenthesizedExpression\")\n { return this.isSimpleAssignTarget(expr.expression) }\n return expr.type === \"Identifier\" || expr.type === \"MemberExpression\"\n};\n\nvar pp$1 = Parser.prototype;\n\n// ### Statement parsing\n\n// Parse a program. Initializes the parser, reads any number of\n// statements, and wraps them in a Program node. Optionally takes a\n// `program` argument. If present, the statements will be appended\n// to its body instead of creating a new node.\n\npp$1.parseTopLevel = function(node) {\n var exports = Object.create(null);\n if (!node.body) { node.body = []; }\n while (this.type !== types.eof) {\n var stmt = this.parseStatement(null, true, exports);\n node.body.push(stmt);\n }\n if (this.inModule)\n { for (var i = 0, list = Object.keys(this.undefinedExports); i < list.length; i += 1)\n {\n var name = list[i];\n\n this.raiseRecoverable(this.undefinedExports[name].start, (\"Export '\" + name + \"' is not defined\"));\n } }\n this.adaptDirectivePrologue(node.body);\n this.next();\n node.sourceType = this.options.sourceType;\n return this.finishNode(node, \"Program\")\n};\n\nvar loopLabel = {kind: \"loop\"}, switchLabel = {kind: \"switch\"};\n\npp$1.isLet = function(context) {\n if (this.options.ecmaVersion < 6 || !this.isContextual(\"let\")) { return false }\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);\n // For ambiguous cases, determine if a LexicalDeclaration (or only a\n // Statement) is allowed here. If context is not empty then only a Statement\n // is allowed. However, `let [` is an explicit negative lookahead for\n // ExpressionStatement, so special-case it first.\n if (nextCh === 91 || nextCh === 92 || nextCh > 0xd7ff && nextCh < 0xdc00) { return true } // '[', '/', astral\n if (context) { return false }\n\n if (nextCh === 123) { return true } // '{'\n if (isIdentifierStart(nextCh, true)) {\n var pos = next + 1;\n while (isIdentifierChar(nextCh = this.input.charCodeAt(pos), true)) { ++pos; }\n if (nextCh === 92 || nextCh > 0xd7ff && nextCh < 0xdc00) { return true }\n var ident = this.input.slice(next, pos);\n if (!keywordRelationalOperator.test(ident)) { return true }\n }\n return false\n};\n\n// check 'async [no LineTerminator here] function'\n// - 'async /*foo*/ function' is OK.\n// - 'async /*\\n*/ function' is invalid.\npp$1.isAsyncFunction = function() {\n if (this.options.ecmaVersion < 8 || !this.isContextual(\"async\"))\n { return false }\n\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, after;\n return !lineBreak.test(this.input.slice(this.pos, next)) &&\n this.input.slice(next, next + 8) === \"function\" &&\n (next + 8 === this.input.length ||\n !(isIdentifierChar(after = this.input.charCodeAt(next + 8)) || after > 0xd7ff && after < 0xdc00))\n};\n\n// Parse a single statement.\n//\n// If expecting a statement and finding a slash operator, parse a\n// regular expression literal. This is to handle cases like\n// `if (foo) /blah/.exec(foo)`, where looking at the previous token\n// does not help.\n\npp$1.parseStatement = function(context, topLevel, exports) {\n var starttype = this.type, node = this.startNode(), kind;\n\n if (this.isLet(context)) {\n starttype = types._var;\n kind = \"let\";\n }\n\n // Most types of statements are recognized by the keyword they\n // start with. Many are trivial to parse, some require a bit of\n // complexity.\n\n switch (starttype) {\n case types._break: case types._continue: return this.parseBreakContinueStatement(node, starttype.keyword)\n case types._debugger: return this.parseDebuggerStatement(node)\n case types._do: return this.parseDoStatement(node)\n case types._for: return this.parseForStatement(node)\n case types._function:\n // Function as sole body of either an if statement or a labeled statement\n // works, but not when it is part of a labeled statement that is the sole\n // body of an if statement.\n if ((context && (this.strict || context !== \"if\" && context !== \"label\")) && this.options.ecmaVersion >= 6) { this.unexpected(); }\n return this.parseFunctionStatement(node, false, !context)\n case types._class:\n if (context) { this.unexpected(); }\n return this.parseClass(node, true)\n case types._if: return this.parseIfStatement(node)\n case types._return: return this.parseReturnStatement(node)\n case types._switch: return this.parseSwitchStatement(node)\n case types._throw: return this.parseThrowStatement(node)\n case types._try: return this.parseTryStatement(node)\n case types._const: case types._var:\n kind = kind || this.value;\n if (context && kind !== \"var\") { this.unexpected(); }\n return this.parseVarStatement(node, kind)\n case types._while: return this.parseWhileStatement(node)\n case types._with: return this.parseWithStatement(node)\n case types.braceL: return this.parseBlock(true, node)\n case types.semi: return this.parseEmptyStatement(node)\n case types._export:\n case types._import:\n if (this.options.ecmaVersion > 10 && starttype === types._import) {\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);\n if (nextCh === 40 || nextCh === 46) // '(' or '.'\n { return this.parseExpressionStatement(node, this.parseExpression()) }\n }\n\n if (!this.options.allowImportExportEverywhere) {\n if (!topLevel)\n { this.raise(this.start, \"'import' and 'export' may only appear at the top level\"); }\n if (!this.inModule)\n { this.raise(this.start, \"'import' and 'export' may appear only with 'sourceType: module'\"); }\n }\n return starttype === types._import ? this.parseImport(node) : this.parseExport(node, exports)\n\n // If the statement does not start with a statement keyword or a\n // brace, it's an ExpressionStatement or LabeledStatement. We\n // simply start parsing an expression, and afterwards, if the\n // next token is a colon and the expression was a simple\n // Identifier node, we switch to interpreting it as a label.\n default:\n if (this.isAsyncFunction()) {\n if (context) { this.unexpected(); }\n this.next();\n return this.parseFunctionStatement(node, true, !context)\n }\n\n var maybeName = this.value, expr = this.parseExpression();\n if (starttype === types.name && expr.type === \"Identifier\" && this.eat(types.colon))\n { return this.parseLabeledStatement(node, maybeName, expr, context) }\n else { return this.parseExpressionStatement(node, expr) }\n }\n};\n\npp$1.parseBreakContinueStatement = function(node, keyword) {\n var isBreak = keyword === \"break\";\n this.next();\n if (this.eat(types.semi) || this.insertSemicolon()) { node.label = null; }\n else if (this.type !== types.name) { this.unexpected(); }\n else {\n node.label = this.parseIdent();\n this.semicolon();\n }\n\n // Verify that there is an actual destination to break or\n // continue to.\n var i = 0;\n for (; i < this.labels.length; ++i) {\n var lab = this.labels[i];\n if (node.label == null || lab.name === node.label.name) {\n if (lab.kind != null && (isBreak || lab.kind === \"loop\")) { break }\n if (node.label && isBreak) { break }\n }\n }\n if (i === this.labels.length) { this.raise(node.start, \"Unsyntactic \" + keyword); }\n return this.finishNode(node, isBreak ? \"BreakStatement\" : \"ContinueStatement\")\n};\n\npp$1.parseDebuggerStatement = function(node) {\n this.next();\n this.semicolon();\n return this.finishNode(node, \"DebuggerStatement\")\n};\n\npp$1.parseDoStatement = function(node) {\n this.next();\n this.labels.push(loopLabel);\n node.body = this.parseStatement(\"do\");\n this.labels.pop();\n this.expect(types._while);\n node.test = this.parseParenExpression();\n if (this.options.ecmaVersion >= 6)\n { this.eat(types.semi); }\n else\n { this.semicolon(); }\n return this.finishNode(node, \"DoWhileStatement\")\n};\n\n// Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n// loop is non-trivial. Basically, we have to parse the init `var`\n// statement or expression, disallowing the `in` operator (see\n// the second parameter to `parseExpression`), and then check\n// whether the next token is `in` or `of`. When there is no init\n// part (semicolon immediately after the opening parenthesis), it\n// is a regular `for` loop.\n\npp$1.parseForStatement = function(node) {\n this.next();\n var awaitAt = (this.options.ecmaVersion >= 9 && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction)) && this.eatContextual(\"await\")) ? this.lastTokStart : -1;\n this.labels.push(loopLabel);\n this.enterScope(0);\n this.expect(types.parenL);\n if (this.type === types.semi) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, null)\n }\n var isLet = this.isLet();\n if (this.type === types._var || this.type === types._const || isLet) {\n var init$1 = this.startNode(), kind = isLet ? \"let\" : this.value;\n this.next();\n this.parseVar(init$1, true, kind);\n this.finishNode(init$1, \"VariableDeclaration\");\n if ((this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) && init$1.declarations.length === 1) {\n if (this.options.ecmaVersion >= 9) {\n if (this.type === types._in) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n } else { node.await = awaitAt > -1; }\n }\n return this.parseForIn(node, init$1)\n }\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, init$1)\n }\n var refDestructuringErrors = new DestructuringErrors;\n var init = this.parseExpression(awaitAt > -1 ? \"await\" : true, refDestructuringErrors);\n if (this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) {\n if (this.options.ecmaVersion >= 9) {\n if (this.type === types._in) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n } else { node.await = awaitAt > -1; }\n }\n this.toAssignable(init, false, refDestructuringErrors);\n this.checkLValPattern(init);\n return this.parseForIn(node, init)\n } else {\n this.checkExpressionErrors(refDestructuringErrors, true);\n }\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, init)\n};\n\npp$1.parseFunctionStatement = function(node, isAsync, declarationPosition) {\n this.next();\n return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync)\n};\n\npp$1.parseIfStatement = function(node) {\n this.next();\n node.test = this.parseParenExpression();\n // allow function declarations in branches, but only in non-strict mode\n node.consequent = this.parseStatement(\"if\");\n node.alternate = this.eat(types._else) ? this.parseStatement(\"if\") : null;\n return this.finishNode(node, \"IfStatement\")\n};\n\npp$1.parseReturnStatement = function(node) {\n if (!this.inFunction && !this.options.allowReturnOutsideFunction)\n { this.raise(this.start, \"'return' outside of function\"); }\n this.next();\n\n // In `return` (and `break`/`continue`), the keywords with\n // optional arguments, we eagerly look for a semicolon or the\n // possibility to insert one.\n\n if (this.eat(types.semi) || this.insertSemicolon()) { node.argument = null; }\n else { node.argument = this.parseExpression(); this.semicolon(); }\n return this.finishNode(node, \"ReturnStatement\")\n};\n\npp$1.parseSwitchStatement = function(node) {\n this.next();\n node.discriminant = this.parseParenExpression();\n node.cases = [];\n this.expect(types.braceL);\n this.labels.push(switchLabel);\n this.enterScope(0);\n\n // Statements under must be grouped (by label) in SwitchCase\n // nodes. `cur` is used to keep the node that we are currently\n // adding statements to.\n\n var cur;\n for (var sawDefault = false; this.type !== types.braceR;) {\n if (this.type === types._case || this.type === types._default) {\n var isCase = this.type === types._case;\n if (cur) { this.finishNode(cur, \"SwitchCase\"); }\n node.cases.push(cur = this.startNode());\n cur.consequent = [];\n this.next();\n if (isCase) {\n cur.test = this.parseExpression();\n } else {\n if (sawDefault) { this.raiseRecoverable(this.lastTokStart, \"Multiple default clauses\"); }\n sawDefault = true;\n cur.test = null;\n }\n this.expect(types.colon);\n } else {\n if (!cur) { this.unexpected(); }\n cur.consequent.push(this.parseStatement(null));\n }\n }\n this.exitScope();\n if (cur) { this.finishNode(cur, \"SwitchCase\"); }\n this.next(); // Closing brace\n this.labels.pop();\n return this.finishNode(node, \"SwitchStatement\")\n};\n\npp$1.parseThrowStatement = function(node) {\n this.next();\n if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))\n { this.raise(this.lastTokEnd, \"Illegal newline after throw\"); }\n node.argument = this.parseExpression();\n this.semicolon();\n return this.finishNode(node, \"ThrowStatement\")\n};\n\n// Reused empty array added for node fields that are always empty.\n\nvar empty = [];\n\npp$1.parseTryStatement = function(node) {\n this.next();\n node.block = this.parseBlock();\n node.handler = null;\n if (this.type === types._catch) {\n var clause = this.startNode();\n this.next();\n if (this.eat(types.parenL)) {\n clause.param = this.parseBindingAtom();\n var simple = clause.param.type === \"Identifier\";\n this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0);\n this.checkLValPattern(clause.param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL);\n this.expect(types.parenR);\n } else {\n if (this.options.ecmaVersion < 10) { this.unexpected(); }\n clause.param = null;\n this.enterScope(0);\n }\n clause.body = this.parseBlock(false);\n this.exitScope();\n node.handler = this.finishNode(clause, \"CatchClause\");\n }\n node.finalizer = this.eat(types._finally) ? this.parseBlock() : null;\n if (!node.handler && !node.finalizer)\n { this.raise(node.start, \"Missing catch or finally clause\"); }\n return this.finishNode(node, \"TryStatement\")\n};\n\npp$1.parseVarStatement = function(node, kind) {\n this.next();\n this.parseVar(node, false, kind);\n this.semicolon();\n return this.finishNode(node, \"VariableDeclaration\")\n};\n\npp$1.parseWhileStatement = function(node) {\n this.next();\n node.test = this.parseParenExpression();\n this.labels.push(loopLabel);\n node.body = this.parseStatement(\"while\");\n this.labels.pop();\n return this.finishNode(node, \"WhileStatement\")\n};\n\npp$1.parseWithStatement = function(node) {\n if (this.strict) { this.raise(this.start, \"'with' in strict mode\"); }\n this.next();\n node.object = this.parseParenExpression();\n node.body = this.parseStatement(\"with\");\n return this.finishNode(node, \"WithStatement\")\n};\n\npp$1.parseEmptyStatement = function(node) {\n this.next();\n return this.finishNode(node, \"EmptyStatement\")\n};\n\npp$1.parseLabeledStatement = function(node, maybeName, expr, context) {\n for (var i$1 = 0, list = this.labels; i$1 < list.length; i$1 += 1)\n {\n var label = list[i$1];\n\n if (label.name === maybeName)\n { this.raise(expr.start, \"Label '\" + maybeName + \"' is already declared\");\n } }\n var kind = this.type.isLoop ? \"loop\" : this.type === types._switch ? \"switch\" : null;\n for (var i = this.labels.length - 1; i >= 0; i--) {\n var label$1 = this.labels[i];\n if (label$1.statementStart === node.start) {\n // Update information about previous labels on this node\n label$1.statementStart = this.start;\n label$1.kind = kind;\n } else { break }\n }\n this.labels.push({name: maybeName, kind: kind, statementStart: this.start});\n node.body = this.parseStatement(context ? context.indexOf(\"label\") === -1 ? context + \"label\" : context : \"label\");\n this.labels.pop();\n node.label = expr;\n return this.finishNode(node, \"LabeledStatement\")\n};\n\npp$1.parseExpressionStatement = function(node, expr) {\n node.expression = expr;\n this.semicolon();\n return this.finishNode(node, \"ExpressionStatement\")\n};\n\n// Parse a semicolon-enclosed block of statements, handling `\"use\n// strict\"` declarations when `allowStrict` is true (used for\n// function bodies).\n\npp$1.parseBlock = function(createNewLexicalScope, node, exitStrict) {\n if ( createNewLexicalScope === void 0 ) createNewLexicalScope = true;\n if ( node === void 0 ) node = this.startNode();\n\n node.body = [];\n this.expect(types.braceL);\n if (createNewLexicalScope) { this.enterScope(0); }\n while (this.type !== types.braceR) {\n var stmt = this.parseStatement(null);\n node.body.push(stmt);\n }\n if (exitStrict) { this.strict = false; }\n this.next();\n if (createNewLexicalScope) { this.exitScope(); }\n return this.finishNode(node, \"BlockStatement\")\n};\n\n// Parse a regular `for` loop. The disambiguation code in\n// `parseStatement` will already have parsed the init statement or\n// expression.\n\npp$1.parseFor = function(node, init) {\n node.init = init;\n this.expect(types.semi);\n node.test = this.type === types.semi ? null : this.parseExpression();\n this.expect(types.semi);\n node.update = this.type === types.parenR ? null : this.parseExpression();\n this.expect(types.parenR);\n node.body = this.parseStatement(\"for\");\n this.exitScope();\n this.labels.pop();\n return this.finishNode(node, \"ForStatement\")\n};\n\n// Parse a `for`/`in` and `for`/`of` loop, which are almost\n// same from parser's perspective.\n\npp$1.parseForIn = function(node, init) {\n var isForIn = this.type === types._in;\n this.next();\n\n if (\n init.type === \"VariableDeclaration\" &&\n init.declarations[0].init != null &&\n (\n !isForIn ||\n this.options.ecmaVersion < 8 ||\n this.strict ||\n init.kind !== \"var\" ||\n init.declarations[0].id.type !== \"Identifier\"\n )\n ) {\n this.raise(\n init.start,\n ((isForIn ? \"for-in\" : \"for-of\") + \" loop variable declaration may not have an initializer\")\n );\n }\n node.left = init;\n node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();\n this.expect(types.parenR);\n node.body = this.parseStatement(\"for\");\n this.exitScope();\n this.labels.pop();\n return this.finishNode(node, isForIn ? \"ForInStatement\" : \"ForOfStatement\")\n};\n\n// Parse a list of variable declarations.\n\npp$1.parseVar = function(node, isFor, kind) {\n node.declarations = [];\n node.kind = kind;\n for (;;) {\n var decl = this.startNode();\n this.parseVarId(decl, kind);\n if (this.eat(types.eq)) {\n decl.init = this.parseMaybeAssign(isFor);\n } else if (kind === \"const\" && !(this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\")))) {\n this.unexpected();\n } else if (decl.id.type !== \"Identifier\" && !(isFor && (this.type === types._in || this.isContextual(\"of\")))) {\n this.raise(this.lastTokEnd, \"Complex binding patterns require an initialization value\");\n } else {\n decl.init = null;\n }\n node.declarations.push(this.finishNode(decl, \"VariableDeclarator\"));\n if (!this.eat(types.comma)) { break }\n }\n return node\n};\n\npp$1.parseVarId = function(decl, kind) {\n decl.id = this.parseBindingAtom();\n this.checkLValPattern(decl.id, kind === \"var\" ? BIND_VAR : BIND_LEXICAL, false);\n};\n\nvar FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4;\n\n// Parse a function declaration or literal (depending on the\n// `statement & FUNC_STATEMENT`).\n\n// Remove `allowExpressionBody` for 7.0.0, as it is only called with false\npp$1.parseFunction = function(node, statement, allowExpressionBody, isAsync) {\n this.initFunction(node);\n if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) {\n if (this.type === types.star && (statement & FUNC_HANGING_STATEMENT))\n { this.unexpected(); }\n node.generator = this.eat(types.star);\n }\n if (this.options.ecmaVersion >= 8)\n { node.async = !!isAsync; }\n\n if (statement & FUNC_STATEMENT) {\n node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types.name ? null : this.parseIdent();\n if (node.id && !(statement & FUNC_HANGING_STATEMENT))\n // If it is a regular function declaration in sloppy mode, then it is\n // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n // mode depends on properties of the current scope (see\n // treatFunctionsAsVar).\n { this.checkLValSimple(node.id, (this.strict || node.generator || node.async) ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION); }\n }\n\n var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n this.enterScope(functionFlags(node.async, node.generator));\n\n if (!(statement & FUNC_STATEMENT))\n { node.id = this.type === types.name ? this.parseIdent() : null; }\n\n this.parseFunctionParams(node);\n this.parseFunctionBody(node, allowExpressionBody, false);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, (statement & FUNC_STATEMENT) ? \"FunctionDeclaration\" : \"FunctionExpression\")\n};\n\npp$1.parseFunctionParams = function(node) {\n this.expect(types.parenL);\n node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8);\n this.checkYieldAwaitInDefaultParams();\n};\n\n// Parse a class declaration or literal (depending on the\n// `isStatement` parameter).\n\npp$1.parseClass = function(node, isStatement) {\n this.next();\n\n // ecma-262 14.6 Class Definitions\n // A class definition is always strict mode code.\n var oldStrict = this.strict;\n this.strict = true;\n\n this.parseClassId(node, isStatement);\n this.parseClassSuper(node);\n var privateNameMap = this.enterClassBody();\n var classBody = this.startNode();\n var hadConstructor = false;\n classBody.body = [];\n this.expect(types.braceL);\n while (this.type !== types.braceR) {\n var element = this.parseClassElement(node.superClass !== null);\n if (element) {\n classBody.body.push(element);\n if (element.type === \"MethodDefinition\" && element.kind === \"constructor\") {\n if (hadConstructor) { this.raise(element.start, \"Duplicate constructor in the same class\"); }\n hadConstructor = true;\n } else if (element.key.type === \"PrivateIdentifier\" && isPrivateNameConflicted(privateNameMap, element)) {\n this.raiseRecoverable(element.key.start, (\"Identifier '#\" + (element.key.name) + \"' has already been declared\"));\n }\n }\n }\n this.strict = oldStrict;\n this.next();\n node.body = this.finishNode(classBody, \"ClassBody\");\n this.exitClassBody();\n return this.finishNode(node, isStatement ? \"ClassDeclaration\" : \"ClassExpression\")\n};\n\npp$1.parseClassElement = function(constructorAllowsSuper) {\n if (this.eat(types.semi)) { return null }\n\n var ecmaVersion = this.options.ecmaVersion;\n var node = this.startNode();\n var keyName = \"\";\n var isGenerator = false;\n var isAsync = false;\n var kind = \"method\";\n\n // Parse modifiers\n node.static = false;\n if (this.eatContextual(\"static\")) {\n if (this.isClassElementNameStart() || this.type === types.star) {\n node.static = true;\n } else {\n keyName = \"static\";\n }\n }\n if (!keyName && ecmaVersion >= 8 && this.eatContextual(\"async\")) {\n if ((this.isClassElementNameStart() || this.type === types.star) && !this.canInsertSemicolon()) {\n isAsync = true;\n } else {\n keyName = \"async\";\n }\n }\n if (!keyName && (ecmaVersion >= 9 || !isAsync) && this.eat(types.star)) {\n isGenerator = true;\n }\n if (!keyName && !isAsync && !isGenerator) {\n var lastValue = this.value;\n if (this.eatContextual(\"get\") || this.eatContextual(\"set\")) {\n if (this.isClassElementNameStart()) {\n kind = lastValue;\n } else {\n keyName = lastValue;\n }\n }\n }\n\n // Parse element name\n if (keyName) {\n // 'async', 'get', 'set', or 'static' were not a keyword contextually.\n // The last token is any of those. Make it the element name.\n node.computed = false;\n node.key = this.startNodeAt(this.lastTokStart, this.lastTokStartLoc);\n node.key.name = keyName;\n this.finishNode(node.key, \"Identifier\");\n } else {\n this.parseClassElementName(node);\n }\n\n // Parse element value\n if (ecmaVersion < 13 || this.type === types.parenL || kind !== \"method\" || isGenerator || isAsync) {\n var isConstructor = !node.static && checkKeyName(node, \"constructor\");\n var allowsDirectSuper = isConstructor && constructorAllowsSuper;\n // Couldn't move this check into the 'parseClassMethod' method for backward compatibility.\n if (isConstructor && kind !== \"method\") { this.raise(node.key.start, \"Constructor can't have get/set modifier\"); }\n node.kind = isConstructor ? \"constructor\" : kind;\n this.parseClassMethod(node, isGenerator, isAsync, allowsDirectSuper);\n } else {\n this.parseClassField(node);\n }\n\n return node\n};\n\npp$1.isClassElementNameStart = function() {\n return (\n this.type === types.name ||\n this.type === types.privateId ||\n this.type === types.num ||\n this.type === types.string ||\n this.type === types.bracketL ||\n this.type.keyword\n )\n};\n\npp$1.parseClassElementName = function(element) {\n if (this.type === types.privateId) {\n if (this.value === \"constructor\") {\n this.raise(this.start, \"Classes can't have an element named '#constructor'\");\n }\n element.computed = false;\n element.key = this.parsePrivateIdent();\n } else {\n this.parsePropertyName(element);\n }\n};\n\npp$1.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) {\n // Check key and flags\n var key = method.key;\n if (method.kind === \"constructor\") {\n if (isGenerator) { this.raise(key.start, \"Constructor can't be a generator\"); }\n if (isAsync) { this.raise(key.start, \"Constructor can't be an async method\"); }\n } else if (method.static && checkKeyName(method, \"prototype\")) {\n this.raise(key.start, \"Classes may not have a static property named prototype\");\n }\n\n // Parse value\n var value = method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper);\n\n // Check value\n if (method.kind === \"get\" && value.params.length !== 0)\n { this.raiseRecoverable(value.start, \"getter should have no params\"); }\n if (method.kind === \"set\" && value.params.length !== 1)\n { this.raiseRecoverable(value.start, \"setter should have exactly one param\"); }\n if (method.kind === \"set\" && value.params[0].type === \"RestElement\")\n { this.raiseRecoverable(value.params[0].start, \"Setter cannot use rest params\"); }\n\n return this.finishNode(method, \"MethodDefinition\")\n};\n\npp$1.parseClassField = function(field) {\n if (checkKeyName(field, \"constructor\")) {\n this.raise(field.key.start, \"Classes can't have a field named 'constructor'\");\n } else if (field.static && checkKeyName(field, \"prototype\")) {\n this.raise(field.key.start, \"Classes can't have a static field named 'prototype'\");\n }\n\n if (this.eat(types.eq)) {\n // To raise SyntaxError if 'arguments' exists in the initializer.\n var scope = this.currentThisScope();\n var inClassFieldInit = scope.inClassFieldInit;\n scope.inClassFieldInit = true;\n field.value = this.parseMaybeAssign();\n scope.inClassFieldInit = inClassFieldInit;\n } else {\n field.value = null;\n }\n this.semicolon();\n\n return this.finishNode(field, \"PropertyDefinition\")\n};\n\npp$1.parseClassId = function(node, isStatement) {\n if (this.type === types.name) {\n node.id = this.parseIdent();\n if (isStatement)\n { this.checkLValSimple(node.id, BIND_LEXICAL, false); }\n } else {\n if (isStatement === true)\n { this.unexpected(); }\n node.id = null;\n }\n};\n\npp$1.parseClassSuper = function(node) {\n node.superClass = this.eat(types._extends) ? this.parseExprSubscripts() : null;\n};\n\npp$1.enterClassBody = function() {\n var element = {declared: Object.create(null), used: []};\n this.privateNameStack.push(element);\n return element.declared\n};\n\npp$1.exitClassBody = function() {\n var ref = this.privateNameStack.pop();\n var declared = ref.declared;\n var used = ref.used;\n var len = this.privateNameStack.length;\n var parent = len === 0 ? null : this.privateNameStack[len - 1];\n for (var i = 0; i < used.length; ++i) {\n var id = used[i];\n if (!has(declared, id.name)) {\n if (parent) {\n parent.used.push(id);\n } else {\n this.raiseRecoverable(id.start, (\"Private field '#\" + (id.name) + \"' must be declared in an enclosing class\"));\n }\n }\n }\n};\n\nfunction isPrivateNameConflicted(privateNameMap, element) {\n var name = element.key.name;\n var curr = privateNameMap[name];\n\n var next = \"true\";\n if (element.type === \"MethodDefinition\" && (element.kind === \"get\" || element.kind === \"set\")) {\n next = (element.static ? \"s\" : \"i\") + element.kind;\n }\n\n // `class { get #a(){}; static set #a(_){} }` is also conflict.\n if (\n curr === \"iget\" && next === \"iset\" ||\n curr === \"iset\" && next === \"iget\" ||\n curr === \"sget\" && next === \"sset\" ||\n curr === \"sset\" && next === \"sget\"\n ) {\n privateNameMap[name] = \"true\";\n return false\n } else if (!curr) {\n privateNameMap[name] = next;\n return false\n } else {\n return true\n }\n}\n\nfunction checkKeyName(node, name) {\n var computed = node.computed;\n var key = node.key;\n return !computed && (\n key.type === \"Identifier\" && key.name === name ||\n key.type === \"Literal\" && key.value === name\n )\n}\n\n// Parses module export declaration.\n\npp$1.parseExport = function(node, exports) {\n this.next();\n // export * from '...'\n if (this.eat(types.star)) {\n if (this.options.ecmaVersion >= 11) {\n if (this.eatContextual(\"as\")) {\n node.exported = this.parseIdent(true);\n this.checkExport(exports, node.exported.name, this.lastTokStart);\n } else {\n node.exported = null;\n }\n }\n this.expectContextual(\"from\");\n if (this.type !== types.string) { this.unexpected(); }\n node.source = this.parseExprAtom();\n this.semicolon();\n return this.finishNode(node, \"ExportAllDeclaration\")\n }\n if (this.eat(types._default)) { // export default ...\n this.checkExport(exports, \"default\", this.lastTokStart);\n var isAsync;\n if (this.type === types._function || (isAsync = this.isAsyncFunction())) {\n var fNode = this.startNode();\n this.next();\n if (isAsync) { this.next(); }\n node.declaration = this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync);\n } else if (this.type === types._class) {\n var cNode = this.startNode();\n node.declaration = this.parseClass(cNode, \"nullableID\");\n } else {\n node.declaration = this.parseMaybeAssign();\n this.semicolon();\n }\n return this.finishNode(node, \"ExportDefaultDeclaration\")\n }\n // export var|const|let|function|class ...\n if (this.shouldParseExportStatement()) {\n node.declaration = this.parseStatement(null);\n if (node.declaration.type === \"VariableDeclaration\")\n { this.checkVariableExport(exports, node.declaration.declarations); }\n else\n { this.checkExport(exports, node.declaration.id.name, node.declaration.id.start); }\n node.specifiers = [];\n node.source = null;\n } else { // export { x, y as z } [from '...']\n node.declaration = null;\n node.specifiers = this.parseExportSpecifiers(exports);\n if (this.eatContextual(\"from\")) {\n if (this.type !== types.string) { this.unexpected(); }\n node.source = this.parseExprAtom();\n } else {\n for (var i = 0, list = node.specifiers; i < list.length; i += 1) {\n // check for keywords used as local names\n var spec = list[i];\n\n this.checkUnreserved(spec.local);\n // check if export is defined\n this.checkLocalExport(spec.local);\n }\n\n node.source = null;\n }\n this.semicolon();\n }\n return this.finishNode(node, \"ExportNamedDeclaration\")\n};\n\npp$1.checkExport = function(exports, name, pos) {\n if (!exports) { return }\n if (has(exports, name))\n { this.raiseRecoverable(pos, \"Duplicate export '\" + name + \"'\"); }\n exports[name] = true;\n};\n\npp$1.checkPatternExport = function(exports, pat) {\n var type = pat.type;\n if (type === \"Identifier\")\n { this.checkExport(exports, pat.name, pat.start); }\n else if (type === \"ObjectPattern\")\n { for (var i = 0, list = pat.properties; i < list.length; i += 1)\n {\n var prop = list[i];\n\n this.checkPatternExport(exports, prop);\n } }\n else if (type === \"ArrayPattern\")\n { for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) {\n var elt = list$1[i$1];\n\n if (elt) { this.checkPatternExport(exports, elt); }\n } }\n else if (type === \"Property\")\n { this.checkPatternExport(exports, pat.value); }\n else if (type === \"AssignmentPattern\")\n { this.checkPatternExport(exports, pat.left); }\n else if (type === \"RestElement\")\n { this.checkPatternExport(exports, pat.argument); }\n else if (type === \"ParenthesizedExpression\")\n { this.checkPatternExport(exports, pat.expression); }\n};\n\npp$1.checkVariableExport = function(exports, decls) {\n if (!exports) { return }\n for (var i = 0, list = decls; i < list.length; i += 1)\n {\n var decl = list[i];\n\n this.checkPatternExport(exports, decl.id);\n }\n};\n\npp$1.shouldParseExportStatement = function() {\n return this.type.keyword === \"var\" ||\n this.type.keyword === \"const\" ||\n this.type.keyword === \"class\" ||\n this.type.keyword === \"function\" ||\n this.isLet() ||\n this.isAsyncFunction()\n};\n\n// Parses a comma-separated list of module exports.\n\npp$1.parseExportSpecifiers = function(exports) {\n var nodes = [], first = true;\n // export { x, y as z } [from '...']\n this.expect(types.braceL);\n while (!this.eat(types.braceR)) {\n if (!first) {\n this.expect(types.comma);\n if (this.afterTrailingComma(types.braceR)) { break }\n } else { first = false; }\n\n var node = this.startNode();\n node.local = this.parseIdent(true);\n node.exported = this.eatContextual(\"as\") ? this.parseIdent(true) : node.local;\n this.checkExport(exports, node.exported.name, node.exported.start);\n nodes.push(this.finishNode(node, \"ExportSpecifier\"));\n }\n return nodes\n};\n\n// Parses import declaration.\n\npp$1.parseImport = function(node) {\n this.next();\n // import '...'\n if (this.type === types.string) {\n node.specifiers = empty;\n node.source = this.parseExprAtom();\n } else {\n node.specifiers = this.parseImportSpecifiers();\n this.expectContextual(\"from\");\n node.source = this.type === types.string ? this.parseExprAtom() : this.unexpected();\n }\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\")\n};\n\n// Parses a comma-separated list of module imports.\n\npp$1.parseImportSpecifiers = function() {\n var nodes = [], first = true;\n if (this.type === types.name) {\n // import defaultObj, { x, y as z } from '...'\n var node = this.startNode();\n node.local = this.parseIdent();\n this.checkLValSimple(node.local, BIND_LEXICAL);\n nodes.push(this.finishNode(node, \"ImportDefaultSpecifier\"));\n if (!this.eat(types.comma)) { return nodes }\n }\n if (this.type === types.star) {\n var node$1 = this.startNode();\n this.next();\n this.expectContextual(\"as\");\n node$1.local = this.parseIdent();\n this.checkLValSimple(node$1.local, BIND_LEXICAL);\n nodes.push(this.finishNode(node$1, \"ImportNamespaceSpecifier\"));\n return nodes\n }\n this.expect(types.braceL);\n while (!this.eat(types.braceR)) {\n if (!first) {\n this.expect(types.comma);\n if (this.afterTrailingComma(types.braceR)) { break }\n } else { first = false; }\n\n var node$2 = this.startNode();\n node$2.imported = this.parseIdent(true);\n if (this.eatContextual(\"as\")) {\n node$2.local = this.parseIdent();\n } else {\n this.checkUnreserved(node$2.imported);\n node$2.local = node$2.imported;\n }\n this.checkLValSimple(node$2.local, BIND_LEXICAL);\n nodes.push(this.finishNode(node$2, \"ImportSpecifier\"));\n }\n return nodes\n};\n\n// Set `ExpressionStatement#directive` property for directive prologues.\npp$1.adaptDirectivePrologue = function(statements) {\n for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {\n statements[i].directive = statements[i].expression.raw.slice(1, -1);\n }\n};\npp$1.isDirectiveCandidate = function(statement) {\n return (\n statement.type === \"ExpressionStatement\" &&\n statement.expression.type === \"Literal\" &&\n typeof statement.expression.value === \"string\" &&\n // Reject parenthesized strings.\n (this.input[statement.start] === \"\\\"\" || this.input[statement.start] === \"'\")\n )\n};\n\nvar pp$2 = Parser.prototype;\n\n// Convert existing expression atom to assignable pattern\n// if possible.\n\npp$2.toAssignable = function(node, isBinding, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 6 && node) {\n switch (node.type) {\n case \"Identifier\":\n if (this.inAsync && node.name === \"await\")\n { this.raise(node.start, \"Cannot use 'await' as identifier inside an async function\"); }\n break\n\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n case \"AssignmentPattern\":\n case \"RestElement\":\n break\n\n case \"ObjectExpression\":\n node.type = \"ObjectPattern\";\n if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n for (var i = 0, list = node.properties; i < list.length; i += 1) {\n var prop = list[i];\n\n this.toAssignable(prop, isBinding);\n // Early error:\n // AssignmentRestProperty[Yield, Await] :\n // `...` DestructuringAssignmentTarget[Yield, Await]\n //\n // It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|.\n if (\n prop.type === \"RestElement\" &&\n (prop.argument.type === \"ArrayPattern\" || prop.argument.type === \"ObjectPattern\")\n ) {\n this.raise(prop.argument.start, \"Unexpected token\");\n }\n }\n break\n\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n if (node.kind !== \"init\") { this.raise(node.key.start, \"Object pattern can't contain getter or setter\"); }\n this.toAssignable(node.value, isBinding);\n break\n\n case \"ArrayExpression\":\n node.type = \"ArrayPattern\";\n if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n this.toAssignableList(node.elements, isBinding);\n break\n\n case \"SpreadElement\":\n node.type = \"RestElement\";\n this.toAssignable(node.argument, isBinding);\n if (node.argument.type === \"AssignmentPattern\")\n { this.raise(node.argument.start, \"Rest elements cannot have a default value\"); }\n break\n\n case \"AssignmentExpression\":\n if (node.operator !== \"=\") { this.raise(node.left.end, \"Only '=' operator can be used for specifying default value.\"); }\n node.type = \"AssignmentPattern\";\n delete node.operator;\n this.toAssignable(node.left, isBinding);\n break\n\n case \"ParenthesizedExpression\":\n this.toAssignable(node.expression, isBinding, refDestructuringErrors);\n break\n\n case \"ChainExpression\":\n this.raiseRecoverable(node.start, \"Optional chaining cannot appear in left-hand side\");\n break\n\n case \"MemberExpression\":\n if (!isBinding) { break }\n\n default:\n this.raise(node.start, \"Assigning to rvalue\");\n }\n } else if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n return node\n};\n\n// Convert list of expression atoms to binding list.\n\npp$2.toAssignableList = function(exprList, isBinding) {\n var end = exprList.length;\n for (var i = 0; i < end; i++) {\n var elt = exprList[i];\n if (elt) { this.toAssignable(elt, isBinding); }\n }\n if (end) {\n var last = exprList[end - 1];\n if (this.options.ecmaVersion === 6 && isBinding && last && last.type === \"RestElement\" && last.argument.type !== \"Identifier\")\n { this.unexpected(last.argument.start); }\n }\n return exprList\n};\n\n// Parses spread element.\n\npp$2.parseSpread = function(refDestructuringErrors) {\n var node = this.startNode();\n this.next();\n node.argument = this.parseMaybeAssign(false, refDestructuringErrors);\n return this.finishNode(node, \"SpreadElement\")\n};\n\npp$2.parseRestBinding = function() {\n var node = this.startNode();\n this.next();\n\n // RestElement inside of a function parameter must be an identifier\n if (this.options.ecmaVersion === 6 && this.type !== types.name)\n { this.unexpected(); }\n\n node.argument = this.parseBindingAtom();\n\n return this.finishNode(node, \"RestElement\")\n};\n\n// Parses lvalue (assignable) atom.\n\npp$2.parseBindingAtom = function() {\n if (this.options.ecmaVersion >= 6) {\n switch (this.type) {\n case types.bracketL:\n var node = this.startNode();\n this.next();\n node.elements = this.parseBindingList(types.bracketR, true, true);\n return this.finishNode(node, \"ArrayPattern\")\n\n case types.braceL:\n return this.parseObj(true)\n }\n }\n return this.parseIdent()\n};\n\npp$2.parseBindingList = function(close, allowEmpty, allowTrailingComma) {\n var elts = [], first = true;\n while (!this.eat(close)) {\n if (first) { first = false; }\n else { this.expect(types.comma); }\n if (allowEmpty && this.type === types.comma) {\n elts.push(null);\n } else if (allowTrailingComma && this.afterTrailingComma(close)) {\n break\n } else if (this.type === types.ellipsis) {\n var rest = this.parseRestBinding();\n this.parseBindingListItem(rest);\n elts.push(rest);\n if (this.type === types.comma) { this.raise(this.start, \"Comma is not permitted after the rest element\"); }\n this.expect(close);\n break\n } else {\n var elem = this.parseMaybeDefault(this.start, this.startLoc);\n this.parseBindingListItem(elem);\n elts.push(elem);\n }\n }\n return elts\n};\n\npp$2.parseBindingListItem = function(param) {\n return param\n};\n\n// Parses assignment pattern around given atom if possible.\n\npp$2.parseMaybeDefault = function(startPos, startLoc, left) {\n left = left || this.parseBindingAtom();\n if (this.options.ecmaVersion < 6 || !this.eat(types.eq)) { return left }\n var node = this.startNodeAt(startPos, startLoc);\n node.left = left;\n node.right = this.parseMaybeAssign();\n return this.finishNode(node, \"AssignmentPattern\")\n};\n\n// The following three functions all verify that a node is an lvalue —\n// something that can be bound, or assigned to. In order to do so, they perform\n// a variety of checks:\n//\n// - Check that none of the bound/assigned-to identifiers are reserved words.\n// - Record name declarations for bindings in the appropriate scope.\n// - Check duplicate argument names, if checkClashes is set.\n//\n// If a complex binding pattern is encountered (e.g., object and array\n// destructuring), the entire pattern is recursively checked.\n//\n// There are three versions of checkLVal*() appropriate for different\n// circumstances:\n//\n// - checkLValSimple() shall be used if the syntactic construct supports\n// nothing other than identifiers and member expressions. Parenthesized\n// expressions are also correctly handled. This is generally appropriate for\n// constructs for which the spec says\n//\n// > It is a Syntax Error if AssignmentTargetType of [the production] is not\n// > simple.\n//\n// It is also appropriate for checking if an identifier is valid and not\n// defined elsewhere, like import declarations or function/class identifiers.\n//\n// Examples where this is used include:\n// a += …;\n// import a from '…';\n// where a is the node to be checked.\n//\n// - checkLValPattern() shall be used if the syntactic construct supports\n// anything checkLValSimple() supports, as well as object and array\n// destructuring patterns. This is generally appropriate for constructs for\n// which the spec says\n//\n// > It is a Syntax Error if [the production] is neither an ObjectLiteral nor\n// > an ArrayLiteral and AssignmentTargetType of [the production] is not\n// > simple.\n//\n// Examples where this is used include:\n// (a = …);\n// const a = …;\n// try { … } catch (a) { … }\n// where a is the node to be checked.\n//\n// - checkLValInnerPattern() shall be used if the syntactic construct supports\n// anything checkLValPattern() supports, as well as default assignment\n// patterns, rest elements, and other constructs that may appear within an\n// object or array destructuring pattern.\n//\n// As a special case, function parameters also use checkLValInnerPattern(),\n// as they also support defaults and rest constructs.\n//\n// These functions deliberately support both assignment and binding constructs,\n// as the logic for both is exceedingly similar. If the node is the target of\n// an assignment, then bindingType should be set to BIND_NONE. Otherwise, it\n// should be set to the appropriate BIND_* constant, like BIND_VAR or\n// BIND_LEXICAL.\n//\n// If the function is called with a non-BIND_NONE bindingType, then\n// additionally a checkClashes object may be specified to allow checking for\n// duplicate argument names. checkClashes is ignored if the provided construct\n// is an assignment (i.e., bindingType is BIND_NONE).\n\npp$2.checkLValSimple = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n var isBind = bindingType !== BIND_NONE;\n\n switch (expr.type) {\n case \"Identifier\":\n if (this.strict && this.reservedWordsStrictBind.test(expr.name))\n { this.raiseRecoverable(expr.start, (isBind ? \"Binding \" : \"Assigning to \") + expr.name + \" in strict mode\"); }\n if (isBind) {\n if (bindingType === BIND_LEXICAL && expr.name === \"let\")\n { this.raiseRecoverable(expr.start, \"let is disallowed as a lexically bound name\"); }\n if (checkClashes) {\n if (has(checkClashes, expr.name))\n { this.raiseRecoverable(expr.start, \"Argument name clash\"); }\n checkClashes[expr.name] = true;\n }\n if (bindingType !== BIND_OUTSIDE) { this.declareName(expr.name, bindingType, expr.start); }\n }\n break\n\n case \"ChainExpression\":\n this.raiseRecoverable(expr.start, \"Optional chaining cannot appear in left-hand side\");\n break\n\n case \"MemberExpression\":\n if (isBind) { this.raiseRecoverable(expr.start, \"Binding member expression\"); }\n break\n\n case \"ParenthesizedExpression\":\n if (isBind) { this.raiseRecoverable(expr.start, \"Binding parenthesized expression\"); }\n return this.checkLValSimple(expr.expression, bindingType, checkClashes)\n\n default:\n this.raise(expr.start, (isBind ? \"Binding\" : \"Assigning to\") + \" rvalue\");\n }\n};\n\npp$2.checkLValPattern = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n switch (expr.type) {\n case \"ObjectPattern\":\n for (var i = 0, list = expr.properties; i < list.length; i += 1) {\n var prop = list[i];\n\n this.checkLValInnerPattern(prop, bindingType, checkClashes);\n }\n break\n\n case \"ArrayPattern\":\n for (var i$1 = 0, list$1 = expr.elements; i$1 < list$1.length; i$1 += 1) {\n var elem = list$1[i$1];\n\n if (elem) { this.checkLValInnerPattern(elem, bindingType, checkClashes); }\n }\n break\n\n default:\n this.checkLValSimple(expr, bindingType, checkClashes);\n }\n};\n\npp$2.checkLValInnerPattern = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n switch (expr.type) {\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n this.checkLValInnerPattern(expr.value, bindingType, checkClashes);\n break\n\n case \"AssignmentPattern\":\n this.checkLValPattern(expr.left, bindingType, checkClashes);\n break\n\n case \"RestElement\":\n this.checkLValPattern(expr.argument, bindingType, checkClashes);\n break\n\n default:\n this.checkLValPattern(expr, bindingType, checkClashes);\n }\n};\n\n// A recursive descent parser operates by defining functions for all\n\nvar pp$3 = Parser.prototype;\n\n// Check if property name clashes with already added.\n// Object/class getters and setters are not allowed to clash —\n// either with each other or with an init property — and in\n// strict mode, init properties are also not allowed to be repeated.\n\npp$3.checkPropClash = function(prop, propHash, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 9 && prop.type === \"SpreadElement\")\n { return }\n if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand))\n { return }\n var key = prop.key;\n var name;\n switch (key.type) {\n case \"Identifier\": name = key.name; break\n case \"Literal\": name = String(key.value); break\n default: return\n }\n var kind = prop.kind;\n if (this.options.ecmaVersion >= 6) {\n if (name === \"__proto__\" && kind === \"init\") {\n if (propHash.proto) {\n if (refDestructuringErrors) {\n if (refDestructuringErrors.doubleProto < 0)\n { refDestructuringErrors.doubleProto = key.start; }\n // Backwards-compat kludge. Can be removed in version 6.0\n } else { this.raiseRecoverable(key.start, \"Redefinition of __proto__ property\"); }\n }\n propHash.proto = true;\n }\n return\n }\n name = \"$\" + name;\n var other = propHash[name];\n if (other) {\n var redefinition;\n if (kind === \"init\") {\n redefinition = this.strict && other.init || other.get || other.set;\n } else {\n redefinition = other.init || other[kind];\n }\n if (redefinition)\n { this.raiseRecoverable(key.start, \"Redefinition of property\"); }\n } else {\n other = propHash[name] = {\n init: false,\n get: false,\n set: false\n };\n }\n other[kind] = true;\n};\n\n// ### Expression parsing\n\n// These nest, from the most general expression type at the top to\n// 'atomic', nondivisible expression types at the bottom. Most of\n// the functions will simply let the function(s) below them parse,\n// and, *if* the syntactic construct they handle is present, wrap\n// the AST node that the inner parser gave them in another node.\n\n// Parse a full expression. The optional arguments are used to\n// forbid the `in` operator (in for loops initalization expressions)\n// and provide reference for storing '=' operator inside shorthand\n// property assignment in contexts where both object expression\n// and object pattern might appear (so it's possible to raise\n// delayed syntax error at correct position).\n\npp$3.parseExpression = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseMaybeAssign(forInit, refDestructuringErrors);\n if (this.type === types.comma) {\n var node = this.startNodeAt(startPos, startLoc);\n node.expressions = [expr];\n while (this.eat(types.comma)) { node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); }\n return this.finishNode(node, \"SequenceExpression\")\n }\n return expr\n};\n\n// Parse an assignment expression. This includes applications of\n// operators like `+=`.\n\npp$3.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse) {\n if (this.isContextual(\"yield\")) {\n if (this.inGenerator) { return this.parseYield(forInit) }\n // The tokenizer will assume an expression is allowed after\n // `yield`, but this isn't that kind of yield\n else { this.exprAllowed = false; }\n }\n\n var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1;\n if (refDestructuringErrors) {\n oldParenAssign = refDestructuringErrors.parenthesizedAssign;\n oldTrailingComma = refDestructuringErrors.trailingComma;\n refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1;\n } else {\n refDestructuringErrors = new DestructuringErrors;\n ownDestructuringErrors = true;\n }\n\n var startPos = this.start, startLoc = this.startLoc;\n if (this.type === types.parenL || this.type === types.name) {\n this.potentialArrowAt = this.start;\n this.potentialArrowInForAwait = forInit === \"await\";\n }\n var left = this.parseMaybeConditional(forInit, refDestructuringErrors);\n if (afterLeftParse) { left = afterLeftParse.call(this, left, startPos, startLoc); }\n if (this.type.isAssign) {\n var node = this.startNodeAt(startPos, startLoc);\n node.operator = this.value;\n if (this.type === types.eq)\n { left = this.toAssignable(left, false, refDestructuringErrors); }\n if (!ownDestructuringErrors) {\n refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.doubleProto = -1;\n }\n if (refDestructuringErrors.shorthandAssign >= left.start)\n { refDestructuringErrors.shorthandAssign = -1; } // reset because shorthand default was used correctly\n if (this.type === types.eq)\n { this.checkLValPattern(left); }\n else\n { this.checkLValSimple(left); }\n node.left = left;\n this.next();\n node.right = this.parseMaybeAssign(forInit);\n return this.finishNode(node, \"AssignmentExpression\")\n } else {\n if (ownDestructuringErrors) { this.checkExpressionErrors(refDestructuringErrors, true); }\n }\n if (oldParenAssign > -1) { refDestructuringErrors.parenthesizedAssign = oldParenAssign; }\n if (oldTrailingComma > -1) { refDestructuringErrors.trailingComma = oldTrailingComma; }\n return left\n};\n\n// Parse a ternary conditional (`?:`) operator.\n\npp$3.parseMaybeConditional = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseExprOps(forInit, refDestructuringErrors);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n if (this.eat(types.question)) {\n var node = this.startNodeAt(startPos, startLoc);\n node.test = expr;\n node.consequent = this.parseMaybeAssign();\n this.expect(types.colon);\n node.alternate = this.parseMaybeAssign(forInit);\n return this.finishNode(node, \"ConditionalExpression\")\n }\n return expr\n};\n\n// Start the precedence parser.\n\npp$3.parseExprOps = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseMaybeUnary(refDestructuringErrors, false);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n return expr.start === startPos && expr.type === \"ArrowFunctionExpression\" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, forInit)\n};\n\n// Parse binary operators with the operator precedence parsing\n// algorithm. `left` is the left-hand side of the operator.\n// `minPrec` provides context that allows the function to stop and\n// defer further parser to one of its callers when it encounters an\n// operator that has a lower precedence than the set it is parsing.\n\npp$3.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, forInit) {\n var prec = this.type.binop;\n if (prec != null && (!forInit || this.type !== types._in)) {\n if (prec > minPrec) {\n var logical = this.type === types.logicalOR || this.type === types.logicalAND;\n var coalesce = this.type === types.coalesce;\n if (coalesce) {\n // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.\n // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.\n prec = types.logicalAND.binop;\n }\n var op = this.value;\n this.next();\n var startPos = this.start, startLoc = this.startLoc;\n var right = this.parseExprOp(this.parseMaybeUnary(null, false), startPos, startLoc, prec, forInit);\n var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce);\n if ((logical && this.type === types.coalesce) || (coalesce && (this.type === types.logicalOR || this.type === types.logicalAND))) {\n this.raiseRecoverable(this.start, \"Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses\");\n }\n return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, forInit)\n }\n }\n return left\n};\n\npp$3.buildBinary = function(startPos, startLoc, left, right, op, logical) {\n var node = this.startNodeAt(startPos, startLoc);\n node.left = left;\n node.operator = op;\n node.right = right;\n return this.finishNode(node, logical ? \"LogicalExpression\" : \"BinaryExpression\")\n};\n\n// Parse unary operators, both prefix and postfix.\n\npp$3.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec) {\n var startPos = this.start, startLoc = this.startLoc, expr;\n if (this.isContextual(\"await\") && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction))) {\n expr = this.parseAwait();\n sawUnary = true;\n } else if (this.type.prefix) {\n var node = this.startNode(), update = this.type === types.incDec;\n node.operator = this.value;\n node.prefix = true;\n this.next();\n node.argument = this.parseMaybeUnary(null, true, update);\n this.checkExpressionErrors(refDestructuringErrors, true);\n if (update) { this.checkLValSimple(node.argument); }\n else if (this.strict && node.operator === \"delete\" &&\n node.argument.type === \"Identifier\")\n { this.raiseRecoverable(node.start, \"Deleting local variable in strict mode\"); }\n else if (node.operator === \"delete\" && isPrivateFieldAccess(node.argument))\n { this.raiseRecoverable(node.start, \"Private fields can not be deleted\"); }\n else { sawUnary = true; }\n expr = this.finishNode(node, update ? \"UpdateExpression\" : \"UnaryExpression\");\n } else {\n expr = this.parseExprSubscripts(refDestructuringErrors);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n while (this.type.postfix && !this.canInsertSemicolon()) {\n var node$1 = this.startNodeAt(startPos, startLoc);\n node$1.operator = this.value;\n node$1.prefix = false;\n node$1.argument = expr;\n this.checkLValSimple(expr);\n this.next();\n expr = this.finishNode(node$1, \"UpdateExpression\");\n }\n }\n\n if (!incDec && this.eat(types.starstar)) {\n if (sawUnary)\n { this.unexpected(this.lastTokStart); }\n else\n { return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false), \"**\", false) }\n } else {\n return expr\n }\n};\n\nfunction isPrivateFieldAccess(node) {\n return (\n node.type === \"MemberExpression\" && node.property.type === \"PrivateIdentifier\" ||\n node.type === \"ChainExpression\" && isPrivateFieldAccess(node.expression)\n )\n}\n\n// Parse call, dot, and `[]`-subscript expressions.\n\npp$3.parseExprSubscripts = function(refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseExprAtom(refDestructuringErrors);\n if (expr.type === \"ArrowFunctionExpression\" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== \")\")\n { return expr }\n var result = this.parseSubscripts(expr, startPos, startLoc);\n if (refDestructuringErrors && result.type === \"MemberExpression\") {\n if (refDestructuringErrors.parenthesizedAssign >= result.start) { refDestructuringErrors.parenthesizedAssign = -1; }\n if (refDestructuringErrors.parenthesizedBind >= result.start) { refDestructuringErrors.parenthesizedBind = -1; }\n if (refDestructuringErrors.trailingComma >= result.start) { refDestructuringErrors.trailingComma = -1; }\n }\n return result\n};\n\npp$3.parseSubscripts = function(base, startPos, startLoc, noCalls) {\n var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === \"Identifier\" && base.name === \"async\" &&\n this.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 &&\n this.potentialArrowAt === base.start;\n var optionalChained = false;\n\n while (true) {\n var element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained);\n\n if (element.optional) { optionalChained = true; }\n if (element === base || element.type === \"ArrowFunctionExpression\") {\n if (optionalChained) {\n var chainNode = this.startNodeAt(startPos, startLoc);\n chainNode.expression = element;\n element = this.finishNode(chainNode, \"ChainExpression\");\n }\n return element\n }\n\n base = element;\n }\n};\n\npp$3.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained) {\n var optionalSupported = this.options.ecmaVersion >= 11;\n var optional = optionalSupported && this.eat(types.questionDot);\n if (noCalls && optional) { this.raise(this.lastTokStart, \"Optional chaining cannot appear in the callee of new expressions\"); }\n\n var computed = this.eat(types.bracketL);\n if (computed || (optional && this.type !== types.parenL && this.type !== types.backQuote) || this.eat(types.dot)) {\n var node = this.startNodeAt(startPos, startLoc);\n node.object = base;\n if (computed) {\n node.property = this.parseExpression();\n this.expect(types.bracketR);\n } else if (this.type === types.privateId && base.type !== \"Super\") {\n node.property = this.parsePrivateIdent();\n } else {\n node.property = this.parseIdent(this.options.allowReserved !== \"never\");\n }\n node.computed = !!computed;\n if (optionalSupported) {\n node.optional = optional;\n }\n base = this.finishNode(node, \"MemberExpression\");\n } else if (!noCalls && this.eat(types.parenL)) {\n var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n var exprList = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors);\n if (maybeAsyncArrow && !optional && !this.canInsertSemicolon() && this.eat(types.arrow)) {\n this.checkPatternErrors(refDestructuringErrors, false);\n this.checkYieldAwaitInDefaultParams();\n if (this.awaitIdentPos > 0)\n { this.raise(this.awaitIdentPos, \"Cannot use 'await' as identifier inside an async function\"); }\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true)\n }\n this.checkExpressionErrors(refDestructuringErrors, true);\n this.yieldPos = oldYieldPos || this.yieldPos;\n this.awaitPos = oldAwaitPos || this.awaitPos;\n this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos;\n var node$1 = this.startNodeAt(startPos, startLoc);\n node$1.callee = base;\n node$1.arguments = exprList;\n if (optionalSupported) {\n node$1.optional = optional;\n }\n base = this.finishNode(node$1, \"CallExpression\");\n } else if (this.type === types.backQuote) {\n if (optional || optionalChained) {\n this.raise(this.start, \"Optional chaining cannot appear in the tag of tagged template expressions\");\n }\n var node$2 = this.startNodeAt(startPos, startLoc);\n node$2.tag = base;\n node$2.quasi = this.parseTemplate({isTagged: true});\n base = this.finishNode(node$2, \"TaggedTemplateExpression\");\n }\n return base\n};\n\n// Parse an atomic expression — either a single token that is an\n// expression, an expression started by a keyword like `function` or\n// `new`, or an expression wrapped in punctuation like `()`, `[]`,\n// or `{}`.\n\npp$3.parseExprAtom = function(refDestructuringErrors) {\n // If a division operator appears in an expression position, the\n // tokenizer got confused, and we force it to read a regexp instead.\n if (this.type === types.slash) { this.readRegexp(); }\n\n var node, canBeArrow = this.potentialArrowAt === this.start;\n switch (this.type) {\n case types._super:\n if (!this.allowSuper)\n { this.raise(this.start, \"'super' keyword outside a method\"); }\n node = this.startNode();\n this.next();\n if (this.type === types.parenL && !this.allowDirectSuper)\n { this.raise(node.start, \"super() call outside constructor of a subclass\"); }\n // The `super` keyword can appear at below:\n // SuperProperty:\n // super [ Expression ]\n // super . IdentifierName\n // SuperCall:\n // super ( Arguments )\n if (this.type !== types.dot && this.type !== types.bracketL && this.type !== types.parenL)\n { this.unexpected(); }\n return this.finishNode(node, \"Super\")\n\n case types._this:\n node = this.startNode();\n this.next();\n return this.finishNode(node, \"ThisExpression\")\n\n case types.name:\n var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc;\n var id = this.parseIdent(false);\n if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === \"async\" && !this.canInsertSemicolon() && this.eat(types._function))\n { return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true) }\n if (canBeArrow && !this.canInsertSemicolon()) {\n if (this.eat(types.arrow))\n { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false) }\n if (this.options.ecmaVersion >= 8 && id.name === \"async\" && this.type === types.name && !containsEsc &&\n (!this.potentialArrowInForAwait || this.value !== \"of\" || this.containsEsc)) {\n id = this.parseIdent(false);\n if (this.canInsertSemicolon() || !this.eat(types.arrow))\n { this.unexpected(); }\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true)\n }\n }\n return id\n\n case types.regexp:\n var value = this.value;\n node = this.parseLiteral(value.value);\n node.regex = {pattern: value.pattern, flags: value.flags};\n return node\n\n case types.num: case types.string:\n return this.parseLiteral(this.value)\n\n case types._null: case types._true: case types._false:\n node = this.startNode();\n node.value = this.type === types._null ? null : this.type === types._true;\n node.raw = this.type.keyword;\n this.next();\n return this.finishNode(node, \"Literal\")\n\n case types.parenL:\n var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow);\n if (refDestructuringErrors) {\n if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr))\n { refDestructuringErrors.parenthesizedAssign = start; }\n if (refDestructuringErrors.parenthesizedBind < 0)\n { refDestructuringErrors.parenthesizedBind = start; }\n }\n return expr\n\n case types.bracketL:\n node = this.startNode();\n this.next();\n node.elements = this.parseExprList(types.bracketR, true, true, refDestructuringErrors);\n return this.finishNode(node, \"ArrayExpression\")\n\n case types.braceL:\n return this.parseObj(false, refDestructuringErrors)\n\n case types._function:\n node = this.startNode();\n this.next();\n return this.parseFunction(node, 0)\n\n case types._class:\n return this.parseClass(this.startNode(), false)\n\n case types._new:\n return this.parseNew()\n\n case types.backQuote:\n return this.parseTemplate()\n\n case types._import:\n if (this.options.ecmaVersion >= 11) {\n return this.parseExprImport()\n } else {\n return this.unexpected()\n }\n\n default:\n this.unexpected();\n }\n};\n\npp$3.parseExprImport = function() {\n var node = this.startNode();\n\n // Consume `import` as an identifier for `import.meta`.\n // Because `this.parseIdent(true)` doesn't check escape sequences, it needs the check of `this.containsEsc`.\n if (this.containsEsc) { this.raiseRecoverable(this.start, \"Escape sequence in keyword import\"); }\n var meta = this.parseIdent(true);\n\n switch (this.type) {\n case types.parenL:\n return this.parseDynamicImport(node)\n case types.dot:\n node.meta = meta;\n return this.parseImportMeta(node)\n default:\n this.unexpected();\n }\n};\n\npp$3.parseDynamicImport = function(node) {\n this.next(); // skip `(`\n\n // Parse node.source.\n node.source = this.parseMaybeAssign();\n\n // Verify ending.\n if (!this.eat(types.parenR)) {\n var errorPos = this.start;\n if (this.eat(types.comma) && this.eat(types.parenR)) {\n this.raiseRecoverable(errorPos, \"Trailing comma is not allowed in import()\");\n } else {\n this.unexpected(errorPos);\n }\n }\n\n return this.finishNode(node, \"ImportExpression\")\n};\n\npp$3.parseImportMeta = function(node) {\n this.next(); // skip `.`\n\n var containsEsc = this.containsEsc;\n node.property = this.parseIdent(true);\n\n if (node.property.name !== \"meta\")\n { this.raiseRecoverable(node.property.start, \"The only valid meta property for import is 'import.meta'\"); }\n if (containsEsc)\n { this.raiseRecoverable(node.start, \"'import.meta' must not contain escaped characters\"); }\n if (this.options.sourceType !== \"module\" && !this.options.allowImportExportEverywhere)\n { this.raiseRecoverable(node.start, \"Cannot use 'import.meta' outside a module\"); }\n\n return this.finishNode(node, \"MetaProperty\")\n};\n\npp$3.parseLiteral = function(value) {\n var node = this.startNode();\n node.value = value;\n node.raw = this.input.slice(this.start, this.end);\n if (node.raw.charCodeAt(node.raw.length - 1) === 110) { node.bigint = node.raw.slice(0, -1).replace(/_/g, \"\"); }\n this.next();\n return this.finishNode(node, \"Literal\")\n};\n\npp$3.parseParenExpression = function() {\n this.expect(types.parenL);\n var val = this.parseExpression();\n this.expect(types.parenR);\n return val\n};\n\npp$3.parseParenAndDistinguishExpression = function(canBeArrow) {\n var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8;\n if (this.options.ecmaVersion >= 6) {\n this.next();\n\n var innerStartPos = this.start, innerStartLoc = this.startLoc;\n var exprList = [], first = true, lastIsComma = false;\n var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart;\n this.yieldPos = 0;\n this.awaitPos = 0;\n // Do not save awaitIdentPos to allow checking awaits nested in parameters\n while (this.type !== types.parenR) {\n first ? first = false : this.expect(types.comma);\n if (allowTrailingComma && this.afterTrailingComma(types.parenR, true)) {\n lastIsComma = true;\n break\n } else if (this.type === types.ellipsis) {\n spreadStart = this.start;\n exprList.push(this.parseParenItem(this.parseRestBinding()));\n if (this.type === types.comma) { this.raise(this.start, \"Comma is not permitted after the rest element\"); }\n break\n } else {\n exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem));\n }\n }\n var innerEndPos = this.start, innerEndLoc = this.startLoc;\n this.expect(types.parenR);\n\n if (canBeArrow && !this.canInsertSemicolon() && this.eat(types.arrow)) {\n this.checkPatternErrors(refDestructuringErrors, false);\n this.checkYieldAwaitInDefaultParams();\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n return this.parseParenArrowList(startPos, startLoc, exprList)\n }\n\n if (!exprList.length || lastIsComma) { this.unexpected(this.lastTokStart); }\n if (spreadStart) { this.unexpected(spreadStart); }\n this.checkExpressionErrors(refDestructuringErrors, true);\n this.yieldPos = oldYieldPos || this.yieldPos;\n this.awaitPos = oldAwaitPos || this.awaitPos;\n\n if (exprList.length > 1) {\n val = this.startNodeAt(innerStartPos, innerStartLoc);\n val.expressions = exprList;\n this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc);\n } else {\n val = exprList[0];\n }\n } else {\n val = this.parseParenExpression();\n }\n\n if (this.options.preserveParens) {\n var par = this.startNodeAt(startPos, startLoc);\n par.expression = val;\n return this.finishNode(par, \"ParenthesizedExpression\")\n } else {\n return val\n }\n};\n\npp$3.parseParenItem = function(item) {\n return item\n};\n\npp$3.parseParenArrowList = function(startPos, startLoc, exprList) {\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList)\n};\n\n// New's precedence is slightly tricky. It must allow its argument to\n// be a `[]` or dot subscript expression, but not a call — at least,\n// not without wrapping it in parentheses. Thus, it uses the noCalls\n// argument to parseSubscripts to prevent it from consuming the\n// argument list.\n\nvar empty$1 = [];\n\npp$3.parseNew = function() {\n if (this.containsEsc) { this.raiseRecoverable(this.start, \"Escape sequence in keyword new\"); }\n var node = this.startNode();\n var meta = this.parseIdent(true);\n if (this.options.ecmaVersion >= 6 && this.eat(types.dot)) {\n node.meta = meta;\n var containsEsc = this.containsEsc;\n node.property = this.parseIdent(true);\n if (node.property.name !== \"target\")\n { this.raiseRecoverable(node.property.start, \"The only valid meta property for new is 'new.target'\"); }\n if (containsEsc)\n { this.raiseRecoverable(node.start, \"'new.target' must not contain escaped characters\"); }\n if (!this.inNonArrowFunction)\n { this.raiseRecoverable(node.start, \"'new.target' can only be used in functions\"); }\n return this.finishNode(node, \"MetaProperty\")\n }\n var startPos = this.start, startLoc = this.startLoc, isImport = this.type === types._import;\n node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true);\n if (isImport && node.callee.type === \"ImportExpression\") {\n this.raise(startPos, \"Cannot use new with import()\");\n }\n if (this.eat(types.parenL)) { node.arguments = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false); }\n else { node.arguments = empty$1; }\n return this.finishNode(node, \"NewExpression\")\n};\n\n// Parse template expression.\n\npp$3.parseTemplateElement = function(ref) {\n var isTagged = ref.isTagged;\n\n var elem = this.startNode();\n if (this.type === types.invalidTemplate) {\n if (!isTagged) {\n this.raiseRecoverable(this.start, \"Bad escape sequence in untagged template literal\");\n }\n elem.value = {\n raw: this.value,\n cooked: null\n };\n } else {\n elem.value = {\n raw: this.input.slice(this.start, this.end).replace(/\\r\\n?/g, \"\\n\"),\n cooked: this.value\n };\n }\n this.next();\n elem.tail = this.type === types.backQuote;\n return this.finishNode(elem, \"TemplateElement\")\n};\n\npp$3.parseTemplate = function(ref) {\n if ( ref === void 0 ) ref = {};\n var isTagged = ref.isTagged; if ( isTagged === void 0 ) isTagged = false;\n\n var node = this.startNode();\n this.next();\n node.expressions = [];\n var curElt = this.parseTemplateElement({isTagged: isTagged});\n node.quasis = [curElt];\n while (!curElt.tail) {\n if (this.type === types.eof) { this.raise(this.pos, \"Unterminated template literal\"); }\n this.expect(types.dollarBraceL);\n node.expressions.push(this.parseExpression());\n this.expect(types.braceR);\n node.quasis.push(curElt = this.parseTemplateElement({isTagged: isTagged}));\n }\n this.next();\n return this.finishNode(node, \"TemplateLiteral\")\n};\n\npp$3.isAsyncProp = function(prop) {\n return !prop.computed && prop.key.type === \"Identifier\" && prop.key.name === \"async\" &&\n (this.type === types.name || this.type === types.num || this.type === types.string || this.type === types.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types.star)) &&\n !lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n};\n\n// Parse an object literal or binding pattern.\n\npp$3.parseObj = function(isPattern, refDestructuringErrors) {\n var node = this.startNode(), first = true, propHash = {};\n node.properties = [];\n this.next();\n while (!this.eat(types.braceR)) {\n if (!first) {\n this.expect(types.comma);\n if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types.braceR)) { break }\n } else { first = false; }\n\n var prop = this.parseProperty(isPattern, refDestructuringErrors);\n if (!isPattern) { this.checkPropClash(prop, propHash, refDestructuringErrors); }\n node.properties.push(prop);\n }\n return this.finishNode(node, isPattern ? \"ObjectPattern\" : \"ObjectExpression\")\n};\n\npp$3.parseProperty = function(isPattern, refDestructuringErrors) {\n var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc;\n if (this.options.ecmaVersion >= 9 && this.eat(types.ellipsis)) {\n if (isPattern) {\n prop.argument = this.parseIdent(false);\n if (this.type === types.comma) {\n this.raise(this.start, \"Comma is not permitted after the rest element\");\n }\n return this.finishNode(prop, \"RestElement\")\n }\n // To disallow parenthesized identifier via `this.toAssignable()`.\n if (this.type === types.parenL && refDestructuringErrors) {\n if (refDestructuringErrors.parenthesizedAssign < 0) {\n refDestructuringErrors.parenthesizedAssign = this.start;\n }\n if (refDestructuringErrors.parenthesizedBind < 0) {\n refDestructuringErrors.parenthesizedBind = this.start;\n }\n }\n // Parse argument.\n prop.argument = this.parseMaybeAssign(false, refDestructuringErrors);\n // To disallow trailing comma via `this.toAssignable()`.\n if (this.type === types.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {\n refDestructuringErrors.trailingComma = this.start;\n }\n // Finish\n return this.finishNode(prop, \"SpreadElement\")\n }\n if (this.options.ecmaVersion >= 6) {\n prop.method = false;\n prop.shorthand = false;\n if (isPattern || refDestructuringErrors) {\n startPos = this.start;\n startLoc = this.startLoc;\n }\n if (!isPattern)\n { isGenerator = this.eat(types.star); }\n }\n var containsEsc = this.containsEsc;\n this.parsePropertyName(prop);\n if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) {\n isAsync = true;\n isGenerator = this.options.ecmaVersion >= 9 && this.eat(types.star);\n this.parsePropertyName(prop, refDestructuringErrors);\n } else {\n isAsync = false;\n }\n this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc);\n return this.finishNode(prop, \"Property\")\n};\n\npp$3.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {\n if ((isGenerator || isAsync) && this.type === types.colon)\n { this.unexpected(); }\n\n if (this.eat(types.colon)) {\n prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors);\n prop.kind = \"init\";\n } else if (this.options.ecmaVersion >= 6 && this.type === types.parenL) {\n if (isPattern) { this.unexpected(); }\n prop.kind = \"init\";\n prop.method = true;\n prop.value = this.parseMethod(isGenerator, isAsync);\n } else if (!isPattern && !containsEsc &&\n this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === \"Identifier\" &&\n (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n (this.type !== types.comma && this.type !== types.braceR && this.type !== types.eq)) {\n if (isGenerator || isAsync) { this.unexpected(); }\n prop.kind = prop.key.name;\n this.parsePropertyName(prop);\n prop.value = this.parseMethod(false);\n var paramCount = prop.kind === \"get\" ? 0 : 1;\n if (prop.value.params.length !== paramCount) {\n var start = prop.value.start;\n if (prop.kind === \"get\")\n { this.raiseRecoverable(start, \"getter should have no params\"); }\n else\n { this.raiseRecoverable(start, \"setter should have exactly one param\"); }\n } else {\n if (prop.kind === \"set\" && prop.value.params[0].type === \"RestElement\")\n { this.raiseRecoverable(prop.value.params[0].start, \"Setter cannot use rest params\"); }\n }\n } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === \"Identifier\") {\n if (isGenerator || isAsync) { this.unexpected(); }\n this.checkUnreserved(prop.key);\n if (prop.key.name === \"await\" && !this.awaitIdentPos)\n { this.awaitIdentPos = startPos; }\n prop.kind = \"init\";\n if (isPattern) {\n prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));\n } else if (this.type === types.eq && refDestructuringErrors) {\n if (refDestructuringErrors.shorthandAssign < 0)\n { refDestructuringErrors.shorthandAssign = this.start; }\n prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));\n } else {\n prop.value = this.copyNode(prop.key);\n }\n prop.shorthand = true;\n } else { this.unexpected(); }\n};\n\npp$3.parsePropertyName = function(prop) {\n if (this.options.ecmaVersion >= 6) {\n if (this.eat(types.bracketL)) {\n prop.computed = true;\n prop.key = this.parseMaybeAssign();\n this.expect(types.bracketR);\n return prop.key\n } else {\n prop.computed = false;\n }\n }\n return prop.key = this.type === types.num || this.type === types.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== \"never\")\n};\n\n// Initialize empty function node.\n\npp$3.initFunction = function(node) {\n node.id = null;\n if (this.options.ecmaVersion >= 6) { node.generator = node.expression = false; }\n if (this.options.ecmaVersion >= 8) { node.async = false; }\n};\n\n// Parse object or class method.\n\npp$3.parseMethod = function(isGenerator, isAsync, allowDirectSuper) {\n var node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n\n this.initFunction(node);\n if (this.options.ecmaVersion >= 6)\n { node.generator = isGenerator; }\n if (this.options.ecmaVersion >= 8)\n { node.async = !!isAsync; }\n\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0));\n\n this.expect(types.parenL);\n node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8);\n this.checkYieldAwaitInDefaultParams();\n this.parseFunctionBody(node, false, true);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, \"FunctionExpression\")\n};\n\n// Parse arrow function expression with given parameters.\n\npp$3.parseArrowExpression = function(node, params, isAsync) {\n var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n\n this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW);\n this.initFunction(node);\n if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; }\n\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n\n node.params = this.toAssignableList(params, true);\n this.parseFunctionBody(node, true, false);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, \"ArrowFunctionExpression\")\n};\n\n// Parse function body and check parameters.\n\npp$3.parseFunctionBody = function(node, isArrowFunction, isMethod) {\n var isExpression = isArrowFunction && this.type !== types.braceL;\n var oldStrict = this.strict, useStrict = false;\n\n if (isExpression) {\n node.body = this.parseMaybeAssign();\n node.expression = true;\n this.checkParams(node, false);\n } else {\n var nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params);\n if (!oldStrict || nonSimple) {\n useStrict = this.strictDirective(this.end);\n // If this is a strict mode function, verify that argument names\n // are not repeated, and it does not try to bind the words `eval`\n // or `arguments`.\n if (useStrict && nonSimple)\n { this.raiseRecoverable(node.start, \"Illegal 'use strict' directive in function with non-simple parameter list\"); }\n }\n // Start a new scope with regard to labels and the `inFunction`\n // flag (restore them to their old value afterwards).\n var oldLabels = this.labels;\n this.labels = [];\n if (useStrict) { this.strict = true; }\n\n // Add the params to varDeclaredNames to ensure that an error is thrown\n // if a let/const declaration in the function clashes with one of the params.\n this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params));\n // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n if (this.strict && node.id) { this.checkLValSimple(node.id, BIND_OUTSIDE); }\n node.body = this.parseBlock(false, undefined, useStrict && !oldStrict);\n node.expression = false;\n this.adaptDirectivePrologue(node.body.body);\n this.labels = oldLabels;\n }\n this.exitScope();\n};\n\npp$3.isSimpleParamList = function(params) {\n for (var i = 0, list = params; i < list.length; i += 1)\n {\n var param = list[i];\n\n if (param.type !== \"Identifier\") { return false\n } }\n return true\n};\n\n// Checks function params for various disallowed patterns such as using \"eval\"\n// or \"arguments\" and duplicate parameters.\n\npp$3.checkParams = function(node, allowDuplicates) {\n var nameHash = Object.create(null);\n for (var i = 0, list = node.params; i < list.length; i += 1)\n {\n var param = list[i];\n\n this.checkLValInnerPattern(param, BIND_VAR, allowDuplicates ? null : nameHash);\n }\n};\n\n// Parses a comma-separated list of expressions, and returns them as\n// an array. `close` is the token type that ends the list, and\n// `allowEmpty` can be turned on to allow subsequent commas with\n// nothing in between them to be parsed as `null` (which is needed\n// for array literals).\n\npp$3.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {\n var elts = [], first = true;\n while (!this.eat(close)) {\n if (!first) {\n this.expect(types.comma);\n if (allowTrailingComma && this.afterTrailingComma(close)) { break }\n } else { first = false; }\n\n var elt = (void 0);\n if (allowEmpty && this.type === types.comma)\n { elt = null; }\n else if (this.type === types.ellipsis) {\n elt = this.parseSpread(refDestructuringErrors);\n if (refDestructuringErrors && this.type === types.comma && refDestructuringErrors.trailingComma < 0)\n { refDestructuringErrors.trailingComma = this.start; }\n } else {\n elt = this.parseMaybeAssign(false, refDestructuringErrors);\n }\n elts.push(elt);\n }\n return elts\n};\n\npp$3.checkUnreserved = function(ref) {\n var start = ref.start;\n var end = ref.end;\n var name = ref.name;\n\n if (this.inGenerator && name === \"yield\")\n { this.raiseRecoverable(start, \"Cannot use 'yield' as identifier inside a generator\"); }\n if (this.inAsync && name === \"await\")\n { this.raiseRecoverable(start, \"Cannot use 'await' as identifier inside an async function\"); }\n if (this.currentThisScope().inClassFieldInit && name === \"arguments\")\n { this.raiseRecoverable(start, \"Cannot use 'arguments' in class field initializer\"); }\n if (this.keywords.test(name))\n { this.raise(start, (\"Unexpected keyword '\" + name + \"'\")); }\n if (this.options.ecmaVersion < 6 &&\n this.input.slice(start, end).indexOf(\"\\\\\") !== -1) { return }\n var re = this.strict ? this.reservedWordsStrict : this.reservedWords;\n if (re.test(name)) {\n if (!this.inAsync && name === \"await\")\n { this.raiseRecoverable(start, \"Cannot use keyword 'await' outside an async function\"); }\n this.raiseRecoverable(start, (\"The keyword '\" + name + \"' is reserved\"));\n }\n};\n\n// Parse the next token as an identifier. If `liberal` is true (used\n// when parsing properties), it will also convert keywords into\n// identifiers.\n\npp$3.parseIdent = function(liberal, isBinding) {\n var node = this.startNode();\n if (this.type === types.name) {\n node.name = this.value;\n } else if (this.type.keyword) {\n node.name = this.type.keyword;\n\n // To fix https://github.com/acornjs/acorn/issues/575\n // `class` and `function` keywords push new context into this.context.\n // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name.\n // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword\n if ((node.name === \"class\" || node.name === \"function\") &&\n (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) {\n this.context.pop();\n }\n } else {\n this.unexpected();\n }\n this.next(!!liberal);\n this.finishNode(node, \"Identifier\");\n if (!liberal) {\n this.checkUnreserved(node);\n if (node.name === \"await\" && !this.awaitIdentPos)\n { this.awaitIdentPos = node.start; }\n }\n return node\n};\n\npp$3.parsePrivateIdent = function() {\n var node = this.startNode();\n if (this.type === types.privateId) {\n node.name = this.value;\n } else {\n this.unexpected();\n }\n this.next();\n this.finishNode(node, \"PrivateIdentifier\");\n\n // For validating existence\n if (this.privateNameStack.length === 0) {\n this.raise(node.start, (\"Private field '#\" + (node.name) + \"' must be declared in an enclosing class\"));\n } else {\n this.privateNameStack[this.privateNameStack.length - 1].used.push(node);\n }\n\n return node\n};\n\n// Parses yield expression inside generator.\n\npp$3.parseYield = function(forInit) {\n if (!this.yieldPos) { this.yieldPos = this.start; }\n\n var node = this.startNode();\n this.next();\n if (this.type === types.semi || this.canInsertSemicolon() || (this.type !== types.star && !this.type.startsExpr)) {\n node.delegate = false;\n node.argument = null;\n } else {\n node.delegate = this.eat(types.star);\n node.argument = this.parseMaybeAssign(forInit);\n }\n return this.finishNode(node, \"YieldExpression\")\n};\n\npp$3.parseAwait = function() {\n if (!this.awaitPos) { this.awaitPos = this.start; }\n\n var node = this.startNode();\n this.next();\n node.argument = this.parseMaybeUnary(null, true);\n return this.finishNode(node, \"AwaitExpression\")\n};\n\nvar pp$4 = Parser.prototype;\n\n// This function is used to raise exceptions on parse errors. It\n// takes an offset integer (into the current `input`) to indicate\n// the location of the error, attaches the position to the end\n// of the error message, and then raises a `SyntaxError` with that\n// message.\n\npp$4.raise = function(pos, message) {\n var loc = getLineInfo(this.input, pos);\n message += \" (\" + loc.line + \":\" + loc.column + \")\";\n var err = new SyntaxError(message);\n err.pos = pos; err.loc = loc; err.raisedAt = this.pos;\n throw err\n};\n\npp$4.raiseRecoverable = pp$4.raise;\n\npp$4.curPosition = function() {\n if (this.options.locations) {\n return new Position(this.curLine, this.pos - this.lineStart)\n }\n};\n\nvar pp$5 = Parser.prototype;\n\nvar Scope = function Scope(flags) {\n this.flags = flags;\n // A list of var-declared names in the current lexical scope\n this.var = [];\n // A list of lexically-declared names in the current lexical scope\n this.lexical = [];\n // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n this.functions = [];\n // A switch to disallow the identifier reference 'arguments'\n this.inClassFieldInit = false;\n};\n\n// The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.\n\npp$5.enterScope = function(flags) {\n this.scopeStack.push(new Scope(flags));\n};\n\npp$5.exitScope = function() {\n this.scopeStack.pop();\n};\n\n// The spec says:\n// > At the top level of a function, or script, function declarations are\n// > treated like var declarations rather than like lexical declarations.\npp$5.treatFunctionsAsVarInScope = function(scope) {\n return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP)\n};\n\npp$5.declareName = function(name, bindingType, pos) {\n var redeclared = false;\n if (bindingType === BIND_LEXICAL) {\n var scope = this.currentScope();\n redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1;\n scope.lexical.push(name);\n if (this.inModule && (scope.flags & SCOPE_TOP))\n { delete this.undefinedExports[name]; }\n } else if (bindingType === BIND_SIMPLE_CATCH) {\n var scope$1 = this.currentScope();\n scope$1.lexical.push(name);\n } else if (bindingType === BIND_FUNCTION) {\n var scope$2 = this.currentScope();\n if (this.treatFunctionsAsVar)\n { redeclared = scope$2.lexical.indexOf(name) > -1; }\n else\n { redeclared = scope$2.lexical.indexOf(name) > -1 || scope$2.var.indexOf(name) > -1; }\n scope$2.functions.push(name);\n } else {\n for (var i = this.scopeStack.length - 1; i >= 0; --i) {\n var scope$3 = this.scopeStack[i];\n if (scope$3.lexical.indexOf(name) > -1 && !((scope$3.flags & SCOPE_SIMPLE_CATCH) && scope$3.lexical[0] === name) ||\n !this.treatFunctionsAsVarInScope(scope$3) && scope$3.functions.indexOf(name) > -1) {\n redeclared = true;\n break\n }\n scope$3.var.push(name);\n if (this.inModule && (scope$3.flags & SCOPE_TOP))\n { delete this.undefinedExports[name]; }\n if (scope$3.flags & SCOPE_VAR) { break }\n }\n }\n if (redeclared) { this.raiseRecoverable(pos, (\"Identifier '\" + name + \"' has already been declared\")); }\n};\n\npp$5.checkLocalExport = function(id) {\n // scope.functions must be empty as Module code is always strict.\n if (this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n this.scopeStack[0].var.indexOf(id.name) === -1) {\n this.undefinedExports[id.name] = id;\n }\n};\n\npp$5.currentScope = function() {\n return this.scopeStack[this.scopeStack.length - 1]\n};\n\npp$5.currentVarScope = function() {\n for (var i = this.scopeStack.length - 1;; i--) {\n var scope = this.scopeStack[i];\n if (scope.flags & SCOPE_VAR) { return scope }\n }\n};\n\n// Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\npp$5.currentThisScope = function() {\n for (var i = this.scopeStack.length - 1;; i--) {\n var scope = this.scopeStack[i];\n if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) { return scope }\n }\n};\n\nvar Node = function Node(parser, pos, loc) {\n this.type = \"\";\n this.start = pos;\n this.end = 0;\n if (parser.options.locations)\n { this.loc = new SourceLocation(parser, loc); }\n if (parser.options.directSourceFile)\n { this.sourceFile = parser.options.directSourceFile; }\n if (parser.options.ranges)\n { this.range = [pos, 0]; }\n};\n\n// Start an AST node, attaching a start offset.\n\nvar pp$6 = Parser.prototype;\n\npp$6.startNode = function() {\n return new Node(this, this.start, this.startLoc)\n};\n\npp$6.startNodeAt = function(pos, loc) {\n return new Node(this, pos, loc)\n};\n\n// Finish an AST node, adding `type` and `end` properties.\n\nfunction finishNodeAt(node, type, pos, loc) {\n node.type = type;\n node.end = pos;\n if (this.options.locations)\n { node.loc.end = loc; }\n if (this.options.ranges)\n { node.range[1] = pos; }\n return node\n}\n\npp$6.finishNode = function(node, type) {\n return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)\n};\n\n// Finish node at given position\n\npp$6.finishNodeAt = function(node, type, pos, loc) {\n return finishNodeAt.call(this, node, type, pos, loc)\n};\n\npp$6.copyNode = function(node) {\n var newNode = new Node(this, node.start, this.startLoc);\n for (var prop in node) { newNode[prop] = node[prop]; }\n return newNode\n};\n\n// The algorithm used to determine whether a regexp can appear at a\n\nvar TokContext = function TokContext(token, isExpr, preserveSpace, override, generator) {\n this.token = token;\n this.isExpr = !!isExpr;\n this.preserveSpace = !!preserveSpace;\n this.override = override;\n this.generator = !!generator;\n};\n\nvar types$1 = {\n b_stat: new TokContext(\"{\", false),\n b_expr: new TokContext(\"{\", true),\n b_tmpl: new TokContext(\"${\", false),\n p_stat: new TokContext(\"(\", false),\n p_expr: new TokContext(\"(\", true),\n q_tmpl: new TokContext(\"`\", true, true, function (p) { return p.tryReadTemplateToken(); }),\n f_stat: new TokContext(\"function\", false),\n f_expr: new TokContext(\"function\", true),\n f_expr_gen: new TokContext(\"function\", true, false, null, true),\n f_gen: new TokContext(\"function\", false, false, null, true)\n};\n\nvar pp$7 = Parser.prototype;\n\npp$7.initialContext = function() {\n return [types$1.b_stat]\n};\n\npp$7.braceIsBlock = function(prevType) {\n var parent = this.curContext();\n if (parent === types$1.f_expr || parent === types$1.f_stat)\n { return true }\n if (prevType === types.colon && (parent === types$1.b_stat || parent === types$1.b_expr))\n { return !parent.isExpr }\n\n // The check for `tt.name && exprAllowed` detects whether we are\n // after a `yield` or `of` construct. See the `updateContext` for\n // `tt.name`.\n if (prevType === types._return || prevType === types.name && this.exprAllowed)\n { return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) }\n if (prevType === types._else || prevType === types.semi || prevType === types.eof || prevType === types.parenR || prevType === types.arrow)\n { return true }\n if (prevType === types.braceL)\n { return parent === types$1.b_stat }\n if (prevType === types._var || prevType === types._const || prevType === types.name)\n { return false }\n return !this.exprAllowed\n};\n\npp$7.inGeneratorContext = function() {\n for (var i = this.context.length - 1; i >= 1; i--) {\n var context = this.context[i];\n if (context.token === \"function\")\n { return context.generator }\n }\n return false\n};\n\npp$7.updateContext = function(prevType) {\n var update, type = this.type;\n if (type.keyword && prevType === types.dot)\n { this.exprAllowed = false; }\n else if (update = type.updateContext)\n { update.call(this, prevType); }\n else\n { this.exprAllowed = type.beforeExpr; }\n};\n\n// Token-specific context update code\n\ntypes.parenR.updateContext = types.braceR.updateContext = function() {\n if (this.context.length === 1) {\n this.exprAllowed = true;\n return\n }\n var out = this.context.pop();\n if (out === types$1.b_stat && this.curContext().token === \"function\") {\n out = this.context.pop();\n }\n this.exprAllowed = !out.isExpr;\n};\n\ntypes.braceL.updateContext = function(prevType) {\n this.context.push(this.braceIsBlock(prevType) ? types$1.b_stat : types$1.b_expr);\n this.exprAllowed = true;\n};\n\ntypes.dollarBraceL.updateContext = function() {\n this.context.push(types$1.b_tmpl);\n this.exprAllowed = true;\n};\n\ntypes.parenL.updateContext = function(prevType) {\n var statementParens = prevType === types._if || prevType === types._for || prevType === types._with || prevType === types._while;\n this.context.push(statementParens ? types$1.p_stat : types$1.p_expr);\n this.exprAllowed = true;\n};\n\ntypes.incDec.updateContext = function() {\n // tokExprAllowed stays unchanged\n};\n\ntypes._function.updateContext = types._class.updateContext = function(prevType) {\n if (prevType.beforeExpr && prevType !== types._else &&\n !(prevType === types.semi && this.curContext() !== types$1.p_stat) &&\n !(prevType === types._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) &&\n !((prevType === types.colon || prevType === types.braceL) && this.curContext() === types$1.b_stat))\n { this.context.push(types$1.f_expr); }\n else\n { this.context.push(types$1.f_stat); }\n this.exprAllowed = false;\n};\n\ntypes.backQuote.updateContext = function() {\n if (this.curContext() === types$1.q_tmpl)\n { this.context.pop(); }\n else\n { this.context.push(types$1.q_tmpl); }\n this.exprAllowed = false;\n};\n\ntypes.star.updateContext = function(prevType) {\n if (prevType === types._function) {\n var index = this.context.length - 1;\n if (this.context[index] === types$1.f_expr)\n { this.context[index] = types$1.f_expr_gen; }\n else\n { this.context[index] = types$1.f_gen; }\n }\n this.exprAllowed = true;\n};\n\ntypes.name.updateContext = function(prevType) {\n var allowed = false;\n if (this.options.ecmaVersion >= 6 && prevType !== types.dot) {\n if (this.value === \"of\" && !this.exprAllowed ||\n this.value === \"yield\" && this.inGeneratorContext())\n { allowed = true; }\n }\n this.exprAllowed = allowed;\n};\n\n// This file contains Unicode properties extracted from the ECMAScript\n// specification. The lists are extracted like so:\n// $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText)\n\n// #table-binary-unicode-properties\nvar ecma9BinaryProperties = \"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS\";\nvar ecma10BinaryProperties = ecma9BinaryProperties + \" Extended_Pictographic\";\nvar ecma11BinaryProperties = ecma10BinaryProperties;\nvar ecma12BinaryProperties = ecma11BinaryProperties + \" EBase EComp EMod EPres ExtPict\";\nvar unicodeBinaryProperties = {\n 9: ecma9BinaryProperties,\n 10: ecma10BinaryProperties,\n 11: ecma11BinaryProperties,\n 12: ecma12BinaryProperties\n};\n\n// #table-unicode-general-category-values\nvar unicodeGeneralCategoryValues = \"Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu\";\n\n// #table-unicode-script-values\nvar ecma9ScriptValues = \"Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb\";\nvar ecma10ScriptValues = ecma9ScriptValues + \" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd\";\nvar ecma11ScriptValues = ecma10ScriptValues + \" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho\";\nvar ecma12ScriptValues = ecma11ScriptValues + \" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi\";\nvar unicodeScriptValues = {\n 9: ecma9ScriptValues,\n 10: ecma10ScriptValues,\n 11: ecma11ScriptValues,\n 12: ecma12ScriptValues\n};\n\nvar data = {};\nfunction buildUnicodeData(ecmaVersion) {\n var d = data[ecmaVersion] = {\n binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + \" \" + unicodeGeneralCategoryValues),\n nonBinary: {\n General_Category: wordsRegexp(unicodeGeneralCategoryValues),\n Script: wordsRegexp(unicodeScriptValues[ecmaVersion])\n }\n };\n d.nonBinary.Script_Extensions = d.nonBinary.Script;\n\n d.nonBinary.gc = d.nonBinary.General_Category;\n d.nonBinary.sc = d.nonBinary.Script;\n d.nonBinary.scx = d.nonBinary.Script_Extensions;\n}\nbuildUnicodeData(9);\nbuildUnicodeData(10);\nbuildUnicodeData(11);\nbuildUnicodeData(12);\n\nvar pp$8 = Parser.prototype;\n\nvar RegExpValidationState = function RegExpValidationState(parser) {\n this.parser = parser;\n this.validFlags = \"gim\" + (parser.options.ecmaVersion >= 6 ? \"uy\" : \"\") + (parser.options.ecmaVersion >= 9 ? \"s\" : \"\") + (parser.options.ecmaVersion >= 13 ? \"d\" : \"\");\n this.unicodeProperties = data[parser.options.ecmaVersion >= 12 ? 12 : parser.options.ecmaVersion];\n this.source = \"\";\n this.flags = \"\";\n this.start = 0;\n this.switchU = false;\n this.switchN = false;\n this.pos = 0;\n this.lastIntValue = 0;\n this.lastStringValue = \"\";\n this.lastAssertionIsQuantifiable = false;\n this.numCapturingParens = 0;\n this.maxBackReference = 0;\n this.groupNames = [];\n this.backReferenceNames = [];\n};\n\nRegExpValidationState.prototype.reset = function reset (start, pattern, flags) {\n var unicode = flags.indexOf(\"u\") !== -1;\n this.start = start | 0;\n this.source = pattern + \"\";\n this.flags = flags;\n this.switchU = unicode && this.parser.options.ecmaVersion >= 6;\n this.switchN = unicode && this.parser.options.ecmaVersion >= 9;\n};\n\nRegExpValidationState.prototype.raise = function raise (message) {\n this.parser.raiseRecoverable(this.start, (\"Invalid regular expression: /\" + (this.source) + \"/: \" + message));\n};\n\n// If u flag is given, this returns the code point at the index (it combines a surrogate pair).\n// Otherwise, this returns the code unit of the index (can be a part of a surrogate pair).\nRegExpValidationState.prototype.at = function at (i, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var s = this.source;\n var l = s.length;\n if (i >= l) {\n return -1\n }\n var c = s.charCodeAt(i);\n if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {\n return c\n }\n var next = s.charCodeAt(i + 1);\n return next >= 0xDC00 && next <= 0xDFFF ? (c << 10) + next - 0x35FDC00 : c\n};\n\nRegExpValidationState.prototype.nextIndex = function nextIndex (i, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var s = this.source;\n var l = s.length;\n if (i >= l) {\n return l\n }\n var c = s.charCodeAt(i), next;\n if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l ||\n (next = s.charCodeAt(i + 1)) < 0xDC00 || next > 0xDFFF) {\n return i + 1\n }\n return i + 2\n};\n\nRegExpValidationState.prototype.current = function current (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n return this.at(this.pos, forceU)\n};\n\nRegExpValidationState.prototype.lookahead = function lookahead (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n return this.at(this.nextIndex(this.pos, forceU), forceU)\n};\n\nRegExpValidationState.prototype.advance = function advance (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n this.pos = this.nextIndex(this.pos, forceU);\n};\n\nRegExpValidationState.prototype.eat = function eat (ch, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n if (this.current(forceU) === ch) {\n this.advance(forceU);\n return true\n }\n return false\n};\n\nfunction codePointToString(ch) {\n if (ch <= 0xFFFF) { return String.fromCharCode(ch) }\n ch -= 0x10000;\n return String.fromCharCode((ch >> 10) + 0xD800, (ch & 0x03FF) + 0xDC00)\n}\n\n/**\n * Validate the flags part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp$8.validateRegExpFlags = function(state) {\n var validFlags = state.validFlags;\n var flags = state.flags;\n\n for (var i = 0; i < flags.length; i++) {\n var flag = flags.charAt(i);\n if (validFlags.indexOf(flag) === -1) {\n this.raise(state.start, \"Invalid regular expression flag\");\n }\n if (flags.indexOf(flag, i + 1) > -1) {\n this.raise(state.start, \"Duplicate regular expression flag\");\n }\n }\n};\n\n/**\n * Validate the pattern part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp$8.validateRegExpPattern = function(state) {\n this.regexp_pattern(state);\n\n // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of\n // parsing contains a |GroupName|, reparse with the goal symbol\n // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError*\n // exception if _P_ did not conform to the grammar, if any elements of _P_\n // were not matched by the parse, or if any Early Error conditions exist.\n if (!state.switchN && this.options.ecmaVersion >= 9 && state.groupNames.length > 0) {\n state.switchN = true;\n this.regexp_pattern(state);\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern\npp$8.regexp_pattern = function(state) {\n state.pos = 0;\n state.lastIntValue = 0;\n state.lastStringValue = \"\";\n state.lastAssertionIsQuantifiable = false;\n state.numCapturingParens = 0;\n state.maxBackReference = 0;\n state.groupNames.length = 0;\n state.backReferenceNames.length = 0;\n\n this.regexp_disjunction(state);\n\n if (state.pos !== state.source.length) {\n // Make the same messages as V8.\n if (state.eat(0x29 /* ) */)) {\n state.raise(\"Unmatched ')'\");\n }\n if (state.eat(0x5D /* ] */) || state.eat(0x7D /* } */)) {\n state.raise(\"Lone quantifier brackets\");\n }\n }\n if (state.maxBackReference > state.numCapturingParens) {\n state.raise(\"Invalid escape\");\n }\n for (var i = 0, list = state.backReferenceNames; i < list.length; i += 1) {\n var name = list[i];\n\n if (state.groupNames.indexOf(name) === -1) {\n state.raise(\"Invalid named capture referenced\");\n }\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction\npp$8.regexp_disjunction = function(state) {\n this.regexp_alternative(state);\n while (state.eat(0x7C /* | */)) {\n this.regexp_alternative(state);\n }\n\n // Make the same message as V8.\n if (this.regexp_eatQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\");\n }\n if (state.eat(0x7B /* { */)) {\n state.raise(\"Lone quantifier brackets\");\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative\npp$8.regexp_alternative = function(state) {\n while (state.pos < state.source.length && this.regexp_eatTerm(state))\n { }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term\npp$8.regexp_eatTerm = function(state) {\n if (this.regexp_eatAssertion(state)) {\n // Handle `QuantifiableAssertion Quantifier` alternative.\n // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion\n // is a QuantifiableAssertion.\n if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) {\n // Make the same message as V8.\n if (state.switchU) {\n state.raise(\"Invalid quantifier\");\n }\n }\n return true\n }\n\n if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) {\n this.regexp_eatQuantifier(state);\n return true\n }\n\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion\npp$8.regexp_eatAssertion = function(state) {\n var start = state.pos;\n state.lastAssertionIsQuantifiable = false;\n\n // ^, $\n if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) {\n return true\n }\n\n // \\b \\B\n if (state.eat(0x5C /* \\ */)) {\n if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) {\n return true\n }\n state.pos = start;\n }\n\n // Lookahead / Lookbehind\n if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) {\n var lookbehind = false;\n if (this.options.ecmaVersion >= 9) {\n lookbehind = state.eat(0x3C /* < */);\n }\n if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) {\n this.regexp_disjunction(state);\n if (!state.eat(0x29 /* ) */)) {\n state.raise(\"Unterminated group\");\n }\n state.lastAssertionIsQuantifiable = !lookbehind;\n return true\n }\n }\n\n state.pos = start;\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier\npp$8.regexp_eatQuantifier = function(state, noError) {\n if ( noError === void 0 ) noError = false;\n\n if (this.regexp_eatQuantifierPrefix(state, noError)) {\n state.eat(0x3F /* ? */);\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix\npp$8.regexp_eatQuantifierPrefix = function(state, noError) {\n return (\n state.eat(0x2A /* * */) ||\n state.eat(0x2B /* + */) ||\n state.eat(0x3F /* ? */) ||\n this.regexp_eatBracedQuantifier(state, noError)\n )\n};\npp$8.regexp_eatBracedQuantifier = function(state, noError) {\n var start = state.pos;\n if (state.eat(0x7B /* { */)) {\n var min = 0, max = -1;\n if (this.regexp_eatDecimalDigits(state)) {\n min = state.lastIntValue;\n if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) {\n max = state.lastIntValue;\n }\n if (state.eat(0x7D /* } */)) {\n // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term\n if (max !== -1 && max < min && !noError) {\n state.raise(\"numbers out of order in {} quantifier\");\n }\n return true\n }\n }\n if (state.switchU && !noError) {\n state.raise(\"Incomplete quantifier\");\n }\n state.pos = start;\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Atom\npp$8.regexp_eatAtom = function(state) {\n return (\n this.regexp_eatPatternCharacters(state) ||\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state)\n )\n};\npp$8.regexp_eatReverseSolidusAtomEscape = function(state) {\n var start = state.pos;\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatAtomEscape(state)) {\n return true\n }\n state.pos = start;\n }\n return false\n};\npp$8.regexp_eatUncapturingGroup = function(state) {\n var start = state.pos;\n if (state.eat(0x28 /* ( */)) {\n if (state.eat(0x3F /* ? */) && state.eat(0x3A /* : */)) {\n this.regexp_disjunction(state);\n if (state.eat(0x29 /* ) */)) {\n return true\n }\n state.raise(\"Unterminated group\");\n }\n state.pos = start;\n }\n return false\n};\npp$8.regexp_eatCapturingGroup = function(state) {\n if (state.eat(0x28 /* ( */)) {\n if (this.options.ecmaVersion >= 9) {\n this.regexp_groupSpecifier(state);\n } else if (state.current() === 0x3F /* ? */) {\n state.raise(\"Invalid group\");\n }\n this.regexp_disjunction(state);\n if (state.eat(0x29 /* ) */)) {\n state.numCapturingParens += 1;\n return true\n }\n state.raise(\"Unterminated group\");\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom\npp$8.regexp_eatExtendedAtom = function(state) {\n return (\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state) ||\n this.regexp_eatInvalidBracedQuantifier(state) ||\n this.regexp_eatExtendedPatternCharacter(state)\n )\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier\npp$8.regexp_eatInvalidBracedQuantifier = function(state) {\n if (this.regexp_eatBracedQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\");\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter\npp$8.regexp_eatSyntaxCharacter = function(state) {\n var ch = state.current();\n if (isSyntaxCharacter(ch)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n return false\n};\nfunction isSyntaxCharacter(ch) {\n return (\n ch === 0x24 /* $ */ ||\n ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ ||\n ch === 0x2E /* . */ ||\n ch === 0x3F /* ? */ ||\n ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ ||\n ch >= 0x7B /* { */ && ch <= 0x7D /* } */\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter\n// But eat eager.\npp$8.regexp_eatPatternCharacters = function(state) {\n var start = state.pos;\n var ch = 0;\n while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) {\n state.advance();\n }\n return state.pos !== start\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter\npp$8.regexp_eatExtendedPatternCharacter = function(state) {\n var ch = state.current();\n if (\n ch !== -1 &&\n ch !== 0x24 /* $ */ &&\n !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) &&\n ch !== 0x2E /* . */ &&\n ch !== 0x3F /* ? */ &&\n ch !== 0x5B /* [ */ &&\n ch !== 0x5E /* ^ */ &&\n ch !== 0x7C /* | */\n ) {\n state.advance();\n return true\n }\n return false\n};\n\n// GroupSpecifier ::\n// [empty]\n// `?` GroupName\npp$8.regexp_groupSpecifier = function(state) {\n if (state.eat(0x3F /* ? */)) {\n if (this.regexp_eatGroupName(state)) {\n if (state.groupNames.indexOf(state.lastStringValue) !== -1) {\n state.raise(\"Duplicate capture group name\");\n }\n state.groupNames.push(state.lastStringValue);\n return\n }\n state.raise(\"Invalid group\");\n }\n};\n\n// GroupName ::\n// `<` RegExpIdentifierName `>`\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp$8.regexp_eatGroupName = function(state) {\n state.lastStringValue = \"\";\n if (state.eat(0x3C /* < */)) {\n if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) {\n return true\n }\n state.raise(\"Invalid capture group name\");\n }\n return false\n};\n\n// RegExpIdentifierName ::\n// RegExpIdentifierStart\n// RegExpIdentifierName RegExpIdentifierPart\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp$8.regexp_eatRegExpIdentifierName = function(state) {\n state.lastStringValue = \"\";\n if (this.regexp_eatRegExpIdentifierStart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue);\n while (this.regexp_eatRegExpIdentifierPart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue);\n }\n return true\n }\n return false\n};\n\n// RegExpIdentifierStart ::\n// UnicodeIDStart\n// `$`\n// `_`\n// `\\` RegExpUnicodeEscapeSequence[+U]\npp$8.regexp_eatRegExpIdentifierStart = function(state) {\n var start = state.pos;\n var forceU = this.options.ecmaVersion >= 11;\n var ch = state.current(forceU);\n state.advance(forceU);\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {\n ch = state.lastIntValue;\n }\n if (isRegExpIdentifierStart(ch)) {\n state.lastIntValue = ch;\n return true\n }\n\n state.pos = start;\n return false\n};\nfunction isRegExpIdentifierStart(ch) {\n return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */\n}\n\n// RegExpIdentifierPart ::\n// UnicodeIDContinue\n// `$`\n// `_`\n// `\\` RegExpUnicodeEscapeSequence[+U]\n// <ZWNJ>\n// <ZWJ>\npp$8.regexp_eatRegExpIdentifierPart = function(state) {\n var start = state.pos;\n var forceU = this.options.ecmaVersion >= 11;\n var ch = state.current(forceU);\n state.advance(forceU);\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {\n ch = state.lastIntValue;\n }\n if (isRegExpIdentifierPart(ch)) {\n state.lastIntValue = ch;\n return true\n }\n\n state.pos = start;\n return false\n};\nfunction isRegExpIdentifierPart(ch) {\n return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* <ZWNJ> */ || ch === 0x200D /* <ZWJ> */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape\npp$8.regexp_eatAtomEscape = function(state) {\n if (\n this.regexp_eatBackReference(state) ||\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state) ||\n (state.switchN && this.regexp_eatKGroupName(state))\n ) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n if (state.current() === 0x63 /* c */) {\n state.raise(\"Invalid unicode escape\");\n }\n state.raise(\"Invalid escape\");\n }\n return false\n};\npp$8.regexp_eatBackReference = function(state) {\n var start = state.pos;\n if (this.regexp_eatDecimalEscape(state)) {\n var n = state.lastIntValue;\n if (state.switchU) {\n // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape\n if (n > state.maxBackReference) {\n state.maxBackReference = n;\n }\n return true\n }\n if (n <= state.numCapturingParens) {\n return true\n }\n state.pos = start;\n }\n return false\n};\npp$8.regexp_eatKGroupName = function(state) {\n if (state.eat(0x6B /* k */)) {\n if (this.regexp_eatGroupName(state)) {\n state.backReferenceNames.push(state.lastStringValue);\n return true\n }\n state.raise(\"Invalid named reference\");\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape\npp$8.regexp_eatCharacterEscape = function(state) {\n return (\n this.regexp_eatControlEscape(state) ||\n this.regexp_eatCControlLetter(state) ||\n this.regexp_eatZero(state) ||\n this.regexp_eatHexEscapeSequence(state) ||\n this.regexp_eatRegExpUnicodeEscapeSequence(state, false) ||\n (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) ||\n this.regexp_eatIdentityEscape(state)\n )\n};\npp$8.regexp_eatCControlLetter = function(state) {\n var start = state.pos;\n if (state.eat(0x63 /* c */)) {\n if (this.regexp_eatControlLetter(state)) {\n return true\n }\n state.pos = start;\n }\n return false\n};\npp$8.regexp_eatZero = function(state) {\n if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) {\n state.lastIntValue = 0;\n state.advance();\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape\npp$8.regexp_eatControlEscape = function(state) {\n var ch = state.current();\n if (ch === 0x74 /* t */) {\n state.lastIntValue = 0x09; /* \\t */\n state.advance();\n return true\n }\n if (ch === 0x6E /* n */) {\n state.lastIntValue = 0x0A; /* \\n */\n state.advance();\n return true\n }\n if (ch === 0x76 /* v */) {\n state.lastIntValue = 0x0B; /* \\v */\n state.advance();\n return true\n }\n if (ch === 0x66 /* f */) {\n state.lastIntValue = 0x0C; /* \\f */\n state.advance();\n return true\n }\n if (ch === 0x72 /* r */) {\n state.lastIntValue = 0x0D; /* \\r */\n state.advance();\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter\npp$8.regexp_eatControlLetter = function(state) {\n var ch = state.current();\n if (isControlLetter(ch)) {\n state.lastIntValue = ch % 0x20;\n state.advance();\n return true\n }\n return false\n};\nfunction isControlLetter(ch) {\n return (\n (ch >= 0x41 /* A */ && ch <= 0x5A /* Z */) ||\n (ch >= 0x61 /* a */ && ch <= 0x7A /* z */)\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence\npp$8.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var start = state.pos;\n var switchU = forceU || state.switchU;\n\n if (state.eat(0x75 /* u */)) {\n if (this.regexp_eatFixedHexDigits(state, 4)) {\n var lead = state.lastIntValue;\n if (switchU && lead >= 0xD800 && lead <= 0xDBFF) {\n var leadSurrogateEnd = state.pos;\n if (state.eat(0x5C /* \\ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) {\n var trail = state.lastIntValue;\n if (trail >= 0xDC00 && trail <= 0xDFFF) {\n state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000;\n return true\n }\n }\n state.pos = leadSurrogateEnd;\n state.lastIntValue = lead;\n }\n return true\n }\n if (\n switchU &&\n state.eat(0x7B /* { */) &&\n this.regexp_eatHexDigits(state) &&\n state.eat(0x7D /* } */) &&\n isValidUnicode(state.lastIntValue)\n ) {\n return true\n }\n if (switchU) {\n state.raise(\"Invalid unicode escape\");\n }\n state.pos = start;\n }\n\n return false\n};\nfunction isValidUnicode(ch) {\n return ch >= 0 && ch <= 0x10FFFF\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape\npp$8.regexp_eatIdentityEscape = function(state) {\n if (state.switchU) {\n if (this.regexp_eatSyntaxCharacter(state)) {\n return true\n }\n if (state.eat(0x2F /* / */)) {\n state.lastIntValue = 0x2F; /* / */\n return true\n }\n return false\n }\n\n var ch = state.current();\n if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape\npp$8.regexp_eatDecimalEscape = function(state) {\n state.lastIntValue = 0;\n var ch = state.current();\n if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) {\n do {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);\n state.advance();\n } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */)\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape\npp$8.regexp_eatCharacterClassEscape = function(state) {\n var ch = state.current();\n\n if (isCharacterClassEscape(ch)) {\n state.lastIntValue = -1;\n state.advance();\n return true\n }\n\n if (\n state.switchU &&\n this.options.ecmaVersion >= 9 &&\n (ch === 0x50 /* P */ || ch === 0x70 /* p */)\n ) {\n state.lastIntValue = -1;\n state.advance();\n if (\n state.eat(0x7B /* { */) &&\n this.regexp_eatUnicodePropertyValueExpression(state) &&\n state.eat(0x7D /* } */)\n ) {\n return true\n }\n state.raise(\"Invalid property name\");\n }\n\n return false\n};\nfunction isCharacterClassEscape(ch) {\n return (\n ch === 0x64 /* d */ ||\n ch === 0x44 /* D */ ||\n ch === 0x73 /* s */ ||\n ch === 0x53 /* S */ ||\n ch === 0x77 /* w */ ||\n ch === 0x57 /* W */\n )\n}\n\n// UnicodePropertyValueExpression ::\n// UnicodePropertyName `=` UnicodePropertyValue\n// LoneUnicodePropertyNameOrValue\npp$8.regexp_eatUnicodePropertyValueExpression = function(state) {\n var start = state.pos;\n\n // UnicodePropertyName `=` UnicodePropertyValue\n if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) {\n var name = state.lastStringValue;\n if (this.regexp_eatUnicodePropertyValue(state)) {\n var value = state.lastStringValue;\n this.regexp_validateUnicodePropertyNameAndValue(state, name, value);\n return true\n }\n }\n state.pos = start;\n\n // LoneUnicodePropertyNameOrValue\n if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) {\n var nameOrValue = state.lastStringValue;\n this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue);\n return true\n }\n return false\n};\npp$8.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {\n if (!has(state.unicodeProperties.nonBinary, name))\n { state.raise(\"Invalid property name\"); }\n if (!state.unicodeProperties.nonBinary[name].test(value))\n { state.raise(\"Invalid property value\"); }\n};\npp$8.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) {\n if (!state.unicodeProperties.binary.test(nameOrValue))\n { state.raise(\"Invalid property name\"); }\n};\n\n// UnicodePropertyName ::\n// UnicodePropertyNameCharacters\npp$8.regexp_eatUnicodePropertyName = function(state) {\n var ch = 0;\n state.lastStringValue = \"\";\n while (isUnicodePropertyNameCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch);\n state.advance();\n }\n return state.lastStringValue !== \"\"\n};\nfunction isUnicodePropertyNameCharacter(ch) {\n return isControlLetter(ch) || ch === 0x5F /* _ */\n}\n\n// UnicodePropertyValue ::\n// UnicodePropertyValueCharacters\npp$8.regexp_eatUnicodePropertyValue = function(state) {\n var ch = 0;\n state.lastStringValue = \"\";\n while (isUnicodePropertyValueCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch);\n state.advance();\n }\n return state.lastStringValue !== \"\"\n};\nfunction isUnicodePropertyValueCharacter(ch) {\n return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch)\n}\n\n// LoneUnicodePropertyNameOrValue ::\n// UnicodePropertyValueCharacters\npp$8.regexp_eatLoneUnicodePropertyNameOrValue = function(state) {\n return this.regexp_eatUnicodePropertyValue(state)\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass\npp$8.regexp_eatCharacterClass = function(state) {\n if (state.eat(0x5B /* [ */)) {\n state.eat(0x5E /* ^ */);\n this.regexp_classRanges(state);\n if (state.eat(0x5D /* ] */)) {\n return true\n }\n // Unreachable since it threw \"unterminated regular expression\" error before.\n state.raise(\"Unterminated character class\");\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash\npp$8.regexp_classRanges = function(state) {\n while (this.regexp_eatClassAtom(state)) {\n var left = state.lastIntValue;\n if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) {\n var right = state.lastIntValue;\n if (state.switchU && (left === -1 || right === -1)) {\n state.raise(\"Invalid character class\");\n }\n if (left !== -1 && right !== -1 && left > right) {\n state.raise(\"Range out of order in character class\");\n }\n }\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash\npp$8.regexp_eatClassAtom = function(state) {\n var start = state.pos;\n\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatClassEscape(state)) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n var ch$1 = state.current();\n if (ch$1 === 0x63 /* c */ || isOctalDigit(ch$1)) {\n state.raise(\"Invalid class escape\");\n }\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n\n var ch = state.current();\n if (ch !== 0x5D /* ] */) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape\npp$8.regexp_eatClassEscape = function(state) {\n var start = state.pos;\n\n if (state.eat(0x62 /* b */)) {\n state.lastIntValue = 0x08; /* <BS> */\n return true\n }\n\n if (state.switchU && state.eat(0x2D /* - */)) {\n state.lastIntValue = 0x2D; /* - */\n return true\n }\n\n if (!state.switchU && state.eat(0x63 /* c */)) {\n if (this.regexp_eatClassControlLetter(state)) {\n return true\n }\n state.pos = start;\n }\n\n return (\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state)\n )\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter\npp$8.regexp_eatClassControlLetter = function(state) {\n var ch = state.current();\n if (isDecimalDigit(ch) || ch === 0x5F /* _ */) {\n state.lastIntValue = ch % 0x20;\n state.advance();\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp$8.regexp_eatHexEscapeSequence = function(state) {\n var start = state.pos;\n if (state.eat(0x78 /* x */)) {\n if (this.regexp_eatFixedHexDigits(state, 2)) {\n return true\n }\n if (state.switchU) {\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits\npp$8.regexp_eatDecimalDigits = function(state) {\n var start = state.pos;\n var ch = 0;\n state.lastIntValue = 0;\n while (isDecimalDigit(ch = state.current())) {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);\n state.advance();\n }\n return state.pos !== start\n};\nfunction isDecimalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits\npp$8.regexp_eatHexDigits = function(state) {\n var start = state.pos;\n var ch = 0;\n state.lastIntValue = 0;\n while (isHexDigit(ch = state.current())) {\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);\n state.advance();\n }\n return state.pos !== start\n};\nfunction isHexDigit(ch) {\n return (\n (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) ||\n (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) ||\n (ch >= 0x61 /* a */ && ch <= 0x66 /* f */)\n )\n}\nfunction hexToInt(ch) {\n if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) {\n return 10 + (ch - 0x41 /* A */)\n }\n if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) {\n return 10 + (ch - 0x61 /* a */)\n }\n return ch - 0x30 /* 0 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence\n// Allows only 0-377(octal) i.e. 0-255(decimal).\npp$8.regexp_eatLegacyOctalEscapeSequence = function(state) {\n if (this.regexp_eatOctalDigit(state)) {\n var n1 = state.lastIntValue;\n if (this.regexp_eatOctalDigit(state)) {\n var n2 = state.lastIntValue;\n if (n1 <= 3 && this.regexp_eatOctalDigit(state)) {\n state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue;\n } else {\n state.lastIntValue = n1 * 8 + n2;\n }\n } else {\n state.lastIntValue = n1;\n }\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit\npp$8.regexp_eatOctalDigit = function(state) {\n var ch = state.current();\n if (isOctalDigit(ch)) {\n state.lastIntValue = ch - 0x30; /* 0 */\n state.advance();\n return true\n }\n state.lastIntValue = 0;\n return false\n};\nfunction isOctalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x37 /* 7 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit\n// And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp$8.regexp_eatFixedHexDigits = function(state, length) {\n var start = state.pos;\n state.lastIntValue = 0;\n for (var i = 0; i < length; ++i) {\n var ch = state.current();\n if (!isHexDigit(ch)) {\n state.pos = start;\n return false\n }\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);\n state.advance();\n }\n return true\n};\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nvar Token = function Token(p) {\n this.type = p.type;\n this.value = p.value;\n this.start = p.start;\n this.end = p.end;\n if (p.options.locations)\n { this.loc = new SourceLocation(p, p.startLoc, p.endLoc); }\n if (p.options.ranges)\n { this.range = [p.start, p.end]; }\n};\n\n// ## Tokenizer\n\nvar pp$9 = Parser.prototype;\n\n// Move to the next token\n\npp$9.next = function(ignoreEscapeSequenceInKeyword) {\n if (!ignoreEscapeSequenceInKeyword && this.type.keyword && this.containsEsc)\n { this.raiseRecoverable(this.start, \"Escape sequence in keyword \" + this.type.keyword); }\n if (this.options.onToken)\n { this.options.onToken(new Token(this)); }\n\n this.lastTokEnd = this.end;\n this.lastTokStart = this.start;\n this.lastTokEndLoc = this.endLoc;\n this.lastTokStartLoc = this.startLoc;\n this.nextToken();\n};\n\npp$9.getToken = function() {\n this.next();\n return new Token(this)\n};\n\n// If we're in an ES6 environment, make parsers iterable\nif (typeof Symbol !== \"undefined\")\n { pp$9[Symbol.iterator] = function() {\n var this$1 = this;\n\n return {\n next: function () {\n var token = this$1.getToken();\n return {\n done: token.type === types.eof,\n value: token\n }\n }\n }\n }; }\n\n// Toggle strict mode. Re-reads the next number or string to please\n// pedantic tests (`\"use strict\"; 010;` should fail).\n\npp$9.curContext = function() {\n return this.context[this.context.length - 1]\n};\n\n// Read a single token, updating the parser object's token-related\n// properties.\n\npp$9.nextToken = function() {\n var curContext = this.curContext();\n if (!curContext || !curContext.preserveSpace) { this.skipSpace(); }\n\n this.start = this.pos;\n if (this.options.locations) { this.startLoc = this.curPosition(); }\n if (this.pos >= this.input.length) { return this.finishToken(types.eof) }\n\n if (curContext.override) { return curContext.override(this) }\n else { this.readToken(this.fullCharCodeAtPos()); }\n};\n\npp$9.readToken = function(code) {\n // Identifier or keyword. '\\uXXXX' sequences are allowed in\n // identifiers, so '\\' also dispatches to that.\n if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\\' */)\n { return this.readWord() }\n\n return this.getTokenFromCode(code)\n};\n\npp$9.fullCharCodeAtPos = function() {\n var code = this.input.charCodeAt(this.pos);\n if (code <= 0xd7ff || code >= 0xdc00) { return code }\n var next = this.input.charCodeAt(this.pos + 1);\n return next <= 0xdbff || next >= 0xe000 ? code : (code << 10) + next - 0x35fdc00\n};\n\npp$9.skipBlockComment = function() {\n var startLoc = this.options.onComment && this.curPosition();\n var start = this.pos, end = this.input.indexOf(\"*/\", this.pos += 2);\n if (end === -1) { this.raise(this.pos - 2, \"Unterminated comment\"); }\n this.pos = end + 2;\n if (this.options.locations) {\n lineBreakG.lastIndex = start;\n var match;\n while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) {\n ++this.curLine;\n this.lineStart = match.index + match[0].length;\n }\n }\n if (this.options.onComment)\n { this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos,\n startLoc, this.curPosition()); }\n};\n\npp$9.skipLineComment = function(startSkip) {\n var start = this.pos;\n var startLoc = this.options.onComment && this.curPosition();\n var ch = this.input.charCodeAt(this.pos += startSkip);\n while (this.pos < this.input.length && !isNewLine(ch)) {\n ch = this.input.charCodeAt(++this.pos);\n }\n if (this.options.onComment)\n { this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos,\n startLoc, this.curPosition()); }\n};\n\n// Called at the start of the parse and after every token. Skips\n// whitespace and comments, and.\n\npp$9.skipSpace = function() {\n loop: while (this.pos < this.input.length) {\n var ch = this.input.charCodeAt(this.pos);\n switch (ch) {\n case 32: case 160: // ' '\n ++this.pos;\n break\n case 13:\n if (this.input.charCodeAt(this.pos + 1) === 10) {\n ++this.pos;\n }\n case 10: case 8232: case 8233:\n ++this.pos;\n if (this.options.locations) {\n ++this.curLine;\n this.lineStart = this.pos;\n }\n break\n case 47: // '/'\n switch (this.input.charCodeAt(this.pos + 1)) {\n case 42: // '*'\n this.skipBlockComment();\n break\n case 47:\n this.skipLineComment(2);\n break\n default:\n break loop\n }\n break\n default:\n if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {\n ++this.pos;\n } else {\n break loop\n }\n }\n }\n};\n\n// Called at the end of every token. Sets `end`, `val`, and\n// maintains `context` and `exprAllowed`, and skips the space after\n// the token, so that the next one's `start` will point at the\n// right position.\n\npp$9.finishToken = function(type, val) {\n this.end = this.pos;\n if (this.options.locations) { this.endLoc = this.curPosition(); }\n var prevType = this.type;\n this.type = type;\n this.value = val;\n\n this.updateContext(prevType);\n};\n\n// ### Token reading\n\n// This is the function that is called to fetch the next token. It\n// is somewhat obscure, because it works in character codes rather\n// than characters, and because operator parsing has been inlined\n// into it.\n//\n// All in the name of speed.\n//\npp$9.readToken_dot = function() {\n var next = this.input.charCodeAt(this.pos + 1);\n if (next >= 48 && next <= 57) { return this.readNumber(true) }\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'\n this.pos += 3;\n return this.finishToken(types.ellipsis)\n } else {\n ++this.pos;\n return this.finishToken(types.dot)\n }\n};\n\npp$9.readToken_slash = function() { // '/'\n var next = this.input.charCodeAt(this.pos + 1);\n if (this.exprAllowed) { ++this.pos; return this.readRegexp() }\n if (next === 61) { return this.finishOp(types.assign, 2) }\n return this.finishOp(types.slash, 1)\n};\n\npp$9.readToken_mult_modulo_exp = function(code) { // '%*'\n var next = this.input.charCodeAt(this.pos + 1);\n var size = 1;\n var tokentype = code === 42 ? types.star : types.modulo;\n\n // exponentiation operator ** and **=\n if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) {\n ++size;\n tokentype = types.starstar;\n next = this.input.charCodeAt(this.pos + 2);\n }\n\n if (next === 61) { return this.finishOp(types.assign, size + 1) }\n return this.finishOp(tokentype, size)\n};\n\npp$9.readToken_pipe_amp = function(code) { // '|&'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === code) {\n if (this.options.ecmaVersion >= 12) {\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (next2 === 61) { return this.finishOp(types.assign, 3) }\n }\n return this.finishOp(code === 124 ? types.logicalOR : types.logicalAND, 2)\n }\n if (next === 61) { return this.finishOp(types.assign, 2) }\n return this.finishOp(code === 124 ? types.bitwiseOR : types.bitwiseAND, 1)\n};\n\npp$9.readToken_caret = function() { // '^'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 61) { return this.finishOp(types.assign, 2) }\n return this.finishOp(types.bitwiseXOR, 1)\n};\n\npp$9.readToken_plus_min = function(code) { // '+-'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === code) {\n if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 &&\n (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) {\n // A `-->` line comment\n this.skipLineComment(3);\n this.skipSpace();\n return this.nextToken()\n }\n return this.finishOp(types.incDec, 2)\n }\n if (next === 61) { return this.finishOp(types.assign, 2) }\n return this.finishOp(types.plusMin, 1)\n};\n\npp$9.readToken_lt_gt = function(code) { // '<>'\n var next = this.input.charCodeAt(this.pos + 1);\n var size = 1;\n if (next === code) {\n size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2;\n if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types.assign, size + 1) }\n return this.finishOp(types.bitShift, size)\n }\n if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n this.input.charCodeAt(this.pos + 3) === 45) {\n // `<!--`, an XML-style comment that should be interpreted as a line comment\n this.skipLineComment(4);\n this.skipSpace();\n return this.nextToken()\n }\n if (next === 61) { size = 2; }\n return this.finishOp(types.relational, size)\n};\n\npp$9.readToken_eq_excl = function(code) { // '=!'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 61) { return this.finishOp(types.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) }\n if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { // '=>'\n this.pos += 2;\n return this.finishToken(types.arrow)\n }\n return this.finishOp(code === 61 ? types.eq : types.prefix, 1)\n};\n\npp$9.readToken_question = function() { // '?'\n var ecmaVersion = this.options.ecmaVersion;\n if (ecmaVersion >= 11) {\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 46) {\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (next2 < 48 || next2 > 57) { return this.finishOp(types.questionDot, 2) }\n }\n if (next === 63) {\n if (ecmaVersion >= 12) {\n var next2$1 = this.input.charCodeAt(this.pos + 2);\n if (next2$1 === 61) { return this.finishOp(types.assign, 3) }\n }\n return this.finishOp(types.coalesce, 2)\n }\n }\n return this.finishOp(types.question, 1)\n};\n\npp$9.readToken_numberSign = function() { // '#'\n var ecmaVersion = this.options.ecmaVersion;\n var code = 35; // '#'\n if (ecmaVersion >= 13) {\n ++this.pos;\n code = this.fullCharCodeAtPos();\n if (isIdentifierStart(code, true) || code === 92 /* '\\' */) {\n return this.finishToken(types.privateId, this.readWord1())\n }\n }\n\n this.raise(this.pos, \"Unexpected character '\" + codePointToString$1(code) + \"'\");\n};\n\npp$9.getTokenFromCode = function(code) {\n switch (code) {\n // The interpretation of a dot depends on whether it is followed\n // by a digit or another two dots.\n case 46: // '.'\n return this.readToken_dot()\n\n // Punctuation tokens.\n case 40: ++this.pos; return this.finishToken(types.parenL)\n case 41: ++this.pos; return this.finishToken(types.parenR)\n case 59: ++this.pos; return this.finishToken(types.semi)\n case 44: ++this.pos; return this.finishToken(types.comma)\n case 91: ++this.pos; return this.finishToken(types.bracketL)\n case 93: ++this.pos; return this.finishToken(types.bracketR)\n case 123: ++this.pos; return this.finishToken(types.braceL)\n case 125: ++this.pos; return this.finishToken(types.braceR)\n case 58: ++this.pos; return this.finishToken(types.colon)\n\n case 96: // '`'\n if (this.options.ecmaVersion < 6) { break }\n ++this.pos;\n return this.finishToken(types.backQuote)\n\n case 48: // '0'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 120 || next === 88) { return this.readRadixNumber(16) } // '0x', '0X' - hex number\n if (this.options.ecmaVersion >= 6) {\n if (next === 111 || next === 79) { return this.readRadixNumber(8) } // '0o', '0O' - octal number\n if (next === 98 || next === 66) { return this.readRadixNumber(2) } // '0b', '0B' - binary number\n }\n\n // Anything else beginning with a digit is an integer, octal\n // number, or float.\n case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: // 1-9\n return this.readNumber(false)\n\n // Quotes produce strings.\n case 34: case 39: // '\"', \"'\"\n return this.readString(code)\n\n // Operators are parsed inline in tiny state machines. '=' (61) is\n // often referred to. `finishOp` simply skips the amount of\n // characters it is given as second argument, and returns a token\n // of the type given by its first argument.\n\n case 47: // '/'\n return this.readToken_slash()\n\n case 37: case 42: // '%*'\n return this.readToken_mult_modulo_exp(code)\n\n case 124: case 38: // '|&'\n return this.readToken_pipe_amp(code)\n\n case 94: // '^'\n return this.readToken_caret()\n\n case 43: case 45: // '+-'\n return this.readToken_plus_min(code)\n\n case 60: case 62: // '<>'\n return this.readToken_lt_gt(code)\n\n case 61: case 33: // '=!'\n return this.readToken_eq_excl(code)\n\n case 63: // '?'\n return this.readToken_question()\n\n case 126: // '~'\n return this.finishOp(types.prefix, 1)\n\n case 35: // '#'\n return this.readToken_numberSign()\n }\n\n this.raise(this.pos, \"Unexpected character '\" + codePointToString$1(code) + \"'\");\n};\n\npp$9.finishOp = function(type, size) {\n var str = this.input.slice(this.pos, this.pos + size);\n this.pos += size;\n return this.finishToken(type, str)\n};\n\npp$9.readRegexp = function() {\n var escaped, inClass, start = this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(start, \"Unterminated regular expression\"); }\n var ch = this.input.charAt(this.pos);\n if (lineBreak.test(ch)) { this.raise(start, \"Unterminated regular expression\"); }\n if (!escaped) {\n if (ch === \"[\") { inClass = true; }\n else if (ch === \"]\" && inClass) { inClass = false; }\n else if (ch === \"/\" && !inClass) { break }\n escaped = ch === \"\\\\\";\n } else { escaped = false; }\n ++this.pos;\n }\n var pattern = this.input.slice(start, this.pos);\n ++this.pos;\n var flagsStart = this.pos;\n var flags = this.readWord1();\n if (this.containsEsc) { this.unexpected(flagsStart); }\n\n // Validate pattern\n var state = this.regexpState || (this.regexpState = new RegExpValidationState(this));\n state.reset(start, pattern, flags);\n this.validateRegExpFlags(state);\n this.validateRegExpPattern(state);\n\n // Create Literal#value property value.\n var value = null;\n try {\n value = new RegExp(pattern, flags);\n } catch (e) {\n // ESTree requires null if it failed to instantiate RegExp object.\n // https://github.com/estree/estree/blob/a27003adf4fd7bfad44de9cef372a2eacd527b1c/es5.md#regexpliteral\n }\n\n return this.finishToken(types.regexp, {pattern: pattern, flags: flags, value: value})\n};\n\n// Read an integer in the given radix. Return null if zero digits\n// were read, the integer value otherwise. When `len` is given, this\n// will return `null` unless the integer has exactly `len` digits.\n\npp$9.readInt = function(radix, len, maybeLegacyOctalNumericLiteral) {\n // `len` is used for character escape sequences. In that case, disallow separators.\n var allowSeparators = this.options.ecmaVersion >= 12 && len === undefined;\n\n // `maybeLegacyOctalNumericLiteral` is true if it doesn't have prefix (0x,0o,0b)\n // and isn't fraction part nor exponent part. In that case, if the first digit\n // is zero then disallow separators.\n var isLegacyOctalNumericLiteral = maybeLegacyOctalNumericLiteral && this.input.charCodeAt(this.pos) === 48;\n\n var start = this.pos, total = 0, lastCode = 0;\n for (var i = 0, e = len == null ? Infinity : len; i < e; ++i, ++this.pos) {\n var code = this.input.charCodeAt(this.pos), val = (void 0);\n\n if (allowSeparators && code === 95) {\n if (isLegacyOctalNumericLiteral) { this.raiseRecoverable(this.pos, \"Numeric separator is not allowed in legacy octal numeric literals\"); }\n if (lastCode === 95) { this.raiseRecoverable(this.pos, \"Numeric separator must be exactly one underscore\"); }\n if (i === 0) { this.raiseRecoverable(this.pos, \"Numeric separator is not allowed at the first of digits\"); }\n lastCode = code;\n continue\n }\n\n if (code >= 97) { val = code - 97 + 10; } // a\n else if (code >= 65) { val = code - 65 + 10; } // A\n else if (code >= 48 && code <= 57) { val = code - 48; } // 0-9\n else { val = Infinity; }\n if (val >= radix) { break }\n lastCode = code;\n total = total * radix + val;\n }\n\n if (allowSeparators && lastCode === 95) { this.raiseRecoverable(this.pos - 1, \"Numeric separator is not allowed at the last of digits\"); }\n if (this.pos === start || len != null && this.pos - start !== len) { return null }\n\n return total\n};\n\nfunction stringToNumber(str, isLegacyOctalNumericLiteral) {\n if (isLegacyOctalNumericLiteral) {\n return parseInt(str, 8)\n }\n\n // `parseFloat(value)` stops parsing at the first numeric separator then returns a wrong value.\n return parseFloat(str.replace(/_/g, \"\"))\n}\n\nfunction stringToBigInt(str) {\n if (typeof BigInt !== \"function\") {\n return null\n }\n\n // `BigInt(value)` throws syntax error if the string contains numeric separators.\n return BigInt(str.replace(/_/g, \"\"))\n}\n\npp$9.readRadixNumber = function(radix) {\n var start = this.pos;\n this.pos += 2; // 0x\n var val = this.readInt(radix);\n if (val == null) { this.raise(this.start + 2, \"Expected number in radix \" + radix); }\n if (this.options.ecmaVersion >= 11 && this.input.charCodeAt(this.pos) === 110) {\n val = stringToBigInt(this.input.slice(start, this.pos));\n ++this.pos;\n } else if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n return this.finishToken(types.num, val)\n};\n\n// Read an integer, octal integer, or floating-point number.\n\npp$9.readNumber = function(startsWithDot) {\n var start = this.pos;\n if (!startsWithDot && this.readInt(10, undefined, true) === null) { this.raise(start, \"Invalid number\"); }\n var octal = this.pos - start >= 2 && this.input.charCodeAt(start) === 48;\n if (octal && this.strict) { this.raise(start, \"Invalid number\"); }\n var next = this.input.charCodeAt(this.pos);\n if (!octal && !startsWithDot && this.options.ecmaVersion >= 11 && next === 110) {\n var val$1 = stringToBigInt(this.input.slice(start, this.pos));\n ++this.pos;\n if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n return this.finishToken(types.num, val$1)\n }\n if (octal && /[89]/.test(this.input.slice(start, this.pos))) { octal = false; }\n if (next === 46 && !octal) { // '.'\n ++this.pos;\n this.readInt(10);\n next = this.input.charCodeAt(this.pos);\n }\n if ((next === 69 || next === 101) && !octal) { // 'eE'\n next = this.input.charCodeAt(++this.pos);\n if (next === 43 || next === 45) { ++this.pos; } // '+-'\n if (this.readInt(10) === null) { this.raise(start, \"Invalid number\"); }\n }\n if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n\n var val = stringToNumber(this.input.slice(start, this.pos), octal);\n return this.finishToken(types.num, val)\n};\n\n// Read a string value, interpreting backslash-escapes.\n\npp$9.readCodePoint = function() {\n var ch = this.input.charCodeAt(this.pos), code;\n\n if (ch === 123) { // '{'\n if (this.options.ecmaVersion < 6) { this.unexpected(); }\n var codePos = ++this.pos;\n code = this.readHexChar(this.input.indexOf(\"}\", this.pos) - this.pos);\n ++this.pos;\n if (code > 0x10FFFF) { this.invalidStringToken(codePos, \"Code point out of bounds\"); }\n } else {\n code = this.readHexChar(4);\n }\n return code\n};\n\nfunction codePointToString$1(code) {\n // UTF-16 Decoding\n if (code <= 0xFFFF) { return String.fromCharCode(code) }\n code -= 0x10000;\n return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00)\n}\n\npp$9.readString = function(quote) {\n var out = \"\", chunkStart = ++this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(this.start, \"Unterminated string constant\"); }\n var ch = this.input.charCodeAt(this.pos);\n if (ch === quote) { break }\n if (ch === 92) { // '\\'\n out += this.input.slice(chunkStart, this.pos);\n out += this.readEscapedChar(false);\n chunkStart = this.pos;\n } else {\n if (isNewLine(ch, this.options.ecmaVersion >= 10)) { this.raise(this.start, \"Unterminated string constant\"); }\n ++this.pos;\n }\n }\n out += this.input.slice(chunkStart, this.pos++);\n return this.finishToken(types.string, out)\n};\n\n// Reads template string tokens.\n\nvar INVALID_TEMPLATE_ESCAPE_ERROR = {};\n\npp$9.tryReadTemplateToken = function() {\n this.inTemplateElement = true;\n try {\n this.readTmplToken();\n } catch (err) {\n if (err === INVALID_TEMPLATE_ESCAPE_ERROR) {\n this.readInvalidTemplateToken();\n } else {\n throw err\n }\n }\n\n this.inTemplateElement = false;\n};\n\npp$9.invalidStringToken = function(position, message) {\n if (this.inTemplateElement && this.options.ecmaVersion >= 9) {\n throw INVALID_TEMPLATE_ESCAPE_ERROR\n } else {\n this.raise(position, message);\n }\n};\n\npp$9.readTmplToken = function() {\n var out = \"\", chunkStart = this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(this.start, \"Unterminated template\"); }\n var ch = this.input.charCodeAt(this.pos);\n if (ch === 96 || ch === 36 && this.input.charCodeAt(this.pos + 1) === 123) { // '`', '${'\n if (this.pos === this.start && (this.type === types.template || this.type === types.invalidTemplate)) {\n if (ch === 36) {\n this.pos += 2;\n return this.finishToken(types.dollarBraceL)\n } else {\n ++this.pos;\n return this.finishToken(types.backQuote)\n }\n }\n out += this.input.slice(chunkStart, this.pos);\n return this.finishToken(types.template, out)\n }\n if (ch === 92) { // '\\'\n out += this.input.slice(chunkStart, this.pos);\n out += this.readEscapedChar(true);\n chunkStart = this.pos;\n } else if (isNewLine(ch)) {\n out += this.input.slice(chunkStart, this.pos);\n ++this.pos;\n switch (ch) {\n case 13:\n if (this.input.charCodeAt(this.pos) === 10) { ++this.pos; }\n case 10:\n out += \"\\n\";\n break\n default:\n out += String.fromCharCode(ch);\n break\n }\n if (this.options.locations) {\n ++this.curLine;\n this.lineStart = this.pos;\n }\n chunkStart = this.pos;\n } else {\n ++this.pos;\n }\n }\n};\n\n// Reads a template token to search for the end, without validating any escape sequences\npp$9.readInvalidTemplateToken = function() {\n for (; this.pos < this.input.length; this.pos++) {\n switch (this.input[this.pos]) {\n case \"\\\\\":\n ++this.pos;\n break\n\n case \"$\":\n if (this.input[this.pos + 1] !== \"{\") {\n break\n }\n // falls through\n\n case \"`\":\n return this.finishToken(types.invalidTemplate, this.input.slice(this.start, this.pos))\n\n // no default\n }\n }\n this.raise(this.start, \"Unterminated template\");\n};\n\n// Used to read escaped characters\n\npp$9.readEscapedChar = function(inTemplate) {\n var ch = this.input.charCodeAt(++this.pos);\n ++this.pos;\n switch (ch) {\n case 110: return \"\\n\" // 'n' -> '\\n'\n case 114: return \"\\r\" // 'r' -> '\\r'\n case 120: return String.fromCharCode(this.readHexChar(2)) // 'x'\n case 117: return codePointToString$1(this.readCodePoint()) // 'u'\n case 116: return \"\\t\" // 't' -> '\\t'\n case 98: return \"\\b\" // 'b' -> '\\b'\n case 118: return \"\\u000b\" // 'v' -> '\\u000b'\n case 102: return \"\\f\" // 'f' -> '\\f'\n case 13: if (this.input.charCodeAt(this.pos) === 10) { ++this.pos; } // '\\r\\n'\n case 10: // ' \\n'\n if (this.options.locations) { this.lineStart = this.pos; ++this.curLine; }\n return \"\"\n case 56:\n case 57:\n if (this.strict) {\n this.invalidStringToken(\n this.pos - 1,\n \"Invalid escape sequence\"\n );\n }\n if (inTemplate) {\n var codePos = this.pos - 1;\n\n this.invalidStringToken(\n codePos,\n \"Invalid escape sequence in template string\"\n );\n\n return null\n }\n default:\n if (ch >= 48 && ch <= 55) {\n var octalStr = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0];\n var octal = parseInt(octalStr, 8);\n if (octal > 255) {\n octalStr = octalStr.slice(0, -1);\n octal = parseInt(octalStr, 8);\n }\n this.pos += octalStr.length - 1;\n ch = this.input.charCodeAt(this.pos);\n if ((octalStr !== \"0\" || ch === 56 || ch === 57) && (this.strict || inTemplate)) {\n this.invalidStringToken(\n this.pos - 1 - octalStr.length,\n inTemplate\n ? \"Octal literal in template string\"\n : \"Octal literal in strict mode\"\n );\n }\n return String.fromCharCode(octal)\n }\n if (isNewLine(ch)) {\n // Unicode new line characters after \\ get removed from output in both\n // template literals and strings\n return \"\"\n }\n return String.fromCharCode(ch)\n }\n};\n\n// Used to read character escape sequences ('\\x', '\\u', '\\U').\n\npp$9.readHexChar = function(len) {\n var codePos = this.pos;\n var n = this.readInt(16, len);\n if (n === null) { this.invalidStringToken(codePos, \"Bad character escape sequence\"); }\n return n\n};\n\n// Read an identifier, and return it as a string. Sets `this.containsEsc`\n// to whether the word contained a '\\u' escape.\n//\n// Incrementally adds only escaped chars, adding other chunks as-is\n// as a micro-optimization.\n\npp$9.readWord1 = function() {\n this.containsEsc = false;\n var word = \"\", first = true, chunkStart = this.pos;\n var astral = this.options.ecmaVersion >= 6;\n while (this.pos < this.input.length) {\n var ch = this.fullCharCodeAtPos();\n if (isIdentifierChar(ch, astral)) {\n this.pos += ch <= 0xffff ? 1 : 2;\n } else if (ch === 92) { // \"\\\"\n this.containsEsc = true;\n word += this.input.slice(chunkStart, this.pos);\n var escStart = this.pos;\n if (this.input.charCodeAt(++this.pos) !== 117) // \"u\"\n { this.invalidStringToken(this.pos, \"Expecting Unicode escape sequence \\\\uXXXX\"); }\n ++this.pos;\n var esc = this.readCodePoint();\n if (!(first ? isIdentifierStart : isIdentifierChar)(esc, astral))\n { this.invalidStringToken(escStart, \"Invalid Unicode escape\"); }\n word += codePointToString$1(esc);\n chunkStart = this.pos;\n } else {\n break\n }\n first = false;\n }\n return word + this.input.slice(chunkStart, this.pos)\n};\n\n// Read an identifier or keyword token. Will check for reserved\n// words when necessary.\n\npp$9.readWord = function() {\n var word = this.readWord1();\n var type = types.name;\n if (this.keywords.test(word)) {\n type = keywords$1[word];\n }\n return this.finishToken(type, word)\n};\n\n// Acorn is a tiny, fast JavaScript parser written in JavaScript.\n\nvar version = \"8.4.0\";\n\nParser.acorn = {\n Parser: Parser,\n version: version,\n defaultOptions: defaultOptions,\n Position: Position,\n SourceLocation: SourceLocation,\n getLineInfo: getLineInfo,\n Node: Node,\n TokenType: TokenType,\n tokTypes: types,\n keywordTypes: keywords$1,\n TokContext: TokContext,\n tokContexts: types$1,\n isIdentifierChar: isIdentifierChar,\n isIdentifierStart: isIdentifierStart,\n Token: Token,\n isNewLine: isNewLine,\n lineBreak: lineBreak,\n lineBreakG: lineBreakG,\n nonASCIIwhitespace: nonASCIIwhitespace\n};\n\n// The main exported interface (under `self.acorn` when in the\n// browser) is a `parse` function that takes a code string and\n// returns an abstract syntax tree as specified by [Mozilla parser\n// API][api].\n//\n// [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API\n\nfunction parse(input, options) {\n return Parser.parse(input, options)\n}\n\n// This function tries to parse a single expression at a given\n// offset in a string. Useful for parsing mixed-language formats\n// that embed JavaScript expressions.\n\nfunction parseExpressionAt(input, pos, options) {\n return Parser.parseExpressionAt(input, pos, options)\n}\n\n// Acorn is organized as a tokenizer and a recursive-descent parser.\n// The `tokenizer` export provides an interface to the tokenizer.\n\nfunction tokenizer(input, options) {\n return Parser.tokenizer(input, options)\n}\n\nexport { Node, Parser, Position, SourceLocation, TokContext, Token, TokenType, defaultOptions, getLineInfo, isIdentifierChar, isIdentifierStart, isNewLine, keywords$1 as keywordTypes, lineBreak, lineBreakG, nonASCIIwhitespace, parse, parseExpressionAt, types$1 as tokContexts, types as tokTypes, tokenizer, version };\n","import { error } from '../src/utils/error';\n\nexport const throwNoFileSystem = (method: string) => (): never => {\n\terror({\n\t\tcode: 'NO_FS_IN_BROWSER',\n\t\tmessage: `Cannot access the file system (via \"${method}\") when using the browser build of Rollup. Make sure you supply a plugin with custom resolveId and load hooks to Rollup.`,\n\t\turl: 'https://rollupjs.org/guide/en/#a-simple-example'\n\t});\n};\n","import { throwNoFileSystem } from './error';\n\nexport const readFile = throwNoFileSystem('fs.readFile');\nexport const writeFile = throwNoFileSystem('fs.writeFile');\n","export class Queue {\n\tprivate queue = new Array<{\n\t\treject: (reason?: any) => void;\n\t\tresolve: (value: any) => void;\n\t\ttask: () => any;\n\t}>();\n\tprivate workerCount = 0;\n\n\tconstructor(public maxParallel = 1) {}\n\n\trun<T>(task: () => T | Promise<T>): Promise<T> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.queue.push({ reject, resolve, task });\n\t\t\tthis.work();\n\t\t});\n\t}\n\n\tprivate async work() {\n\t\tif (this.workerCount >= this.maxParallel) return;\n\t\tthis.workerCount++;\n\n\t\tlet entry;\n\t\twhile ((entry = this.queue.shift())) {\n\t\t\tconst { reject, resolve, task } = entry;\n\n\t\t\ttry {\n\t\t\t\tconst result = await task();\n\t\t\t\tresolve(result);\n\t\t\t} catch (err) {\n\t\t\t\treject(err);\n\t\t\t}\n\t\t}\n\n\t\tthis.workerCount--;\n\t}\n}\n","import { CustomPluginOptions, Plugin, ResolvedId, ResolveIdResult } from '../src/rollup/types';\nimport { PluginDriver } from '../src/utils/PluginDriver';\nimport { resolveIdViaPlugins } from '../src/utils/resolveIdViaPlugins';\nimport { throwNoFileSystem } from './error';\n\nexport async function resolveId(\n\tsource: string,\n\timporter: string | undefined,\n\t_preserveSymlinks: boolean,\n\tpluginDriver: PluginDriver,\n\tmoduleLoaderResolveId: (\n\t\tsource: string,\n\t\timporter: string | undefined,\n\t\tcustomOptions: CustomPluginOptions | undefined,\n\t\tskip: { importer: string | undefined; plugin: Plugin; source: string }[] | null\n\t) => Promise<ResolvedId | null>,\n\tskip: { importer: string | undefined; plugin: Plugin; source: string }[] | null,\n\tcustomOptions: CustomPluginOptions | undefined\n): Promise<ResolveIdResult> {\n\tconst pluginResult = await resolveIdViaPlugins(\n\t\tsource,\n\t\timporter,\n\t\tpluginDriver,\n\t\tmoduleLoaderResolveId,\n\t\tskip,\n\t\tcustomOptions\n\t);\n\tif (pluginResult == null) {\n\t\tthrowNoFileSystem('path.resolve');\n\t}\n\treturn pluginResult;\n}\n","import {\n\tCustomPluginOptions,\n\tPlugin,\n\tPluginContext,\n\tResolvedId,\n\tResolveIdResult\n} from '../rollup/types';\nimport { PluginDriver, ReplaceContext } from './PluginDriver';\nimport { BLANK } from './blank';\n\nexport function resolveIdViaPlugins(\n\tsource: string,\n\timporter: string | undefined,\n\tpluginDriver: PluginDriver,\n\tmoduleLoaderResolveId: (\n\t\tsource: string,\n\t\timporter: string | undefined,\n\t\tcustomOptions: CustomPluginOptions | undefined,\n\t\tskip: { importer: string | undefined; plugin: Plugin; source: string }[] | null\n\t) => Promise<ResolvedId | null>,\n\tskip: { importer: string | undefined; plugin: Plugin; source: string }[] | null,\n\tcustomOptions: CustomPluginOptions | undefined\n): Promise<ResolveIdResult> {\n\tlet skipped: Set<Plugin> | null = null;\n\tlet replaceContext: ReplaceContext | null = null;\n\tif (skip) {\n\t\tskipped = new Set();\n\t\tfor (const skippedCall of skip) {\n\t\t\tif (source === skippedCall.source && importer === skippedCall.importer) {\n\t\t\t\tskipped.add(skippedCall.plugin);\n\t\t\t}\n\t\t}\n\t\treplaceContext = (pluginContext, plugin): PluginContext => ({\n\t\t\t...pluginContext,\n\t\t\tresolve: (source, importer, { custom, skipSelf } = BLANK) => {\n\t\t\t\treturn moduleLoaderResolveId(\n\t\t\t\t\tsource,\n\t\t\t\t\timporter,\n\t\t\t\t\tcustom,\n\t\t\t\t\tskipSelf ? [...skip, { importer, plugin, source }] : skip\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\treturn pluginDriver.hookFirst(\n\t\t'resolveId',\n\t\t[source, importer, { custom: customOptions }],\n\t\treplaceContext,\n\t\tskipped\n\t);\n}\n","import { NormalizedInputOptions, Plugin, RollupError } from '../rollup/types';\nimport { error, Errors, warnDeprecation } from './error';\n\nexport const ANONYMOUS_PLUGIN_PREFIX = 'at position ';\nexport const ANONYMOUS_OUTPUT_PLUGIN_PREFIX = 'at output position ';\n\nexport function throwPluginError(\n\terr: string | RollupError,\n\tplugin: string,\n\t{ hook, id }: { hook?: string; id?: string } = {}\n): never {\n\tif (typeof err === 'string') err = { message: err };\n\tif (err.code && err.code !== Errors.PLUGIN_ERROR) {\n\t\terr.pluginCode = err.code;\n\t}\n\terr.code = Errors.PLUGIN_ERROR;\n\terr.plugin = plugin;\n\tif (hook) {\n\t\terr.hook = hook;\n\t}\n\tif (id) {\n\t\terr.id = id;\n\t}\n\treturn error(err);\n}\n\nexport const deprecatedHooks: { active: boolean; deprecated: string; replacement: string }[] = [\n\t{ active: true, deprecated: 'resolveAssetUrl', replacement: 'resolveFileUrl' }\n];\n\nexport function warnDeprecatedHooks(plugins: Plugin[], options: NormalizedInputOptions): void {\n\tfor (const { active, deprecated, replacement } of deprecatedHooks) {\n\t\tfor (const plugin of plugins) {\n\t\t\tif (deprecated in plugin) {\n\t\t\t\twarnDeprecation(\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: `The \"${deprecated}\" hook used by plugin ${plugin.name} is deprecated. The \"${replacement}\" hook should be used instead.`,\n\t\t\t\t\t\tplugin: plugin.name\n\t\t\t\t\t},\n\t\t\t\t\tactive,\n\t\t\t\t\toptions\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n}\n","import { PluginCache, SerializablePluginCache } from '../rollup/types';\nimport { error } from './error';\nimport { ANONYMOUS_OUTPUT_PLUGIN_PREFIX, ANONYMOUS_PLUGIN_PREFIX } from './pluginUtils';\n\nexport function createPluginCache(cache: SerializablePluginCache): PluginCache {\n\treturn {\n\t\tdelete(id: string) {\n\t\t\treturn delete cache[id];\n\t\t},\n\t\tget(id: string) {\n\t\t\tconst item = cache[id];\n\t\t\tif (!item) return undefined;\n\t\t\titem[0] = 0;\n\t\t\treturn item[1];\n\t\t},\n\t\thas(id: string) {\n\t\t\tconst item = cache[id];\n\t\t\tif (!item) return false;\n\t\t\titem[0] = 0;\n\t\t\treturn true;\n\t\t},\n\t\tset(id: string, value: any) {\n\t\t\tcache[id] = [0, value];\n\t\t}\n\t};\n}\n\nexport function getTrackedPluginCache(pluginCache: PluginCache, onUse: () => void): PluginCache {\n\treturn {\n\t\tdelete(id: string) {\n\t\t\tonUse();\n\t\t\treturn pluginCache.delete(id);\n\t\t},\n\t\tget(id: string) {\n\t\t\tonUse();\n\t\t\treturn pluginCache.get(id);\n\t\t},\n\t\thas(id: string) {\n\t\t\tonUse();\n\t\t\treturn pluginCache.has(id);\n\t\t},\n\t\tset(id: string, value: any) {\n\t\t\tonUse();\n\t\t\treturn pluginCache.set(id, value);\n\t\t}\n\t};\n}\n\nexport const NO_CACHE: PluginCache = {\n\tdelete() {\n\t\treturn false;\n\t},\n\tget() {\n\t\treturn undefined as any;\n\t},\n\thas() {\n\t\treturn false;\n\t},\n\tset() {}\n};\n\nfunction uncacheablePluginError(pluginName: string): never {\n\tif (\n\t\tpluginName.startsWith(ANONYMOUS_PLUGIN_PREFIX) ||\n\t\tpluginName.startsWith(ANONYMOUS_OUTPUT_PLUGIN_PREFIX)\n\t) {\n\t\treturn error({\n\t\t\tcode: 'ANONYMOUS_PLUGIN_CACHE',\n\t\t\tmessage:\n\t\t\t\t'A plugin is trying to use the Rollup cache but is not declaring a plugin name or cacheKey.'\n\t\t});\n\t}\n\treturn error({\n\t\tcode: 'DUPLICATE_PLUGIN_NAME',\n\t\tmessage: `The plugin name ${pluginName} is being used twice in the same build. Plugin names must be distinct or provide a cacheKey (please post an issue to the plugin if you are a plugin user).`\n\t});\n}\n\nexport function getCacheForUncacheablePlugin(pluginName: string): PluginCache {\n\treturn {\n\t\tdelete() {\n\t\t\treturn uncacheablePluginError(pluginName);\n\t\t},\n\t\tget() {\n\t\t\treturn uncacheablePluginError(pluginName);\n\t\t},\n\t\thas() {\n\t\t\treturn uncacheablePluginError(pluginName);\n\t\t},\n\t\tset() {\n\t\t\treturn uncacheablePluginError(pluginName);\n\t\t}\n\t};\n}\n","import MagicString, { SourceMap } from 'magic-string';\nimport Module from '../Module';\nimport {\n\tDecodedSourceMapOrMissing,\n\tEmittedFile,\n\tExistingRawSourceMap,\n\tPlugin,\n\tPluginContext,\n\tRollupError,\n\tRollupWarning,\n\tSourceDescription,\n\tTransformModuleJSON,\n\tTransformPluginContext,\n\tTransformResult,\n\tWarningHandler\n} from '../rollup/types';\nimport { getTrackedPluginCache } from './PluginCache';\nimport { PluginDriver } from './PluginDriver';\nimport { collapseSourcemap } from './collapseSourcemaps';\nimport { decodedSourcemap } from './decodedSourcemap';\nimport { augmentCodeLocation, errNoTransformMapOrAstWithoutCode } from './error';\nimport { throwPluginError } from './pluginUtils';\n\nexport default function transform(\n\tsource: SourceDescription,\n\tmodule: Module,\n\tpluginDriver: PluginDriver,\n\twarn: WarningHandler\n): Promise<TransformModuleJSON> {\n\tconst id = module.id;\n\tconst sourcemapChain: DecodedSourceMapOrMissing[] = [];\n\n\tlet originalSourcemap = source.map === null ? null : decodedSourcemap(source.map);\n\tconst originalCode = source.code;\n\tlet ast = source.ast;\n\tconst transformDependencies: string[] = [];\n\tconst emittedFiles: EmittedFile[] = [];\n\tlet customTransformCache = false;\n\tconst useCustomTransformCache = () => (customTransformCache = true);\n\tlet curPlugin: Plugin;\n\tconst curSource: string = source.code;\n\n\tfunction transformReducer(\n\t\tthis: PluginContext,\n\t\tpreviousCode: string,\n\t\tresult: TransformResult,\n\t\tplugin: Plugin\n\t): string {\n\t\tlet code: string;\n\t\tlet map: string | ExistingRawSourceMap | { mappings: '' } | null | undefined;\n\t\tif (typeof result === 'string') {\n\t\t\tcode = result;\n\t\t} else if (result && typeof result === 'object') {\n\t\t\tmodule.updateOptions(result);\n\t\t\tif (result.code == null) {\n\t\t\t\tif (result.map || result.ast) {\n\t\t\t\t\twarn(errNoTransformMapOrAstWithoutCode(plugin.name));\n\t\t\t\t}\n\t\t\t\treturn previousCode;\n\t\t\t}\n\t\t\t({ code, map, ast } = result);\n\t\t} else {\n\t\t\treturn previousCode;\n\t\t}\n\n\t\t// strict null check allows 'null' maps to not be pushed to the chain,\n\t\t// while 'undefined' gets the missing map warning\n\t\tif (map !== null) {\n\t\t\tsourcemapChain.push(\n\t\t\t\tdecodedSourcemap(typeof map === 'string' ? JSON.parse(map) : map) || {\n\t\t\t\t\tmissing: true,\n\t\t\t\t\tplugin: plugin.name\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\treturn code;\n\t}\n\n\treturn pluginDriver\n\t\t.hookReduceArg0(\n\t\t\t'transform',\n\t\t\t[curSource, id],\n\t\t\ttransformReducer,\n\t\t\t(pluginContext, plugin): TransformPluginContext => {\n\t\t\t\tcurPlugin = plugin;\n\t\t\t\treturn {\n\t\t\t\t\t...pluginContext,\n\t\t\t\t\taddWatchFile(id: string) {\n\t\t\t\t\t\ttransformDependencies.push(id);\n\t\t\t\t\t\tpluginContext.addWatchFile(id);\n\t\t\t\t\t},\n\t\t\t\t\tcache: customTransformCache\n\t\t\t\t\t\t? pluginContext.cache\n\t\t\t\t\t\t: getTrackedPluginCache(pluginContext.cache, useCustomTransformCache),\n\t\t\t\t\temitAsset(name: string, source?: string | Uint8Array) {\n\t\t\t\t\t\temittedFiles.push({ name, source, type: 'asset' as const });\n\t\t\t\t\t\treturn pluginContext.emitAsset(name, source);\n\t\t\t\t\t},\n\t\t\t\t\temitChunk(id, options) {\n\t\t\t\t\t\temittedFiles.push({ id, name: options && options.name, type: 'chunk' as const });\n\t\t\t\t\t\treturn pluginContext.emitChunk(id, options);\n\t\t\t\t\t},\n\t\t\t\t\temitFile(emittedFile: EmittedFile) {\n\t\t\t\t\t\temittedFiles.push(emittedFile);\n\t\t\t\t\t\treturn pluginDriver.emitFile(emittedFile);\n\t\t\t\t\t},\n\t\t\t\t\terror(err: RollupError | string, pos?: number | { column: number; line: number }): never {\n\t\t\t\t\t\tif (typeof err === 'string') err = { message: err };\n\t\t\t\t\t\tif (pos) augmentCodeLocation(err, pos, curSource, id);\n\t\t\t\t\t\terr.id = id;\n\t\t\t\t\t\terr.hook = 'transform';\n\t\t\t\t\t\treturn pluginContext.error(err);\n\t\t\t\t\t},\n\t\t\t\t\tgetCombinedSourcemap() {\n\t\t\t\t\t\tconst combinedMap = collapseSourcemap(\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\toriginalCode,\n\t\t\t\t\t\t\toriginalSourcemap,\n\t\t\t\t\t\t\tsourcemapChain,\n\t\t\t\t\t\t\twarn\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (!combinedMap) {\n\t\t\t\t\t\t\tconst magicString = new MagicString(originalCode);\n\t\t\t\t\t\t\treturn magicString.generateMap({ hires: true, includeContent: true, source: id });\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (originalSourcemap !== combinedMap) {\n\t\t\t\t\t\t\toriginalSourcemap = combinedMap;\n\t\t\t\t\t\t\tsourcemapChain.length = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn new SourceMap({\n\t\t\t\t\t\t\t...combinedMap,\n\t\t\t\t\t\t\tfile: null as never,\n\t\t\t\t\t\t\tsourcesContent: combinedMap.sourcesContent!\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tsetAssetSource() {\n\t\t\t\t\t\treturn this.error({\n\t\t\t\t\t\t\tcode: 'INVALID_SETASSETSOURCE',\n\t\t\t\t\t\t\tmessage: `setAssetSource cannot be called in transform for caching reasons. Use emitFile with a source, or call setAssetSource in another hook.`\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\twarn(warning: RollupWarning | string, pos?: number | { column: number; line: number }) {\n\t\t\t\t\t\tif (typeof warning === 'string') warning = { message: warning };\n\t\t\t\t\t\tif (pos) augmentCodeLocation(warning, pos, curSource, id);\n\t\t\t\t\t\twarning.id = id;\n\t\t\t\t\t\twarning.hook = 'transform';\n\t\t\t\t\t\tpluginContext.warn(warning);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t)\n\t\t.catch(err => throwPluginError(err, curPlugin.name, { hook: 'transform', id }))\n\t\t.then(code => {\n\t\t\tif (!customTransformCache) {\n\t\t\t\t// files emitted by a transform hook need to be emitted again if the hook is skipped\n\t\t\t\tif (emittedFiles.length) module.transformFiles = emittedFiles;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tast,\n\t\t\t\tcode,\n\t\t\t\tcustomTransformCache,\n\t\t\t\tmeta: module.info.meta,\n\t\t\t\toriginalCode,\n\t\t\t\toriginalSourcemap,\n\t\t\t\tsourcemapChain,\n\t\t\t\ttransformDependencies\n\t\t\t};\n\t\t});\n}\n","import * as acorn from 'acorn';\nimport ExternalModule from './ExternalModule';\nimport Graph from './Graph';\nimport Module from './Module';\nimport {\n\tCustomPluginOptions,\n\tEmittedChunk,\n\tHasModuleSideEffects,\n\tModuleOptions,\n\tNormalizedInputOptions,\n\tPartialNull,\n\tPlugin,\n\tResolvedId,\n\tResolveIdResult,\n\tSourceDescription\n} from './rollup/types';\nimport { PluginDriver } from './utils/PluginDriver';\nimport { EMPTY_OBJECT } from './utils/blank';\nimport {\n\terrBadLoader,\n\terrEntryCannotBeExternal,\n\terrExternalSyntheticExports,\n\terrImplicitDependantCannotBeExternal,\n\terrInternalIdCannotBeExternal,\n\terror,\n\terrUnresolvedEntry,\n\terrUnresolvedImplicitDependant,\n\terrUnresolvedImport,\n\terrUnresolvedImportTreatedAsExternal\n} from './utils/error';\nimport { readFile } from './utils/fs';\nimport { isAbsolute, isRelative, resolve } from './utils/path';\nimport { Queue } from './utils/queue';\nimport relativeId from './utils/relativeId';\nimport { resolveId } from './utils/resolveId';\nimport { timeEnd, timeStart } from './utils/timers';\nimport transform from './utils/transform';\n\nexport interface UnresolvedModule {\n\tfileName: string | null;\n\tid: string;\n\timporter: string | undefined;\n\tname: string | null;\n}\n\ntype NormalizedResolveIdWithoutDefaults = Partial<PartialNull<ModuleOptions>> & {\n\texternal?: boolean | 'absolute';\n\tid: string;\n};\n\nexport class ModuleLoader {\n\tprivate readonly hasModuleSideEffects: HasModuleSideEffects;\n\tprivate readonly implicitEntryModules = new Set<Module>();\n\tprivate readonly indexedEntryModules: { index: number; module: Module }[] = [];\n\tprivate latestLoadModulesPromise: Promise<unknown> = Promise.resolve();\n\tprivate nextEntryModuleIndex = 0;\n\tprivate readQueue = new Queue();\n\n\tconstructor(\n\t\tprivate readonly graph: Graph,\n\t\tprivate readonly modulesById: Map<string, Module | ExternalModule>,\n\t\tprivate readonly options: NormalizedInputOptions,\n\t\tprivate readonly pluginDriver: PluginDriver\n\t) {\n\t\tthis.hasModuleSideEffects = options.treeshake\n\t\t\t? options.treeshake.moduleSideEffects\n\t\t\t: () => true;\n\t\tthis.readQueue.maxParallel = options.maxParallelFileReads;\n\t}\n\n\tasync addAdditionalModules(unresolvedModules: string[]): Promise<Module[]> {\n\t\tconst result = this.extendLoadModulesPromise(\n\t\t\tPromise.all(unresolvedModules.map(id => this.loadEntryModule(id, false, undefined, null)))\n\t\t);\n\t\tawait this.awaitLoadModulesPromise();\n\t\treturn result;\n\t}\n\n\tasync addEntryModules(\n\t\tunresolvedEntryModules: UnresolvedModule[],\n\t\tisUserDefined: boolean\n\t): Promise<{\n\t\tentryModules: Module[];\n\t\timplicitEntryModules: Module[];\n\t\tnewEntryModules: Module[];\n\t}> {\n\t\tconst firstEntryModuleIndex = this.nextEntryModuleIndex;\n\t\tthis.nextEntryModuleIndex += unresolvedEntryModules.length;\n\t\tconst newEntryModules = await this.extendLoadModulesPromise(\n\t\t\tPromise.all(\n\t\t\t\tunresolvedEntryModules.map(\n\t\t\t\t\t({ id, importer }): Promise<Module> => this.loadEntryModule(id, true, importer, null)\n\t\t\t\t)\n\t\t\t).then(entryModules => {\n\t\t\t\tlet moduleIndex = firstEntryModuleIndex;\n\t\t\t\tfor (let index = 0; index < entryModules.length; index++) {\n\t\t\t\t\tconst entryModule = entryModules[index];\n\t\t\t\t\tentryModule.isUserDefinedEntryPoint =\n\t\t\t\t\t\tentryModule.isUserDefinedEntryPoint || isUserDefined;\n\t\t\t\t\taddChunkNamesToModule(entryModule, unresolvedEntryModules[index], isUserDefined);\n\t\t\t\t\tconst existingIndexedModule = this.indexedEntryModules.find(\n\t\t\t\t\t\tindexedModule => indexedModule.module === entryModule\n\t\t\t\t\t);\n\t\t\t\t\tif (!existingIndexedModule) {\n\t\t\t\t\t\tthis.indexedEntryModules.push({ index: moduleIndex, module: entryModule });\n\t\t\t\t\t} else {\n\t\t\t\t\t\texistingIndexedModule.index = Math.min(existingIndexedModule.index, moduleIndex);\n\t\t\t\t\t}\n\t\t\t\t\tmoduleIndex++;\n\t\t\t\t}\n\t\t\t\tthis.indexedEntryModules.sort(({ index: indexA }, { index: indexB }) =>\n\t\t\t\t\tindexA > indexB ? 1 : -1\n\t\t\t\t);\n\t\t\t\treturn entryModules;\n\t\t\t})\n\t\t);\n\t\tawait this.awaitLoadModulesPromise();\n\t\treturn {\n\t\t\tentryModules: this.indexedEntryModules.map(({ module }) => module),\n\t\t\timplicitEntryModules: [...this.implicitEntryModules],\n\t\t\tnewEntryModules\n\t\t};\n\t}\n\n\tasync emitChunk({\n\t\tfileName,\n\t\tid,\n\t\timporter,\n\t\tname,\n\t\timplicitlyLoadedAfterOneOf,\n\t\tpreserveSignature\n\t}: EmittedChunk): Promise<Module> {\n\t\tconst unresolvedModule: UnresolvedModule = {\n\t\t\tfileName: fileName || null,\n\t\t\tid,\n\t\t\timporter,\n\t\t\tname: name || null\n\t\t};\n\t\tconst module = implicitlyLoadedAfterOneOf\n\t\t\t? await this.addEntryWithImplicitDependants(unresolvedModule, implicitlyLoadedAfterOneOf)\n\t\t\t: (await this.addEntryModules([unresolvedModule], false)).newEntryModules[0];\n\t\tif (preserveSignature != null) {\n\t\t\tmodule.preserveSignature = preserveSignature;\n\t\t}\n\t\treturn module;\n\t}\n\n\tresolveId = async (\n\t\tsource: string,\n\t\timporter: string | undefined,\n\t\tcustomOptions: CustomPluginOptions | undefined,\n\t\tskip: { importer: string | undefined; plugin: Plugin; source: string }[] | null = null\n\t): Promise<ResolvedId | null> => {\n\t\treturn this.addDefaultsToResolvedId(\n\t\t\tthis.getNormalizedResolvedIdWithoutDefaults(\n\t\t\t\tthis.options.external(source, importer, false)\n\t\t\t\t\t? false\n\t\t\t\t\t: await resolveId(\n\t\t\t\t\t\t\tsource,\n\t\t\t\t\t\t\timporter,\n\t\t\t\t\t\t\tthis.options.preserveSymlinks,\n\t\t\t\t\t\t\tthis.pluginDriver,\n\t\t\t\t\t\t\tthis.resolveId,\n\t\t\t\t\t\t\tskip,\n\t\t\t\t\t\t\tcustomOptions\n\t\t\t\t\t ),\n\n\t\t\t\timporter,\n\t\t\t\tsource\n\t\t\t)\n\t\t);\n\t};\n\n\tprivate addDefaultsToResolvedId(\n\t\tresolvedId: NormalizedResolveIdWithoutDefaults | null\n\t): ResolvedId | null {\n\t\tif (!resolvedId) {\n\t\t\treturn null;\n\t\t}\n\t\tconst external = resolvedId.external || false;\n\t\treturn {\n\t\t\texternal,\n\t\t\tid: resolvedId.id,\n\t\t\tmeta: resolvedId.meta || EMPTY_OBJECT,\n\t\t\tmoduleSideEffects:\n\t\t\t\tresolvedId.moduleSideEffects ?? this.hasModuleSideEffects(resolvedId.id, !!external),\n\t\t\tsyntheticNamedExports: resolvedId.syntheticNamedExports ?? false\n\t\t};\n\t}\n\n\tprivate addEntryWithImplicitDependants(\n\t\tunresolvedModule: UnresolvedModule,\n\t\timplicitlyLoadedAfter: string[]\n\t): Promise<Module> {\n\t\treturn this.extendLoadModulesPromise(\n\t\t\tthis.loadEntryModule(unresolvedModule.id, false, unresolvedModule.importer, null).then(\n\t\t\t\tasync entryModule => {\n\t\t\t\t\taddChunkNamesToModule(entryModule, unresolvedModule, false);\n\t\t\t\t\tif (!entryModule.info.isEntry) {\n\t\t\t\t\t\tthis.implicitEntryModules.add(entryModule);\n\t\t\t\t\t\tconst implicitlyLoadedAfterModules = await Promise.all(\n\t\t\t\t\t\t\timplicitlyLoadedAfter.map(id =>\n\t\t\t\t\t\t\t\tthis.loadEntryModule(id, false, unresolvedModule.importer, entryModule.id)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfor (const module of implicitlyLoadedAfterModules) {\n\t\t\t\t\t\t\tentryModule.implicitlyLoadedAfter.add(module);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (const dependant of entryModule.implicitlyLoadedAfter) {\n\t\t\t\t\t\t\tdependant.implicitlyLoadedBefore.add(entryModule);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn entryModule;\n\t\t\t\t}\n\t\t\t)\n\t\t);\n\t}\n\n\tprivate async addModuleSource(id: string, importer: string | undefined, module: Module) {\n\t\ttimeStart('load modules', 3);\n\t\tlet source: string | SourceDescription;\n\t\ttry {\n\t\t\tsource =\n\t\t\t\t(await this.pluginDriver.hookFirst('load', [id])) ??\n\t\t\t\t(await this.readQueue.run(async () => readFile(id)));\n\t\t} catch (err) {\n\t\t\ttimeEnd('load modules', 3);\n\t\t\tlet msg = `Could not load ${id}`;\n\t\t\tif (importer) msg += ` (imported by ${relativeId(importer)})`;\n\t\t\tmsg += `: ${err.message}`;\n\t\t\terr.message = msg;\n\t\t\tthrow err;\n\t\t}\n\t\ttimeEnd('load modules', 3);\n\t\tconst sourceDescription =\n\t\t\ttypeof source === 'string'\n\t\t\t\t? { code: source }\n\t\t\t\t: typeof source === 'object' && typeof source.code === 'string'\n\t\t\t\t? source\n\t\t\t\t: error(errBadLoader(id));\n\t\tconst cachedModule = this.graph.cachedModules.get(id);\n\t\tif (\n\t\t\tcachedModule &&\n\t\t\t!cachedModule.customTransformCache &&\n\t\t\tcachedModule.originalCode === sourceDescription.code\n\t\t) {\n\t\t\tif (cachedModule.transformFiles) {\n\t\t\t\tfor (const emittedFile of cachedModule.transformFiles)\n\t\t\t\t\tthis.pluginDriver.emitFile(emittedFile);\n\t\t\t}\n\t\t\tmodule.setSource(cachedModule);\n\t\t} else {\n\t\t\tmodule.updateOptions(sourceDescription);\n\t\t\tmodule.setSource(\n\t\t\t\tawait transform(sourceDescription, module, this.pluginDriver, this.options.onwarn)\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate async awaitLoadModulesPromise(): Promise<void> {\n\t\tlet startingPromise;\n\t\tdo {\n\t\t\tstartingPromise = this.latestLoadModulesPromise;\n\t\t\tawait startingPromise;\n\t\t} while (startingPromise !== this.latestLoadModulesPromise);\n\t}\n\n\tprivate extendLoadModulesPromise<T>(loadNewModulesPromise: Promise<T>): Promise<T> {\n\t\tthis.latestLoadModulesPromise = Promise.all([\n\t\t\tloadNewModulesPromise,\n\t\t\tthis.latestLoadModulesPromise\n\t\t]);\n\t\tthis.latestLoadModulesPromise.catch(() => {\n\t\t\t/* Avoid unhandled Promise rejections */\n\t\t});\n\t\treturn loadNewModulesPromise;\n\t}\n\n\tprivate async fetchDynamicDependencies(module: Module): Promise<void> {\n\t\tconst dependencies = await Promise.all(\n\t\t\tmodule.dynamicImports.map(async dynamicImport => {\n\t\t\t\tconst resolvedId = await this.resolveDynamicImport(\n\t\t\t\t\tmodule,\n\t\t\t\t\ttypeof dynamicImport.argument === 'string'\n\t\t\t\t\t\t? dynamicImport.argument\n\t\t\t\t\t\t: dynamicImport.argument.esTreeNode,\n\t\t\t\t\tmodule.id\n\t\t\t\t);\n\t\t\t\tif (resolvedId === null) return null;\n\t\t\t\tif (typeof resolvedId === 'string') {\n\t\t\t\t\tdynamicImport.resolution = resolvedId;\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\treturn (dynamicImport.resolution = await this.fetchResolvedDependency(\n\t\t\t\t\trelativeId(resolvedId.id),\n\t\t\t\t\tmodule.id,\n\t\t\t\t\tresolvedId\n\t\t\t\t));\n\t\t\t})\n\t\t);\n\t\tfor (const dependency of dependencies) {\n\t\t\tif (dependency) {\n\t\t\t\tmodule.dynamicDependencies.add(dependency);\n\t\t\t\tdependency.dynamicImporters.push(module.id);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async fetchModule(\n\t\t{ id, meta, moduleSideEffects, syntheticNamedExports }: ResolvedId,\n\t\timporter: string | undefined,\n\t\tisEntry: boolean\n\t): Promise<Module> {\n\t\tconst existingModule = this.modulesById.get(id);\n\t\tif (existingModule instanceof Module) {\n\t\t\tif (isEntry) {\n\t\t\t\texistingModule.info.isEntry = true;\n\t\t\t\tthis.implicitEntryModules.delete(existingModule);\n\t\t\t\tfor (const dependant of existingModule.implicitlyLoadedAfter) {\n\t\t\t\t\tdependant.implicitlyLoadedBefore.delete(existingModule);\n\t\t\t\t}\n\t\t\t\texistingModule.implicitlyLoadedAfter.clear();\n\t\t\t}\n\t\t\treturn existingModule;\n\t\t}\n\n\t\tconst module: Module = new Module(\n\t\t\tthis.graph,\n\t\t\tid,\n\t\t\tthis.options,\n\t\t\tisEntry,\n\t\t\tmoduleSideEffects,\n\t\t\tsyntheticNamedExports,\n\t\t\tmeta\n\t\t);\n\t\tthis.modulesById.set(id, module);\n\t\tthis.graph.watchFiles[id] = true;\n\t\tawait this.addModuleSource(id, importer, module);\n\t\tawait this.pluginDriver.hookParallel('moduleParsed', [module.info]);\n\t\tawait Promise.all([\n\t\t\tthis.fetchStaticDependencies(module),\n\t\t\tthis.fetchDynamicDependencies(module)\n\t\t]);\n\t\tmodule.linkImports();\n\t\treturn module;\n\t}\n\n\tprivate fetchResolvedDependency(\n\t\tsource: string,\n\t\timporter: string,\n\t\tresolvedId: ResolvedId\n\t): Promise<Module | ExternalModule> {\n\t\tif (resolvedId.external) {\n\t\t\tconst { external, id, moduleSideEffects, meta } = resolvedId;\n\t\t\tif (!this.modulesById.has(id)) {\n\t\t\t\tthis.modulesById.set(\n\t\t\t\t\tid,\n\t\t\t\t\tnew ExternalModule(\n\t\t\t\t\t\tthis.options,\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tmoduleSideEffects,\n\t\t\t\t\t\tmeta,\n\t\t\t\t\t\texternal !== 'absolute' && isAbsolute(id)\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst externalModule = this.modulesById.get(id);\n\t\t\tif (!(externalModule instanceof ExternalModule)) {\n\t\t\t\treturn error(errInternalIdCannotBeExternal(source, importer));\n\t\t\t}\n\t\t\treturn Promise.resolve(externalModule);\n\t\t} else {\n\t\t\treturn this.fetchModule(resolvedId, importer, false);\n\t\t}\n\t}\n\n\tprivate async fetchStaticDependencies(module: Module): Promise<void> {\n\t\tfor (const dependency of await Promise.all(\n\t\t\tArray.from(module.sources, async source =>\n\t\t\t\tthis.fetchResolvedDependency(\n\t\t\t\t\tsource,\n\t\t\t\t\tmodule.id,\n\t\t\t\t\t(module.resolvedIds[source] =\n\t\t\t\t\t\tmodule.resolvedIds[source] ||\n\t\t\t\t\t\tthis.handleResolveId(\n\t\t\t\t\t\t\tawait this.resolveId(source, module.id, EMPTY_OBJECT),\n\t\t\t\t\t\t\tsource,\n\t\t\t\t\t\t\tmodule.id\n\t\t\t\t\t\t))\n\t\t\t\t)\n\t\t\t)\n\t\t)) {\n\t\t\tmodule.dependencies.add(dependency);\n\t\t\tdependency.importers.push(module.id);\n\t\t}\n\t\tif (!this.options.treeshake || module.info.hasModuleSideEffects === 'no-treeshake') {\n\t\t\tfor (const dependency of module.dependencies) {\n\t\t\t\tif (dependency instanceof Module) {\n\t\t\t\t\tdependency.importedFromNotTreeshaken = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate getNormalizedResolvedIdWithoutDefaults(\n\t\tresolveIdResult: ResolveIdResult,\n\t\timporter: string | undefined,\n\t\tsource: string\n\t): NormalizedResolveIdWithoutDefaults | null {\n\t\tconst { makeAbsoluteExternalsRelative } = this.options;\n\t\tif (resolveIdResult) {\n\t\t\tif (typeof resolveIdResult === 'object') {\n\t\t\t\tconst external =\n\t\t\t\t\tresolveIdResult.external || this.options.external(resolveIdResult.id, importer, true);\n\t\t\t\treturn {\n\t\t\t\t\t...resolveIdResult,\n\t\t\t\t\texternal:\n\t\t\t\t\t\texternal &&\n\t\t\t\t\t\t(external === 'relative' ||\n\t\t\t\t\t\t\t!isAbsolute(resolveIdResult.id) ||\n\t\t\t\t\t\t\t(external === true &&\n\t\t\t\t\t\t\t\tisNotAbsoluteExternal(resolveIdResult.id, source, makeAbsoluteExternalsRelative)) ||\n\t\t\t\t\t\t\t'absolute')\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst external = this.options.external(resolveIdResult, importer, true);\n\t\t\treturn {\n\t\t\t\texternal:\n\t\t\t\t\texternal &&\n\t\t\t\t\t(isNotAbsoluteExternal(resolveIdResult, source, makeAbsoluteExternalsRelative) ||\n\t\t\t\t\t\t'absolute'),\n\t\t\t\tid:\n\t\t\t\t\texternal && makeAbsoluteExternalsRelative\n\t\t\t\t\t\t? normalizeRelativeExternalId(resolveIdResult, importer)\n\t\t\t\t\t\t: resolveIdResult\n\t\t\t};\n\t\t}\n\n\t\tconst id = makeAbsoluteExternalsRelative\n\t\t\t? normalizeRelativeExternalId(source, importer)\n\t\t\t: source;\n\t\tif (resolveIdResult !== false && !this.options.external(id, importer, true)) {\n\t\t\treturn null;\n\t\t}\n\t\treturn {\n\t\t\texternal: isNotAbsoluteExternal(id, source, makeAbsoluteExternalsRelative) || 'absolute',\n\t\t\tid\n\t\t};\n\t}\n\n\tprivate handleResolveId(\n\t\tresolvedId: ResolvedId | null,\n\t\tsource: string,\n\t\timporter: string\n\t): ResolvedId {\n\t\tif (resolvedId === null) {\n\t\t\tif (isRelative(source)) {\n\t\t\t\treturn error(errUnresolvedImport(source, importer));\n\t\t\t}\n\t\t\tthis.options.onwarn(errUnresolvedImportTreatedAsExternal(source, importer));\n\t\t\treturn {\n\t\t\t\texternal: true,\n\t\t\t\tid: source,\n\t\t\t\tmeta: EMPTY_OBJECT,\n\t\t\t\tmoduleSideEffects: this.hasModuleSideEffects(source, true),\n\t\t\t\tsyntheticNamedExports: false\n\t\t\t};\n\t\t} else {\n\t\t\tif (resolvedId.external && resolvedId.syntheticNamedExports) {\n\t\t\t\tthis.options.onwarn(errExternalSyntheticExports(source, importer));\n\t\t\t}\n\t\t}\n\t\treturn resolvedId;\n\t}\n\n\tprivate async loadEntryModule(\n\t\tunresolvedId: string,\n\t\tisEntry: boolean,\n\t\timporter: string | undefined,\n\t\timplicitlyLoadedBefore: string | null\n\t): Promise<Module> {\n\t\tconst resolveIdResult = await resolveId(\n\t\t\tunresolvedId,\n\t\t\timporter,\n\t\t\tthis.options.preserveSymlinks,\n\t\t\tthis.pluginDriver,\n\t\t\tthis.resolveId,\n\t\t\tnull,\n\t\t\tEMPTY_OBJECT\n\t\t);\n\t\tif (resolveIdResult == null) {\n\t\t\treturn error(\n\t\t\t\timplicitlyLoadedBefore === null\n\t\t\t\t\t? errUnresolvedEntry(unresolvedId)\n\t\t\t\t\t: errUnresolvedImplicitDependant(unresolvedId, implicitlyLoadedBefore)\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\tresolveIdResult === false ||\n\t\t\t(typeof resolveIdResult === 'object' && resolveIdResult.external)\n\t\t) {\n\t\t\treturn error(\n\t\t\t\timplicitlyLoadedBefore === null\n\t\t\t\t\t? errEntryCannotBeExternal(unresolvedId)\n\t\t\t\t\t: errImplicitDependantCannotBeExternal(unresolvedId, implicitlyLoadedBefore)\n\t\t\t);\n\t\t}\n\t\treturn this.fetchModule(\n\t\t\tthis.addDefaultsToResolvedId(\n\t\t\t\ttypeof resolveIdResult === 'object'\n\t\t\t\t\t? (resolveIdResult as NormalizedResolveIdWithoutDefaults)\n\t\t\t\t\t: { id: resolveIdResult }\n\t\t\t)!,\n\t\t\tundefined,\n\t\t\tisEntry\n\t\t);\n\t}\n\n\tprivate async resolveDynamicImport(\n\t\tmodule: Module,\n\t\tspecifier: string | acorn.Node,\n\t\timporter: string\n\t): Promise<ResolvedId | string | null> {\n\t\tconst resolution = await this.pluginDriver.hookFirst('resolveDynamicImport', [\n\t\t\tspecifier,\n\t\t\timporter\n\t\t]);\n\t\tif (typeof specifier !== 'string') {\n\t\t\tif (typeof resolution === 'string') {\n\t\t\t\treturn resolution;\n\t\t\t}\n\t\t\tif (!resolution) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\texternal: false,\n\t\t\t\tmoduleSideEffects: true,\n\t\t\t\t...resolution\n\t\t\t} as ResolvedId;\n\t\t}\n\t\tif (resolution == null) {\n\t\t\treturn (module.resolvedIds[specifier] =\n\t\t\t\tmodule.resolvedIds[specifier] ||\n\t\t\t\tthis.handleResolveId(\n\t\t\t\t\tawait this.resolveId(specifier, module.id, EMPTY_OBJECT),\n\t\t\t\t\tspecifier,\n\t\t\t\t\tmodule.id\n\t\t\t\t));\n\t\t}\n\t\treturn this.handleResolveId(\n\t\t\tthis.addDefaultsToResolvedId(\n\t\t\t\tthis.getNormalizedResolvedIdWithoutDefaults(resolution, importer, specifier)\n\t\t\t),\n\t\t\tspecifier,\n\t\t\timporter\n\t\t);\n\t}\n}\n\nfunction normalizeRelativeExternalId(source: string, importer: string | undefined): string {\n\treturn isRelative(source)\n\t\t? importer\n\t\t\t? resolve(importer, '..', source)\n\t\t\t: resolve(source)\n\t\t: source;\n}\n\nfunction addChunkNamesToModule(\n\tmodule: Module,\n\t{ fileName, name }: UnresolvedModule,\n\tisUserDefined: boolean\n) {\n\tif (fileName !== null) {\n\t\tmodule.chunkFileNames.add(fileName);\n\t} else if (name !== null) {\n\t\tif (module.chunkName === null) {\n\t\t\tmodule.chunkName = name;\n\t\t}\n\t\tif (isUserDefined) {\n\t\t\tmodule.userChunkNames.add(name);\n\t\t}\n\t}\n}\n\nfunction isNotAbsoluteExternal(\n\tid: string,\n\tsource: string,\n\tmakeAbsoluteExternalsRelative: boolean | 'ifRelativeSource'\n) {\n\treturn (\n\t\tmakeAbsoluteExternalsRelative === true ||\n\t\t(makeAbsoluteExternalsRelative === 'ifRelativeSource' && isRelative(source)) ||\n\t\t!isAbsolute(id)\n\t);\n}\n","import GlobalVariable from '../variables/GlobalVariable';\nimport UndefinedVariable from '../variables/UndefinedVariable';\nimport Variable from '../variables/Variable';\nimport Scope from './Scope';\n\nexport default class GlobalScope extends Scope {\n\tparent: null;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.variables.set('undefined', new UndefinedVariable());\n\t}\n\n\tfindVariable(name: string): Variable {\n\t\tlet variable = this.variables.get(name);\n\t\tif (!variable) {\n\t\t\tvariable = new GlobalVariable(name);\n\t\t\tthis.variables.set(name, variable);\n\t\t}\n\t\treturn variable;\n\t}\n}\n","import { version as rollupVersion } from 'package.json';\nimport Graph from '../Graph';\nimport {\n\tNormalizedInputOptions,\n\tPlugin,\n\tPluginCache,\n\tPluginContext,\n\tSerializablePluginCache\n} from '../rollup/types';\nimport { FileEmitter } from './FileEmitter';\nimport { createPluginCache, getCacheForUncacheablePlugin, NO_CACHE } from './PluginCache';\nimport { BLANK } from './blank';\nimport { BuildPhase } from './buildPhase';\nimport { errInvalidRollupPhaseForAddWatchFile, warnDeprecation } from './error';\nimport {\n\tANONYMOUS_OUTPUT_PLUGIN_PREFIX,\n\tANONYMOUS_PLUGIN_PREFIX,\n\tthrowPluginError\n} from './pluginUtils';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction getDeprecatedContextHandler<H extends Function>(\n\thandler: H,\n\thandlerName: string,\n\tnewHandlerName: string,\n\tpluginName: string,\n\tactiveDeprecation: boolean,\n\toptions: NormalizedInputOptions\n): H {\n\tlet deprecationWarningShown = false;\n\treturn ((...args: any[]) => {\n\t\tif (!deprecationWarningShown) {\n\t\t\tdeprecationWarningShown = true;\n\t\t\twarnDeprecation(\n\t\t\t\t{\n\t\t\t\t\tmessage: `The \"this.${handlerName}\" plugin context function used by plugin ${pluginName} is deprecated. The \"this.${newHandlerName}\" plugin context function should be used instead.`,\n\t\t\t\t\tplugin: pluginName\n\t\t\t\t},\n\t\t\t\tactiveDeprecation,\n\t\t\t\toptions\n\t\t\t);\n\t\t}\n\t\treturn handler(...args);\n\t}) as unknown as H;\n}\n\nexport function getPluginContext(\n\tplugin: Plugin,\n\tpluginCache: Record<string, SerializablePluginCache> | void,\n\tgraph: Graph,\n\toptions: NormalizedInputOptions,\n\tfileEmitter: FileEmitter,\n\texistingPluginNames: Set<string>\n): PluginContext {\n\tlet cacheable = true;\n\tif (typeof plugin.cacheKey !== 'string') {\n\t\tif (\n\t\t\tplugin.name.startsWith(ANONYMOUS_PLUGIN_PREFIX) ||\n\t\t\tplugin.name.startsWith(ANONYMOUS_OUTPUT_PLUGIN_PREFIX) ||\n\t\t\texistingPluginNames.has(plugin.name)\n\t\t) {\n\t\t\tcacheable = false;\n\t\t} else {\n\t\t\texistingPluginNames.add(plugin.name);\n\t\t}\n\t}\n\n\tlet cacheInstance: PluginCache;\n\tif (!pluginCache) {\n\t\tcacheInstance = NO_CACHE;\n\t} else if (cacheable) {\n\t\tconst cacheKey = plugin.cacheKey || plugin.name;\n\t\tcacheInstance = createPluginCache(\n\t\t\tpluginCache[cacheKey] || (pluginCache[cacheKey] = Object.create(null))\n\t\t);\n\t} else {\n\t\tcacheInstance = getCacheForUncacheablePlugin(plugin.name);\n\t}\n\n\tconst context: PluginContext = {\n\t\taddWatchFile(id) {\n\t\t\tif (graph.phase >= BuildPhase.GENERATE) {\n\t\t\t\treturn this.error(errInvalidRollupPhaseForAddWatchFile());\n\t\t\t}\n\t\t\tgraph.watchFiles[id] = true;\n\t\t},\n\t\tcache: cacheInstance,\n\t\temitAsset: getDeprecatedContextHandler(\n\t\t\t(name: string, source?: string | Uint8Array) =>\n\t\t\t\tfileEmitter.emitFile({ name, source, type: 'asset' }),\n\t\t\t'emitAsset',\n\t\t\t'emitFile',\n\t\t\tplugin.name,\n\t\t\ttrue,\n\t\t\toptions\n\t\t),\n\t\temitChunk: getDeprecatedContextHandler(\n\t\t\t(id: string, options?: { name?: string }) =>\n\t\t\t\tfileEmitter.emitFile({ id, name: options && options.name, type: 'chunk' }),\n\t\t\t'emitChunk',\n\t\t\t'emitFile',\n\t\t\tplugin.name,\n\t\t\ttrue,\n\t\t\toptions\n\t\t),\n\t\temitFile: fileEmitter.emitFile.bind(fileEmitter),\n\t\terror(err): never {\n\t\t\treturn throwPluginError(err, plugin.name);\n\t\t},\n\t\tgetAssetFileName: getDeprecatedContextHandler(\n\t\t\tfileEmitter.getFileName,\n\t\t\t'getAssetFileName',\n\t\t\t'getFileName',\n\t\t\tplugin.name,\n\t\t\ttrue,\n\t\t\toptions\n\t\t),\n\t\tgetChunkFileName: getDeprecatedContextHandler(\n\t\t\tfileEmitter.getFileName,\n\t\t\t'getChunkFileName',\n\t\t\t'getFileName',\n\t\t\tplugin.name,\n\t\t\ttrue,\n\t\t\toptions\n\t\t),\n\t\tgetFileName: fileEmitter.getFileName,\n\t\tgetModuleIds: () => graph.modulesById.keys(),\n\t\tgetModuleInfo: graph.getModuleInfo,\n\t\tgetWatchFiles: () => Object.keys(graph.watchFiles),\n\t\tisExternal: getDeprecatedContextHandler(\n\t\t\t(id: string, parentId: string | undefined, isResolved = false) =>\n\t\t\t\toptions.external(id, parentId, isResolved),\n\t\t\t'isExternal',\n\t\t\t'resolve',\n\t\t\tplugin.name,\n\t\t\ttrue,\n\t\t\toptions\n\t\t),\n\t\tmeta: {\n\t\t\trollupVersion,\n\t\t\twatchMode: graph.watchMode\n\t\t},\n\t\tget moduleIds() {\n\t\t\tfunction* wrappedModuleIds() {\n\t\t\t\twarnDeprecation(\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: `Accessing \"this.moduleIds\" on the plugin context by plugin ${plugin.name} is deprecated. The \"this.getModuleIds\" plugin context function should be used instead.`,\n\t\t\t\t\t\tplugin: plugin.name\n\t\t\t\t\t},\n\t\t\t\t\tfalse,\n\t\t\t\t\toptions\n\t\t\t\t);\n\t\t\t\tyield* moduleIds;\n\t\t\t}\n\n\t\t\tconst moduleIds = graph.modulesById.keys();\n\t\t\treturn wrappedModuleIds();\n\t\t},\n\t\tparse: graph.contextParse.bind(graph),\n\t\tresolve(source, importer, { custom, skipSelf } = BLANK) {\n\t\t\treturn graph.moduleLoader.resolveId(\n\t\t\t\tsource,\n\t\t\t\timporter,\n\t\t\t\tcustom,\n\t\t\t\tskipSelf ? [{ importer, plugin, source }] : null\n\t\t\t);\n\t\t},\n\t\tresolveId: getDeprecatedContextHandler(\n\t\t\t(source: string, importer: string | undefined) =>\n\t\t\t\tgraph.moduleLoader\n\t\t\t\t\t.resolveId(source, importer, BLANK)\n\t\t\t\t\t.then(resolveId => resolveId && resolveId.id),\n\t\t\t'resolveId',\n\t\t\t'resolve',\n\t\t\tplugin.name,\n\t\t\ttrue,\n\t\t\toptions\n\t\t),\n\t\tsetAssetSource: fileEmitter.setAssetSource,\n\t\twarn(warning) {\n\t\t\tif (typeof warning === 'string') warning = { message: warning };\n\t\t\tif (warning.code) warning.pluginCode = warning.code;\n\t\t\twarning.code = 'PLUGIN_WARNING';\n\t\t\twarning.plugin = plugin.name;\n\t\t\toptions.onwarn(warning);\n\t\t}\n\t};\n\treturn context;\n}\n","import Chunk from '../Chunk';\nimport Graph from '../Graph';\nimport Module from '../Module';\nimport {\n\tAddonHookFunction,\n\tAsyncPluginHooks,\n\tEmitFile,\n\tFirstPluginHooks,\n\tNormalizedInputOptions,\n\tNormalizedOutputOptions,\n\tOutputBundleWithPlaceholders,\n\tOutputPluginHooks,\n\tParallelPluginHooks,\n\tPlugin,\n\tPluginContext,\n\tPluginHooks,\n\tPluginValueHooks,\n\tSequentialPluginHooks,\n\tSerializablePluginCache,\n\tSyncPluginHooks\n} from '../rollup/types';\nimport { FileEmitter } from './FileEmitter';\nimport { getPluginContext } from './PluginContext';\nimport { errInputHookInOutputPlugin, error } from './error';\nimport { throwPluginError, warnDeprecatedHooks } from './pluginUtils';\n\n/**\n * Get the inner type from a promise\n * @example ResolveValue<Promise<string>> -> string\n */\ntype ResolveValue<T> = T extends Promise<infer K> ? K : T;\n/**\n * Coerce a promise union to always be a promise.\n * @example EnsurePromise<string | Promise<string>> -> Promise<string>\n */\ntype EnsurePromise<T> = Promise<ResolveValue<T>>;\n/**\n * Get the type of the first argument in a function.\n * @example Arg0<(a: string, b: number) => void> -> string\n */\ntype Arg0<H extends keyof PluginHooks> = Parameters<PluginHooks[H]>[0];\n\n// This will make sure no input hook is omitted\ntype Subtract<T, U> = T extends U ? never : T;\nconst inputHookNames: {\n\t[P in Subtract<keyof PluginHooks, keyof OutputPluginHooks>]: 1;\n} = {\n\tbuildEnd: 1,\n\tbuildStart: 1,\n\tcloseBundle: 1,\n\tcloseWatcher: 1,\n\tload: 1,\n\tmoduleParsed: 1,\n\toptions: 1,\n\tresolveDynamicImport: 1,\n\tresolveId: 1,\n\ttransform: 1,\n\twatchChange: 1\n};\nconst inputHooks = Object.keys(inputHookNames);\n\nexport type ReplaceContext = (context: PluginContext, plugin: Plugin) => PluginContext;\n\nfunction throwInvalidHookError(hookName: string, pluginName: string) {\n\treturn error({\n\t\tcode: 'INVALID_PLUGIN_HOOK',\n\t\tmessage: `Error running plugin hook ${hookName} for ${pluginName}, expected a function hook.`\n\t});\n}\n\nexport class PluginDriver {\n\tpublic emitFile: EmitFile;\n\tpublic finaliseAssets: () => void;\n\tpublic getFileName: (fileReferenceId: string) => string;\n\tpublic setOutputBundle: (\n\t\toutputBundle: OutputBundleWithPlaceholders,\n\t\toutputOptions: NormalizedOutputOptions,\n\t\tfacadeChunkByModule: Map<Module, Chunk>\n\t) => void;\n\n\tprivate fileEmitter: FileEmitter;\n\tprivate pluginCache: Record<string, SerializablePluginCache> | undefined;\n\tprivate pluginContexts = new Map<Plugin, PluginContext>();\n\tprivate plugins: Plugin[];\n\n\tconstructor(\n\t\tprivate readonly graph: Graph,\n\t\tprivate readonly options: NormalizedInputOptions,\n\t\tuserPlugins: Plugin[],\n\t\tpluginCache: Record<string, SerializablePluginCache> | undefined,\n\t\tbasePluginDriver?: PluginDriver\n\t) {\n\t\twarnDeprecatedHooks(userPlugins, options);\n\t\tthis.pluginCache = pluginCache;\n\t\tthis.fileEmitter = new FileEmitter(\n\t\t\tgraph,\n\t\t\toptions,\n\t\t\tbasePluginDriver && basePluginDriver.fileEmitter\n\t\t);\n\t\tthis.emitFile = this.fileEmitter.emitFile.bind(this.fileEmitter);\n\t\tthis.getFileName = this.fileEmitter.getFileName.bind(this.fileEmitter);\n\t\tthis.finaliseAssets = this.fileEmitter.assertAssetsFinalized.bind(this.fileEmitter);\n\t\tthis.setOutputBundle = this.fileEmitter.setOutputBundle.bind(this.fileEmitter);\n\t\tthis.plugins = userPlugins.concat(basePluginDriver ? basePluginDriver.plugins : []);\n\t\tconst existingPluginNames = new Set<string>();\n\t\tfor (const plugin of this.plugins) {\n\t\t\tthis.pluginContexts.set(\n\t\t\t\tplugin,\n\t\t\t\tgetPluginContext(plugin, pluginCache, graph, options, this.fileEmitter, existingPluginNames)\n\t\t\t);\n\t\t}\n\t\tif (basePluginDriver) {\n\t\t\tfor (const plugin of userPlugins) {\n\t\t\t\tfor (const hook of inputHooks) {\n\t\t\t\t\tif (hook in plugin) {\n\t\t\t\t\t\toptions.onwarn(errInputHookInOutputPlugin(plugin.name, hook));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic createOutputPluginDriver(plugins: Plugin[]): PluginDriver {\n\t\treturn new PluginDriver(this.graph, this.options, plugins, this.pluginCache, this);\n\t}\n\n\t// chains, first non-null result stops and returns\n\thookFirst<H extends AsyncPluginHooks & FirstPluginHooks>(\n\t\thookName: H,\n\t\targs: Parameters<PluginHooks[H]>,\n\t\treplaceContext?: ReplaceContext | null,\n\t\tskipped?: Set<Plugin> | null\n\t): EnsurePromise<ReturnType<PluginHooks[H]>> {\n\t\tlet promise: EnsurePromise<ReturnType<PluginHooks[H]>> = Promise.resolve(undefined as any);\n\t\tfor (const plugin of this.plugins) {\n\t\t\tif (skipped && skipped.has(plugin)) continue;\n\t\t\tpromise = promise.then(result => {\n\t\t\t\tif (result != null) return result;\n\t\t\t\treturn this.runHook(hookName, args, plugin, false, replaceContext);\n\t\t\t});\n\t\t}\n\t\treturn promise;\n\t}\n\n\t// chains synchronously, first non-null result stops and returns\n\thookFirstSync<H extends SyncPluginHooks & FirstPluginHooks>(\n\t\thookName: H,\n\t\targs: Parameters<PluginHooks[H]>,\n\t\treplaceContext?: ReplaceContext\n\t): ReturnType<PluginHooks[H]> {\n\t\tfor (const plugin of this.plugins) {\n\t\t\tconst result = this.runHookSync(hookName, args, plugin, replaceContext);\n\t\t\tif (result != null) return result;\n\t\t}\n\t\treturn null as any;\n\t}\n\n\t// parallel, ignores returns\n\thookParallel<H extends AsyncPluginHooks & ParallelPluginHooks>(\n\t\thookName: H,\n\t\targs: Parameters<PluginHooks[H]>,\n\t\treplaceContext?: ReplaceContext\n\t): Promise<void> {\n\t\tconst promises: Promise<void>[] = [];\n\t\tfor (const plugin of this.plugins) {\n\t\t\tconst hookPromise = this.runHook(hookName, args, plugin, false, replaceContext);\n\t\t\tif (!hookPromise) continue;\n\t\t\tpromises.push(hookPromise);\n\t\t}\n\t\treturn Promise.all(promises).then(() => {});\n\t}\n\n\t// chains, reduces returned value, handling the reduced value as the first hook argument\n\thookReduceArg0<H extends AsyncPluginHooks & SequentialPluginHooks>(\n\t\thookName: H,\n\t\t[arg0, ...rest]: Parameters<PluginHooks[H]>,\n\t\treduce: (\n\t\t\treduction: Arg0<H>,\n\t\t\tresult: ResolveValue<ReturnType<PluginHooks[H]>>,\n\t\t\tplugin: Plugin\n\t\t) => Arg0<H>,\n\t\treplaceContext?: ReplaceContext\n\t): Promise<Arg0<H>> {\n\t\tlet promise = Promise.resolve(arg0);\n\t\tfor (const plugin of this.plugins) {\n\t\t\tpromise = promise.then(arg0 => {\n\t\t\t\tconst args = [arg0, ...rest] as Parameters<PluginHooks[H]>;\n\t\t\t\tconst hookPromise = this.runHook(hookName, args, plugin, false, replaceContext);\n\t\t\t\tif (!hookPromise) return arg0;\n\t\t\t\treturn hookPromise.then(result =>\n\t\t\t\t\treduce.call(this.pluginContexts.get(plugin), arg0, result, plugin)\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\t\treturn promise;\n\t}\n\n\t// chains synchronously, reduces returned value, handling the reduced value as the first hook argument\n\thookReduceArg0Sync<H extends SyncPluginHooks & SequentialPluginHooks>(\n\t\thookName: H,\n\t\t[arg0, ...rest]: Parameters<PluginHooks[H]>,\n\t\treduce: (reduction: Arg0<H>, result: ReturnType<PluginHooks[H]>, plugin: Plugin) => Arg0<H>,\n\t\treplaceContext?: ReplaceContext\n\t): Arg0<H> {\n\t\tfor (const plugin of this.plugins) {\n\t\t\tconst args = [arg0, ...rest] as Parameters<PluginHooks[H]>;\n\t\t\tconst result = this.runHookSync(hookName, args, plugin, replaceContext);\n\t\t\targ0 = reduce.call(this.pluginContexts.get(plugin), arg0, result, plugin);\n\t\t}\n\t\treturn arg0;\n\t}\n\n\t// chains, reduces returned value to type T, handling the reduced value separately. permits hooks as values.\n\thookReduceValue<H extends PluginValueHooks, T>(\n\t\thookName: H,\n\t\tinitialValue: T | Promise<T>,\n\t\targs: Parameters<AddonHookFunction>,\n\t\treduce: (\n\t\t\treduction: T,\n\t\t\tresult: ResolveValue<ReturnType<AddonHookFunction>>,\n\t\t\tplugin: Plugin\n\t\t) => T,\n\t\treplaceContext?: ReplaceContext\n\t): Promise<T> {\n\t\tlet promise = Promise.resolve(initialValue);\n\t\tfor (const plugin of this.plugins) {\n\t\t\tpromise = promise.then(value => {\n\t\t\t\tconst hookPromise = this.runHook(hookName, args, plugin, true, replaceContext);\n\t\t\t\tif (!hookPromise) return value;\n\t\t\t\treturn hookPromise.then(result =>\n\t\t\t\t\treduce.call(this.pluginContexts.get(plugin), value, result, plugin)\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\t\treturn promise;\n\t}\n\n\t// chains synchronously, reduces returned value to type T, handling the reduced value separately. permits hooks as values.\n\thookReduceValueSync<H extends SyncPluginHooks & SequentialPluginHooks, T>(\n\t\thookName: H,\n\t\tinitialValue: T,\n\t\targs: Parameters<PluginHooks[H]>,\n\t\treduce: (reduction: T, result: ReturnType<PluginHooks[H]>, plugin: Plugin) => T,\n\t\treplaceContext?: ReplaceContext\n\t): T {\n\t\tlet acc = initialValue;\n\t\tfor (const plugin of this.plugins) {\n\t\t\tconst result = this.runHookSync(hookName, args, plugin, replaceContext);\n\t\t\tacc = reduce.call(this.pluginContexts.get(plugin), acc, result, plugin);\n\t\t}\n\t\treturn acc;\n\t}\n\n\t// chains, ignores returns\n\thookSeq<H extends AsyncPluginHooks & SequentialPluginHooks>(\n\t\thookName: H,\n\t\targs: Parameters<PluginHooks[H]>,\n\t\treplaceContext?: ReplaceContext\n\t): Promise<void> {\n\t\tlet promise = Promise.resolve();\n\t\tfor (const plugin of this.plugins) {\n\t\t\tpromise = promise.then(\n\t\t\t\t() => this.runHook(hookName, args, plugin, false, replaceContext) as Promise<void>\n\t\t\t);\n\t\t}\n\t\treturn promise;\n\t}\n\n\t// chains synchronously, ignores returns\n\thookSeqSync<H extends SyncPluginHooks & SequentialPluginHooks>(\n\t\thookName: H,\n\t\targs: Parameters<PluginHooks[H]>,\n\t\treplaceContext?: ReplaceContext\n\t): void {\n\t\tfor (const plugin of this.plugins) {\n\t\t\tthis.runHookSync(hookName, args, plugin, replaceContext);\n\t\t}\n\t}\n\n\t/**\n\t * Run an async plugin hook and return the result.\n\t * @param hookName Name of the plugin hook. Must be either in `PluginHooks` or `OutputPluginValueHooks`.\n\t * @param args Arguments passed to the plugin hook.\n\t * @param plugin The actual pluginObject to run.\n\t * @param permitValues If true, values can be passed instead of functions for the plugin hook.\n\t * @param hookContext When passed, the plugin context can be overridden.\n\t */\n\tprivate runHook<H extends PluginValueHooks>(\n\t\thookName: H,\n\t\targs: Parameters<AddonHookFunction>,\n\t\tplugin: Plugin,\n\t\tpermitValues: true,\n\t\thookContext?: ReplaceContext | null\n\t): EnsurePromise<ReturnType<AddonHookFunction>>;\n\tprivate runHook<H extends AsyncPluginHooks>(\n\t\thookName: H,\n\t\targs: Parameters<PluginHooks[H]>,\n\t\tplugin: Plugin,\n\t\tpermitValues: false,\n\t\thookContext?: ReplaceContext | null\n\t): EnsurePromise<ReturnType<PluginHooks[H]>>;\n\tprivate runHook<H extends AsyncPluginHooks>(\n\t\thookName: H,\n\t\targs: Parameters<PluginHooks[H]>,\n\t\tplugin: Plugin,\n\t\tpermitValues: boolean,\n\t\thookContext?: ReplaceContext | null\n\t): EnsurePromise<ReturnType<PluginHooks[H]>> {\n\t\tconst hook = plugin[hookName];\n\t\tif (!hook) return undefined as any;\n\n\t\tlet context = this.pluginContexts.get(plugin)!;\n\t\tif (hookContext) {\n\t\t\tcontext = hookContext(context, plugin);\n\t\t}\n\n\t\treturn Promise.resolve()\n\t\t\t.then(() => {\n\t\t\t\t// permit values allows values to be returned instead of a functional hook\n\t\t\t\tif (typeof hook !== 'function') {\n\t\t\t\t\tif (permitValues) return hook;\n\t\t\t\t\treturn throwInvalidHookError(hookName, plugin.name);\n\t\t\t\t}\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/ban-types\n\t\t\t\treturn (hook as Function).apply(context, args);\n\t\t\t})\n\t\t\t.catch(err => throwPluginError(err, plugin.name, { hook: hookName }));\n\t}\n\n\t/**\n\t * Run a sync plugin hook and return the result.\n\t * @param hookName Name of the plugin hook. Must be in `PluginHooks`.\n\t * @param args Arguments passed to the plugin hook.\n\t * @param plugin The acutal plugin\n\t * @param hookContext When passed, the plugin context can be overridden.\n\t */\n\tprivate runHookSync<H extends SyncPluginHooks>(\n\t\thookName: H,\n\t\targs: Parameters<PluginHooks[H]>,\n\t\tplugin: Plugin,\n\t\thookContext?: ReplaceContext\n\t): ReturnType<PluginHooks[H]> {\n\t\tconst hook = plugin[hookName];\n\t\tif (!hook) return undefined as any;\n\n\t\tlet context = this.pluginContexts.get(plugin)!;\n\t\tif (hookContext) {\n\t\t\tcontext = hookContext(context, plugin);\n\t\t}\n\n\t\ttry {\n\t\t\t// permit values allows values to be returned instead of a functional hook\n\t\t\tif (typeof hook !== 'function') {\n\t\t\t\treturn throwInvalidHookError(hookName, plugin.name);\n\t\t\t}\n\t\t\t// eslint-disable-next-line @typescript-eslint/ban-types\n\t\t\treturn (hook as Function).apply(context, args);\n\t\t} catch (err) {\n\t\t\treturn throwPluginError(err, plugin.name, { hook: hookName });\n\t\t}\n\t}\n}\n","import * as acorn from 'acorn';\nimport ExternalModule from './ExternalModule';\nimport Module from './Module';\nimport { ModuleLoader, UnresolvedModule } from './ModuleLoader';\nimport GlobalScope from './ast/scopes/GlobalScope';\nimport { PathTracker } from './ast/utils/PathTracker';\nimport {\n\tModuleInfo,\n\tModuleJSON,\n\tNormalizedInputOptions,\n\tRollupCache,\n\tRollupWatcher,\n\tSerializablePluginCache,\n\tWatchChangeHook\n} from './rollup/types';\nimport { PluginDriver } from './utils/PluginDriver';\nimport { BuildPhase } from './utils/buildPhase';\nimport { errImplicitDependantIsNotIncluded, error } from './utils/error';\nimport { analyseModuleExecution } from './utils/executionOrder';\nimport { addAnnotations } from './utils/pureComments';\nimport relativeId from './utils/relativeId';\nimport { timeEnd, timeStart } from './utils/timers';\nimport { markModuleAndImpureDependenciesAsExecuted } from './utils/traverseStaticDependencies';\n\nfunction normalizeEntryModules(\n\tentryModules: string[] | Record<string, string>\n): UnresolvedModule[] {\n\tif (Array.isArray(entryModules)) {\n\t\treturn entryModules.map(id => ({\n\t\t\tfileName: null,\n\t\t\tid,\n\t\t\timplicitlyLoadedAfter: [],\n\t\t\timporter: undefined,\n\t\t\tname: null\n\t\t}));\n\t}\n\treturn Object.entries(entryModules).map(([name, id]) => ({\n\t\tfileName: null,\n\t\tid,\n\t\timplicitlyLoadedAfter: [],\n\t\timporter: undefined,\n\t\tname\n\t}));\n}\n\nexport default class Graph {\n\tacornParser: typeof acorn.Parser;\n\tcachedModules: Map<string, ModuleJSON>;\n\tdeoptimizationTracker: PathTracker;\n\tentryModules: Module[] = [];\n\tmoduleLoader: ModuleLoader;\n\tmodulesById = new Map<string, Module | ExternalModule>();\n\tneedsTreeshakingPass = false;\n\tphase: BuildPhase = BuildPhase.LOAD_AND_PARSE;\n\tpluginDriver: PluginDriver;\n\tscope: GlobalScope;\n\twatchFiles: Record<string, true> = Object.create(null);\n\twatchMode = false;\n\n\tprivate externalModules: ExternalModule[] = [];\n\tprivate implicitEntryModules: Module[] = [];\n\tprivate modules: Module[] = [];\n\tprivate pluginCache?: Record<string, SerializablePluginCache>;\n\n\tconstructor(private readonly options: NormalizedInputOptions, watcher: RollupWatcher | null) {\n\t\tthis.deoptimizationTracker = new PathTracker();\n\t\tthis.cachedModules = new Map();\n\t\tif (options.cache !== false) {\n\t\t\tif (options.cache?.modules) {\n\t\t\t\tfor (const module of options.cache.modules) this.cachedModules.set(module.id, module);\n\t\t\t}\n\t\t\tthis.pluginCache = options.cache?.plugins || Object.create(null);\n\n\t\t\t// increment access counter\n\t\t\tfor (const name in this.pluginCache) {\n\t\t\t\tconst cache = this.pluginCache[name];\n\t\t\t\tfor (const value of Object.values(cache)) value[0]++;\n\t\t\t}\n\t\t}\n\n\t\tif (watcher) {\n\t\t\tthis.watchMode = true;\n\t\t\tconst handleChange: WatchChangeHook = (...args) =>\n\t\t\t\tthis.pluginDriver.hookSeqSync('watchChange', args);\n\t\t\tconst handleClose = () => this.pluginDriver.hookSeqSync('closeWatcher', []);\n\t\t\twatcher.on('change', handleChange);\n\t\t\twatcher.on('close', handleClose);\n\t\t\twatcher.once('restart', () => {\n\t\t\t\twatcher.removeListener('change', handleChange);\n\t\t\t\twatcher.removeListener('close', handleClose);\n\t\t\t});\n\t\t}\n\t\tthis.pluginDriver = new PluginDriver(this, options, options.plugins, this.pluginCache);\n\t\tthis.scope = new GlobalScope();\n\t\tthis.acornParser = acorn.Parser.extend(...(options.acornInjectPlugins as any));\n\t\tthis.moduleLoader = new ModuleLoader(this, this.modulesById, this.options, this.pluginDriver);\n\t}\n\n\tasync build(): Promise<void> {\n\t\ttimeStart('generate module graph', 2);\n\t\tawait this.generateModuleGraph();\n\t\ttimeEnd('generate module graph', 2);\n\n\t\ttimeStart('sort modules', 2);\n\t\tthis.phase = BuildPhase.ANALYSE;\n\t\tthis.sortModules();\n\t\ttimeEnd('sort modules', 2);\n\n\t\ttimeStart('mark included statements', 2);\n\t\tthis.includeStatements();\n\t\ttimeEnd('mark included statements', 2);\n\n\t\tthis.phase = BuildPhase.GENERATE;\n\t}\n\n\tcontextParse(code: string, options: Partial<acorn.Options> = {}): acorn.Node {\n\t\tconst onCommentOrig = options.onComment;\n\t\tconst comments: acorn.Comment[] = [];\n\n\t\tif (onCommentOrig && typeof onCommentOrig == 'function') {\n\t\t\toptions.onComment = (block, text, start, end, ...args) => {\n\t\t\t\tcomments.push({ end, start, type: block ? 'Block' : 'Line', value: text });\n\t\t\t\treturn onCommentOrig.call(options, block, text, start, end, ...args);\n\t\t\t};\n\t\t} else {\n\t\t\toptions.onComment = comments;\n\t\t}\n\n\t\tconst ast = this.acornParser.parse(code, {\n\t\t\t...(this.options.acorn as unknown as acorn.Options),\n\t\t\t...options\n\t\t});\n\n\t\tif (typeof onCommentOrig == 'object') {\n\t\t\tonCommentOrig.push(...comments);\n\t\t}\n\n\t\toptions.onComment = onCommentOrig;\n\n\t\taddAnnotations(comments, ast, code);\n\n\t\treturn ast;\n\t}\n\n\tgetCache(): RollupCache {\n\t\t// handle plugin cache eviction\n\t\tfor (const name in this.pluginCache) {\n\t\t\tconst cache = this.pluginCache[name];\n\t\t\tlet allDeleted = true;\n\t\t\tfor (const [key, value] of Object.entries(cache)) {\n\t\t\t\tif (value[0] >= this.options.experimentalCacheExpiry) delete cache[key];\n\t\t\t\telse allDeleted = false;\n\t\t\t}\n\t\t\tif (allDeleted) delete this.pluginCache[name];\n\t\t}\n\n\t\treturn {\n\t\t\tmodules: this.modules.map(module => module.toJSON()),\n\t\t\tplugins: this.pluginCache\n\t\t};\n\t}\n\n\tgetModuleInfo = (moduleId: string): ModuleInfo | null => {\n\t\tconst foundModule = this.modulesById.get(moduleId);\n\t\tif (!foundModule) return null;\n\t\treturn foundModule.info;\n\t};\n\n\tprivate async generateModuleGraph(): Promise<void> {\n\t\t({ entryModules: this.entryModules, implicitEntryModules: this.implicitEntryModules } =\n\t\t\tawait this.moduleLoader.addEntryModules(normalizeEntryModules(this.options.input), true));\n\t\tif (this.entryModules.length === 0) {\n\t\t\tthrow new Error('You must supply options.input to rollup');\n\t\t}\n\t\tfor (const module of this.modulesById.values()) {\n\t\t\tif (module instanceof Module) {\n\t\t\t\tthis.modules.push(module);\n\t\t\t} else {\n\t\t\t\tthis.externalModules.push(module);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate includeStatements() {\n\t\tfor (const module of [...this.entryModules, ...this.implicitEntryModules]) {\n\t\t\tmarkModuleAndImpureDependenciesAsExecuted(module);\n\t\t}\n\t\tif (this.options.treeshake) {\n\t\t\tlet treeshakingPass = 1;\n\t\t\tdo {\n\t\t\t\ttimeStart(`treeshaking pass ${treeshakingPass}`, 3);\n\t\t\t\tthis.needsTreeshakingPass = false;\n\t\t\t\tfor (const module of this.modules) {\n\t\t\t\t\tif (module.isExecuted) {\n\t\t\t\t\t\tif (module.info.hasModuleSideEffects === 'no-treeshake') {\n\t\t\t\t\t\t\tmodule.includeAllInBundle();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmodule.include();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (treeshakingPass === 1) {\n\t\t\t\t\t// We only include exports after the first pass to avoid issues with\n\t\t\t\t\t// the TDZ detection logic\n\t\t\t\t\tfor (const module of [...this.entryModules, ...this.implicitEntryModules]) {\n\t\t\t\t\t\tif (module.preserveSignature !== false) {\n\t\t\t\t\t\t\tmodule.includeAllExports(false);\n\t\t\t\t\t\t\tthis.needsTreeshakingPass = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttimeEnd(`treeshaking pass ${treeshakingPass++}`, 3);\n\t\t\t} while (this.needsTreeshakingPass);\n\t\t} else {\n\t\t\tfor (const module of this.modules) module.includeAllInBundle();\n\t\t}\n\t\tfor (const externalModule of this.externalModules) externalModule.warnUnusedImports();\n\t\tfor (const module of this.implicitEntryModules) {\n\t\t\tfor (const dependant of module.implicitlyLoadedAfter) {\n\t\t\t\tif (!(dependant.info.isEntry || dependant.isIncluded())) {\n\t\t\t\t\terror(errImplicitDependantIsNotIncluded(dependant));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate sortModules() {\n\t\tconst { orderedModules, cyclePaths } = analyseModuleExecution(this.entryModules);\n\t\tfor (const cyclePath of cyclePaths) {\n\t\t\tthis.options.onwarn({\n\t\t\t\tcode: 'CIRCULAR_DEPENDENCY',\n\t\t\t\tcycle: cyclePath,\n\t\t\t\timporter: cyclePath[0],\n\t\t\t\tmessage: `Circular dependency: ${cyclePath.join(' -> ')}`\n\t\t\t});\n\t\t}\n\t\tthis.modules = orderedModules;\n\t\tfor (const module of this.modules) {\n\t\t\tmodule.bindReferences();\n\t\t}\n\t\tthis.warnForMissingExports();\n\t}\n\n\tprivate warnForMissingExports() {\n\t\tfor (const module of this.modules) {\n\t\t\tfor (const importDescription of Object.values(module.importDescriptions)) {\n\t\t\t\tif (\n\t\t\t\t\timportDescription.name !== '*' &&\n\t\t\t\t\t!(importDescription.module as Module).getVariableForExportName(importDescription.name)\n\t\t\t\t) {\n\t\t\t\t\tmodule.warn(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcode: 'NON_EXISTENT_EXPORT',\n\t\t\t\t\t\t\tmessage: `Non-existent export '${\n\t\t\t\t\t\t\t\timportDescription.name\n\t\t\t\t\t\t\t}' is imported from ${relativeId((importDescription.module as Module).id)}`,\n\t\t\t\t\t\t\tname: importDescription.name,\n\t\t\t\t\t\t\tsource: (importDescription.module as Module).id\n\t\t\t\t\t\t},\n\t\t\t\t\t\timportDescription.start\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","export function ensureArray<T>(\n\titems: (T | false | null | undefined)[] | T | false | null | undefined\n): T[] {\n\tif (Array.isArray(items)) {\n\t\treturn items.filter(Boolean) as T[];\n\t}\n\tif (items) {\n\t\treturn [items];\n\t}\n\treturn [];\n}\n","import { InputOptions, NormalizedInputOptions, WarningHandler } from '../../rollup/types';\n\nexport interface GenericConfigObject {\n\t[key: string]: unknown;\n}\n\nexport const defaultOnWarn: WarningHandler = warning => console.warn(warning.message || warning);\n\nexport function warnUnknownOptions(\n\tpassedOptions: GenericConfigObject,\n\tvalidOptions: string[],\n\toptionType: string,\n\twarn: WarningHandler,\n\tignoredKeys = /$./\n): void {\n\tconst validOptionSet = new Set(validOptions);\n\tconst unknownOptions = Object.keys(passedOptions).filter(\n\t\tkey => !(validOptionSet.has(key) || ignoredKeys.test(key))\n\t);\n\tif (unknownOptions.length > 0) {\n\t\twarn({\n\t\t\tcode: 'UNKNOWN_OPTION',\n\t\t\tmessage: `Unknown ${optionType}: ${unknownOptions.join(', ')}. Allowed options: ${[\n\t\t\t\t...validOptionSet\n\t\t\t]\n\t\t\t\t.sort()\n\t\t\t\t.join(', ')}`\n\t\t});\n\t}\n}\n\ntype ObjectValue<Base> = Base extends Record<string, any> ? Base : never;\n\nexport const treeshakePresets: {\n\t[key in NonNullable<\n\t\tObjectValue<InputOptions['treeshake']>['preset']\n\t>]: NormalizedInputOptions['treeshake'];\n} = {\n\trecommended: {\n\t\tannotations: true,\n\t\tcorrectVarValueBeforeDeclaration: false,\n\t\tmoduleSideEffects: () => true,\n\t\tpropertyReadSideEffects: true,\n\t\ttryCatchDeoptimization: true,\n\t\tunknownGlobalSideEffects: false\n\t},\n\tsafest: {\n\t\tannotations: true,\n\t\tcorrectVarValueBeforeDeclaration: true,\n\t\tmoduleSideEffects: () => true,\n\t\tpropertyReadSideEffects: true,\n\t\ttryCatchDeoptimization: true,\n\t\tunknownGlobalSideEffects: true\n\t},\n\tsmallest: {\n\t\tannotations: true,\n\t\tcorrectVarValueBeforeDeclaration: false,\n\t\tmoduleSideEffects: () => false,\n\t\tpropertyReadSideEffects: false,\n\t\ttryCatchDeoptimization: false,\n\t\tunknownGlobalSideEffects: false\n\t}\n};\n","import * as acorn from 'acorn';\nimport {\n\tHasModuleSideEffects,\n\tInputOptions,\n\tModuleSideEffectsOption,\n\tNormalizedInputOptions,\n\tPreserveEntrySignaturesOption,\n\tPureModulesOption,\n\tRollupBuild,\n\tTreeshakingOptions,\n\tWarningHandler\n} from '../../rollup/types';\nimport { ensureArray } from '../ensureArray';\nimport { errInvalidOption, error, warnDeprecationWithOptions } from '../error';\nimport { resolve } from '../path';\nimport { printQuotedStringList } from '../printStringList';\nimport relativeId from '../relativeId';\nimport {\n\tdefaultOnWarn,\n\tGenericConfigObject,\n\ttreeshakePresets,\n\twarnUnknownOptions\n} from './options';\n\nexport interface CommandConfigObject {\n\t[key: string]: unknown;\n\texternal: (string | RegExp)[];\n\tglobals: { [id: string]: string } | undefined;\n}\n\nexport function normalizeInputOptions(config: InputOptions): {\n\toptions: NormalizedInputOptions;\n\tunsetOptions: Set<string>;\n} {\n\t// These are options that may trigger special warnings or behaviour later\n\t// if the user did not select an explicit value\n\tconst unsetOptions = new Set<string>();\n\n\tconst context = config.context ?? 'undefined';\n\tconst onwarn = getOnwarn(config);\n\tconst strictDeprecations = config.strictDeprecations || false;\n\tconst options: NormalizedInputOptions & InputOptions = {\n\t\tacorn: getAcorn(config) as unknown as NormalizedInputOptions['acorn'],\n\t\tacornInjectPlugins: getAcornInjectPlugins(config),\n\t\tcache: getCache(config),\n\t\tcontext,\n\t\texperimentalCacheExpiry: config.experimentalCacheExpiry ?? 10,\n\t\texternal: getIdMatcher(config.external),\n\t\tinlineDynamicImports: getInlineDynamicImports(config, onwarn, strictDeprecations),\n\t\tinput: getInput(config),\n\t\tmakeAbsoluteExternalsRelative: config.makeAbsoluteExternalsRelative ?? true,\n\t\tmanualChunks: getManualChunks(config, onwarn, strictDeprecations),\n\t\tmaxParallelFileReads: getMaxParallelFileReads(config),\n\t\tmoduleContext: getModuleContext(config, context),\n\t\tonwarn,\n\t\tperf: config.perf || false,\n\t\tplugins: ensureArray(config.plugins),\n\t\tpreserveEntrySignatures: getPreserveEntrySignatures(config, unsetOptions),\n\t\tpreserveModules: getPreserveModules(config, onwarn, strictDeprecations),\n\t\tpreserveSymlinks: config.preserveSymlinks || false,\n\t\tshimMissingExports: config.shimMissingExports || false,\n\t\tstrictDeprecations,\n\t\ttreeshake: getTreeshake(config, onwarn, strictDeprecations)\n\t};\n\n\twarnUnknownOptions(\n\t\tconfig as GenericConfigObject,\n\t\t[...Object.keys(options), 'watch'],\n\t\t'input options',\n\t\toptions.onwarn,\n\t\t/^(output)$/\n\t);\n\treturn { options, unsetOptions };\n}\n\nconst getOnwarn = (config: InputOptions): NormalizedInputOptions['onwarn'] => {\n\tconst { onwarn } = config;\n\treturn onwarn\n\t\t? warning => {\n\t\t\t\twarning.toString = () => {\n\t\t\t\t\tlet str = '';\n\n\t\t\t\t\tif (warning.plugin) str += `(${warning.plugin} plugin) `;\n\t\t\t\t\tif (warning.loc)\n\t\t\t\t\t\tstr += `${relativeId(warning.loc.file!)} (${warning.loc.line}:${warning.loc.column}) `;\n\t\t\t\t\tstr += warning.message;\n\n\t\t\t\t\treturn str;\n\t\t\t\t};\n\t\t\t\tonwarn(warning, defaultOnWarn);\n\t\t }\n\t\t: defaultOnWarn;\n};\n\nconst getAcorn = (config: InputOptions): acorn.Options => ({\n\tallowAwaitOutsideFunction: true,\n\tecmaVersion: 'latest',\n\tpreserveParens: false,\n\tsourceType: 'module',\n\t...config.acorn\n});\n\nconst getAcornInjectPlugins = (\n\tconfig: InputOptions\n): NormalizedInputOptions['acornInjectPlugins'] => ensureArray(config.acornInjectPlugins);\n\nconst getCache = (config: InputOptions): NormalizedInputOptions['cache'] =>\n\t(config.cache as unknown as RollupBuild)?.cache || config.cache;\n\nconst getIdMatcher = <T extends Array<any>>(\n\toption:\n\t\t| undefined\n\t\t| boolean\n\t\t| string\n\t\t| RegExp\n\t\t| (string | RegExp)[]\n\t\t| ((id: string, ...args: T) => boolean | null | undefined)\n): ((id: string, ...args: T) => boolean) => {\n\tif (option === true) {\n\t\treturn () => true;\n\t}\n\tif (typeof option === 'function') {\n\t\treturn (id, ...args) => (!id.startsWith('\\0') && option(id, ...args)) || false;\n\t}\n\tif (option) {\n\t\tconst ids = new Set<string>();\n\t\tconst matchers: RegExp[] = [];\n\t\tfor (const value of ensureArray(option)) {\n\t\t\tif (value instanceof RegExp) {\n\t\t\t\tmatchers.push(value);\n\t\t\t} else {\n\t\t\t\tids.add(value);\n\t\t\t}\n\t\t}\n\t\treturn (id: string, ..._args) => ids.has(id) || matchers.some(matcher => matcher.test(id));\n\t}\n\treturn () => false;\n};\n\nconst getInlineDynamicImports = (\n\tconfig: InputOptions,\n\twarn: WarningHandler,\n\tstrictDeprecations: boolean\n): NormalizedInputOptions['inlineDynamicImports'] => {\n\tconst configInlineDynamicImports = config.inlineDynamicImports;\n\tif (configInlineDynamicImports) {\n\t\twarnDeprecationWithOptions(\n\t\t\t'The \"inlineDynamicImports\" option is deprecated. Use the \"output.inlineDynamicImports\" option instead.',\n\t\t\tfalse,\n\t\t\twarn,\n\t\t\tstrictDeprecations\n\t\t);\n\t}\n\treturn configInlineDynamicImports;\n};\n\nconst getInput = (config: InputOptions): NormalizedInputOptions['input'] => {\n\tconst configInput = config.input;\n\treturn configInput == null ? [] : typeof configInput === 'string' ? [configInput] : configInput;\n};\n\nconst getManualChunks = (\n\tconfig: InputOptions,\n\twarn: WarningHandler,\n\tstrictDeprecations: boolean\n): NormalizedInputOptions['manualChunks'] => {\n\tconst configManualChunks = config.manualChunks;\n\tif (configManualChunks) {\n\t\twarnDeprecationWithOptions(\n\t\t\t'The \"manualChunks\" option is deprecated. Use the \"output.manualChunks\" option instead.',\n\t\t\tfalse,\n\t\t\twarn,\n\t\t\tstrictDeprecations\n\t\t);\n\t}\n\treturn configManualChunks;\n};\n\nconst getMaxParallelFileReads = (\n\tconfig: InputOptions\n): NormalizedInputOptions['maxParallelFileReads'] => {\n\tconst maxParallelFileReads = config.maxParallelFileReads as unknown;\n\tif (typeof maxParallelFileReads === 'number') {\n\t\tif (maxParallelFileReads <= 0) return Infinity;\n\t\treturn maxParallelFileReads;\n\t}\n\treturn 20;\n};\n\nconst getModuleContext = (\n\tconfig: InputOptions,\n\tcontext: string\n): NormalizedInputOptions['moduleContext'] => {\n\tconst configModuleContext = config.moduleContext as\n\t\t| ((id: string) => string | null | undefined)\n\t\t| { [id: string]: string }\n\t\t| undefined;\n\tif (typeof configModuleContext === 'function') {\n\t\treturn id => configModuleContext(id) ?? context;\n\t}\n\tif (configModuleContext) {\n\t\tconst contextByModuleId = Object.create(null);\n\t\tfor (const [key, moduleContext] of Object.entries(configModuleContext)) {\n\t\t\tcontextByModuleId[resolve(key)] = moduleContext;\n\t\t}\n\t\treturn id => contextByModuleId[id] || context;\n\t}\n\treturn () => context;\n};\n\nconst getPreserveEntrySignatures = (\n\tconfig: InputOptions,\n\tunsetOptions: Set<string>\n): NormalizedInputOptions['preserveEntrySignatures'] => {\n\tconst configPreserveEntrySignatures = config.preserveEntrySignatures as\n\t\t| PreserveEntrySignaturesOption\n\t\t| undefined;\n\tif (configPreserveEntrySignatures == null) {\n\t\tunsetOptions.add('preserveEntrySignatures');\n\t}\n\treturn configPreserveEntrySignatures ?? 'strict';\n};\n\nconst getPreserveModules = (\n\tconfig: InputOptions,\n\twarn: WarningHandler,\n\tstrictDeprecations: boolean\n): NormalizedInputOptions['preserveModules'] => {\n\tconst configPreserveModules = config.preserveModules;\n\tif (configPreserveModules) {\n\t\twarnDeprecationWithOptions(\n\t\t\t'The \"preserveModules\" option is deprecated. Use the \"output.preserveModules\" option instead.',\n\t\t\tfalse,\n\t\t\twarn,\n\t\t\tstrictDeprecations\n\t\t);\n\t}\n\treturn configPreserveModules;\n};\n\nconst getTreeshake = (\n\tconfig: InputOptions,\n\twarn: WarningHandler,\n\tstrictDeprecations: boolean\n): NormalizedInputOptions['treeshake'] => {\n\tconst configTreeshake = config.treeshake;\n\tif (configTreeshake === false) {\n\t\treturn false;\n\t}\n\tif (typeof configTreeshake === 'string') {\n\t\tconst preset = treeshakePresets[configTreeshake];\n\t\tif (preset) {\n\t\t\treturn preset;\n\t\t}\n\t\terror(\n\t\t\terrInvalidOption(\n\t\t\t\t'treeshake',\n\t\t\t\t`valid values are false, true, ${printQuotedStringList(\n\t\t\t\t\tObject.keys(treeshakePresets)\n\t\t\t\t)}. You can also supply an object for more fine-grained control`\n\t\t\t)\n\t\t);\n\t}\n\tlet configWithPreset: TreeshakingOptions = {};\n\tif (typeof configTreeshake === 'object') {\n\t\tif (typeof configTreeshake.pureExternalModules !== 'undefined') {\n\t\t\twarnDeprecationWithOptions(\n\t\t\t\t`The \"treeshake.pureExternalModules\" option is deprecated. The \"treeshake.moduleSideEffects\" option should be used instead. \"treeshake.pureExternalModules: true\" is equivalent to \"treeshake.moduleSideEffects: 'no-external'\"`,\n\t\t\t\ttrue,\n\t\t\t\twarn,\n\t\t\t\tstrictDeprecations\n\t\t\t);\n\t\t}\n\t\tconfigWithPreset = configTreeshake;\n\t\tconst presetName = configTreeshake.preset;\n\t\tif (presetName) {\n\t\t\tconst preset = treeshakePresets[presetName];\n\t\t\tif (preset) {\n\t\t\t\tconfigWithPreset = { ...preset, ...configTreeshake };\n\t\t\t} else {\n\t\t\t\terror(\n\t\t\t\t\terrInvalidOption(\n\t\t\t\t\t\t'treeshake.preset',\n\t\t\t\t\t\t`valid values are ${printQuotedStringList(Object.keys(treeshakePresets))}`\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\treturn {\n\t\tannotations: configWithPreset.annotations !== false,\n\t\tcorrectVarValueBeforeDeclaration: configWithPreset.correctVarValueBeforeDeclaration === true,\n\t\tmoduleSideEffects:\n\t\t\ttypeof configTreeshake === 'object' && configTreeshake.pureExternalModules\n\t\t\t\t? getHasModuleSideEffects(\n\t\t\t\t\t\tconfigTreeshake.moduleSideEffects,\n\t\t\t\t\t\tconfigTreeshake.pureExternalModules\n\t\t\t\t )\n\t\t\t\t: getHasModuleSideEffects(configWithPreset.moduleSideEffects, undefined),\n\t\tpropertyReadSideEffects:\n\t\t\tconfigWithPreset.propertyReadSideEffects === 'always'\n\t\t\t\t? 'always'\n\t\t\t\t: configWithPreset.propertyReadSideEffects !== false,\n\t\ttryCatchDeoptimization: configWithPreset.tryCatchDeoptimization !== false,\n\t\tunknownGlobalSideEffects: configWithPreset.unknownGlobalSideEffects !== false\n\t};\n};\n\nconst getHasModuleSideEffects = (\n\tmoduleSideEffectsOption: ModuleSideEffectsOption | undefined,\n\tpureExternalModules: PureModulesOption | undefined\n): HasModuleSideEffects => {\n\tif (typeof moduleSideEffectsOption === 'boolean') {\n\t\treturn () => moduleSideEffectsOption;\n\t}\n\tif (moduleSideEffectsOption === 'no-external') {\n\t\treturn (_id, external) => !external;\n\t}\n\tif (typeof moduleSideEffectsOption === 'function') {\n\t\treturn (id, external) =>\n\t\t\t!id.startsWith('\\0') ? moduleSideEffectsOption(id, external) !== false : true;\n\t}\n\tif (Array.isArray(moduleSideEffectsOption)) {\n\t\tconst ids = new Set(moduleSideEffectsOption);\n\t\treturn id => ids.has(id);\n\t}\n\tif (moduleSideEffectsOption) {\n\t\terror(\n\t\t\terrInvalidOption(\n\t\t\t\t'treeshake.moduleSideEffects',\n\t\t\t\t'please use one of false, \"no-external\", a function or an array'\n\t\t\t)\n\t\t);\n\t}\n\tconst isPureExternalModule = getIdMatcher(pureExternalModules);\n\treturn (id, external) => !(external && isPureExternalModule(id));\n};\n","export function sanitizeFileName(name: string): string {\n\tconst match = /^[a-z]:/i.exec(name);\n\tconst driveLetter = match ? match[0] : '';\n\n\t// A `:` is only allowed as part of a windows drive letter (ex: C:\\foo)\n\t// Otherwise, avoid them because they can refer to NTFS alternate data streams.\n\treturn driveLetter + name.substr(driveLetter.length).replace(/[\\0?*:]/g, '_');\n}\n","import {\n\tInternalModuleFormat,\n\tInteropType,\n\tNormalizedInputOptions,\n\tNormalizedOutputOptions,\n\tOutputOptions,\n\tSourcemapPathTransformOption\n} from '../../rollup/types';\nimport { ensureArray } from '../ensureArray';\nimport { errInvalidExportOptionValue, error, warnDeprecation } from '../error';\nimport { resolve } from '../path';\nimport { sanitizeFileName as defaultSanitizeFileName } from '../sanitizeFileName';\nimport { GenericConfigObject, warnUnknownOptions } from './options';\n\nexport function normalizeOutputOptions(\n\tconfig: OutputOptions,\n\tinputOptions: NormalizedInputOptions,\n\tunsetInputOptions: Set<string>\n): { options: NormalizedOutputOptions; unsetOptions: Set<string> } {\n\t// These are options that may trigger special warnings or behaviour later\n\t// if the user did not select an explicit value\n\tconst unsetOptions = new Set(unsetInputOptions);\n\n\tconst compact = config.compact || false;\n\tconst format = getFormat(config);\n\tconst inlineDynamicImports = getInlineDynamicImports(config, inputOptions);\n\tconst preserveModules = getPreserveModules(config, inlineDynamicImports, inputOptions);\n\tconst file = getFile(config, preserveModules, inputOptions);\n\n\tconst outputOptions: NormalizedOutputOptions & OutputOptions = {\n\t\tamd: getAmd(config),\n\t\tassetFileNames: config.assetFileNames ?? 'assets/[name]-[hash][extname]',\n\t\tbanner: getAddon(config, 'banner'),\n\t\tchunkFileNames: config.chunkFileNames ?? '[name]-[hash].js',\n\t\tcompact,\n\t\tdir: getDir(config, file),\n\t\tdynamicImportFunction: getDynamicImportFunction(config, inputOptions),\n\t\tentryFileNames: getEntryFileNames(config, unsetOptions),\n\t\tesModule: config.esModule ?? true,\n\t\texports: getExports(config, unsetOptions),\n\t\textend: config.extend || false,\n\t\texternalLiveBindings: config.externalLiveBindings ?? true,\n\t\tfile,\n\t\tfooter: getAddon(config, 'footer'),\n\t\tformat,\n\t\tfreeze: config.freeze ?? true,\n\t\tglobals: config.globals || {},\n\t\thoistTransitiveImports: config.hoistTransitiveImports ?? true,\n\t\tindent: getIndent(config, compact),\n\t\tinlineDynamicImports,\n\t\tinterop: getInterop(config, inputOptions),\n\t\tintro: getAddon(config, 'intro'),\n\t\tmanualChunks: getManualChunks(config, inlineDynamicImports, preserveModules, inputOptions),\n\t\tminifyInternalExports: getMinifyInternalExports(config, format, compact),\n\t\tname: config.name,\n\t\tnamespaceToStringTag: config.namespaceToStringTag || false,\n\t\tnoConflict: config.noConflict || false,\n\t\toutro: getAddon(config, 'outro'),\n\t\tpaths: config.paths || {},\n\t\tplugins: ensureArray(config.plugins),\n\t\tpreferConst: config.preferConst || false,\n\t\tpreserveModules,\n\t\tpreserveModulesRoot: getPreserveModulesRoot(config),\n\t\tsanitizeFileName:\n\t\t\ttypeof config.sanitizeFileName === 'function'\n\t\t\t\t? config.sanitizeFileName\n\t\t\t\t: config.sanitizeFileName === false\n\t\t\t\t? id => id\n\t\t\t\t: defaultSanitizeFileName,\n\t\tsourcemap: config.sourcemap || false,\n\t\tsourcemapExcludeSources: config.sourcemapExcludeSources || false,\n\t\tsourcemapFile: config.sourcemapFile,\n\t\tsourcemapPathTransform: config.sourcemapPathTransform as\n\t\t\t| SourcemapPathTransformOption\n\t\t\t| undefined,\n\t\tstrict: config.strict ?? true,\n\t\tsystemNullSetters: config.systemNullSetters || false,\n\t\tvalidate: config.validate || false\n\t};\n\n\twarnUnknownOptions(\n\t\tconfig as GenericConfigObject,\n\t\tObject.keys(outputOptions),\n\t\t'output options',\n\t\tinputOptions.onwarn\n\t);\n\treturn { options: outputOptions, unsetOptions };\n}\n\nconst getFile = (\n\tconfig: OutputOptions,\n\tpreserveModules: boolean,\n\tinputOptions: NormalizedInputOptions\n): NormalizedOutputOptions['file'] => {\n\tconst { file } = config;\n\tif (typeof file === 'string') {\n\t\tif (preserveModules) {\n\t\t\treturn error({\n\t\t\t\tcode: 'INVALID_OPTION',\n\t\t\t\tmessage:\n\t\t\t\t\t'You must set \"output.dir\" instead of \"output.file\" when using the \"output.preserveModules\" option.'\n\t\t\t});\n\t\t}\n\t\tif (!Array.isArray(inputOptions.input))\n\t\t\treturn error({\n\t\t\t\tcode: 'INVALID_OPTION',\n\t\t\t\tmessage: 'You must set \"output.dir\" instead of \"output.file\" when providing named inputs.'\n\t\t\t});\n\t}\n\treturn file;\n};\n\nconst getFormat = (config: OutputOptions): NormalizedOutputOptions['format'] => {\n\tconst configFormat = config.format;\n\tswitch (configFormat) {\n\t\tcase undefined:\n\t\tcase 'es':\n\t\tcase 'esm':\n\t\tcase 'module':\n\t\t\treturn 'es';\n\t\tcase 'cjs':\n\t\tcase 'commonjs':\n\t\t\treturn 'cjs';\n\t\tcase 'system':\n\t\tcase 'systemjs':\n\t\t\treturn 'system';\n\t\tcase 'amd':\n\t\tcase 'iife':\n\t\tcase 'umd':\n\t\t\treturn configFormat;\n\t\tdefault:\n\t\t\treturn error({\n\t\t\t\tmessage: `You must specify \"output.format\", which can be one of \"amd\", \"cjs\", \"system\", \"es\", \"iife\" or \"umd\".`,\n\t\t\t\turl: `https://rollupjs.org/guide/en/#outputformat`\n\t\t\t});\n\t}\n};\n\nconst getInlineDynamicImports = (\n\tconfig: OutputOptions,\n\tinputOptions: NormalizedInputOptions\n): NormalizedOutputOptions['inlineDynamicImports'] => {\n\tconst inlineDynamicImports =\n\t\t(config.inlineDynamicImports ?? inputOptions.inlineDynamicImports) || false;\n\tconst { input } = inputOptions;\n\tif (inlineDynamicImports && (Array.isArray(input) ? input : Object.keys(input)).length > 1) {\n\t\treturn error({\n\t\t\tcode: 'INVALID_OPTION',\n\t\t\tmessage: 'Multiple inputs are not supported for \"output.inlineDynamicImports\".'\n\t\t});\n\t}\n\treturn inlineDynamicImports;\n};\n\nconst getPreserveModules = (\n\tconfig: OutputOptions,\n\tinlineDynamicImports: boolean,\n\tinputOptions: NormalizedInputOptions\n): NormalizedOutputOptions['preserveModules'] => {\n\tconst preserveModules = (config.preserveModules ?? inputOptions.preserveModules) || false;\n\tif (preserveModules) {\n\t\tif (inlineDynamicImports) {\n\t\t\treturn error({\n\t\t\t\tcode: 'INVALID_OPTION',\n\t\t\t\tmessage: `The \"output.inlineDynamicImports\" option is not supported for \"output.preserveModules\".`\n\t\t\t});\n\t\t}\n\t\tif (inputOptions.preserveEntrySignatures === false) {\n\t\t\treturn error({\n\t\t\t\tcode: 'INVALID_OPTION',\n\t\t\t\tmessage:\n\t\t\t\t\t'Setting \"preserveEntrySignatures\" to \"false\" is not supported for \"output.preserveModules\".'\n\t\t\t});\n\t\t}\n\t}\n\treturn preserveModules;\n};\n\nconst getPreserveModulesRoot = (\n\tconfig: OutputOptions\n): NormalizedOutputOptions['preserveModulesRoot'] => {\n\tconst { preserveModulesRoot } = config;\n\tif (preserveModulesRoot === null || preserveModulesRoot === undefined) {\n\t\treturn undefined;\n\t}\n\treturn resolve(preserveModulesRoot);\n};\n\nconst getAmd = (config: OutputOptions): NormalizedOutputOptions['amd'] => {\n\tconst collection: { autoId: boolean; basePath: string; define: string; id?: string } = {\n\t\tautoId: false,\n\t\tbasePath: '',\n\t\tdefine: 'define',\n\t\t...config.amd\n\t};\n\n\tif ((collection.autoId || collection.basePath) && collection.id) {\n\t\treturn error({\n\t\t\tcode: 'INVALID_OPTION',\n\t\t\tmessage:\n\t\t\t\t'\"output.amd.autoId\"/\"output.amd.basePath\" and \"output.amd.id\" cannot be used together.'\n\t\t});\n\t}\n\tif (collection.basePath && !collection.autoId) {\n\t\treturn error({\n\t\t\tcode: 'INVALID_OPTION',\n\t\t\tmessage: '\"output.amd.basePath\" only works with \"output.amd.autoId\".'\n\t\t});\n\t}\n\n\tlet normalized: NormalizedOutputOptions['amd'];\n\tif (collection.autoId) {\n\t\tnormalized = {\n\t\t\tautoId: true,\n\t\t\tbasePath: collection.basePath,\n\t\t\tdefine: collection.define\n\t\t};\n\t} else {\n\t\tnormalized = {\n\t\t\tautoId: false,\n\t\t\tdefine: collection.define,\n\t\t\tid: collection.id\n\t\t};\n\t}\n\treturn normalized;\n};\n\nconst getAddon = (config: OutputOptions, name: string): (() => string | Promise<string>) => {\n\tconst configAddon = (config as GenericConfigObject)[name] as\n\t\t| string\n\t\t| (() => string | Promise<string>);\n\tif (typeof configAddon === 'function') {\n\t\treturn configAddon;\n\t}\n\treturn () => configAddon || '';\n};\n\nconst getDir = (\n\tconfig: OutputOptions,\n\tfile: string | undefined\n): NormalizedOutputOptions['dir'] => {\n\tconst { dir } = config;\n\tif (typeof dir === 'string' && typeof file === 'string') {\n\t\treturn error({\n\t\t\tcode: 'INVALID_OPTION',\n\t\t\tmessage:\n\t\t\t\t'You must set either \"output.file\" for a single-file build or \"output.dir\" when generating multiple chunks.'\n\t\t});\n\t}\n\treturn dir;\n};\n\nconst getDynamicImportFunction = (\n\tconfig: OutputOptions,\n\tinputOptions: NormalizedInputOptions\n): NormalizedOutputOptions['dynamicImportFunction'] => {\n\tconst configDynamicImportFunction = config.dynamicImportFunction;\n\tif (configDynamicImportFunction) {\n\t\twarnDeprecation(\n\t\t\t`The \"output.dynamicImportFunction\" option is deprecated. Use the \"renderDynamicImport\" plugin hook instead.`,\n\t\t\tfalse,\n\t\t\tinputOptions\n\t\t);\n\t}\n\treturn configDynamicImportFunction;\n};\n\nconst getEntryFileNames = (\n\tconfig: OutputOptions,\n\tunsetOptions: Set<string>\n): NormalizedOutputOptions['entryFileNames'] => {\n\tconst configEntryFileNames = config.entryFileNames;\n\tif (configEntryFileNames == null) {\n\t\tunsetOptions.add('entryFileNames');\n\t}\n\treturn configEntryFileNames ?? '[name].js';\n};\n\nfunction getExports(\n\tconfig: OutputOptions,\n\tunsetOptions: Set<string>\n): NormalizedOutputOptions['exports'] {\n\tconst configExports = config.exports;\n\tif (configExports == null) {\n\t\tunsetOptions.add('exports');\n\t} else if (!['default', 'named', 'none', 'auto'].includes(configExports)) {\n\t\treturn error(errInvalidExportOptionValue(configExports));\n\t}\n\treturn configExports || 'auto';\n}\n\nconst getIndent = (config: OutputOptions, compact: boolean): NormalizedOutputOptions['indent'] => {\n\tif (compact) {\n\t\treturn '';\n\t}\n\tconst configIndent = config.indent;\n\treturn configIndent === false ? '' : configIndent ?? true;\n};\n\nconst ALLOWED_INTEROP_TYPES = new Set(['auto', 'esModule', 'default', 'defaultOnly', true, false]);\n\nconst getInterop = (\n\tconfig: OutputOptions,\n\tinputOptions: NormalizedInputOptions\n): NormalizedOutputOptions['interop'] => {\n\tconst configInterop = config.interop;\n\tconst validatedInteropTypes = new Set<InteropType>();\n\tconst validateInterop = (interop: InteropType): InteropType => {\n\t\tif (!validatedInteropTypes.has(interop)) {\n\t\t\tvalidatedInteropTypes.add(interop);\n\t\t\tif (!ALLOWED_INTEROP_TYPES.has(interop)) {\n\t\t\t\treturn error({\n\t\t\t\t\tcode: 'INVALID_OPTION',\n\t\t\t\t\tmessage: `The value ${JSON.stringify(\n\t\t\t\t\t\tinterop\n\t\t\t\t\t)} is not supported for \"output.interop\". Use one of ${Array.from(\n\t\t\t\t\t\tALLOWED_INTEROP_TYPES.values(),\n\t\t\t\t\t\tvalue => JSON.stringify(value)\n\t\t\t\t\t).join(', ')} instead.`,\n\t\t\t\t\turl: 'https://rollupjs.org/guide/en/#outputinterop'\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (typeof interop === 'boolean') {\n\t\t\t\twarnDeprecation(\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: `The boolean value \"${interop}\" for the \"output.interop\" option is deprecated. Use ${\n\t\t\t\t\t\t\tinterop ? '\"auto\"' : '\"esModule\", \"default\" or \"defaultOnly\"'\n\t\t\t\t\t\t} instead.`,\n\t\t\t\t\t\turl: 'https://rollupjs.org/guide/en/#outputinterop'\n\t\t\t\t\t},\n\t\t\t\t\tfalse,\n\t\t\t\t\tinputOptions\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn interop;\n\t};\n\n\tif (typeof configInterop === 'function') {\n\t\tconst interopPerId: { [id: string]: InteropType } = Object.create(null);\n\t\tlet defaultInterop: InteropType | null = null;\n\t\treturn id =>\n\t\t\tid === null\n\t\t\t\t? defaultInterop || validateInterop((defaultInterop = configInterop(id)))\n\t\t\t\t: id in interopPerId\n\t\t\t\t? interopPerId[id]\n\t\t\t\t: validateInterop((interopPerId[id] = configInterop(id)));\n\t}\n\treturn configInterop === undefined ? () => true : () => validateInterop(configInterop);\n};\n\nconst getManualChunks = (\n\tconfig: OutputOptions,\n\tinlineDynamicImports: boolean,\n\tpreserveModules: boolean,\n\tinputOptions: NormalizedInputOptions\n): NormalizedOutputOptions['manualChunks'] => {\n\tconst configManualChunks = config.manualChunks || inputOptions.manualChunks;\n\tif (configManualChunks) {\n\t\tif (inlineDynamicImports) {\n\t\t\treturn error({\n\t\t\t\tcode: 'INVALID_OPTION',\n\t\t\t\tmessage:\n\t\t\t\t\t'The \"output.manualChunks\" option is not supported for \"output.inlineDynamicImports\".'\n\t\t\t});\n\t\t}\n\t\tif (preserveModules) {\n\t\t\treturn error({\n\t\t\t\tcode: 'INVALID_OPTION',\n\t\t\t\tmessage: 'The \"output.manualChunks\" option is not supported for \"output.preserveModules\".'\n\t\t\t});\n\t\t}\n\t}\n\treturn configManualChunks || {};\n};\n\nconst getMinifyInternalExports = (\n\tconfig: OutputOptions,\n\tformat: InternalModuleFormat,\n\tcompact: boolean\n): NormalizedOutputOptions['minifyInternalExports'] =>\n\tconfig.minifyInternalExports ?? (compact || format === 'es' || format === 'system');\n","import { version as rollupVersion } from 'package.json';\nimport Bundle from '../Bundle';\nimport Graph from '../Graph';\nimport { PluginDriver } from '../utils/PluginDriver';\nimport { ensureArray } from '../utils/ensureArray';\nimport { errAlreadyClosed, errCannotEmitFromOptionsHook, error } from '../utils/error';\nimport { writeFile } from '../utils/fs';\nimport { normalizeInputOptions } from '../utils/options/normalizeInputOptions';\nimport { normalizeOutputOptions } from '../utils/options/normalizeOutputOptions';\nimport { GenericConfigObject } from '../utils/options/options';\nimport { basename, dirname, resolve } from '../utils/path';\nimport { ANONYMOUS_OUTPUT_PLUGIN_PREFIX, ANONYMOUS_PLUGIN_PREFIX } from '../utils/pluginUtils';\nimport { SOURCEMAPPING_URL } from '../utils/sourceMappingURL';\nimport { getTimings, initialiseTimers, timeEnd, timeStart } from '../utils/timers';\nimport {\n\tNormalizedInputOptions,\n\tNormalizedOutputOptions,\n\tOutputAsset,\n\tOutputChunk,\n\tOutputOptions,\n\tPlugin,\n\tRollupBuild,\n\tRollupOptions,\n\tRollupOutput,\n\tRollupWatcher\n} from './types';\n\nexport default function rollup(rawInputOptions: GenericConfigObject): Promise<RollupBuild> {\n\treturn rollupInternal(rawInputOptions, null);\n}\n\nexport async function rollupInternal(\n\trawInputOptions: GenericConfigObject,\n\twatcher: RollupWatcher | null\n): Promise<RollupBuild> {\n\tconst { options: inputOptions, unsetOptions: unsetInputOptions } = await getInputOptions(\n\t\trawInputOptions,\n\t\twatcher !== null\n\t);\n\tinitialiseTimers(inputOptions);\n\n\tconst graph = new Graph(inputOptions, watcher);\n\n\t// remove the cache option from the memory after graph creation (cache is not used anymore)\n\tconst useCache = rawInputOptions.cache !== false;\n\tdelete inputOptions.cache;\n\tdelete rawInputOptions.cache;\n\n\ttimeStart('BUILD', 1);\n\n\ttry {\n\t\tawait graph.pluginDriver.hookParallel('buildStart', [inputOptions]);\n\t\tawait graph.build();\n\t} catch (err) {\n\t\tconst watchFiles = Object.keys(graph.watchFiles);\n\t\tif (watchFiles.length > 0) {\n\t\t\terr.watchFiles = watchFiles;\n\t\t}\n\t\tawait graph.pluginDriver.hookParallel('buildEnd', [err]);\n\t\tawait graph.pluginDriver.hookParallel('closeBundle', []);\n\t\tthrow err;\n\t}\n\n\tawait graph.pluginDriver.hookParallel('buildEnd', []);\n\n\ttimeEnd('BUILD', 1);\n\n\tconst result: RollupBuild = {\n\t\tcache: useCache ? graph.getCache() : undefined,\n\t\tasync close() {\n\t\t\tif (result.closed) return;\n\n\t\t\tresult.closed = true;\n\n\t\t\tawait graph.pluginDriver.hookParallel('closeBundle', []);\n\t\t},\n\t\tclosed: false,\n\t\tasync generate(rawOutputOptions: OutputOptions) {\n\t\t\tif (result.closed) return error(errAlreadyClosed());\n\n\t\t\treturn handleGenerateWrite(\n\t\t\t\tfalse,\n\t\t\t\tinputOptions,\n\t\t\t\tunsetInputOptions,\n\t\t\t\trawOutputOptions as GenericConfigObject,\n\t\t\t\tgraph\n\t\t\t);\n\t\t},\n\t\twatchFiles: Object.keys(graph.watchFiles),\n\t\tasync write(rawOutputOptions: OutputOptions) {\n\t\t\tif (result.closed) return error(errAlreadyClosed());\n\n\t\t\treturn handleGenerateWrite(\n\t\t\t\ttrue,\n\t\t\t\tinputOptions,\n\t\t\t\tunsetInputOptions,\n\t\t\t\trawOutputOptions as GenericConfigObject,\n\t\t\t\tgraph\n\t\t\t);\n\t\t}\n\t};\n\tif (inputOptions.perf) result.getTimings = getTimings;\n\treturn result;\n}\n\nasync function getInputOptions(\n\trawInputOptions: GenericConfigObject,\n\twatchMode: boolean\n): Promise<{ options: NormalizedInputOptions; unsetOptions: Set<string> }> {\n\tif (!rawInputOptions) {\n\t\tthrow new Error('You must supply an options object to rollup');\n\t}\n\tconst rawPlugins = ensureArray(rawInputOptions.plugins) as Plugin[];\n\tconst { options, unsetOptions } = normalizeInputOptions(\n\t\tawait rawPlugins.reduce(applyOptionHook(watchMode), Promise.resolve(rawInputOptions))\n\t);\n\tnormalizePlugins(options.plugins, ANONYMOUS_PLUGIN_PREFIX);\n\treturn { options, unsetOptions };\n}\n\nfunction applyOptionHook(watchMode: boolean) {\n\treturn async (\n\t\tinputOptions: Promise<GenericConfigObject>,\n\t\tplugin: Plugin\n\t): Promise<GenericConfigObject> => {\n\t\tif (plugin.options) {\n\t\t\treturn (\n\t\t\t\t((await plugin.options.call(\n\t\t\t\t\t{ meta: { rollupVersion, watchMode } },\n\t\t\t\t\tawait inputOptions\n\t\t\t\t)) as GenericConfigObject) || inputOptions\n\t\t\t);\n\t\t}\n\n\t\treturn inputOptions;\n\t};\n}\n\nfunction normalizePlugins(plugins: Plugin[], anonymousPrefix: string): void {\n\tfor (let pluginIndex = 0; pluginIndex < plugins.length; pluginIndex++) {\n\t\tconst plugin = plugins[pluginIndex];\n\t\tif (!plugin.name) {\n\t\t\tplugin.name = `${anonymousPrefix}${pluginIndex + 1}`;\n\t\t}\n\t}\n}\n\nasync function handleGenerateWrite(\n\tisWrite: boolean,\n\tinputOptions: NormalizedInputOptions,\n\tunsetInputOptions: Set<string>,\n\trawOutputOptions: GenericConfigObject,\n\tgraph: Graph\n): Promise<RollupOutput> {\n\tconst {\n\t\toptions: outputOptions,\n\t\toutputPluginDriver,\n\t\tunsetOptions\n\t} = getOutputOptionsAndPluginDriver(\n\t\trawOutputOptions,\n\t\tgraph.pluginDriver,\n\t\tinputOptions,\n\t\tunsetInputOptions\n\t);\n\tconst bundle = new Bundle(outputOptions, unsetOptions, inputOptions, outputPluginDriver, graph);\n\tconst generated = await bundle.generate(isWrite);\n\tif (isWrite) {\n\t\tif (!outputOptions.dir && !outputOptions.file) {\n\t\t\treturn error({\n\t\t\t\tcode: 'MISSING_OPTION',\n\t\t\t\tmessage: 'You must specify \"output.file\" or \"output.dir\" for the build.'\n\t\t\t});\n\t\t}\n\t\tawait Promise.all(Object.values(generated).map(chunk => writeOutputFile(chunk, outputOptions)));\n\t\tawait outputPluginDriver.hookParallel('writeBundle', [outputOptions, generated]);\n\t}\n\treturn createOutput(generated);\n}\n\nfunction getOutputOptionsAndPluginDriver(\n\trawOutputOptions: GenericConfigObject,\n\tinputPluginDriver: PluginDriver,\n\tinputOptions: NormalizedInputOptions,\n\tunsetInputOptions: Set<string>\n): {\n\toptions: NormalizedOutputOptions;\n\toutputPluginDriver: PluginDriver;\n\tunsetOptions: Set<string>;\n} {\n\tif (!rawOutputOptions) {\n\t\tthrow new Error('You must supply an options object');\n\t}\n\tconst rawPlugins = ensureArray(rawOutputOptions.plugins) as Plugin[];\n\tnormalizePlugins(rawPlugins, ANONYMOUS_OUTPUT_PLUGIN_PREFIX);\n\tconst outputPluginDriver = inputPluginDriver.createOutputPluginDriver(rawPlugins);\n\n\treturn {\n\t\t...getOutputOptions(inputOptions, unsetInputOptions, rawOutputOptions, outputPluginDriver),\n\t\toutputPluginDriver\n\t};\n}\n\nfunction getOutputOptions(\n\tinputOptions: NormalizedInputOptions,\n\tunsetInputOptions: Set<string>,\n\trawOutputOptions: GenericConfigObject,\n\toutputPluginDriver: PluginDriver\n): { options: NormalizedOutputOptions; unsetOptions: Set<string> } {\n\treturn normalizeOutputOptions(\n\t\toutputPluginDriver.hookReduceArg0Sync(\n\t\t\t'outputOptions',\n\t\t\t[rawOutputOptions.output || rawOutputOptions] as [OutputOptions],\n\t\t\t(outputOptions, result) => result || outputOptions,\n\t\t\tpluginContext => {\n\t\t\t\tconst emitError = () => pluginContext.error(errCannotEmitFromOptionsHook());\n\t\t\t\treturn {\n\t\t\t\t\t...pluginContext,\n\t\t\t\t\temitFile: emitError,\n\t\t\t\t\tsetAssetSource: emitError\n\t\t\t\t};\n\t\t\t}\n\t\t),\n\t\tinputOptions,\n\t\tunsetInputOptions\n\t);\n}\n\nfunction createOutput(\n\toutputBundle: Record<string, OutputChunk | OutputAsset | Record<string, never>>\n): RollupOutput {\n\treturn {\n\t\toutput: (\n\t\t\tObject.values(outputBundle).filter(outputFile => Object.keys(outputFile).length > 0) as (\n\t\t\t\t| OutputChunk\n\t\t\t\t| OutputAsset\n\t\t\t)[]\n\t\t).sort((outputFileA, outputFileB) => {\n\t\t\tconst fileTypeA = getSortingFileType(outputFileA);\n\t\t\tconst fileTypeB = getSortingFileType(outputFileB);\n\t\t\tif (fileTypeA === fileTypeB) return 0;\n\t\t\treturn fileTypeA < fileTypeB ? -1 : 1;\n\t\t}) as [OutputChunk, ...(OutputChunk | OutputAsset)[]]\n\t};\n}\n\nenum SortingFileType {\n\tENTRY_CHUNK = 0,\n\tSECONDARY_CHUNK = 1,\n\tASSET = 2\n}\n\nfunction getSortingFileType(file: OutputAsset | OutputChunk): SortingFileType {\n\tif (file.type === 'asset') {\n\t\treturn SortingFileType.ASSET;\n\t}\n\tif (file.isEntry) {\n\t\treturn SortingFileType.ENTRY_CHUNK;\n\t}\n\treturn SortingFileType.SECONDARY_CHUNK;\n}\n\nfunction writeOutputFile(\n\toutputFile: OutputAsset | OutputChunk,\n\toutputOptions: NormalizedOutputOptions\n): Promise<unknown> {\n\tconst fileName = resolve(outputOptions.dir || dirname(outputOptions.file!), outputFile.fileName);\n\tlet writeSourceMapPromise: Promise<void> | undefined;\n\tlet source: string | Uint8Array;\n\tif (outputFile.type === 'asset') {\n\t\tsource = outputFile.source;\n\t} else {\n\t\tsource = outputFile.code;\n\t\tif (outputOptions.sourcemap && outputFile.map) {\n\t\t\tlet url: string;\n\t\t\tif (outputOptions.sourcemap === 'inline') {\n\t\t\t\turl = outputFile.map.toUrl();\n\t\t\t} else {\n\t\t\t\turl = `${basename(outputFile.fileName)}.map`;\n\t\t\t\twriteSourceMapPromise = writeFile(`${fileName}.map`, outputFile.map.toString());\n\t\t\t}\n\t\t\tif (outputOptions.sourcemap !== 'hidden') {\n\t\t\t\tsource += `//# ${SOURCEMAPPING_URL}=${url}\\n`;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn Promise.all([writeFile(fileName, source), writeSourceMapPromise]);\n}\n\n/**\n * Auxiliary function for defining rollup configuration\n * Mainly to facilitate IDE code prompts, after all, export default does not prompt, even if you add @type annotations, it is not accurate\n * @param options\n */\nexport function defineConfig<T extends RollupOptions | RollupOptions[]>(options: T): T {\n\treturn options;\n}\n"],"names":["charToInteger","chars","i","length","charCodeAt","segmentify","line","segment","j","push","encodeInteger","num","result","clamped","BitSet","arg","this","bits","slice","prototype","add","n","has","Chunk","start","end","content","original","intro","outro","storeName","edited","Object","defineProperties","previous","writable","value","next","appendLeft","appendRight","clone","chunk","contains","index","eachNext","fn","eachPrevious","edit","contentOnly","prependLeft","prependRight","split","sliceIndex","originalBefore","originalAfter","newChunk","toString","trimEnd","rx","replace","trimmed","undefined","trimStart","btoa","Error","window","str","unescape","encodeURIComponent","Buffer","from","SourceMap","properties","version","file","sources","sourcesContent","names","mappings","decoded","sourceFileIndex","sourceCodeLine","sourceCodeColumn","nameIndex","generatedCodeColumn","lineMappings","_i","line_1","segmentMappings","join","encode","guessIndent","code","lines","tabbed","filter","test","spaced","min","reduce","current","numSpaces","exec","Math","Infinity","Array","getRelativePath","to","fromParts","toParts","pop","shift","concat","JSON","stringify","toUrl","isObject","thing","call","getLocator","source","originalLines","lineOffsets","pos","m","column","Mappings","hires","generatedCodeLine","raw","rawSegments","pending","addEdit","sourceIndex","loc","advance","addUneditedChunk","sourcemapLocations","originalCharIndex","first","warned","insertLeft","insertRight","MagicString","string","options","firstChunk","lastChunk","lastSearchedChunk","byStart","byEnd","filename","indentExclusionRanges","storedNames","indentStr","addSourcemapLocation","char","append","TypeError","_split","cloned","originalChunk","clonedChunk","nextOriginalChunk","nextClonedChunk","generateDecodedMap","this$1","keys","locate","indexOf","includeContent","generateMap","getIndentString","indent","pattern","isExcluded","exclude","forEach","exclusion","shouldIndentNextCharacter","indentStart","replacer","match","charIndex","_splitChunk","insert","console","warn","move","last","oldLeft","oldRight","newRight","newLeft","overwrite","prepend","remove","lastChar","lastLine","lineIndex","lastIndexOf","substr","lineStr","startChunk","containsEnd","sliceStart","sliceEnd","snip","searchForward","isEmpty","trim","trimLines","charType","trimEndAborted","RegExp","aborted","trimStartAborted","hasOwnProp","hasOwnProperty","Bundle","separator","uniqueSources","uniqueSourceIndexByFilename","addSource","option","uniqueSource","bundle","name","magicString","map","indentStringCounts","sort","a","b","arguments","trailingNewline","body","some","absolutePath","relativePath","isAbsolute","path","isRelative","normalize","basename","dirname","dir","extname","relative","Boolean","unshift","resolve","paths","firstPathSegment","resolvedParts","parts","RESERVED_NAMES","__proto__","await","break","case","catch","class","const","continue","debugger","default","delete","do","else","enum","eval","export","extends","false","finally","for","function","if","implements","import","in","instanceof","interface","let","new","null","package","private","protected","public","return","static","super","switch","throw","true","try","typeof","var","void","while","with","yield","getOrCreate","key","init","existing","get","set","UnknownKey","Symbol","UnknownInteger","EMPTY_PATH","UNKNOWN_PATH","UNKNOWN_INTEGER_PATH","EntitiesKey","PathTracker","[object Object]","create","Set","entity","trackedEntities","getEntities","onUntracked","returnIfTracked","currentPaths","entityPaths","pathSegment","SHARED_RECURSION_TRACKER","DiscriminatedPathTracker","Map","discriminator","UnknownValue","ExpressionEntity","_path","_event","thisParameter","_recursionTracker","deoptimizePath","_origin","_callOptions","UNKNOWN_EXPRESSION","_context","_includeChildrenRecursively","included","context","args","include","Variable","_identifier","renderBaseName","renderName","baseName","ExternalVariable","module","isNamespace","referenced","identifier","suggestName","used","BLANK","freeze","EMPTY_OBJECT","EMPTY_ARRAY","reservedWords","builtins","blacklisted","illegalCharacters","startsWithDigit","makeLegal","_","letter","toUpperCase","printQuotedStringList","list","verbs","isSingleItem","quotedList","item","output","getAliasName","id","base","relativeId","isPathFragment","ExternalModule","hasModuleSideEffects","meta","renormalizeRenderPath","execIndex","suggestedVariableName","nameSuggestions","declarations","exportedVariables","importers","dynamicImporters","info","ast","dynamicallyImportedIds","implicitlyLoadedAfterOneOf","implicitlyLoadedBefore","importedIds","isEntry","isExternal","syntheticNamedExports","declaration","inputBase","renderPath","mostCommonSuggestion","unused","reexported","importersSet","importer","importersArray","onwarn","message","search","offsetLine","offsetColumn","lineRanges","range","rangeContains","getLocation","character","startIndex","d","extractors","param","element","elements","type","left","prop","RestElement","argument","extractAssignedNames","createInclusionContext","brokenFlow","includedCallArguments","includedLabels","createHasEffectsContext","accessed","assigned","called","ignore","breaks","continues","labels","returnYield","instantiated","replacedVariableInits","skipThrough","node","st","c","_node","_st","_c","Program","BlockStatement","Statement","EmptyStatement","ExpressionStatement","ParenthesizedExpression","ChainExpression","expression","IfStatement","consequent","alternate","LabeledStatement","BreakStatement","ContinueStatement","WithStatement","object","SwitchStatement","discriminant","i$1","list$1","cases","cs","SwitchCase","ReturnStatement","YieldExpression","AwaitExpression","ThrowStatement","SpreadElement","TryStatement","block","handler","finalizer","CatchClause","WhileStatement","DoWhileStatement","ForStatement","update","ForInStatement","ForOfStatement","right","ForInit","DebuggerStatement","FunctionDeclaration","VariableDeclaration","VariableDeclarator","Function","params","Pattern","VariablePattern","MemberPattern","ArrayPattern","elt","ObjectPattern","computed","Expression","ThisExpression","Super","MetaProperty","ArrayExpression","ObjectExpression","FunctionExpression","ArrowFunctionExpression","SequenceExpression","expressions","TemplateLiteral","quasis","TemplateElement","UnaryExpression","UpdateExpression","BinaryExpression","LogicalExpression","AssignmentExpression","AssignmentPattern","ConditionalExpression","NewExpression","CallExpression","callee","MemberExpression","property","ExportNamedDeclaration","ExportDefaultDeclaration","ExportAllDeclaration","exported","ImportDeclaration","specifiers","ImportExpression","ImportSpecifier","ImportDefaultSpecifier","ImportNamespaceSpecifier","Identifier","PrivateIdentifier","Literal","TaggedTemplateExpression","tag","quasi","ClassDeclaration","ClassExpression","Class","superClass","ClassBody","MethodDefinition","PropertyDefinition","Property","SOURCEMAPPING_URL","SOURCEMAPPING_URL_RE","ANNOTATION_KEY","INVALID_COMMENT_KEY","handlePureAnnotationsOfNode","state","annotations","comment","annotationIndex","markPureNode","basicWalker","annotateNode","neitherWithespaceNorBrackets","noWhitespace","annotatedNodes","invalidAnnotation","doesNotMatchOutsideComment","parentStart","forbiddenChars","nextMatch","charCodeAfterSlash","lastIndex","pureCommentRegex","valid","INCLUDE_PARAMETERS","NodeBase","esTreeNode","parent","parentScope","getAndCreateKeys","createScope","parseNode","initialise","_variables","_exportNamesByVariable","isArray","child","bind","scope","deoptimized","applyDeoptimizations","hasEffects","includeChildrenRecursively","entries","nodeConstructors","UnknownNode","render","addExport","_options","nodeRenderOptions","treeshakeNode","annotation","removeAnnotations","NodeType.ExpressionStatement","needsBoundaries","NO_SEMICOLON","isNoStatement","findFirstOccurrenceOutsideComment","searchString","searchPos","NON_WHITESPACE","findNonWhiteSpace","findFirstLineBreakOutsideComment","lineBreakPos","renderStatementList","statements","currentNode","currentNodeStart","currentNodeNeedsBoundaries","nextNodeStart","nextNode","nextNodeNeedsBoundaries","nextIndex","getCommaSeparatedNodesWithBoundaries","nodes","splitUpNodes","contentEnd","removeLineBreaks","removeStart","removeEnd","getSystemExportStatement","compact","exportNamesByVariable","variable","getName","exportName","getSystemExportFunctionLeft","setFromExpression","s","toBase64","outStr","curDigit","floor","getSafeName","usedNames","safeName","count","NO_ARGS","assembleMemberDescriptions","memberDescriptions","inheritedDescriptions","UNDEFINED_EXPRESSION","returnsUnknown","callsArgs","returns","UNKNOWN_LITERAL_BOOLEAN","getMemberReturnExpressionWhenCalled","literalBooleanMembers","callOptions","hasMemberEffectWhenCalled","returnsBoolean","UNKNOWN_LITERAL_NUMBER","literalNumberMembers","returnsNumber","UNKNOWN_LITERAL_STRING","literalStringMembers","returnsString","objectMembers","isPrototypeOf","propertyIsEnumerable","toLocaleString","valueOf","toExponential","toFixed","toPrecision","charAt","codePointAt","endsWith","includes","localeCompare","padEnd","padStart","repeat","startsWith","substring","toLocaleLowerCase","toLocaleUpperCase","toLowerCase","members","memberName","argIndex","hasEffectsWhenCalledAtPath","thisParam","withNew","LocalVariable","declarator","deoptimizationTracker","additionalInitializers","markInitializersForDeoptimization","initializer","isReassigned","trackEntityAtPathAndGetIfTracked","expressionsToBeDeoptimized","deoptimizeCache","event","recursionTracker","withTrackedEntityAtPath","deoptimizeThisOnEventAtPath","origin","getLiteralValueAtPath","getReturnExpressionWhenCalledAtPath","hasEffectsWhenAccessedAtPath","hasEffectsWhenAssignedAtPath","NodeType.Program","includeCallArguments","calledFromTryStatement","Scope","_isHoisted","variables","addDeclaration","_name","ChildScope","children","importExpression","accessedDynamicImports","addAccessedDynamicImport","globals","accessedGlobalsByScope","accessedGlobals","addAccessedGlobals","accessedOutsideVariables","addNamespaceMemberAccess","addReturnExpression","format","values","getBaseVariableName","addUsedOutsideNames","inlineNamespace","alwaysRendered","setRenderNames","deconflict","findLexicalBoundary","knownVariable","findVariable","is_reference","local","ValueProperties","PURE","pure","IMPURE","O","PF","C","PC","ARRAY_TYPE","of","INTL_MEMBER","supportedLocalesOf","knownGlobals","global","globalThis","self","ArrayBuffer","isView","Atomics","BigInt","BigInt64Array","BigUint64Array","constructor","DataView","Date","now","parse","UTC","decodeURI","decodeURIComponent","encodeURI","escape","EvalError","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","isFinite","isNaN","abs","acos","acosh","asin","asinh","atan","atan2","atanh","cbrt","ceil","clz32","cos","cosh","exp","expm1","fround","hypot","imul","log","log10","log1p","log2","max","pow","random","round","sign","sin","sinh","sqrt","tan","tanh","trunc","NaN","Number","isInteger","isSafeInteger","parseFloat","parseInt","getNotifier","getOwn","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","getPrototypeOf","is","isExtensible","isFrozen","isSealed","Promise","all","race","reject","Proxy","RangeError","ReferenceError","Reflect","SharedArrayBuffer","String","fromCharCode","fromCodePoint","keyFor","SyntaxError","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray","URIError","WeakMap","WeakSet","clearInterval","clearTimeout","Intl","Collator","DateTimeFormat","ListFormat","NumberFormat","PluralRules","RelativeTimeFormat","setInterval","setTimeout","TextDecoder","TextEncoder","URL","URLSearchParams","AbortController","AbortSignal","addEventListener","alert","AnalyserNode","Animation","AnimationEvent","applicationCache","ApplicationCache","ApplicationCacheErrorEvent","atob","Attr","Audio","AudioBuffer","AudioBufferSourceNode","AudioContext","AudioDestinationNode","AudioListener","AudioNode","AudioParam","AudioProcessingEvent","AudioScheduledSourceNode","AudioWorkletNode","BarProp","BaseAudioContext","BatteryManager","BeforeUnloadEvent","BiquadFilterNode","Blob","BlobEvent","blur","BroadcastChannel","ByteLengthQueuingStrategy","Cache","caches","CacheStorage","cancelAnimationFrame","cancelIdleCallback","CanvasCaptureMediaStreamTrack","CanvasGradient","CanvasPattern","CanvasRenderingContext2D","ChannelMergerNode","ChannelSplitterNode","CharacterData","clientInformation","ClipboardEvent","close","closed","CloseEvent","Comment","CompositionEvent","confirm","ConstantSourceNode","ConvolverNode","CountQueuingStrategy","createImageBitmap","Credential","CredentialsContainer","crypto","Crypto","CryptoKey","CSS","CSSConditionRule","CSSFontFaceRule","CSSGroupingRule","CSSImportRule","CSSKeyframeRule","CSSKeyframesRule","CSSMediaRule","CSSNamespaceRule","CSSPageRule","CSSRule","CSSRuleList","CSSStyleDeclaration","CSSStyleRule","CSSStyleSheet","CSSSupportsRule","CustomElementRegistry","customElements","CustomEvent","DataTransfer","DataTransferItem","DataTransferItemList","defaultstatus","defaultStatus","DelayNode","DeviceMotionEvent","DeviceOrientationEvent","devicePixelRatio","dispatchEvent","document","Document","DocumentFragment","DocumentType","DOMError","DOMException","DOMImplementation","DOMMatrix","DOMMatrixReadOnly","DOMParser","DOMPoint","DOMPointReadOnly","DOMQuad","DOMRect","DOMRectReadOnly","DOMStringList","DOMStringMap","DOMTokenList","DragEvent","DynamicsCompressorNode","Element","ErrorEvent","Event","EventSource","EventTarget","external","fetch","File","FileList","FileReader","find","focus","FocusEvent","FontFace","FontFaceSetLoadEvent","FormData","frames","GainNode","Gamepad","GamepadButton","GamepadEvent","getComputedStyle","getSelection","HashChangeEvent","Headers","history","History","HTMLAllCollection","HTMLAnchorElement","HTMLAreaElement","HTMLAudioElement","HTMLBaseElement","HTMLBodyElement","HTMLBRElement","HTMLButtonElement","HTMLCanvasElement","HTMLCollection","HTMLContentElement","HTMLDataElement","HTMLDataListElement","HTMLDetailsElement","HTMLDialogElement","HTMLDirectoryElement","HTMLDivElement","HTMLDListElement","HTMLDocument","HTMLElement","HTMLEmbedElement","HTMLFieldSetElement","HTMLFontElement","HTMLFormControlsCollection","HTMLFormElement","HTMLFrameElement","HTMLFrameSetElement","HTMLHeadElement","HTMLHeadingElement","HTMLHRElement","HTMLHtmlElement","HTMLIFrameElement","HTMLImageElement","HTMLInputElement","HTMLLabelElement","HTMLLegendElement","HTMLLIElement","HTMLLinkElement","HTMLMapElement","HTMLMarqueeElement","HTMLMediaElement","HTMLMenuElement","HTMLMetaElement","HTMLMeterElement","HTMLModElement","HTMLObjectElement","HTMLOListElement","HTMLOptGroupElement","HTMLOptionElement","HTMLOptionsCollection","HTMLOutputElement","HTMLParagraphElement","HTMLParamElement","HTMLPictureElement","HTMLPreElement","HTMLProgressElement","HTMLQuoteElement","HTMLScriptElement","HTMLSelectElement","HTMLShadowElement","HTMLSlotElement","HTMLSourceElement","HTMLSpanElement","HTMLStyleElement","HTMLTableCaptionElement","HTMLTableCellElement","HTMLTableColElement","HTMLTableElement","HTMLTableRowElement","HTMLTableSectionElement","HTMLTemplateElement","HTMLTextAreaElement","HTMLTimeElement","HTMLTitleElement","HTMLTrackElement","HTMLUListElement","HTMLUnknownElement","HTMLVideoElement","IDBCursor","IDBCursorWithValue","IDBDatabase","IDBFactory","IDBIndex","IDBKeyRange","IDBObjectStore","IDBOpenDBRequest","IDBRequest","IDBTransaction","IDBVersionChangeEvent","IdleDeadline","IIRFilterNode","Image","ImageBitmap","ImageBitmapRenderingContext","ImageCapture","ImageData","indexedDB","innerHeight","innerWidth","InputEvent","IntersectionObserver","IntersectionObserverEntry","isSecureContext","KeyboardEvent","KeyframeEffect","localStorage","location","Location","locationbar","matchMedia","MediaDeviceInfo","MediaDevices","MediaElementAudioSourceNode","MediaEncryptedEvent","MediaError","MediaKeyMessageEvent","MediaKeySession","MediaKeyStatusMap","MediaKeySystemAccess","MediaList","MediaQueryList","MediaQueryListEvent","MediaRecorder","MediaSettingsRange","MediaSource","MediaStream","MediaStreamAudioDestinationNode","MediaStreamAudioSourceNode","MediaStreamEvent","MediaStreamTrack","MediaStreamTrackEvent","menubar","MessageChannel","MessageEvent","MessagePort","MIDIAccess","MIDIConnectionEvent","MIDIInput","MIDIInputMap","MIDIMessageEvent","MIDIOutput","MIDIOutputMap","MIDIPort","MimeType","MimeTypeArray","MouseEvent","moveBy","moveTo","MutationEvent","MutationObserver","MutationRecord","NamedNodeMap","NavigationPreloadManager","navigator","Navigator","NetworkInformation","Node","NodeFilter","NodeIterator","NodeList","Notification","OfflineAudioCompletionEvent","OfflineAudioContext","offscreenBuffering","OffscreenCanvas","open","openDatabase","Option","OscillatorNode","outerHeight","outerWidth","PageTransitionEvent","pageXOffset","pageYOffset","PannerNode","Path2D","PaymentAddress","PaymentRequest","PaymentRequestUpdateEvent","PaymentResponse","performance","Performance","PerformanceEntry","PerformanceLongTaskTiming","PerformanceMark","PerformanceMeasure","PerformanceNavigation","PerformanceNavigationTiming","PerformanceObserver","PerformanceObserverEntryList","PerformancePaintTiming","PerformanceResourceTiming","PerformanceTiming","PeriodicWave","Permissions","PermissionStatus","personalbar","PhotoCapabilities","Plugin","PluginArray","PointerEvent","PopStateEvent","postMessage","Presentation","PresentationAvailability","PresentationConnection","PresentationConnectionAvailableEvent","PresentationConnectionCloseEvent","PresentationConnectionList","PresentationReceiver","PresentationRequest","print","ProcessingInstruction","ProgressEvent","PromiseRejectionEvent","prompt","PushManager","PushSubscription","PushSubscriptionOptions","queueMicrotask","RadioNodeList","Range","ReadableStream","RemotePlayback","removeEventListener","Request","requestAnimationFrame","requestIdleCallback","resizeBy","ResizeObserver","ResizeObserverEntry","resizeTo","Response","RTCCertificate","RTCDataChannel","RTCDataChannelEvent","RTCDtlsTransport","RTCIceCandidate","RTCIceTransport","RTCPeerConnection","RTCPeerConnectionIceEvent","RTCRtpReceiver","RTCRtpSender","RTCSctpTransport","RTCSessionDescription","RTCStatsReport","RTCTrackEvent","screen","Screen","screenLeft","ScreenOrientation","screenTop","screenX","screenY","ScriptProcessorNode","scroll","scrollbars","scrollBy","scrollTo","scrollX","scrollY","SecurityPolicyViolationEvent","Selection","ServiceWorker","ServiceWorkerContainer","ServiceWorkerRegistration","sessionStorage","ShadowRoot","SharedWorker","SourceBuffer","SourceBufferList","speechSynthesis","SpeechSynthesisEvent","SpeechSynthesisUtterance","StaticRange","status","statusbar","StereoPannerNode","stop","Storage","StorageEvent","StorageManager","styleMedia","StyleSheet","StyleSheetList","SubtleCrypto","SVGAElement","SVGAngle","SVGAnimatedAngle","SVGAnimatedBoolean","SVGAnimatedEnumeration","SVGAnimatedInteger","SVGAnimatedLength","SVGAnimatedLengthList","SVGAnimatedNumber","SVGAnimatedNumberList","SVGAnimatedPreserveAspectRatio","SVGAnimatedRect","SVGAnimatedString","SVGAnimatedTransformList","SVGAnimateElement","SVGAnimateMotionElement","SVGAnimateTransformElement","SVGAnimationElement","SVGCircleElement","SVGClipPathElement","SVGComponentTransferFunctionElement","SVGDefsElement","SVGDescElement","SVGDiscardElement","SVGElement","SVGEllipseElement","SVGFEBlendElement","SVGFEColorMatrixElement","SVGFEComponentTransferElement","SVGFECompositeElement","SVGFEConvolveMatrixElement","SVGFEDiffuseLightingElement","SVGFEDisplacementMapElement","SVGFEDistantLightElement","SVGFEDropShadowElement","SVGFEFloodElement","SVGFEFuncAElement","SVGFEFuncBElement","SVGFEFuncGElement","SVGFEFuncRElement","SVGFEGaussianBlurElement","SVGFEImageElement","SVGFEMergeElement","SVGFEMergeNodeElement","SVGFEMorphologyElement","SVGFEOffsetElement","SVGFEPointLightElement","SVGFESpecularLightingElement","SVGFESpotLightElement","SVGFETileElement","SVGFETurbulenceElement","SVGFilterElement","SVGForeignObjectElement","SVGGElement","SVGGeometryElement","SVGGradientElement","SVGGraphicsElement","SVGImageElement","SVGLength","SVGLengthList","SVGLinearGradientElement","SVGLineElement","SVGMarkerElement","SVGMaskElement","SVGMatrix","SVGMetadataElement","SVGMPathElement","SVGNumber","SVGNumberList","SVGPathElement","SVGPatternElement","SVGPoint","SVGPointList","SVGPolygonElement","SVGPolylineElement","SVGPreserveAspectRatio","SVGRadialGradientElement","SVGRect","SVGRectElement","SVGScriptElement","SVGSetElement","SVGStopElement","SVGStringList","SVGStyleElement","SVGSVGElement","SVGSwitchElement","SVGSymbolElement","SVGTextContentElement","SVGTextElement","SVGTextPathElement","SVGTextPositioningElement","SVGTitleElement","SVGTransform","SVGTransformList","SVGTSpanElement","SVGUnitTypes","SVGUseElement","SVGViewElement","TaskAttributionTiming","Text","TextEvent","TextMetrics","TextTrack","TextTrackCue","TextTrackCueList","TextTrackList","TimeRanges","toolbar","top","Touch","TouchEvent","TouchList","TrackEvent","TransitionEvent","TreeWalker","UIEvent","ValidityState","visualViewport","VisualViewport","VTTCue","WaveShaperNode","WebAssembly","WebGL2RenderingContext","WebGLActiveInfo","WebGLBuffer","WebGLContextEvent","WebGLFramebuffer","WebGLProgram","WebGLQuery","WebGLRenderbuffer","WebGLRenderingContext","WebGLSampler","WebGLShader","WebGLShaderPrecisionFormat","WebGLSync","WebGLTexture","WebGLTransformFeedback","WebGLUniformLocation","WebGLVertexArrayObject","WebSocket","WheelEvent","Window","Worker","WritableStream","XMLDocument","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload","XMLSerializer","XPathEvaluator","XPathExpression","XPathResult","XSLTProcessor","getGlobalAtPath","currentGlobal","GlobalVariable","isGlobalMember","globalAtPath","isPureGlobal","tdzVariableKinds","isReference","addReference","kind","treeshake","correctVarValueBeforeDeclaration","addParameterDeclaration","disallowImportReassignment","getVariableRespectingTDZ","isPossibleTDZ","unknownGlobalSideEffects","includeVariableInModule","isTDZAccess","decl_id","closestParentFunctionOrProgram","initReached","renderedParentType","isCalleeOfRenderedParent","isShorthandProperty","NodeType.CallExpression","consolidateInitializers","requestTreeshakingPass","error","MethodBase","getAccessedValue","accessorCallOptions","accessedValue","INTEGER_REG_EXP","ObjectEntity","prototypeExpression","immutable","buildPropertyMaps","propertiesAndGettersByKey","propertiesAndSettersByKey","propertiesForKey","allProperties","hasUnknownDeoptimizedProperty","settersByKey","deoptimizeCachedEntities","hasUnknownDeoptimizedInteger","propertiesAndGetters","deoptimizeCachedIntegerEntities","deoptimizeIntegerProperties","deoptimizeAllProperties","deoptimizedPaths","expressionsToBeDeoptimizedByKey","subPath","unmatchablePropertiesAndGetters","unmatchableSetters","propertiesForExactMatchByKey","relevantPropertiesByKey","relevantUnmatchableProperties","gettersByKey","unmatchableGetters","thisParametersToBeDeoptimized","unknownIntegerProps","expressionAtPath","getMemberExpressionAndTrackDeopt","getMemberExpression","getters","getter","setters","setter","unmatchablePropertiesAndSetters","ObjectMember","Method","description","mutatesSelfAsArray","returnsPrimitive","METHOD_RETURNS_BOOLEAN","METHOD_RETURNS_STRING","METHOD_RETURNS_NUMBER","METHOD_RETURNS_UNKNOWN","OBJECT_PROTOTYPE","ClassNode","getObjectEntity","initEffect","markDeclarationReached","classConstructor","declare","method","objectEntity","staticProperties","dynamicMethods","definition","definitionKind","keyValue","isId","ArgumentsVariable","ThisVariable","thisDeoptimization","thisDeoptimizationList","applyThisDeoptimizationEvent","entitiesToBeDeoptimized","thisDeoptimizations","getInit","propertyReadSideEffects","ParameterScope","hoistedBodyVarScope","parameters","hasRest","parameterList","parameter","argIncluded","restParam","checkedArg","paramVars","shouldBeIncluded","ReturnValueScope","returnExpressions","returnExpression","updateReturnExpression","FunctionScope","argumentsVariable","thisVariable","addExportedVariables","declarationInit","FunctionNode","isPrototypeDeoptimized","getReturnExpression","addEntityToBeDeoptimized","async","deoptimizedReturn","thisInit","hasArguments","addParameterVariables","addImplicitReturnExpressionToScope","preventChildBlockScope","declarationName","addExportDefaultDeclaration","getModuleName","declarationStart","getDeclarationStart","renderNamedDeclaration","getOriginalVariable","renderVariableDeclaration","declarationKeyword","endMarker","needsId","declarationEnd","generatorStarPos","getIdInsertPosition","hasTrailingSemicolon","systemExportNames","varOrConst","getLiteralMembersForValue","regex","hasCachedEffect","cooked","isReassignedExportsMember","declareDeclarator","NodeType.Identifier","areAllDeclarationsIncludedAndNotExported","renderReplacedDeclarations","separatorString","lastSeparatorPos","actualContentEnd","renderedContentEnd","systemPatternExports","separatedNodes","leadingString","nextSeparatorString","isInDeclaration","hasRenderedContent","exportNames","operatorPos","renderDeclarationEnd","NEW_ARRAY_PROPERTIES","METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_BOOLEAN","METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NUMBER","METHOD_MUTATES_SELF_RETURNS_NEW_ARRAY","ARRAY_PROTOTYPE","METHOD_DEOPTS_SELF_RETURNS_NEW_ARRAY","METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NEW_ARRAY","METHOD_MUTATES_SELF_RETURNS_NUMBER","METHOD_MUTATES_SELF_RETURNS_UNKNOWN","METHOD_DEOPTS_SELF_RETURNS_UNKNOWN","METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN","METHOD_MUTATES_SELF_RETURNS_SELF","METHOD_CALLS_ARG_MUTATES_SELF_RETURNS_SELF","at","copyWithin","every","fill","findIndex","reduceRight","reverse","splice","BlockScope","isHoisted","StatementBase","directive","insertSemicolon","lastStatement","deoptimizeBody","directlyIncluded","firstBodyStatement","NodeType.BlockStatement","hasEffectsContext","operator","preventASI","inclusionStart","operation","binaryOperators","!=","!==","%","&","*","**","+","-","/","<","<<","<=","==","===",">",">=",">>",">>>","^","|","getResolvablePropertyKey","memberExpression","propertyKey","getPathIfNotComputed","nextPathKey","parentPath","bound","baseVariable","resolvedVariable","resolveNamespaceVariables","replacement","pathString","getStringFromPath","disallowNamespaceReassignment","getPropertyKey","renderedSurroundingElement","surroundingElement","traceExport","fileName","exporter","missing","url","CatchScope","existingParameter","ClassBodyScope","classNode","instanceScope","MultiExpression","TrackingScope","hoistedDeclarations","unset","testValue","getTestValue","consequentBrokenFlow","includeRecursively","includeUnknownTest","includeKnownTest","consequentScope","alternateScope","includesIfElse","noTreeshake","shouldKeepAlternateBranch","renderHoistedDeclarations","includeAsSingleStatement","hoistedVars","parentType","needsBraces","currentParent","addImport","INTEROP_DEFAULT_VARIABLE","INTEROP_DEFAULT_LEGACY_VARIABLE","INTEROP_NAMESPACE_VARIABLE","INTEROP_NAMESPACE_DEFAULT_VARIABLE","INTEROP_NAMESPACE_DEFAULT_ONLY_VARIABLE","defaultInteropHelpersByInteropType","auto","defaultOnly","esModule","isDefaultAProperty","interopType","externalLiveBindings","namespaceInteropHelpersByInteropType","canDefaultBeTakenFromNamespace","getDefaultOnlyHelper","HELPER_GENERATORS","_t","liveBindings","getDefaultLiveBinding","getDefaultStatic","_s","t","_liveBindings","namespaceToStringTag","getFrozen","createNamespaceObject","usedHelpers","copyPropertyLiveBinding","copyPropertyStatic","fragment","HELPER_NAMES","getInteropHelper","resolution","exportMode","interop","accessedImportGlobals","amd","cjs","system","tabsToSpaces","assign","augmentCodeLocation","props","frame","frameStart","frameEnd","digits","isErrorLine","lineNum","indicator","spaces","getCodeFrame","Errors","errChunkInvalid","exception","errorProps","CHUNK_INVALID","errIncompatibleExportOptionValue","optionValue","entryModule","errInvalidOption","explanation","INVALID_OPTION","errMissingExport","importingModule","importedModule","MISSING_EXPORT","errImplicitDependantIsNotIncluded","implicitDependencies","dependency","MISSING_IMPLICIT_DEPENDANT","errNamespaceConflict","reexportingModule","additionalExportAllModule","NAMESPACE_CONFLICT","exportsAll","reexporter","errAmbiguousExternalNamespaces","usedExternalModule","externalModules","AMBIGUOUS_EXTERNAL_NAMESPACES","errUnexpectedNamedImport","imported","isReexport","importType","UNEXPECTED_NAMED_IMPORT","errUnexpectedNamespaceReexport","errFailedValidation","VALIDATION_ERROR","errAlreadyClosed","ALREADY_CLOSED","warnDeprecation","deprecation","activeDeprecation","warnDeprecationWithOptions","strictDeprecations","warning","DEPRECATED_FEATURE","errDeprecation","ASSET_PREFIX","CHUNK_PREFIX","FILE_PREFIX","accessedMetaUrlGlobals","es","iife","umd","accessedFileUrlGlobals","getResolveUrl","getRelativeUrlFromDocument","getGenericImportMetaMechanism","getUrl","chunkId","urlMechanism","getUrlFromDocument","relativeUrlMechanisms","importMetaMechanisms","testEnd","consequentStart","UndefinedVariable","ExportDefaultVariable","exportDefaultDeclaration","hasId","originalId","originalVariable","currentVariable","checkedVariables","getDirectOriginalVariable","ModuleScope","traceVariable","unaryOperators","!","~","hasSpread","checkTopLevelAwait","usesTopLevelAwait","leftValue","rightValue","operatorFn","label","deoptimizableDependentExpressions","markCalledFromTryStatement","surroundingELement","lastIncludedIndex","usedBranch","unusedBranch","getUsedBranch","colonPos","isBranchResolutionAnalysed","ExportSpecifier","includeDynamicImport","addDynamicImport","mechanism","namespaceExportName","pluginDriver","helper","getDynamicImportMechanismAndHelper","hookFirstSync","customResolution","moduleId","targetModuleId","leftStart","dynamicImportFunction","removePos","metaProperty","outputPluginDriver","getFileName","addImportMeta","referenceId","assetReferenceId","chunkReferenceId","assetFileName","relativeAssetPath","shorthand","lastExpression","includedNodes","lastNode","minBrokenFlow","switchCase","defaultCase","isCaseIncluded","caseIndex","alias","moduleContext","tryCatchDeoptimization","includedLabelsAfterBlock","size","argumentValue","prefix","op","renderId","MISSING_EXPORT_SHIM_VARIABLE","ExportShimVariable","NamespaceVariable","references","memberVariables","getExports","getReexports","exportedVariable","includeAllExports","mergedNamespaces","moduleExecIndex","getModuleExecIndex","referencedEarly","getMemberVariables","needsObjectAssign","assignmentArgs","getSyntheticNamespace","SyntheticNamedExportVariable","syntheticNamespace","getPropertyAccess","getId","NOOP","getStartTime","getElapsedTime","getMemory","timers","getPersistedLabel","level","timeStartImpl","memory","startMemory","startTime","time","totalMemory","currentMemory","timeEndImpl","getTimings","newTimings","timeStart","timeEnd","TIMED_PLUGIN_HOOKS","load","resolveDynamicImport","resolveId","transform","getPluginWithTimers","plugin","timedPlugin","hook","timerLabel","apply","then","hookResult","initialiseTimers","inputOptions","perf","process","hrtime","normalizeHrTime","memoryUsage","heapUsed","plugins","markModuleAndImpureDependenciesAsExecuted","baseModule","isExecuted","modules","visitedModules","dependencies","MISSING_EXPORT_SHIM_DESCRIPTION","localName","getVariableForExportNameRecursive","target","importerForSideEffects","isExportAllSearch","searchedNamesAndModules","skipExternalNamespaceReexports","searchedModules","CIRCULAR_REEXPORT","getVariableForExportName","Module","graph","preserveEntrySignatures","excludeFromSourcemap","dynamicImports","implicitlyLoadedAfter","resolvedIds","ext","addLocationToLogProps","allExportNames","exports","reexportDescriptions","exportAllModules","getAllExportNames","relevantDependencies","necessaryDependencies","alwaysCheckedDependencies","dependencyVariables","imports","includedDynamicImporters","namespace","sideEffectDependencies","sideEffectDependenciesByVariable","getBaseVariable","addRelevantSideEffectDependencies","tracedVariable","existingExportNames","transitiveReexports","reexports","renderedExports","removedExports","syntheticNamedExportsOption","SYNTHETIC_NAMED_EXPORTS_NEED_NAMESPACE_EXPORT","modulesById","reexportDeclaration","setAlternativeExporterIfCyclic","exportDeclaration","exportShimVariable","foundNamespaceReexport","namespaceReexportsByName","getVariableFromNamespaceReexports","syntheticExport","syntheticExports","astContext","shimMissingExports","shimMissingExport","includeNamespaceMembers","needsTreeshakingPass","includeVariable","prepareNamespace","includeAndGetAdditionalMergedNamespaces","importedFromNotTreeshaken","addModulesToImportDescriptions","importDescriptions","externalExportAllModules","exportAllSources","customTransformCache","originalCode","originalSourcemap","sourcemapChain","transformDependencies","transformFiles","moduleOptions","updateOptions","tryParse","moduleSideEffects","localVariable","importDeclaration","otherModule","contextParse","err","parserError","getAssignedVariableName","specifier","exportedName","isDefault","importMetas","filteredSourcemapChain","sourcemap","locationFound","getOriginalLocation","e","importDescription","handledDependencies","addSideEffectDependencies","possibleDependencies","foundSyntheticDeclaration","skipExternalNamespaceValues","skipExternalNamespaces","clonedSearchedNamesAndModules","foundDeclarations","foundDeclarationList","usedDeclaration","externalVariable","dynamicImport","variableModule","sideEffectModules","referencedVariables","originalSideEffects","getAndExtendSideEffectModules","exporterCycles","cycles","importerCycles","cycleSymbol","alternativeReexportModules","removeJsExtension","getCompleteAmdId","autoId","basePath","getExportBlock","namedExportsMode","defaultVariableName","isChunk","depNamedExportsMode","namespaceVariableName","getReexportedImportName","getSingleDefaultExport","exportBlock","importName","needsLiveBinding","lhs","rhs","moduleVariableName","moduleInterop","variableName","getNamespaceMarkers","hasNamedExports","addEsModule","addNamespaceToStringTag","namespaceMarkers","getEsModuleExport","getNamespaceToStringExport","getInteropBlock","neededInteropHelpers","interopStatements","addInteropStatement","helperVariableName","dependencyVariableName","hasDefault","hasNamespace","getHelpersBlock","removeExtensionFromRelativeAmdId","assert","buffer","constants","domain","events","http","https","os","punycode","querystring","stream","string_decoder","tty","util","vm","zlib","warnOnBuiltins","externalBuiltins","shouldUseDot","keypath","assignToDeepVariable","deepName","root","assignment","acc","deepAssignment","part","trimEmptyImports","thisProp","getStarExcludes","starExcludes","expt","reexport","getExportsBlock","globalProp","globalVar","hasExports","indentString","isEntryFacade","isModuleFacade","strict","deps","completeAmdId","useStrict","define","importBlock","definingVariable","getImportBlock","interopBlock","defaultImport","starImport","importedNames","starExport","namespaceReexports","namedReexports","extend","isNamespaced","useVariableAssignment","dep","globalName","wrapperIntro","setupNamespace","wrapperOutro","dependencyIds","importBindings","createdSetter","registeredName","wrapperParams","wrapperStart","getStarExcludesBlock","getImportBindingsBlock","systemNullSetters","hoisted","uninitialized","getHoistedExportsBlock","wrapperEnd","getSyntheticExportsBlock","getMissingExportsBlock","noConflict","factoryVar","amdDeps","cjsDeps","trimmedImports","globalDeps","factoryArgs","amdParams","cjsExport","iifeExport","noConflictExportsVar","factory","safeAccess","iifeNeedsGlobal","globalArg","iifeStart","iifeEnd","Source","isOriginal","Link","nameIndexMap","tracedLine","traced","traceSegment","tracedSegment","segments","getLinkMap","getCollapsedSourcemap","linkMap","directory","sourceRoot","baseSources","minimalisticAssert","val","msg","equal","l","r","inherits_browserModule","ctor","superCtor","super_","enumerable","configurable","TempCtor","require$$0","inherits","require$$1","isSurrogatePair","htonl","w","zero2","word","zero8","enc","res","p","endian","len","k","buf","ah","al","bh","lo","hi","bl","ch","cl","dh","dl","carry","eh","el","utils","BlockHash","pendingTotal","blockSize","outSize","hmacStrength","padLength","_delta8","_delta32","toArray","join32","_update","digest","_pad","_digest","bytes","rotr32","ch32","x","y","z","maj32","p32","common","shaCommon","require$$2","require$$3","sum32","sum32_4","sum32_5","s0_256","s1_256","g0_256","g1_256","sha256_K","SHA256","h","W","_256","f","g","T1","T2","toHex32","split32","createHash","sha256","DECONFLICT_IMPORTED_VARIABLES_BY_FORMAT","deconflictImportsOther","deconflictImportsEsmOrSystem","deconflictChunk","dependenciesToBeDeconflicted","preserveModules","chunkByModule","includedNamespaces","reversedModules","deconflictTopLevelVariables","_interop","_externalLiveBindings","deconflictedDefault","deconflictedNamespace","chunkOrExternalModule","externalModuleOrChunk","externalModule","getVariableExportName","needsEscapeRegEx","quoteNewlineRegEx","backSlashRegEx","escapeId","getExportMode","unsetOptions","facadeModuleId","exportKeys","getExportNames","PREFER_NAMED_EXPORTS","errPreferNamedExports","MIXED_EXPORTS","errMixedExport","guessIndentString","addStaticDependencies","staticDependencies","handledModules","getDependenciesToBeIncluded","dependencyChunk","decodedSourcemap","integer","hasContinuationBit","shouldNegate","decode","renderNamePattern","patternName","replacements","_match","makeUnique","existingNames","existingNamesLowercase","uniqueName","uniqueIndex","NON_ASSET_EXTENSIONS","getGlobalName","guess","orderedModules","outputOptions","facadeChunkByModule","manualChunkAlias","chunkModules","isIncluded","entryModules","dynamicEntryModules","implicitEntryModules","generateVariableName","facadedModule","facadeName","assignFacadeName","ensureReexportsAreAvailableForModule","facadeModule","strictFacade","exposedVariables","moduleExportNamesByVariable","getExportNamesByVariable","exposedVariable","isUserDefinedEntryPoint","preserveSignature","sortedExportNames","remainingExports","exportsByName","minifyInternalExports","assignExportsToMangledNames","assignExportsToNames","facades","requiredFacades","userChunkNames","chunkFileNames","needsStrictFacade","canModuleBeFacade","generateFacade","dynamicName","getChunkNameFromModule","addons","includeHash","entryFileNames","getChunkInfo","hash","computeContentHashWithDependencies","getChunkName","preserveModulesRelativeDir","sanitizedId","sanitizeFileName","extension","currentPath","assetExtname","preserveModulesRoot","isDynamicEntry","isImplicitEntry","renderedModules","dynamicDependencies","importedBindings","getImportedBindingsPerDependency","referencedFiles","getReferencedFiles","getFallbackChunkName","renderedHash","hashAugmentation","hookReduceValueSync","augmentation","pluginHash","renderedSource","staticDependencyBlocks","modulePos","getStaticDependencies","addDependenciesToChunk","setUpChunkImportsAndExportsForModule","MagicStringBundle","usedModules","renderOptions","preferConst","hoistTransitiveImports","inlineChunkDependencies","prepareDynamicImportsAndImportMetas","setIdentifierRenderResolutions","hoistedSource","renderedLength","renderedModuleSources","rendered","renderBlock","renderFirst","getRenderedExports","originalLength","needsExportsShim","chunkName","setExternalRenderPaths","renderedDependencies","getChunkDependencyDeclarations","getChunkExportDeclarations","outputChunk","finalise","finalisers","renderedDependency","finaliseDynamicImports","finaliseImportMetas","accessedGlobalVariables","banner","footer","prevCode","chunkSourcemapChain","renderChunk","hookReduceArg0","sourcemapFile","decodedMap","bundleSourcemapChain","excludeContent","moduleSources","traceMappings","collapseSourcemaps","sourcemapExcludeSources","sourcePath","sourcemapPathTransform","newSourcePath","moduleDependencies","chunkDependencies","exportChunk","alternativeReexportModule","exportingChunk","CYCLIC_CROSS_CHUNK_REEXPORT","addon","dependenciesForHashing","getRenderedHash","generateId","isSynthetic","importedVariable","checkCircularDependencyImport","exportingModule","stripKnownJsExtensions","facadeChunk","renderedResolution","renderFinalResolution","importMeta","renderFinalMechanism","moduleForNaming","importSpecifiers","getImportSpecifiers","reexportSpecifiers","getReexportSpecifiers","dependencyDeclaration","addNonNamespacesAndInteropHelpers","addDependenciesWithoutBindings","importsByDependency","getReferencedFileName","targetPath","stripJsExtension","setInternalResolution","setExternalResolution","setRenderPath","exportVariable","getDependenciesToBeDeconflicted","moduleImports","BuildPhase","reserveFileNameInBundle","FILE_NAME_CONFLICT","errFileNameConflict","FILE_PLACEHOLDER","getValidSource","emittedFile","fileReferenceId","assetName","getAssetFileName","ASSET_NOT_FINALISED","getChunkFileName","CHUNK_NOT_GENERATED","FileEmitter","baseFileEmitter","filesByReferenceId","ASSET_SOURCE_MISSING","hasValidType","validatedName","hasValidName","emitChunk","emitAsset","FILE_NOT_FOUND","requestedSource","consumedFile","ASSET_NOT_FOUND","ASSET_SOURCE_ALREADY_SET","finalizeAsset","outputBundle","idBase","emittedAsset","consumedAsset","assignReferenceId","emittedChunk","phase","LOAD_AND_PARSE","INVALID_ROLLUP_PHASE","consumedChunk","moduleLoader","outputFile","areSourcesEqual","findExistingAssetFileNameWithSource","emittedName","assetFileNames","generateAssetFileName","assetWithFileName","isAsset","sourceA","sourceB","equals","concatSep","out","concatDblSep","getChunkAssignments","manualChunkAliasByEntry","chunkDefinitions","modulesInManualChunks","manualChunkModulesByAlias","entry","addStaticDependenciesToManualChunk","assignedEntryPointsByModule","dependentEntryPointsByModule","entriesToHandle","currentEntry","modulesToHandle","analyzeModuleGraph","dynamicallyDependentEntryPointsByDynamicEntry","dynamicEntry","dynamicDependentEntryPoints","entryPoint","getDynamicDependentEntryPoints","staticEntries","assignEntryToStaticDependencies","assignedEntryPoints","areEntryPointsContainedOrDynamicallyDependent","entryPoints","containedIn","entriesToCheck","dynamicallyDependentEntryPoints","dependentEntry","allEntryPoints","chunkSignature","createChunks","manualChunkModules","compareExecIndex","unitA","unitB","getCyclePath","parents","nextModule","isWrite","setOutputBundle","hookParallel","chunks","generateChunks","onWarn","files","path.dirname","commonSegments","pathSegements","commondir","absoluteEntryModulePaths","getAbsoluteEntryModulePaths","hookReduceValue","createAddons","prerenderChunks","addFinalizedChunksToBundle","hookSeq","finaliseAssets","assignChunkIds","getChunkInfoWithFileNames","manualChunks","chunkEntries","addAdditionalModules","addModuleToManualChunk","entryChunks","otherChunks","chunksForNaming","generateIdPreserveModules","getManualChunk","manualChunksApi","getModuleIds","getModuleInfo","validate","allowHashBang","ecmaVersion","addManualChunks","assignManualChunks","inlineDynamicImports","getIncludedModules","link","generateFacades","generateExports","preRender","existingAlias","assignToAlias","currentAlias","INVALID_CHUNK","3","5","6","strictBind","ecma5AndLessKeywords","keywords","5module","keywordRelationalOperator","nonASCIIidentifierStartChars","nonASCIIidentifierChars","nonASCIIidentifierStart","nonASCIIidentifier","astralIdentifierStartCodes","astralIdentifierCodes","isInAstralSet","isIdentifierStart","astral","isIdentifierChar","TokenType","conf","keyword","beforeExpr","startsExpr","isLoop","isAssign","postfix","binop","updateContext","prec","keywords$1","kw","types","regexp","privateId","eof","bracketL","bracketR","braceL","braceR","parenL","parenR","comma","semi","colon","dot","question","questionDot","arrow","template","invalidTemplate","ellipsis","backQuote","dollarBraceL","eq","incDec","logicalOR","logicalAND","bitwiseOR","bitwiseXOR","bitwiseAND","equality","relational","bitShift","plusMin","modulo","star","slash","starstar","coalesce","_break","_case","_catch","_continue","_debugger","_default","_do","_else","_finally","_for","_function","_if","_return","_switch","_throw","_try","_var","_const","_while","_with","_new","_this","_super","_class","_extends","_export","_import","_null","_true","_false","_in","_instanceof","_typeof","_void","_delete","lineBreak","lineBreakG","isNewLine","ecma2019String","nonASCIIwhitespace","skipWhiteSpace","ref","obj","propName","wordsRegexp","words","Position","col","offset","SourceLocation","sourceFile","getLineInfo","input","cur","defaultOptions","sourceType","onInsertedSemicolon","onTrailingComma","allowReserved","allowReturnOutsideFunction","allowImportExportEverywhere","allowAwaitOutsideFunction","allowSuperOutsideMethod","locations","onToken","onComment","ranges","program","directSourceFile","preserveParens","warnedAboutEcmaVersion","getOptions","opts","opt","tokens","token","array","text","startLoc","endLoc","pushComment","functionFlags","generator","Parser","startPos","reserved","reservedStrict","reservedWordsStrict","reservedWordsStrictBind","containsEsc","lineStart","curLine","curPosition","lastTokEndLoc","lastTokStartLoc","lastTokStart","lastTokEnd","initialContext","exprAllowed","inModule","strictDirective","potentialArrowAt","potentialArrowInForAwait","yieldPos","awaitPos","awaitIdentPos","undefinedExports","skipLineComment","scopeStack","enterScope","regexpState","privateNameStack","prototypeAccessors","inFunction","inGenerator","inAsync","allowSuper","allowDirectSuper","treatFunctionsAsVar","inNonArrowFunction","startNode","nextToken","parseTopLevel","currentVarScope","flags","inClassFieldInit","currentThisScope","treatFunctionsAsVarInScope","currentScope","cls","parseExpressionAt","parser","parseExpression","tokenizer","pp","literal","DestructuringErrors","shorthandAssign","trailingComma","parenthesizedAssign","parenthesizedBind","doubleProto","spaceAfter","eat","isContextual","eatContextual","expectContextual","unexpected","canInsertSemicolon","semicolon","afterTrailingComma","tokType","notNext","expect","raise","checkPatternErrors","refDestructuringErrors","raiseRecoverable","parens","checkExpressionErrors","andThrow","checkYieldAwaitInDefaultParams","isSimpleAssignTarget","expr","pp$1","stmt","parseStatement","adaptDirectivePrologue","finishNode","loopLabel","switchLabel","isLet","skip","nextCh","ident","isAsyncFunction","after","topLevel","starttype","parseBreakContinueStatement","parseDebuggerStatement","parseDoStatement","parseForStatement","parseFunctionStatement","parseClass","parseIfStatement","parseReturnStatement","parseSwitchStatement","parseThrowStatement","parseTryStatement","parseVarStatement","parseWhileStatement","parseWithStatement","parseBlock","parseEmptyStatement","parseExpressionStatement","parseImport","parseExport","maybeName","parseLabeledStatement","isBreak","parseIdent","lab","parseParenExpression","awaitAt","parseFor","init$1","parseVar","parseForIn","toAssignable","checkLValPattern","isAsync","declarationPosition","parseFunction","FUNC_STATEMENT","FUNC_HANGING_STATEMENT","sawDefault","isCase","exitScope","empty","clause","parseBindingAtom","simple","label$1","statementStart","createNewLexicalScope","exitStrict","isForIn","parseMaybeAssign","isFor","decl","parseVarId","isPrivateNameConflicted","privateNameMap","curr","checkKeyName","statement","allowExpressionBody","initFunction","checkLValSimple","oldYieldPos","oldAwaitPos","oldAwaitIdentPos","parseFunctionParams","parseFunctionBody","parseBindingList","isStatement","oldStrict","parseClassId","parseClassSuper","enterClassBody","classBody","hadConstructor","parseClassElement","exitClassBody","constructorAllowsSuper","keyName","isGenerator","isClassElementNameStart","lastValue","startNodeAt","parseClassElementName","isConstructor","allowsDirectSuper","parseClassMethod","parseClassField","parsePrivateIdent","parsePropertyName","parseMethod","field","parseExprSubscripts","declared","checkExport","parseExprAtom","fNode","cNode","shouldParseExportStatement","checkVariableExport","parseExportSpecifiers","spec","checkUnreserved","checkLocalExport","checkPatternExport","pat","decls","parseImportSpecifiers","node$1","node$2","isDirectiveCandidate","pp$2","isBinding","toAssignableList","exprList","parseSpread","parseRestBinding","parseObj","allowEmpty","allowTrailingComma","elts","rest","parseBindingListItem","elem","parseMaybeDefault","bindingType","checkClashes","isBind","declareName","checkLValInnerPattern","pp$3","isPrivateFieldAccess","checkPropClash","propHash","proto","other","forInit","afterLeftParse","parseYield","ownDestructuringErrors","oldParenAssign","oldTrailingComma","parseMaybeConditional","parseExprOps","parseMaybeUnary","parseExprOp","leftStartPos","leftStartLoc","minPrec","logical","buildBinary","sawUnary","parseAwait","parseSubscripts","noCalls","maybeAsyncArrow","optionalChained","parseSubscript","optional","chainNode","optionalSupported","parseExprList","parseArrowExpression","parseTemplate","isTagged","readRegexp","canBeArrow","parseLiteral","parseParenAndDistinguishExpression","parseNew","parseExprImport","parseDynamicImport","parseImportMeta","errorPos","bigint","spreadStart","innerStartPos","innerStartLoc","lastIsComma","parseParenItem","innerEndPos","innerEndLoc","parseParenArrowList","finishNodeAt","par","empty$1","isImport","parseTemplateElement","tail","curElt","isAsyncProp","isPattern","parseProperty","parsePropertyValue","copyNode","paramCount","isArrowFunction","isMethod","isExpression","checkParams","nonSimple","isSimpleParamList","oldLabels","allowDuplicates","nameHash","liberal","delegate","pp$4","raisedAt","pp$5","lexical","functions","redeclared","scope$2","scope$3","SCOPE_TOP","pp$6","newNode","TokContext","isExpr","preserveSpace","override","types$1","b_stat","b_expr","b_tmpl","p_stat","p_expr","q_tmpl","tryReadTemplateToken","f_stat","f_expr","f_expr_gen","f_gen","pp$7","braceIsBlock","prevType","curContext","inGeneratorContext","statementParens","allowed","ecma9BinaryProperties","ecma10BinaryProperties","unicodeBinaryProperties","9","10","11","12","ecma11BinaryProperties","unicodeGeneralCategoryValues","ecma9ScriptValues","ecma10ScriptValues","ecma11ScriptValues","unicodeScriptValues","data","buildUnicodeData","binary","nonBinary","General_Category","Script","Script_Extensions","gc","sc","scx","pp$8","RegExpValidationState","validFlags","unicodeProperties","switchU","switchN","lastIntValue","lastStringValue","lastAssertionIsQuantifiable","numCapturingParens","maxBackReference","groupNames","backReferenceNames","codePointToString","isSyntaxCharacter","isControlLetter","isUnicodePropertyNameCharacter","isUnicodePropertyValueCharacter","isDecimalDigit","isHexDigit","hexToInt","isOctalDigit","reset","unicode","forceU","lookahead","validateRegExpFlags","flag","validateRegExpPattern","regexp_pattern","regexp_disjunction","regexp_alternative","regexp_eatQuantifier","regexp_eatTerm","regexp_eatAssertion","regexp_eatAtom","regexp_eatExtendedAtom","lookbehind","noError","regexp_eatQuantifierPrefix","regexp_eatBracedQuantifier","regexp_eatDecimalDigits","regexp_eatPatternCharacters","regexp_eatReverseSolidusAtomEscape","regexp_eatCharacterClass","regexp_eatUncapturingGroup","regexp_eatCapturingGroup","regexp_eatAtomEscape","regexp_groupSpecifier","regexp_eatInvalidBracedQuantifier","regexp_eatExtendedPatternCharacter","regexp_eatSyntaxCharacter","regexp_eatGroupName","regexp_eatRegExpIdentifierName","regexp_eatRegExpIdentifierStart","regexp_eatRegExpIdentifierPart","regexp_eatRegExpUnicodeEscapeSequence","isRegExpIdentifierStart","isRegExpIdentifierPart","regexp_eatBackReference","regexp_eatCharacterClassEscape","regexp_eatCharacterEscape","regexp_eatKGroupName","regexp_eatDecimalEscape","regexp_eatControlEscape","regexp_eatCControlLetter","regexp_eatZero","regexp_eatHexEscapeSequence","regexp_eatLegacyOctalEscapeSequence","regexp_eatIdentityEscape","regexp_eatControlLetter","regexp_eatFixedHexDigits","lead","leadSurrogateEnd","trail","regexp_eatHexDigits","isCharacterClassEscape","regexp_eatUnicodePropertyValueExpression","regexp_eatUnicodePropertyName","regexp_eatUnicodePropertyValue","regexp_validateUnicodePropertyNameAndValue","regexp_eatLoneUnicodePropertyNameOrValue","nameOrValue","regexp_validateUnicodePropertyNameOrValue","regexp_classRanges","regexp_eatClassAtom","regexp_eatClassEscape","ch$1","regexp_eatClassControlLetter","regexp_eatOctalDigit","n1","n2","Token","pp$9","stringToBigInt","codePointToString$1","ignoreEscapeSequenceInKeyword","getToken","iterator","done","skipSpace","finishToken","readToken","fullCharCodeAtPos","readWord","getTokenFromCode","skipBlockComment","startSkip","loop","readToken_dot","readNumber","next2","readToken_slash","finishOp","readToken_mult_modulo_exp","tokentype","readToken_pipe_amp","readToken_caret","readToken_plus_min","readToken_lt_gt","readToken_eq_excl","readToken_question","readToken_numberSign","readWord1","readRadixNumber","readString","escaped","inClass","flagsStart","readInt","radix","maybeLegacyOctalNumericLiteral","allowSeparators","isLegacyOctalNumericLiteral","total","lastCode","startsWithDot","octal","val$1","readCodePoint","codePos","readHexChar","invalidStringToken","quote","chunkStart","readEscapedChar","INVALID_TEMPLATE_ESCAPE_ERROR","inTemplateElement","readTmplToken","readInvalidTemplateToken","position","inTemplate","octalStr","escStart","esc","acorn","tokTypes","keywordTypes","tokContexts","throwNoFileSystem","readFile","writeFile","Queue","maxParallel","task","queue","work","workerCount","_preserveSymlinks","moduleLoaderResolveId","customOptions","skipped","replaceContext","skippedCall","pluginContext","custom","skipSelf","hookFirst","resolveIdViaPlugins","ANONYMOUS_PLUGIN_PREFIX","ANONYMOUS_OUTPUT_PLUGIN_PREFIX","throwPluginError","PLUGIN_ERROR","pluginCode","deprecatedHooks","active","deprecated","NO_CACHE","uncacheablePluginError","pluginName","emittedFiles","useCustomTransformCache","curPlugin","curSource","previousCode","NO_TRANSFORM_MAP_OR_AST_WITHOUT_CODE","addWatchFile","cache","pluginCache","onUse","emitFile","combinedMap","collapseSourcemap","ModuleLoader","addDefaultsToResolvedId","getNormalizedResolvedIdWithoutDefaults","preserveSymlinks","readQueue","maxParallelFileReads","unresolvedModules","extendLoadModulesPromise","loadEntryModule","awaitLoadModulesPromise","unresolvedEntryModules","isUserDefined","firstEntryModuleIndex","nextEntryModuleIndex","newEntryModules","moduleIndex","addChunkNamesToModule","existingIndexedModule","indexedEntryModules","indexedModule","indexA","indexB","unresolvedModule","addEntryWithImplicitDependants","addEntryModules","resolvedId","implicitlyLoadedAfterModules","dependant","run","sourceDescription","BAD_LOADER","errBadLoader","cachedModule","cachedModules","setSource","startingPromise","latestLoadModulesPromise","loadNewModulesPromise","fetchResolvedDependency","existingModule","clear","watchFiles","addModuleSource","fetchStaticDependencies","fetchDynamicDependencies","linkImports","INVALID_EXTERNAL_ID","errInternalIdCannotBeExternal","fetchModule","handleResolveId","resolveIdResult","makeAbsoluteExternalsRelative","isNotAbsoluteExternal","normalizeRelativeExternalId","UNRESOLVED_IMPORT","errUnresolvedImport","errUnresolvedImportTreatedAsExternal","EXTERNAL_SYNTHETIC_EXPORTS","errExternalSyntheticExports","unresolvedId","UNRESOLVED_ENTRY","errUnresolvedEntry","errUnresolvedImplicitDependant","errEntryCannotBeExternal","errImplicitDependantCannotBeExternal","GlobalScope","getDeprecatedContextHandler","handlerName","newHandlerName","deprecationWarningShown","getPluginContext","fileEmitter","existingPluginNames","cacheInstance","cacheable","cacheKey","GENERATE","getWatchFiles","parentId","isResolved","rollupVersion","watchMode","moduleIds","wrappedModuleIds","setAssetSource","inputHooks","buildEnd","buildStart","closeBundle","closeWatcher","moduleParsed","watchChange","throwInvalidHookError","hookName","PluginDriver","userPlugins","basePluginDriver","warnDeprecatedHooks","assertAssetsFinalized","pluginContexts","INPUT_HOOK_IN_OUTPUT_PLUGIN","promise","runHook","runHookSync","promises","hookPromise","arg0","initialValue","permitValues","hookContext","Graph","watcher","foundModule","handleChange","hookSeqSync","handleClose","on","once","removeListener","acornParser","acorn.Parser","acornInjectPlugins","generateModuleGraph","ANALYSE","sortModules","includeStatements","onCommentOrig","comments","esTreeAst","sourceMappingComments","addAnnotations","allDeleted","experimentalCacheExpiry","toJSON","treeshakingPass","includeAllInBundle","warnUnusedImports","cyclePaths","nextExecIndex","analysedModules","analyseModule","curEntry","analyseModuleExecution","cyclePath","cycle","bindReferences","warnForMissingExports","ensureArray","items","defaultOnWarn","warnUnknownOptions","passedOptions","validOptions","optionType","ignoredKeys","validOptionSet","unknownOptions","treeshakePresets","recommended","safest","smallest","getOnwarn","config","getAcorn","getAcornInjectPlugins","getCache","getIdMatcher","ids","matchers","_args","matcher","getInlineDynamicImports","configInlineDynamicImports","getInput","configInput","getManualChunks","configManualChunks","getMaxParallelFileReads","getModuleContext","configModuleContext","contextByModuleId","getPreserveEntrySignatures","configPreserveEntrySignatures","getPreserveModules","configPreserveModules","getTreeshake","configTreeshake","preset","configWithPreset","pureExternalModules","presetName","getHasModuleSideEffects","moduleSideEffectsOption","_id","isPureExternalModule","driveLetter","getFile","getFormat","configFormat","getPreserveModulesRoot","getAmd","collection","normalized","getAddon","configAddon","getDir","getDynamicImportFunction","configDynamicImportFunction","getEntryFileNames","configEntryFileNames","configExports","INVALID_EXPORT_OPTION","getIndent","configIndent","ALLOWED_INTEROP_TYPES","getInterop","configInterop","validatedInteropTypes","validateInterop","interopPerId","defaultInterop","getMinifyInternalExports","normalizePlugins","anonymousPrefix","pluginIndex","handleGenerateWrite","unsetInputOptions","rawOutputOptions","inputPluginDriver","rawPlugins","createOutputPluginDriver","getOutputOptions","getOutputOptionsAndPluginDriver","generated","generate","writeSourceMapPromise","writeOutputFile","outputFileA","outputFileB","fileTypeA","getSortingFileType","fileTypeB","defaultSanitizeFileName","normalizeOutputOptions","hookReduceArg0Sync","emitError","CANNOT_EMIT_FROM_OPTIONS_HOOK","SortingFileType","ASSET","ENTRY_CHUNK","SECONDARY_CHUNK","rawInputOptions","normalizeInputOptions","applyOptionHook","getInputOptions","useCache","build","write","rollupInternal"],"mappings":"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C,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,IAAI,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,MAAM,GAAG,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,KAAK,KAAK,IAAI,KAAK,MAGpyCC,GAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,KAKjqB,SAASC,GAAc1jF,EAAMyN,GAE3B,IADA,IAAI1L,EAAM,MACDzH,EAAI,EAAGA,EAAImT,EAAIlT,OAAQD,GAAK,EAAG,CAEtC,IADAyH,GAAO0L,EAAInT,IACD0F,EAAQ,OAAO,EAEzB,IADA+B,GAAO0L,EAAInT,EAAI,KACJ0F,EAAQ,OAAO,GAM9B,SAAS2jF,GAAkB3jF,EAAM4jF,GAC/B,OAAI5jF,EAAO,GAAsB,KAATA,EACpBA,EAAO,KACPA,EAAO,GAAsB,KAATA,EACpBA,EAAO,MACPA,GAAQ,MAAiBA,GAAQ,KAAQsjF,GAAwBljF,KAAKwvB,OAAOC,aAAa7vB,KAC/E,IAAX4jF,GACGF,GAAc1jF,EAAMwjF,MAK7B,SAASK,GAAiB7jF,EAAM4jF,GAC9B,OAAI5jF,EAAO,GAAsB,KAATA,EACpBA,EAAO,MACPA,EAAO,MACPA,EAAO,KACPA,EAAO,GAAsB,KAATA,EACpBA,EAAO,MACPA,GAAQ,MAAiBA,GAAQ,KAAQujF,GAAmBnjF,KAAKwvB,OAAOC,aAAa7vB,KAC1E,IAAX4jF,IACGF,GAAc1jF,EAAMwjF,KAA+BE,GAAc1jF,EAAMyjF,QA0BhF,IAAIK,GAAY,SAAmBr0B,EAAOs0B,QAC1B,IAATA,IAAkBA,EAAO,IAE9B3oF,KAAKq0D,MAAQA,EACbr0D,KAAK4oF,QAAUD,EAAKC,QACpB5oF,KAAK6oF,aAAeF,EAAKE,WACzB7oF,KAAK8oF,aAAeH,EAAKG,WACzB9oF,KAAK+oF,SAAWJ,EAAKI,OACrB/oF,KAAKgpF,WAAaL,EAAKK,SACvBhpF,KAAKs3D,SAAWqxB,EAAKrxB,OACrBt3D,KAAKipF,UAAYN,EAAKM,QACtBjpF,KAAKkpF,MAAQP,EAAKO,OAAS,KAC3BlpF,KAAKmpF,cAAgB,MAGvB,SAASD,GAAM/7E,EAAMi8E,GACnB,OAAO,IAAIV,GAAUv7E,EAAM,CAAC07E,YAAY,EAAMK,MAAOE,IAEvD,IAAIP,GAAa,CAACA,YAAY,GAAOC,GAAa,CAACA,YAAY,GAI3DO,GAAa,GAGjB,SAASC,GAAGn8E,EAAMlF,GAIhB,YAHiB,IAAZA,IAAqBA,EAAU,IAEpCA,EAAQ2gF,QAAUz7E,EACXk8E,GAAWl8E,GAAQ,IAAIu7E,GAAUv7E,EAAMlF,GAGhD,IAAIshF,GAAQ,CACV5pF,IAAK,IAAI+oF,GAAU,MAAOI,IAC1BU,OAAQ,IAAId,GAAU,SAAUI,IAChC9gF,OAAQ,IAAI0gF,GAAU,SAAUI,IAChC37E,KAAM,IAAIu7E,GAAU,OAAQI,IAC5BW,UAAW,IAAIf,GAAU,YAAaI,IACtCY,IAAK,IAAIhB,GAAU,OAGnBiB,SAAU,IAAIjB,GAAU,IAAK,CAACG,YAAY,EAAMC,YAAY,IAC5Dc,SAAU,IAAIlB,GAAU,KACxBmB,OAAQ,IAAInB,GAAU,IAAK,CAACG,YAAY,EAAMC,YAAY,IAC1DgB,OAAQ,IAAIpB,GAAU,KACtBqB,OAAQ,IAAIrB,GAAU,IAAK,CAACG,YAAY,EAAMC,YAAY,IAC1DkB,OAAQ,IAAItB,GAAU,KACtBuB,MAAO,IAAIvB,GAAU,IAAKG,IAC1BqB,KAAM,IAAIxB,GAAU,IAAKG,IACzBsB,MAAO,IAAIzB,GAAU,IAAKG,IAC1BuB,IAAK,IAAI1B,GAAU,KACnB2B,SAAU,IAAI3B,GAAU,IAAKG,IAC7ByB,YAAa,IAAI5B,GAAU,MAC3B6B,MAAO,IAAI7B,GAAU,KAAMG,IAC3B2B,SAAU,IAAI9B,GAAU,YACxB+B,gBAAiB,IAAI/B,GAAU,mBAC/BgC,SAAU,IAAIhC,GAAU,MAAOG,IAC/B8B,UAAW,IAAIjC,GAAU,IAAKI,IAC9B8B,aAAc,IAAIlC,GAAU,KAAM,CAACG,YAAY,EAAMC,YAAY,IAgBjE+B,GAAI,IAAInC,GAAU,IAAK,CAACG,YAAY,EAAMG,UAAU,IACpD76B,OAAQ,IAAIu6B,GAAU,KAAM,CAACG,YAAY,EAAMG,UAAU,IACzD8B,OAAQ,IAAIpC,GAAU,QAAS,CAACpxB,QAAQ,EAAM2xB,SAAS,EAAMH,YAAY,IACzExxB,OAAQ,IAAIoxB,GAAU,MAAO,CAACG,YAAY,EAAMvxB,QAAQ,EAAMwxB,YAAY,IAC1EiC,UAAW7B,GAAM,KAAM,GACvB8B,WAAY9B,GAAM,KAAM,GACxB+B,UAAW/B,GAAM,IAAK,GACtBgC,WAAYhC,GAAM,IAAK,GACvBiC,WAAYjC,GAAM,IAAK,GACvBkC,SAAUlC,GAAM,gBAAiB,GACjCmC,WAAYnC,GAAM,YAAa,GAC/BoC,SAAUpC,GAAM,YAAa,GAC7BqC,QAAS,IAAI7C,GAAU,MAAO,CAACG,YAAY,EAAMK,MAAO,EAAG5xB,QAAQ,EAAMwxB,YAAY,IACrF0C,OAAQtC,GAAM,IAAK,IACnBuC,KAAMvC,GAAM,IAAK,IACjBwC,MAAOxC,GAAM,IAAK,IAClByC,SAAU,IAAIjD,GAAU,KAAM,CAACG,YAAY,IAC3C+C,SAAU1C,GAAM,KAAM,GAGtB2C,OAAQvC,GAAG,SACXwC,MAAOxC,GAAG,OAAQT,IAClBkD,OAAQzC,GAAG,SACX0C,UAAW1C,GAAG,YACd2C,UAAW3C,GAAG,YACd4C,SAAU5C,GAAG,UAAWT,IACxBsD,IAAK7C,GAAG,KAAM,CAACP,QAAQ,EAAMF,YAAY,IACzCuD,MAAO9C,GAAG,OAAQT,IAClBwD,SAAU/C,GAAG,WACbgD,KAAMhD,GAAG,MAAO,CAACP,QAAQ,IACzBwD,UAAWjD,GAAG,WAAYR,IAC1B0D,IAAKlD,GAAG,MACRmD,QAASnD,GAAG,SAAUT,IACtB6D,QAASpD,GAAG,UACZqD,OAAQrD,GAAG,QAAST,IACpB+D,KAAMtD,GAAG,OACTuD,KAAMvD,GAAG,OACTwD,OAAQxD,GAAG,SACXyD,OAAQzD,GAAG,QAAS,CAACP,QAAQ,IAC7BiE,MAAO1D,GAAG,QACV2D,KAAM3D,GAAG,MAAO,CAACT,YAAY,EAAMC,YAAY,IAC/CoE,MAAO5D,GAAG,OAAQR,IAClBqE,OAAQ7D,GAAG,QAASR,IACpBsE,OAAQ9D,GAAG,QAASR,IACpBuE,SAAU/D,GAAG,UAAWT,IACxByE,QAAShE,GAAG,UACZiE,QAASjE,GAAG,SAAUR,IACtB0E,MAAOlE,GAAG,OAAQR,IAClB2E,MAAOnE,GAAG,OAAQR,IAClB4E,OAAQpE,GAAG,QAASR,IACpB6E,IAAKrE,GAAG,KAAM,CAACT,YAAY,EAAMK,MAAO,IACxC0E,YAAatE,GAAG,aAAc,CAACT,YAAY,EAAMK,MAAO,IACxD2E,QAASvE,GAAG,SAAU,CAACT,YAAY,EAAMvxB,QAAQ,EAAMwxB,YAAY,IACnEgF,MAAOxE,GAAG,OAAQ,CAACT,YAAY,EAAMvxB,QAAQ,EAAMwxB,YAAY,IAC/DiF,QAASzE,GAAG,SAAU,CAACT,YAAY,EAAMvxB,QAAQ,EAAMwxB,YAAY,KAMjEkF,GAAY,yBACZC,GAAa,IAAI3hF,OAAO0hF,GAAUxnF,OAAQ,KAE9C,SAAS0nF,GAAUtpF,EAAMupF,GACvB,OAAgB,KAATvpF,GAAwB,KAATA,IAAiBupF,IAA4B,OAATvpF,GAA4B,OAATA,GAG/E,IAAIwpF,GAAqB,gDAErBC,GAAiB,gCAEjBC,GAAMttF,OAAOb,UACbuM,GAAiB4hF,GAAI5hF,eACrBlK,GAAW8rF,GAAI9rF,SAInB,SAASlC,GAAIiuF,EAAKC,GAChB,OAAO9hF,GAAepG,KAAKioF,EAAKC,GAGlC,IAAInqE,GAAU5e,MAAM4e,kBAAsBkqE,GAAO,MACxB,mBAAvB/rF,GAAS8D,KAAKioF,IAGhB,SAASE,GAAYC,GACnB,OAAO,IAAIpiF,OAAO,OAASoiF,EAAM/rF,QAAQ,KAAM,KAAO,MAMxD,IAAIgsF,GAAW,SAAkBrvF,EAAMsvF,GACrC5uF,KAAKV,KAAOA,EACZU,KAAK6G,OAAS+nF,GAGhBD,GAASxuF,UAAU0uF,OAAS,SAAiBxuF,GAC3C,OAAO,IAAIsuF,GAAS3uF,KAAKV,KAAMU,KAAK6G,OAASxG,IAG/C,IAAIyuF,GAAiB,SAAwBlhB,EAAGptE,EAAOC,GACrDT,KAAKQ,MAAQA,EACbR,KAAKS,IAAMA,EACU,OAAjBmtE,EAAEmhB,aAAuB/uF,KAAKwG,OAASonE,EAAEmhB,aAS/C,SAASC,GAAYC,EAAOJ,GAC1B,IAAK,IAAIvvF,EAAO,EAAG4vF,EAAM,IAAK,CAC5BjB,GAAW1qE,UAAY2rE,EACvB,IAAI5kF,EAAQ2jF,GAAW3oF,KAAK2pF,GAC5B,KAAI3kF,GAASA,EAAM3I,MAAQktF,GAIzB,OAAO,IAAIF,GAASrvF,EAAMuvF,EAASK,KAHjC5vF,EACF4vF,EAAM5kF,EAAM3I,MAAQ2I,EAAM,GAAGnL,QAUnC,IAAIgwF,GAAiB,CAOnBxI,YAAa,KAIbyI,WAAY,SAMZC,oBAAqB,KAGrBC,gBAAiB,KAKjBC,cAAe,KAGfC,4BAA4B,EAI5BC,6BAA6B,EAI7BC,0BAA2B,KAG3BC,wBAAyB,KAGzBjJ,eAAe,EAKfkJ,WAAW,EAMXC,QAAS,KAWTC,UAAW,KASXC,QAAQ,EAMRC,QAAS,KAGTjB,WAAY,KAGZkB,iBAAkB,KAGlBC,gBAAgB,GAKdC,IAAyB,EAE7B,SAASC,GAAWC,GAClB,IAAIpoF,EAAU,GAEd,IAAK,IAAIqoF,KAAOnB,GACZlnF,EAAQqoF,GAAOD,GAAQ/vF,GAAI+vF,EAAMC,GAAOD,EAAKC,GAAOnB,GAAemB,GAmBvE,GAjB4B,WAAxBroF,EAAQ0+E,YACV1+E,EAAQ0+E,YAAc,IACU,MAAvB1+E,EAAQ0+E,cACZwJ,IAA6C,iBAAZzlF,SAAwBA,QAAQC,OACpEwlF,IAAyB,EACzBzlF,QAAQC,KAAK,uHAEf1C,EAAQ0+E,YAAc,IACb1+E,EAAQ0+E,aAAe,OAChC1+E,EAAQ0+E,aAAe,MAGI,MAAzB1+E,EAAQsnF,gBACRtnF,EAAQsnF,cAAgBtnF,EAAQ0+E,YAAc,GACT,MAArC1+E,EAAQynF,4BACRznF,EAAQynF,0BAA4BznF,EAAQ0+E,aAAe,IAE3DtiE,GAAQpc,EAAQ4nF,SAAU,CAC5B,IAAIU,EAAStoF,EAAQ4nF,QACrB5nF,EAAQ4nF,QAAU,SAAUW,GAAS,OAAOD,EAAO9wF,KAAK+wF,IAK1D,OAHInsE,GAAQpc,EAAQ6nF,aAChB7nF,EAAQ6nF,UAKd,SAAqB7nF,EAASwoF,GAC5B,OAAO,SAASjzE,EAAOkzE,EAAMlwF,EAAOC,EAAKkwF,EAAUC,GACjD,IAAInuE,EAAU,CACZ1I,KAAMyD,EAAQ,QAAU,OACxBpc,MAAOsvF,EACPlwF,MAAOA,EACPC,IAAKA,GAEHwH,EAAQ2nF,YACRntE,EAAQnb,IAAM,IAAIwnF,GAAe9uF,KAAM2wF,EAAUC,IACjD3oF,EAAQ8nF,SACRttE,EAAQpJ,MAAQ,CAAC7Y,EAAOC,IAC5BgwF,EAAMhxF,KAAKgjB,IAjBWouE,CAAY5oF,EAASA,EAAQ6nF,YAE9C7nF,EA+BT,SAAS6oF,GAAc3uC,EAAO4uC,GAC5B,OAVmB,GAUM5uC,EART,EAQ+B,IAAM4uC,EAPjC,EAO+D,GAIrF,IAQIC,GAAS,SAAgB/oF,EAASgnF,EAAOgC,GAC3CjxF,KAAKiI,QAAUA,EAAUmoF,GAAWnoF,GACpCjI,KAAK+uF,WAAa9mF,EAAQ8mF,WAC1B/uF,KAAK6nF,SAAW4G,GAAY5G,GAAS5/E,EAAQ0+E,aAAe,EAAI,EAA2B,WAAvB1+E,EAAQmnF,WAA0B,UAAY,IAClH,IAAI8B,EAAW,IACe,IAA1BjpF,EAAQsnF,gBACV2B,EAAWr7E,GAAc5N,EAAQ0+E,aAAe,EAAI,EAA4B,IAAxB1+E,EAAQ0+E,YAAoB,EAAI,GAC7D,WAAvB1+E,EAAQmnF,aAA2B8B,GAAY,WAErDlxF,KAAK6V,cAAgB44E,GAAYyC,GACjC,IAAIC,GAAkBD,EAAWA,EAAW,IAAM,IAAMr7E,GAAciyD,OACtE9nE,KAAKoxF,oBAAsB3C,GAAY0C,GACvCnxF,KAAKqxF,wBAA0B5C,GAAY0C,EAAiB,IAAMt7E,GAAc8xE,YAChF3nF,KAAKivF,MAAQz6D,OAAOy6D,GAKpBjvF,KAAKsxF,aAAc,EAKfL,GACFjxF,KAAK2G,IAAMsqF,EACXjxF,KAAKuxF,UAAYvxF,KAAKivF,MAAMzjF,YAAY,KAAMylF,EAAW,GAAK,EAC9DjxF,KAAKwxF,QAAUxxF,KAAKivF,MAAM/uF,MAAM,EAAGF,KAAKuxF,WAAWpvF,MAAM6rF,IAAW7uF,SAEpEa,KAAK2G,IAAM3G,KAAKuxF,UAAY,EAC5BvxF,KAAKwxF,QAAU,GAKjBxxF,KAAK+Z,KAAOwvE,GAAMG,IAElB1pF,KAAKoB,MAAQ,KAEbpB,KAAKQ,MAAQR,KAAKS,IAAMT,KAAK2G,IAG7B3G,KAAK2wF,SAAW3wF,KAAK4wF,OAAS5wF,KAAKyxF,cAGnCzxF,KAAK0xF,cAAgB1xF,KAAK2xF,gBAAkB,KAC5C3xF,KAAK4xF,aAAe5xF,KAAK6xF,WAAa7xF,KAAK2G,IAK3C3G,KAAK0U,QAAU1U,KAAK8xF,iBACpB9xF,KAAK+xF,aAAc,EAGnB/xF,KAAKgyF,SAAkC,WAAvB/pF,EAAQmnF,WACxBpvF,KAAK8nE,OAAS9nE,KAAKgyF,UAAYhyF,KAAKiyF,gBAAgBjyF,KAAK2G,KAGzD3G,KAAKkyF,kBAAoB,EACzBlyF,KAAKmyF,0BAA2B,EAGhCnyF,KAAKoyF,SAAWpyF,KAAKqyF,SAAWryF,KAAKsyF,cAAgB,EAErDtyF,KAAKgb,OAAS,GAEdhb,KAAKuyF,iBAAmBvxF,OAAO+R,OAAO,MAGrB,IAAb/S,KAAK2G,KAAasB,EAAQy+E,eAA4C,OAA3B1mF,KAAKivF,MAAM/uF,MAAM,EAAG,IAC/DF,KAAKwyF,gBAAgB,GAGzBxyF,KAAKyyF,WAAa,GAClBzyF,KAAK0yF,WAjGS,GAoGd1yF,KAAK2yF,YAAc,KAKnB3yF,KAAK4yF,iBAAmB,IAGtBC,GAAqB,CAAEC,WAAY,CAAE/lB,cAAc,GAAOgmB,YAAa,CAAEhmB,cAAc,GAAOimB,QAAS,CAAEjmB,cAAc,GAAOkmB,WAAY,CAAElmB,cAAc,GAAOmmB,iBAAkB,CAAEnmB,cAAc,GAAOomB,oBAAqB,CAAEpmB,cAAc,GAAOqmB,mBAAoB,CAAErmB,cAAc,IAE9RikB,GAAO7wF,UAAU6vB,MAAQ,WACvB,IAAI3U,EAAOrb,KAAKiI,QAAQ+nF,SAAWhwF,KAAKqzF,YAExC,OADArzF,KAAKszF,YACEtzF,KAAKuzF,cAAcl4E,IAG5Bw3E,GAAmBC,WAAW1gF,IAAM,WAAc,OAnH7B,EAmHqCpS,KAAKwzF,kBAAkBC,OAA0B,GAC3GZ,GAAmBE,YAAY3gF,IAAM,WAAc,OAjH7B,EAiHqCpS,KAAKwzF,kBAAkBC,OAA2B,IAAMzzF,KAAKwzF,kBAAkBE,kBAC1Ib,GAAmBG,QAAQ5gF,IAAM,WAAc,OAnH7B,EAmHqCpS,KAAKwzF,kBAAkBC,OAAuB,IAAMzzF,KAAKwzF,kBAAkBE,kBAClIb,GAAmBI,WAAW7gF,IAAM,WAClC,IAAIk8E,EAAMtuF,KAAK2zF,mBACTF,EAAQnF,EAAImF,MACZC,EAAmBpF,EAAIoF,iBAC7B,OApHgB,GAoHRD,GAAuB,GAAKC,GAAoB1zF,KAAKiI,QAAQ0nF,yBAEvEkD,GAAmBK,iBAAiB9gF,IAAM,WAAc,OArH/B,IAqHuCpS,KAAK2zF,mBAAmBF,OAA8B,GACtHZ,GAAmBM,oBAAoB/gF,IAAM,WAAc,OAAOpS,KAAK4zF,2BAA2B5zF,KAAK6zF,iBACvGhB,GAAmBO,mBAAmBhhF,IAAM,WAC1C,IAAIk8E,EAAMtuF,KAAK2zF,mBACTF,EAAQnF,EAAImF,MACZC,EAAmBpF,EAAIoF,iBAC7B,OAlImB,EAkIXD,GAA0B,GAAKC,GAGzC1C,GAAOnoB,OAAS,WAEZ,IADA,IAAIvN,EAAU,GAAIwS,EAAMpgE,UAAUvO,OAC1B2uE,KAAQxS,EAASwS,GAAQpgE,UAAWogE,GAG9C,IADA,IAAIgmB,EAAM9zF,KACDd,EAAI,EAAGA,EAAIo8D,EAAQn8D,OAAQD,IAAO40F,EAAMx4B,EAAQp8D,GAAG40F,GAC5D,OAAOA,GAGT9C,GAAOhhE,MAAQ,SAAgBi/D,EAAOhnF,GACpC,OAAO,IAAIjI,KAAKiI,EAASgnF,GAAOj/D,SAGlCghE,GAAO+C,kBAAoB,SAA4B9E,EAAOtoF,EAAKsB,GACjE,IAAI+rF,EAAS,IAAIh0F,KAAKiI,EAASgnF,EAAOtoF,GAEtC,OADAqtF,EAAOV,YACAU,EAAOC,mBAGhBjD,GAAOkD,UAAY,SAAoBjF,EAAOhnF,GAC5C,OAAO,IAAIjI,KAAKiI,EAASgnF,IAG3BjuF,OAAOC,iBAAkB+vF,GAAO7wF,UAAW0yF,IAE3C,IAAIsB,GAAKnD,GAAO7wF,UAIZi0F,GAAU,iDAwGd,SAASC,KACPr0F,KAAKs0F,gBACLt0F,KAAKu0F,cACLv0F,KAAKw0F,oBACLx0F,KAAKy0F,kBACLz0F,KAAK00F,aACF,EA7GLP,GAAGlC,gBAAkB,SAASzxF,GAC5B,OAAS,CAEP6tF,GAAe9qE,UAAY/iB,EAC3BA,GAAS6tF,GAAe/oF,KAAKtF,KAAKivF,OAAO,GAAG9vF,OAC5C,IAAImL,EAAQ8pF,GAAQ9uF,KAAKtF,KAAKivF,MAAM/uF,MAAMM,IAC1C,IAAK8J,EAAS,OAAO,EACrB,GAA+B,gBAA1BA,EAAM,IAAMA,EAAM,IAAsB,CAC3C+jF,GAAe9qE,UAAY/iB,EAAQ8J,EAAM,GAAGnL,OAC5C,IAAIw1F,EAAatG,GAAe/oF,KAAKtF,KAAKivF,OAAQxuF,EAAMk0F,EAAWhzF,MAAQgzF,EAAW,GAAGx1F,OACrFkC,EAAOrB,KAAKivF,MAAMllE,OAAOtpB,GAC7B,MAAgB,MAATY,GAAyB,MAATA,GACpB2sF,GAAUhpF,KAAK2vF,EAAW,OACxB,sBAAsB3vF,KAAK3D,IAAkB,MAATA,GAA+C,MAA/BrB,KAAKivF,MAAMllE,OAAOtpB,EAAM,IAEnFD,GAAS8J,EAAM,GAAGnL,OAGlBkvF,GAAe9qE,UAAY/iB,EAC3BA,GAAS6tF,GAAe/oF,KAAKtF,KAAKivF,OAAO,GAAG9vF,OAClB,MAAtBa,KAAKivF,MAAMzuF,IACXA,MAOR2zF,GAAGS,IAAM,SAAS76E,GAChB,OAAI/Z,KAAK+Z,OAASA,IAChB/Z,KAAKqB,QACE,IAQX8yF,GAAGU,aAAe,SAAS1nF,GACzB,OAAOnN,KAAK+Z,OAASwvE,GAAMp8E,MAAQnN,KAAKoB,QAAU+L,IAASnN,KAAKsxF,aAKlE6C,GAAGW,cAAgB,SAAS3nF,GAC1B,QAAKnN,KAAK60F,aAAa1nF,KACvBnN,KAAKqB,QACE,IAKT8yF,GAAGY,iBAAmB,SAAS5nF,GACxBnN,KAAK80F,cAAc3nF,IAASnN,KAAKg1F,cAKxCb,GAAGc,mBAAqB,WACtB,OAAOj1F,KAAK+Z,OAASwvE,GAAMG,KACzB1pF,KAAK+Z,OAASwvE,GAAMO,QACpBkE,GAAUhpF,KAAKhF,KAAKivF,MAAM/uF,MAAMF,KAAK6xF,WAAY7xF,KAAKQ,SAG1D2zF,GAAGztC,gBAAkB,WACnB,GAAI1mD,KAAKi1F,qBAGP,OAFIj1F,KAAKiI,QAAQonF,qBACbrvF,KAAKiI,QAAQonF,oBAAoBrvF,KAAK6xF,WAAY7xF,KAAK0xF,gBACpD,GAOXyC,GAAGe,UAAY,WACRl1F,KAAK40F,IAAIrL,GAAMW,OAAUlqF,KAAK0mD,mBAAqB1mD,KAAKg1F,cAG/Db,GAAGgB,mBAAqB,SAASC,EAASC,GACxC,GAAIr1F,KAAK+Z,OAASq7E,EAKhB,OAJIp1F,KAAKiI,QAAQqnF,iBACbtvF,KAAKiI,QAAQqnF,gBAAgBtvF,KAAK4xF,aAAc5xF,KAAK2xF,iBACpD0D,GACDr1F,KAAKqB,QACF,GAOX8yF,GAAGmB,OAAS,SAASv7E,GACnB/Z,KAAK40F,IAAI76E,IAAS/Z,KAAKg1F,cAKzBb,GAAGa,WAAa,SAASruF,GACvB3G,KAAKu1F,MAAa,MAAP5uF,EAAcA,EAAM3G,KAAKQ,MAAO,qBAY7C2zF,GAAGqB,mBAAqB,SAASC,EAAwBzM,GACvD,GAAKyM,EAAL,CACIA,EAAuBlB,eAAiB,GACxCv0F,KAAK01F,iBAAiBD,EAAuBlB,cAAe,iDAChE,IAAIoB,EAAS3M,EAAWyM,EAAuBjB,oBAAsBiB,EAAuBhB,kBACxFkB,GAAU,GAAK31F,KAAK01F,iBAAiBC,EAAQ,2BAGnDxB,GAAGyB,sBAAwB,SAASH,EAAwBI,GAC1D,IAAKJ,EAA0B,OAAO,EACtC,IAAInB,EAAkBmB,EAAuBnB,gBACzCI,EAAce,EAAuBf,YACzC,IAAKmB,EAAY,OAAOvB,GAAmB,GAAKI,GAAe,EAC3DJ,GAAmB,GACnBt0F,KAAKu1F,MAAMjB,EAAiB,2EAC5BI,GAAe,GACf10F,KAAK01F,iBAAiBhB,EAAa,uCAGzCP,GAAG2B,+BAAiC,WAC9B91F,KAAKoyF,YAAcpyF,KAAKqyF,UAAYryF,KAAKoyF,SAAWpyF,KAAKqyF,WACzDryF,KAAKu1F,MAAMv1F,KAAKoyF,SAAU,8CAC1BpyF,KAAKqyF,UACLryF,KAAKu1F,MAAMv1F,KAAKqyF,SAAU,+CAGhC8B,GAAG4B,qBAAuB,SAASC,GACjC,MAAkB,4BAAdA,EAAKj8E,KACE/Z,KAAK+1F,qBAAqBC,EAAK95E,YACrB,eAAd85E,EAAKj8E,MAAuC,qBAAdi8E,EAAKj8E,MAG5C,IAAIk8E,GAAOjF,GAAO7wF,UASlB81F,GAAK1C,cAAgB,SAASl4E,GAC5B,IAAI6hD,EAAUl8D,OAAO+R,OAAO,MAE5B,IADKsI,EAAKzN,OAAQyN,EAAKzN,KAAO,IACvB5N,KAAK+Z,OAASwvE,GAAMG,KAAK,CAC9B,IAAIwM,EAAOl2F,KAAKm2F,eAAe,MAAM,EAAMj5B,GAC3C7hD,EAAKzN,KAAKnO,KAAKy2F,GAEjB,GAAIl2F,KAAKgyF,SACL,IAAK,IAAI9yF,EAAI,EAAGqX,EAAOvV,OAAOuI,KAAKvJ,KAAKuyF,kBAAmBrzF,EAAIqX,EAAKpX,OAAQD,GAAK,EACjF,CACE,IAAIiO,EAAOoJ,EAAKrX,GAEhBc,KAAK01F,iBAAiB11F,KAAKuyF,iBAAiBplF,GAAM3M,MAAQ,WAAa2M,EAAO,oBAKpF,OAHAnN,KAAKo2F,uBAAuB/6E,EAAKzN,MACjC5N,KAAKqB,OACLga,EAAK+zE,WAAapvF,KAAKiI,QAAQmnF,WACxBpvF,KAAKq2F,WAAWh7E,EAAM,YAG/B,IAAIi7E,GAAY,CAACz7C,KAAM,QAAS07C,GAAc,CAAC17C,KAAM,UAErDo7C,GAAKO,MAAQ,SAAS9hF,GACpB,GAAI1U,KAAKiI,QAAQ0+E,YAAc,IAAM3mF,KAAK60F,aAAa,OAAU,OAAO,EACxExG,GAAe9qE,UAAYvjB,KAAK2G,IAChC,IAAI8vF,EAAOpI,GAAe/oF,KAAKtF,KAAKivF,OAChC5tF,EAAOrB,KAAK2G,IAAM8vF,EAAK,GAAGt3F,OAAQu3F,EAAS12F,KAAKivF,MAAM7vF,WAAWiC,GAKrE,GAAe,KAAXq1F,GAA4B,KAAXA,GAAiBA,EAAS,OAAUA,EAAS,MAAU,OAAO,EACnF,GAAIhiF,EAAW,OAAO,EAEtB,GAAe,MAAXgiF,EAAkB,OAAO,EAC7B,GAAInO,GAAkBmO,GAAQ,GAAO,CAEnC,IADA,IAAI/vF,EAAMtF,EAAO,EACVonF,GAAiBiO,EAAS12F,KAAKivF,MAAM7vF,WAAWuH,IAAM,MAAWA,EACxE,GAAe,KAAX+vF,GAAiBA,EAAS,OAAUA,EAAS,MAAU,OAAO,EAClE,IAAIC,EAAQ32F,KAAKivF,MAAM/uF,MAAMmB,EAAMsF,GACnC,IAAKohF,GAA0B/iF,KAAK2xF,GAAU,OAAO,EAEvD,OAAO,GAMTV,GAAKW,gBAAkB,WACrB,GAAI52F,KAAKiI,QAAQ0+E,YAAc,IAAM3mF,KAAK60F,aAAa,SACnD,OAAO,EAEXxG,GAAe9qE,UAAYvjB,KAAK2G,IAChC,IACsCkwF,EADlCJ,EAAOpI,GAAe/oF,KAAKtF,KAAKivF,OAChC5tF,EAAOrB,KAAK2G,IAAM8vF,EAAK,GAAGt3F,OAC9B,QAAQ6uF,GAAUhpF,KAAKhF,KAAKivF,MAAM/uF,MAAMF,KAAK2G,IAAKtF,KACX,aAArCrB,KAAKivF,MAAM/uF,MAAMmB,EAAMA,EAAO,IAC7BA,EAAO,IAAMrB,KAAKivF,MAAM9vF,SACtBspF,GAAiBoO,EAAQ72F,KAAKivF,MAAM7vF,WAAWiC,EAAO,KAAOw1F,EAAQ,OAAUA,EAAQ,SAU9FZ,GAAKE,eAAiB,SAASzhF,EAASoiF,EAAU55B,GAChD,IAAoDriB,EAAhDk8C,EAAY/2F,KAAK+Z,KAAMsB,EAAOrb,KAAKqzF,YAWvC,OATIrzF,KAAKw2F,MAAM9hF,KACbqiF,EAAYxN,GAAMsD,KAClBhyC,EAAO,OAODk8C,GACR,KAAKxN,GAAMsC,OAAQ,KAAKtC,GAAMyC,UAAW,OAAOhsF,KAAKg3F,4BAA4B37E,EAAM07E,EAAUnO,SACjG,KAAKW,GAAM0C,UAAW,OAAOjsF,KAAKi3F,uBAAuB57E,GACzD,KAAKkuE,GAAM4C,IAAK,OAAOnsF,KAAKk3F,iBAAiB77E,GAC7C,KAAKkuE,GAAM+C,KAAM,OAAOtsF,KAAKm3F,kBAAkB97E,GAC/C,KAAKkuE,GAAMgD,UAKT,OADK73E,IAAY1U,KAAK8nE,QAAsB,OAAZpzD,GAAgC,UAAZA,IAAyB1U,KAAKiI,QAAQ0+E,aAAe,GAAK3mF,KAAKg1F,aAC5Gh1F,KAAKo3F,uBAAuB/7E,GAAM,GAAQ3G,GACnD,KAAK60E,GAAM6D,OAET,OADI14E,GAAW1U,KAAKg1F,aACbh1F,KAAKq3F,WAAWh8E,GAAM,GAC/B,KAAKkuE,GAAMiD,IAAK,OAAOxsF,KAAKs3F,iBAAiBj8E,GAC7C,KAAKkuE,GAAMkD,QAAS,OAAOzsF,KAAKu3F,qBAAqBl8E,GACrD,KAAKkuE,GAAMmD,QAAS,OAAO1sF,KAAKw3F,qBAAqBn8E,GACrD,KAAKkuE,GAAMoD,OAAQ,OAAO3sF,KAAKy3F,oBAAoBp8E,GACnD,KAAKkuE,GAAMqD,KAAM,OAAO5sF,KAAK03F,kBAAkBr8E,GAC/C,KAAKkuE,GAAMuD,OAAQ,KAAKvD,GAAMsD,KAG5B,OAFAhyC,EAAOA,GAAQ76C,KAAKoB,MAChBsT,GAAoB,QAATmmC,GAAkB76C,KAAKg1F,aAC/Bh1F,KAAK23F,kBAAkBt8E,EAAMw/B,GACtC,KAAK0uC,GAAMwD,OAAQ,OAAO/sF,KAAK43F,oBAAoBv8E,GACnD,KAAKkuE,GAAMyD,MAAO,OAAOhtF,KAAK63F,mBAAmBx8E,GACjD,KAAKkuE,GAAMM,OAAQ,OAAO7pF,KAAK83F,YAAW,EAAMz8E,GAChD,KAAKkuE,GAAMW,KAAM,OAAOlqF,KAAK+3F,oBAAoB18E,GACjD,KAAKkuE,GAAM+D,QACX,KAAK/D,GAAMgE,QACT,GAAIvtF,KAAKiI,QAAQ0+E,YAAc,IAAMoQ,IAAcxN,GAAMgE,QAAS,CAChEc,GAAe9qE,UAAYvjB,KAAK2G,IAChC,IAAI8vF,EAAOpI,GAAe/oF,KAAKtF,KAAKivF,OAChC5tF,EAAOrB,KAAK2G,IAAM8vF,EAAK,GAAGt3F,OAAQu3F,EAAS12F,KAAKivF,MAAM7vF,WAAWiC,GACrE,GAAe,KAAXq1F,GAA4B,KAAXA,EACjB,OAAO12F,KAAKg4F,yBAAyB38E,EAAMrb,KAAKi0F,mBAStD,OANKj0F,KAAKiI,QAAQwnF,8BACXqH,GACD92F,KAAKu1F,MAAMv1F,KAAKQ,MAAO,0DACtBR,KAAKgyF,UACNhyF,KAAKu1F,MAAMv1F,KAAKQ,MAAO,oEAEtBu2F,IAAcxN,GAAMgE,QAAUvtF,KAAKi4F,YAAY58E,GAAQrb,KAAKk4F,YAAY78E,EAAM6hD,GAOvF,QACE,GAAIl9D,KAAK42F,kBAGP,OAFIliF,GAAW1U,KAAKg1F,aACpBh1F,KAAKqB,OACErB,KAAKo3F,uBAAuB/7E,GAAM,GAAO3G,GAGlD,IAAIyjF,EAAYn4F,KAAKoB,MAAO40F,EAAOh2F,KAAKi0F,kBACxC,OAAI8C,IAAcxN,GAAMp8E,MAAsB,eAAd6oF,EAAKj8E,MAAyB/Z,KAAK40F,IAAIrL,GAAMY,OAClEnqF,KAAKo4F,sBAAsB/8E,EAAM88E,EAAWnC,EAAMthF,GAC/C1U,KAAKg4F,yBAAyB38E,EAAM26E,KAItDC,GAAKe,4BAA8B,SAAS37E,EAAMutE,GAChD,IAAIyP,EAAsB,UAAZzP,EACd5oF,KAAKqB,OACDrB,KAAK40F,IAAIrL,GAAMW,OAASlqF,KAAK0mD,kBAAqBrrC,EAAKg5C,MAAQ,KAC1Dr0D,KAAK+Z,OAASwvE,GAAMp8E,KAAQnN,KAAKg1F,cAExC35E,EAAKg5C,MAAQr0D,KAAKs4F,aAClBt4F,KAAKk1F,aAMP,IADA,IAAIh2F,EAAI,EACDA,EAAIc,KAAKgb,OAAO7b,SAAUD,EAAG,CAClC,IAAIq5F,EAAMv4F,KAAKgb,OAAO9b,GACtB,GAAkB,MAAdmc,EAAKg5C,OAAiBkkC,EAAIprF,OAASkO,EAAKg5C,MAAMlnD,KAAM,CACtD,GAAgB,MAAZorF,EAAI19C,OAAiBw9C,GAAwB,SAAbE,EAAI19C,MAAoB,MAC5D,GAAIx/B,EAAKg5C,OAASgkC,EAAW,OAIjC,OADIn5F,IAAMc,KAAKgb,OAAO7b,QAAUa,KAAKu1F,MAAMl6E,EAAK7a,MAAO,eAAiBooF,GACjE5oF,KAAKq2F,WAAWh7E,EAAMg9E,EAAU,iBAAmB,sBAG5DpC,GAAKgB,uBAAyB,SAAS57E,GAGrC,OAFArb,KAAKqB,OACLrB,KAAKk1F,YACEl1F,KAAKq2F,WAAWh7E,EAAM,sBAG/B46E,GAAKiB,iBAAmB,SAAS77E,GAW/B,OAVArb,KAAKqB,OACLrB,KAAKgb,OAAOvb,KAAK62F,IACjBj7E,EAAKzN,KAAO5N,KAAKm2F,eAAe,MAChCn2F,KAAKgb,OAAOlV,MACZ9F,KAAKs1F,OAAO/L,GAAMwD,QAClB1xE,EAAKrW,KAAOhF,KAAKw4F,uBACbx4F,KAAKiI,QAAQ0+E,aAAe,EAC5B3mF,KAAK40F,IAAIrL,GAAMW,MAEflqF,KAAKk1F,YACFl1F,KAAKq2F,WAAWh7E,EAAM,qBAW/B46E,GAAKkB,kBAAoB,SAAS97E,GAChCrb,KAAKqB,OACL,IAAIo3F,EAAWz4F,KAAKiI,QAAQ0+E,aAAe,IAAM3mF,KAAKgzF,UAAahzF,KAAK8yF,YAAc9yF,KAAKiI,QAAQynF,4BAA+B1vF,KAAK80F,cAAc,SAAY90F,KAAK4xF,cAAgB,EAItL,GAHA5xF,KAAKgb,OAAOvb,KAAK62F,IACjBt2F,KAAK0yF,WAAW,GAChB1yF,KAAKs1F,OAAO/L,GAAMQ,QACd/pF,KAAK+Z,OAASwvE,GAAMW,KAEtB,OADIuO,GAAW,GAAKz4F,KAAKg1F,WAAWyD,GAC7Bz4F,KAAK04F,SAASr9E,EAAM,MAE7B,IAAIm7E,EAAQx2F,KAAKw2F,QACjB,GAAIx2F,KAAK+Z,OAASwvE,GAAMsD,MAAQ7sF,KAAK+Z,OAASwvE,GAAMuD,QAAU0J,EAAO,CACnE,IAAImC,EAAS34F,KAAKqzF,YAAax4C,EAAO27C,EAAQ,MAAQx2F,KAAKoB,MAI3D,OAHApB,KAAKqB,OACLrB,KAAK44F,SAASD,GAAQ,EAAM99C,GAC5B76C,KAAKq2F,WAAWsC,EAAQ,wBACnB34F,KAAK+Z,OAASwvE,GAAMoE,KAAQ3tF,KAAKiI,QAAQ0+E,aAAe,GAAK3mF,KAAK60F,aAAa,QAA0C,IAA/B8D,EAAOlhF,aAAatY,QAC7Ga,KAAKiI,QAAQ0+E,aAAe,IAC1B3mF,KAAK+Z,OAASwvE,GAAMoE,IAClB8K,GAAW,GAAKz4F,KAAKg1F,WAAWyD,GAC7Bp9E,EAAKnM,MAAQupF,GAAW,GAE5Bz4F,KAAK64F,WAAWx9E,EAAMs9E,KAE3BF,GAAW,GAAKz4F,KAAKg1F,WAAWyD,GAC7Bz4F,KAAK04F,SAASr9E,EAAMs9E,IAE7B,IAAIlD,EAAyB,IAAIpB,GAC7BniF,EAAOlS,KAAKi0F,kBAAgBwE,GAAW,IAAI,QAAgBhD,GAC/D,OAAIz1F,KAAK+Z,OAASwvE,GAAMoE,KAAQ3tF,KAAKiI,QAAQ0+E,aAAe,GAAK3mF,KAAK60F,aAAa,OAC7E70F,KAAKiI,QAAQ0+E,aAAe,IAC1B3mF,KAAK+Z,OAASwvE,GAAMoE,IAClB8K,GAAW,GAAKz4F,KAAKg1F,WAAWyD,GAC7Bp9E,EAAKnM,MAAQupF,GAAW,GAEnCz4F,KAAK84F,aAAa5mF,GAAM,EAAOujF,GAC/Bz1F,KAAK+4F,iBAAiB7mF,GACflS,KAAK64F,WAAWx9E,EAAMnJ,KAE7BlS,KAAK41F,sBAAsBH,GAAwB,GAEjDgD,GAAW,GAAKz4F,KAAKg1F,WAAWyD,GAC7Bz4F,KAAK04F,SAASr9E,EAAMnJ,KAG7B+jF,GAAKmB,uBAAyB,SAAS/7E,EAAM29E,EAASC,GAEpD,OADAj5F,KAAKqB,OACErB,KAAKk5F,cAAc79E,EAAM89E,IAAkBF,EAAsB,EAAIG,KAAyB,EAAOJ,IAG9G/C,GAAKqB,iBAAmB,SAASj8E,GAM/B,OALArb,KAAKqB,OACLga,EAAKrW,KAAOhF,KAAKw4F,uBAEjBn9E,EAAKe,WAAapc,KAAKm2F,eAAe,MACtC96E,EAAKgB,UAAYrc,KAAK40F,IAAIrL,GAAM6C,OAASpsF,KAAKm2F,eAAe,MAAQ,KAC9Dn2F,KAAKq2F,WAAWh7E,EAAM,gBAG/B46E,GAAKsB,qBAAuB,SAASl8E,GAWnC,OAVKrb,KAAK8yF,YAAe9yF,KAAKiI,QAAQunF,4BAClCxvF,KAAKu1F,MAAMv1F,KAAKQ,MAAO,gCAC3BR,KAAKqB,OAMDrB,KAAK40F,IAAIrL,GAAMW,OAASlqF,KAAK0mD,kBAAqBrrC,EAAKlB,SAAW,MAC/DkB,EAAKlB,SAAWna,KAAKi0F,kBAAmBj0F,KAAKk1F,aAC7Cl1F,KAAKq2F,WAAWh7E,EAAM,oBAG/B46E,GAAKuB,qBAAuB,SAASn8E,GAYnC,IAAI6zE,EAXJlvF,KAAKqB,OACLga,EAAKuB,aAAe5c,KAAKw4F,uBACzBn9E,EAAK0B,MAAQ,GACb/c,KAAKs1F,OAAO/L,GAAMM,QAClB7pF,KAAKgb,OAAOvb,KAAK82F,IACjBv2F,KAAK0yF,WAAW,GAOhB,IAAK,IAAI2G,GAAa,EAAOr5F,KAAK+Z,OAASwvE,GAAMO,QAC/C,GAAI9pF,KAAK+Z,OAASwvE,GAAMuC,OAAS9rF,KAAK+Z,OAASwvE,GAAM2C,SAAU,CAC7D,IAAIoN,EAASt5F,KAAK+Z,OAASwvE,GAAMuC,MAC7BoD,GAAOlvF,KAAKq2F,WAAWnH,EAAK,cAChC7zE,EAAK0B,MAAMtd,KAAKyvF,EAAMlvF,KAAKqzF,aAC3BnE,EAAI9yE,WAAa,GACjBpc,KAAKqB,OACDi4F,EACFpK,EAAIlqF,KAAOhF,KAAKi0F,mBAEZoF,GAAcr5F,KAAK01F,iBAAiB11F,KAAK4xF,aAAc,4BAC3DyH,GAAa,EACbnK,EAAIlqF,KAAO,MAEbhF,KAAKs1F,OAAO/L,GAAMY,YAEb+E,GAAOlvF,KAAKg1F,aACjB9F,EAAI9yE,WAAW3c,KAAKO,KAAKm2F,eAAe,OAO5C,OAJAn2F,KAAKu5F,YACDrK,GAAOlvF,KAAKq2F,WAAWnH,EAAK,cAChClvF,KAAKqB,OACLrB,KAAKgb,OAAOlV,MACL9F,KAAKq2F,WAAWh7E,EAAM,oBAG/B46E,GAAKwB,oBAAsB,SAASp8E,GAMlC,OALArb,KAAKqB,OACD2sF,GAAUhpF,KAAKhF,KAAKivF,MAAM/uF,MAAMF,KAAK6xF,WAAY7xF,KAAKQ,SACtDR,KAAKu1F,MAAMv1F,KAAK6xF,WAAY,+BAChCx2E,EAAKlB,SAAWna,KAAKi0F,kBACrBj0F,KAAKk1F,YACEl1F,KAAKq2F,WAAWh7E,EAAM,mBAK/B,IAAIm+E,GAAQ,GAEZvD,GAAKyB,kBAAoB,SAASr8E,GAIhC,GAHArb,KAAKqB,OACLga,EAAKmC,MAAQxd,KAAK83F,aAClBz8E,EAAKoC,QAAU,KACXzd,KAAK+Z,OAASwvE,GAAMwC,OAAQ,CAC9B,IAAI0N,EAASz5F,KAAKqzF,YAElB,GADArzF,KAAKqB,OACDrB,KAAK40F,IAAIrL,GAAMQ,QAAS,CAC1B0P,EAAO7/E,MAAQ5Z,KAAK05F,mBACpB,IAAIC,EAA+B,eAAtBF,EAAO7/E,MAAMG,KAC1B/Z,KAAK0yF,WAAWiH,EAnoBG,GAmoB2B,GAC9C35F,KAAK+4F,iBAAiBU,EAAO7/E,MAAO+/E,EAtnBlB,EAFL,GAynBb35F,KAAKs1F,OAAO/L,GAAMS,aAEdhqF,KAAKiI,QAAQ0+E,YAAc,IAAM3mF,KAAKg1F,aAC1CyE,EAAO7/E,MAAQ,KACf5Z,KAAK0yF,WAAW,GAElB+G,EAAO7rF,KAAO5N,KAAK83F,YAAW,GAC9B93F,KAAKu5F,YACLl+E,EAAKoC,QAAUzd,KAAKq2F,WAAWoD,EAAQ,eAKzC,OAHAp+E,EAAKqC,UAAY1d,KAAK40F,IAAIrL,GAAM8C,UAAYrsF,KAAK83F,aAAe,KAC3Dz8E,EAAKoC,SAAYpC,EAAKqC,WACvB1d,KAAKu1F,MAAMl6E,EAAK7a,MAAO,mCACpBR,KAAKq2F,WAAWh7E,EAAM,iBAG/B46E,GAAK0B,kBAAoB,SAASt8E,EAAMw/B,GAItC,OAHA76C,KAAKqB,OACLrB,KAAK44F,SAASv9E,GAAM,EAAOw/B,GAC3B76C,KAAKk1F,YACEl1F,KAAKq2F,WAAWh7E,EAAM,wBAG/B46E,GAAK2B,oBAAsB,SAASv8E,GAMlC,OALArb,KAAKqB,OACLga,EAAKrW,KAAOhF,KAAKw4F,uBACjBx4F,KAAKgb,OAAOvb,KAAK62F,IACjBj7E,EAAKzN,KAAO5N,KAAKm2F,eAAe,SAChCn2F,KAAKgb,OAAOlV,MACL9F,KAAKq2F,WAAWh7E,EAAM,mBAG/B46E,GAAK4B,mBAAqB,SAASx8E,GAKjC,OAJIrb,KAAK8nE,QAAU9nE,KAAKu1F,MAAMv1F,KAAKQ,MAAO,yBAC1CR,KAAKqB,OACLga,EAAKqB,OAAS1c,KAAKw4F,uBACnBn9E,EAAKzN,KAAO5N,KAAKm2F,eAAe,QACzBn2F,KAAKq2F,WAAWh7E,EAAM,kBAG/B46E,GAAK8B,oBAAsB,SAAS18E,GAElC,OADArb,KAAKqB,OACErB,KAAKq2F,WAAWh7E,EAAM,mBAG/B46E,GAAKmC,sBAAwB,SAAS/8E,EAAM88E,EAAWnC,EAAMthF,GAC3D,IAAK,IAAImI,EAAM,EAAGtG,EAAOvW,KAAKgb,OAAQ6B,EAAMtG,EAAKpX,OAAQ0d,GAAO,EAElDtG,EAAKsG,GAEP1P,OAASgrF,GACfn4F,KAAKu1F,MAAMS,EAAKx1F,MAAO,UAAY23F,EAAY,yBAGrD,IADA,IAAIt9C,EAAO76C,KAAK+Z,KAAKgvE,OAAS,OAAS/oF,KAAK+Z,OAASwvE,GAAMmD,QAAU,SAAW,KACvExtF,EAAIc,KAAKgb,OAAO7b,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAChD,IAAI06F,EAAU55F,KAAKgb,OAAO9b,GAC1B,GAAI06F,EAAQC,iBAAmBx+E,EAAK7a,MAI3B,MAFPo5F,EAAQC,eAAiB75F,KAAKQ,MAC9Bo5F,EAAQ/+C,KAAOA,EAOnB,OAJA76C,KAAKgb,OAAOvb,KAAK,CAAC0N,KAAMgrF,EAAWt9C,KAAMA,EAAMg/C,eAAgB75F,KAAKQ,QACpE6a,EAAKzN,KAAO5N,KAAKm2F,eAAezhF,GAAwC,IAA9BA,EAAQjL,QAAQ,SAAkBiL,EAAU,QAAUA,EAAU,SAC1G1U,KAAKgb,OAAOlV,MACZuV,EAAKg5C,MAAQ2hC,EACNh2F,KAAKq2F,WAAWh7E,EAAM,qBAG/B46E,GAAK+B,yBAA2B,SAAS38E,EAAM26E,GAG7C,OAFA36E,EAAKa,WAAa85E,EAClBh2F,KAAKk1F,YACEl1F,KAAKq2F,WAAWh7E,EAAM,wBAO/B46E,GAAK6B,WAAa,SAASgC,EAAuBz+E,EAAM0+E,GAOtD,SAN+B,IAA1BD,IAAmCA,GAAwB,QAClD,IAATz+E,IAAkBA,EAAOrb,KAAKqzF,aAEnCh4E,EAAKzN,KAAO,GACZ5N,KAAKs1F,OAAO/L,GAAMM,QACdiQ,GAAyB95F,KAAK0yF,WAAW,GACtC1yF,KAAK+Z,OAASwvE,GAAMO,QAAQ,CACjC,IAAIoM,EAAOl2F,KAAKm2F,eAAe,MAC/B96E,EAAKzN,KAAKnO,KAAKy2F,GAKjB,OAHI6D,IAAc/5F,KAAK8nE,QAAS,GAChC9nE,KAAKqB,OACDy4F,GAAyB95F,KAAKu5F,YAC3Bv5F,KAAKq2F,WAAWh7E,EAAM,mBAO/B46E,GAAKyC,SAAW,SAASr9E,EAAMnJ,GAU7B,OATAmJ,EAAKnJ,KAAOA,EACZlS,KAAKs1F,OAAO/L,GAAMW,MAClB7uE,EAAKrW,KAAOhF,KAAK+Z,OAASwvE,GAAMW,KAAO,KAAOlqF,KAAKi0F,kBACnDj0F,KAAKs1F,OAAO/L,GAAMW,MAClB7uE,EAAK0C,OAAS/d,KAAK+Z,OAASwvE,GAAMS,OAAS,KAAOhqF,KAAKi0F,kBACvDj0F,KAAKs1F,OAAO/L,GAAMS,QAClB3uE,EAAKzN,KAAO5N,KAAKm2F,eAAe,OAChCn2F,KAAKu5F,YACLv5F,KAAKgb,OAAOlV,MACL9F,KAAKq2F,WAAWh7E,EAAM,iBAM/B46E,GAAK4C,WAAa,SAASx9E,EAAMnJ,GAC/B,IAAI8nF,EAAUh6F,KAAK+Z,OAASwvE,GAAMoE,IAyBlC,OAxBA3tF,KAAKqB,OAGW,wBAAd6Q,EAAK6H,MACwB,MAA7B7H,EAAKuF,aAAa,GAAGvF,QAElB8nF,GACDh6F,KAAKiI,QAAQ0+E,YAAc,GAC3B3mF,KAAK8nE,QACS,QAAd51D,EAAK2oC,MAC4B,eAAjC3oC,EAAKuF,aAAa,GAAGX,GAAGiD,OAG1B/Z,KAAKu1F,MACHrjF,EAAK1R,OACHw5F,EAAU,SAAW,UAAY,0DAGvC3+E,EAAKrB,KAAO9H,EACZmJ,EAAK6C,MAAQ87E,EAAUh6F,KAAKi0F,kBAAoBj0F,KAAKi6F,mBACrDj6F,KAAKs1F,OAAO/L,GAAMS,QAClB3uE,EAAKzN,KAAO5N,KAAKm2F,eAAe,OAChCn2F,KAAKu5F,YACLv5F,KAAKgb,OAAOlV,MACL9F,KAAKq2F,WAAWh7E,EAAM2+E,EAAU,iBAAmB,mBAK5D/D,GAAK2C,SAAW,SAASv9E,EAAM6+E,EAAOr/C,GAGpC,IAFAx/B,EAAK5D,aAAe,GACpB4D,EAAKw/B,KAAOA,IACH,CACP,IAAIs/C,EAAOn6F,KAAKqzF,YAYhB,GAXArzF,KAAKo6F,WAAWD,EAAMt/C,GAClB76C,KAAK40F,IAAIrL,GAAMsB,IACjBsP,EAAKjoF,KAAOlS,KAAKi6F,iBAAiBC,GAChB,UAATr/C,GAAsB76C,KAAK+Z,OAASwvE,GAAMoE,KAAQ3tF,KAAKiI,QAAQ0+E,aAAe,GAAK3mF,KAAK60F,aAAa,MAEpF,eAAjBsF,EAAKrjF,GAAGiD,MAA2BmgF,IAAUl6F,KAAK+Z,OAASwvE,GAAMoE,KAAO3tF,KAAK60F,aAAa,OAGnGsF,EAAKjoF,KAAO,KAFZlS,KAAKu1F,MAAMv1F,KAAK6xF,WAAY,4DAF5B7xF,KAAKg1F,aAMP35E,EAAK5D,aAAahY,KAAKO,KAAKq2F,WAAW8D,EAAM,wBACxCn6F,KAAK40F,IAAIrL,GAAMU,OAAU,MAEhC,OAAO5uE,GAGT46E,GAAKmE,WAAa,SAASD,EAAMt/C,GAC/Bs/C,EAAKrjF,GAAK9W,KAAK05F,mBACf15F,KAAK+4F,iBAAiBoB,EAAKrjF,GAAa,QAAT+jC,EApyBlB,EACI,GAmyBwD,IAG3E,IAAIs+C,GAAiB,EAAGC,GAAyB,EAuQjD,SAASiB,GAAwBC,EAAgBzgF,GAC/C,IAAI1M,EAAO0M,EAAQ5H,IAAI9E,KACnBotF,EAAOD,EAAentF,GAEtB9L,EAAO,OAMX,MALqB,qBAAjBwY,EAAQE,MAAiD,QAAjBF,EAAQghC,MAAmC,QAAjBhhC,EAAQghC,OAC5Ex5C,GAAQwY,EAAQzI,OAAS,IAAM,KAAOyI,EAAQghC,MAKrC,SAAT0/C,GAA4B,SAATl5F,GACV,SAATk5F,GAA4B,SAATl5F,GACV,SAATk5F,GAA4B,SAATl5F,GACV,SAATk5F,GAA4B,SAATl5F,GAEnBi5F,EAAentF,GAAQ,QAChB,KACGotF,IACVD,EAAentF,GAAQ9L,GAChB,GAMX,SAASm5F,GAAan/E,EAAMlO,GAC1B,IAAI6R,EAAW3D,EAAK2D,SAChB/M,EAAMoJ,EAAKpJ,IACf,OAAQ+M,IACO,eAAb/M,EAAI8H,MAAyB9H,EAAI9E,OAASA,GAC7B,YAAb8E,EAAI8H,MAAsB9H,EAAI7Q,QAAU+L,GAhS5C8oF,GAAKiD,cAAgB,SAAS79E,EAAMo/E,EAAWC,EAAqB1B,GAClEh5F,KAAK26F,aAAat/E,IACdrb,KAAKiI,QAAQ0+E,aAAe,GAAK3mF,KAAKiI,QAAQ0+E,aAAe,IAAMqS,KACjEh5F,KAAK+Z,OAASwvE,GAAMkC,MAASgP,EAAYrB,IACzCp5F,KAAKg1F,aACT35E,EAAK01E,UAAY/wF,KAAK40F,IAAIrL,GAAMkC,OAE9BzrF,KAAKiI,QAAQ0+E,aAAe,IAC5BtrE,EAAK8mC,QAAU62C,GAEfyB,EAAYtB,KACd99E,EAAKvE,GAjB8D,EAiBxD2jF,GAAiCz6F,KAAK+Z,OAASwvE,GAAMp8E,KAAO,KAAOnN,KAAKs4F,cAC/Ej9E,EAAKvE,IAAQ2jF,EAAYrB,IAKzBp5F,KAAK46F,gBAAgBv/E,EAAKvE,GAAK9W,KAAK8nE,QAAUzsD,EAAK01E,WAAa11E,EAAK8mC,MAASniD,KAAKmzF,oBA9zB5E,EACI,EACC,IA+zBlB,IAAI0H,EAAc76F,KAAKoyF,SAAU0I,EAAc96F,KAAKqyF,SAAU0I,EAAmB/6F,KAAKsyF,cAetF,OAdAtyF,KAAKoyF,SAAW,EAChBpyF,KAAKqyF,SAAW,EAChBryF,KAAKsyF,cAAgB,EACrBtyF,KAAK0yF,WAAW5B,GAAcz1E,EAAK8mC,MAAO9mC,EAAK01E,YAEzC0J,EAAYtB,KACd99E,EAAKvE,GAAK9W,KAAK+Z,OAASwvE,GAAMp8E,KAAOnN,KAAKs4F,aAAe,MAE7Dt4F,KAAKg7F,oBAAoB3/E,GACzBrb,KAAKi7F,kBAAkB5/E,EAAMq/E,GAAqB,GAElD16F,KAAKoyF,SAAWyI,EAChB76F,KAAKqyF,SAAWyI,EAChB96F,KAAKsyF,cAAgByI,EACd/6F,KAAKq2F,WAAWh7E,EAAOo/E,EAAYtB,GAAkB,sBAAwB,uBAGtFlD,GAAK+E,oBAAsB,SAAS3/E,GAClCrb,KAAKs1F,OAAO/L,GAAMQ,QAClB1uE,EAAKoD,OAASze,KAAKk7F,iBAAiB3R,GAAMS,QAAQ,EAAOhqF,KAAKiI,QAAQ0+E,aAAe,GACrF3mF,KAAK81F,kCAMPG,GAAKoB,WAAa,SAASh8E,EAAM8/E,GAC/Bn7F,KAAKqB,OAIL,IAAI+5F,EAAYp7F,KAAK8nE,OACrB9nE,KAAK8nE,QAAS,EAEd9nE,KAAKq7F,aAAahgF,EAAM8/E,GACxBn7F,KAAKs7F,gBAAgBjgF,GACrB,IAAIi/E,EAAiBt6F,KAAKu7F,iBACtBC,EAAYx7F,KAAKqzF,YACjBoI,GAAiB,EAGrB,IAFAD,EAAU5tF,KAAO,GACjB5N,KAAKs1F,OAAO/L,GAAMM,QACX7pF,KAAK+Z,OAASwvE,GAAMO,QAAQ,CACjC,IAAIjwE,EAAU7Z,KAAK07F,kBAAsC,OAApBrgF,EAAKwG,YACtChI,IACF2hF,EAAU5tF,KAAKnO,KAAKoa,GACC,qBAAjBA,EAAQE,MAAgD,gBAAjBF,EAAQghC,MAC7C4gD,GAAkBz7F,KAAKu1F,MAAM17E,EAAQrZ,MAAO,2CAChDi7F,GAAiB,GACa,sBAArB5hF,EAAQ5H,IAAI8H,MAAgCsgF,GAAwBC,EAAgBzgF,IAC7F7Z,KAAK01F,iBAAiB77E,EAAQ5H,IAAIzR,MAAQ,gBAAmBqZ,EAAQ5H,IAAQ,KAAI,gCAQvF,OAJAjS,KAAK8nE,OAASszB,EACdp7F,KAAKqB,OACLga,EAAKzN,KAAO5N,KAAKq2F,WAAWmF,EAAW,aACvCx7F,KAAK27F,gBACE37F,KAAKq2F,WAAWh7E,EAAM8/E,EAAc,mBAAqB,oBAGlElF,GAAKyF,kBAAoB,SAASE,GAChC,GAAI57F,KAAK40F,IAAIrL,GAAMW,MAAS,OAAO,KAEnC,IAAIvD,EAAc3mF,KAAKiI,QAAQ0+E,YAC3BtrE,EAAOrb,KAAKqzF,YACZwI,EAAU,GACVC,GAAc,EACd9C,GAAU,EACVn+C,EAAO,SAqBX,GAlBAx/B,EAAKjK,QAAS,EACVpR,KAAK80F,cAAc,YACjB90F,KAAK+7F,2BAA6B/7F,KAAK+Z,OAASwvE,GAAMkC,KACxDpwE,EAAKjK,QAAS,EAEdyqF,EAAU,WAGTA,GAAWlV,GAAe,GAAK3mF,KAAK80F,cAAc,YAChD90F,KAAK+7F,2BAA6B/7F,KAAK+Z,OAASwvE,GAAMkC,MAAUzrF,KAAKi1F,qBAGxE4G,EAAU,QAFV7C,GAAU,IAKT6C,IAAYlV,GAAe,IAAMqS,IAAYh5F,KAAK40F,IAAIrL,GAAMkC,QAC/DqQ,GAAc,IAEXD,IAAY7C,IAAY8C,EAAa,CACxC,IAAIE,EAAYh8F,KAAKoB,OACjBpB,KAAK80F,cAAc,QAAU90F,KAAK80F,cAAc,UAC9C90F,KAAK+7F,0BACPlhD,EAAOmhD,EAEPH,EAAUG,GAkBhB,GAZIH,GAGFxgF,EAAK2D,UAAW,EAChB3D,EAAKpJ,IAAMjS,KAAKi8F,YAAYj8F,KAAK4xF,aAAc5xF,KAAK2xF,iBACpDt2E,EAAKpJ,IAAI9E,KAAO0uF,EAChB77F,KAAKq2F,WAAWh7E,EAAKpJ,IAAK,eAE1BjS,KAAKk8F,sBAAsB7gF,GAIzBsrE,EAAc,IAAM3mF,KAAK+Z,OAASwvE,GAAMQ,QAAmB,WAATlvC,GAAqBihD,GAAe9C,EAAS,CACjG,IAAImD,GAAiB9gF,EAAKjK,QAAUopF,GAAan/E,EAAM,eACnD+gF,EAAoBD,GAAiBP,EAErCO,GAA0B,WAATthD,GAAqB76C,KAAKu1F,MAAMl6E,EAAKpJ,IAAIzR,MAAO,2CACrE6a,EAAKw/B,KAAOshD,EAAgB,cAAgBthD,EAC5C76C,KAAKq8F,iBAAiBhhF,EAAMygF,EAAa9C,EAASoD,QAElDp8F,KAAKs8F,gBAAgBjhF,GAGvB,OAAOA,GAGT46E,GAAK8F,wBAA0B,WAC7B,OACE/7F,KAAK+Z,OAASwvE,GAAMp8E,MACpBnN,KAAK+Z,OAASwvE,GAAME,WACpBzpF,KAAK+Z,OAASwvE,GAAM5pF,KACpBK,KAAK+Z,OAASwvE,GAAMvhF,QACpBhI,KAAK+Z,OAASwvE,GAAMI,UACpB3pF,KAAK+Z,KAAK6uE,SAIdqN,GAAKiG,sBAAwB,SAASriF,GAChC7Z,KAAK+Z,OAASwvE,GAAME,WACH,gBAAfzpF,KAAKoB,OACPpB,KAAKu1F,MAAMv1F,KAAKQ,MAAO,sDAEzBqZ,EAAQmF,UAAW,EACnBnF,EAAQ5H,IAAMjS,KAAKu8F,qBAEnBv8F,KAAKw8F,kBAAkB3iF,IAI3Bo8E,GAAKoG,iBAAmB,SAAS38C,EAAQo8C,EAAa9C,EAASoD,GAE7D,IAAInqF,EAAMytC,EAAOztC,IACG,gBAAhBytC,EAAO7E,MACLihD,GAAe97F,KAAKu1F,MAAMtjF,EAAIzR,MAAO,oCACrCw4F,GAAWh5F,KAAKu1F,MAAMtjF,EAAIzR,MAAO,yCAC5Bk/C,EAAOtuC,QAAUopF,GAAa96C,EAAQ,cAC/C1/C,KAAKu1F,MAAMtjF,EAAIzR,MAAO,0DAIxB,IAAIY,EAAQs+C,EAAOt+C,MAAQpB,KAAKy8F,YAAYX,EAAa9C,EAASoD,GAUlE,MAPoB,QAAhB18C,EAAO7E,MAA0C,IAAxBz5C,EAAMqd,OAAOtf,QACtCa,KAAK01F,iBAAiBt0F,EAAMZ,MAAO,gCACnB,QAAhBk/C,EAAO7E,MAA0C,IAAxBz5C,EAAMqd,OAAOtf,QACtCa,KAAK01F,iBAAiBt0F,EAAMZ,MAAO,wCACnB,QAAhBk/C,EAAO7E,MAA2C,gBAAzBz5C,EAAMqd,OAAO,GAAG1E,MACzC/Z,KAAK01F,iBAAiBt0F,EAAMqd,OAAO,GAAGje,MAAO,iCAE1CR,KAAKq2F,WAAW32C,EAAQ,qBAGjCu2C,GAAKqG,gBAAkB,SAASI,GAO9B,GANIlC,GAAakC,EAAO,eACtB18F,KAAKu1F,MAAMmH,EAAMzqF,IAAIzR,MAAO,kDACnBk8F,EAAMtrF,QAAUopF,GAAakC,EAAO,cAC7C18F,KAAKu1F,MAAMmH,EAAMzqF,IAAIzR,MAAO,uDAG1BR,KAAK40F,IAAIrL,GAAMsB,IAAK,CAEtB,IAAIrmE,EAAQxkB,KAAK2zF,mBACbD,EAAmBlvE,EAAMkvE,iBAC7BlvE,EAAMkvE,kBAAmB,EACzBgJ,EAAMt7F,MAAQpB,KAAKi6F,mBACnBz1E,EAAMkvE,iBAAmBA,OAEzBgJ,EAAMt7F,MAAQ,KAIhB,OAFApB,KAAKk1F,YAEEl1F,KAAKq2F,WAAWqG,EAAO,uBAGhCzG,GAAKoF,aAAe,SAAShgF,EAAM8/E,GAC7Bn7F,KAAK+Z,OAASwvE,GAAMp8E,MACtBkO,EAAKvE,GAAK9W,KAAKs4F,aACX6C,GACAn7F,KAAK46F,gBAAgBv/E,EAAKvE,GAzgCf,GAygCiC,MAE5B,IAAhBqkF,GACAn7F,KAAKg1F,aACT35E,EAAKvE,GAAK,OAIdm/E,GAAKqF,gBAAkB,SAASjgF,GAC9BA,EAAKwG,WAAa7hB,KAAK40F,IAAIrL,GAAM8D,UAAYrtF,KAAK28F,sBAAwB,MAG5E1G,GAAKsF,eAAiB,WACpB,IAAI1hF,EAAU,CAAC+iF,SAAU57F,OAAO+R,OAAO,MAAOyC,KAAM,IAEpD,OADAxV,KAAK4yF,iBAAiBnzF,KAAKoa,GACpBA,EAAQ+iF,UAGjB3G,GAAK0F,cAAgB,WAMnB,IALA,IAAIrN,EAAMtuF,KAAK4yF,iBAAiB9sF,MAC5B82F,EAAWtO,EAAIsO,SACfpnF,EAAO84E,EAAI94E,KACXs4D,EAAM9tE,KAAK4yF,iBAAiBzzF,OAC5B0kB,EAAiB,IAARiqD,EAAY,KAAO9tE,KAAK4yF,iBAAiB9kB,EAAM,GACnD5uE,EAAI,EAAGA,EAAIsW,EAAKrW,SAAUD,EAAG,CACpC,IAAI4X,EAAKtB,EAAKtW,GACToB,GAAIs8F,EAAU9lF,EAAG3J,QAChB0W,EACFA,EAAOrO,KAAK/V,KAAKqX,GAEjB9W,KAAK01F,iBAAiB5+E,EAAGtW,MAAQ,mBAAsBsW,EAAO,KAAI,+CA2C1Em/E,GAAKiC,YAAc,SAAS78E,EAAM6hD,GAGhC,GAFAl9D,KAAKqB,OAEDrB,KAAK40F,IAAIrL,GAAMkC,MAajB,OAZIzrF,KAAKiI,QAAQ0+E,aAAe,KAC1B3mF,KAAK80F,cAAc,OACrBz5E,EAAKwF,SAAW7gB,KAAKs4F,YAAW,GAChCt4F,KAAK68F,YAAY3/B,EAAS7hD,EAAKwF,SAAS1T,KAAMnN,KAAK4xF,eAEnDv2E,EAAKwF,SAAW,MAGpB7gB,KAAK+0F,iBAAiB,QAClB/0F,KAAK+Z,OAASwvE,GAAMvhF,QAAUhI,KAAKg1F,aACvC35E,EAAK7U,OAASxG,KAAK88F,gBACnB98F,KAAKk1F,YACEl1F,KAAKq2F,WAAWh7E,EAAM,wBAE/B,GAAIrb,KAAK40F,IAAIrL,GAAM2C,UAAW,CAE5B,IAAI8M,EACJ,GAFAh5F,KAAK68F,YAAY3/B,EAAS,UAAWl9D,KAAK4xF,cAEtC5xF,KAAK+Z,OAASwvE,GAAMgD,YAAcyM,EAAUh5F,KAAK42F,mBAAoB,CACvE,IAAImG,EAAQ/8F,KAAKqzF,YACjBrzF,KAAKqB,OACD23F,GAAWh5F,KAAKqB,OACpBga,EAAK/C,YAActY,KAAKk5F,cAAc6D,EArU2B,EAqUpB5D,IAAmC,EAAOH,QAClF,GAAIh5F,KAAK+Z,OAASwvE,GAAM6D,OAAQ,CACrC,IAAI4P,EAAQh9F,KAAKqzF,YACjBh4E,EAAK/C,YAActY,KAAKq3F,WAAW2F,EAAO,mBAE1C3hF,EAAK/C,YAActY,KAAKi6F,mBACxBj6F,KAAKk1F,YAEP,OAAOl1F,KAAKq2F,WAAWh7E,EAAM,4BAG/B,GAAIrb,KAAKi9F,6BACP5hF,EAAK/C,YAActY,KAAKm2F,eAAe,MACT,wBAA1B96E,EAAK/C,YAAYyB,KACjB/Z,KAAKk9F,oBAAoBhgC,EAAS7hD,EAAK/C,YAAYb,cAEnDzX,KAAK68F,YAAY3/B,EAAS7hD,EAAK/C,YAAYxB,GAAG3J,KAAMkO,EAAK/C,YAAYxB,GAAGtW,OAC5E6a,EAAK0F,WAAa,GAClB1F,EAAK7U,OAAS,SACT,CAGL,GAFA6U,EAAK/C,YAAc,KACnB+C,EAAK0F,WAAa/gB,KAAKm9F,sBAAsBjgC,GACzCl9D,KAAK80F,cAAc,QACjB90F,KAAK+Z,OAASwvE,GAAMvhF,QAAUhI,KAAKg1F,aACvC35E,EAAK7U,OAASxG,KAAK88F,oBACd,CACL,IAAK,IAAI59F,EAAI,EAAGqX,EAAO8E,EAAK0F,WAAY7hB,EAAIqX,EAAKpX,OAAQD,GAAK,EAAG,CAE/D,IAAIk+F,EAAO7mF,EAAKrX,GAEhBc,KAAKq9F,gBAAgBD,EAAK/uE,OAE1BruB,KAAKs9F,iBAAiBF,EAAK/uE,OAG7BhT,EAAK7U,OAAS,KAEhBxG,KAAKk1F,YAEP,OAAOl1F,KAAKq2F,WAAWh7E,EAAM,2BAG/B46E,GAAK4G,YAAc,SAAS3/B,EAAS/vD,EAAMxG,GACpCu2D,IACD58D,GAAI48D,EAAS/vD,IACbnN,KAAK01F,iBAAiB/uF,EAAK,qBAAuBwG,EAAO,KAC7D+vD,EAAQ/vD,IAAQ,IAGlB8oF,GAAKsH,mBAAqB,SAASrgC,EAASsgC,GAC1C,IAAIzjF,EAAOyjF,EAAIzjF,KACf,GAAa,eAATA,EACA/Z,KAAK68F,YAAY3/B,EAASsgC,EAAIrwF,KAAMqwF,EAAIh9F,YACvC,GAAa,kBAATuZ,EACL,IAAK,IAAI7a,EAAI,EAAGqX,EAAOinF,EAAIh6F,WAAYtE,EAAIqX,EAAKpX,OAAQD,GAAK,EAC7D,CACE,IAAI+a,EAAO1D,EAAKrX,GAEhBc,KAAKu9F,mBAAmBrgC,EAASjjD,QAElC,GAAa,iBAATF,EACL,IAAK,IAAI8C,EAAM,EAAGC,EAAS0gF,EAAI1jF,SAAU+C,EAAMC,EAAO3d,OAAQ0d,GAAO,EAAG,CACxE,IAAIiC,EAAMhC,EAAOD,GAEXiC,GAAO9e,KAAKu9F,mBAAmBrgC,EAASp+C,OAEhC,aAAT/E,EACL/Z,KAAKu9F,mBAAmBrgC,EAASsgC,EAAIp8F,OACvB,sBAAT2Y,EACL/Z,KAAKu9F,mBAAmBrgC,EAASsgC,EAAIxjF,MACvB,gBAATD,EACL/Z,KAAKu9F,mBAAmBrgC,EAASsgC,EAAIrjF,UACvB,4BAATJ,GACL/Z,KAAKu9F,mBAAmBrgC,EAASsgC,EAAIthF,aAG3C+5E,GAAKiH,oBAAsB,SAAShgC,EAASugC,GAC3C,GAAKvgC,EACL,IAAK,IAAIh+D,EAAI,EAAGqX,EAAOknF,EAAOv+F,EAAIqX,EAAKpX,OAAQD,GAAK,EAClD,CACA,IAAIi7F,EAAO5jF,EAAKrX,GAEhBc,KAAKu9F,mBAAmBrgC,EAASi9B,EAAKrjF,MAI1Cm/E,GAAKgH,2BAA6B,WAChC,MAA6B,QAAtBj9F,KAAK+Z,KAAK6uE,SACO,UAAtB5oF,KAAK+Z,KAAK6uE,SACY,UAAtB5oF,KAAK+Z,KAAK6uE,SACY,aAAtB5oF,KAAK+Z,KAAK6uE,SACV5oF,KAAKw2F,SACLx2F,KAAK42F,mBAKTX,GAAKkH,sBAAwB,SAASjgC,GACpC,IAAIt2C,EAAQ,GAAIjf,GAAQ,EAGxB,IADA3H,KAAKs1F,OAAO/L,GAAMM,SACV7pF,KAAK40F,IAAIrL,GAAMO,SAAS,CAC9B,GAAKniF,EAGIA,GAAQ,OADf,GADA3H,KAAKs1F,OAAO/L,GAAMU,OACdjqF,KAAKm1F,mBAAmB5L,GAAMO,QAAW,MAG/C,IAAIzuE,EAAOrb,KAAKqzF,YAChBh4E,EAAKgT,MAAQruB,KAAKs4F,YAAW,GAC7Bj9E,EAAKwF,SAAW7gB,KAAK80F,cAAc,MAAQ90F,KAAKs4F,YAAW,GAAQj9E,EAAKgT,MACxEruB,KAAK68F,YAAY3/B,EAAS7hD,EAAKwF,SAAS1T,KAAMkO,EAAKwF,SAASrgB,OAC5DomB,EAAMnnB,KAAKO,KAAKq2F,WAAWh7E,EAAM,oBAEnC,OAAOuL,GAKTqvE,GAAKgC,YAAc,SAAS58E,GAY1B,OAXArb,KAAKqB,OAEDrB,KAAK+Z,OAASwvE,GAAMvhF,QACtBqT,EAAK0F,WAAay4E,GAClBn+E,EAAK7U,OAASxG,KAAK88F,kBAEnBzhF,EAAK0F,WAAa/gB,KAAK09F,wBACvB19F,KAAK+0F,iBAAiB,QACtB15E,EAAK7U,OAASxG,KAAK+Z,OAASwvE,GAAMvhF,OAAShI,KAAK88F,gBAAkB98F,KAAKg1F,cAEzEh1F,KAAKk1F,YACEl1F,KAAKq2F,WAAWh7E,EAAM,sBAK/B46E,GAAKyH,sBAAwB,WAC3B,IAAI92E,EAAQ,GAAIjf,GAAQ,EACxB,GAAI3H,KAAK+Z,OAASwvE,GAAMp8E,KAAM,CAE5B,IAAIkO,EAAOrb,KAAKqzF,YAIhB,GAHAh4E,EAAKgT,MAAQruB,KAAKs4F,aAClBt4F,KAAK46F,gBAAgBv/E,EAAKgT,MAxvCX,GAyvCfzH,EAAMnnB,KAAKO,KAAKq2F,WAAWh7E,EAAM,4BAC5Brb,KAAK40F,IAAIrL,GAAMU,OAAU,OAAOrjE,EAEvC,GAAI5mB,KAAK+Z,OAASwvE,GAAMkC,KAAM,CAC5B,IAAIkS,EAAS39F,KAAKqzF,YAMlB,OALArzF,KAAKqB,OACLrB,KAAK+0F,iBAAiB,MACtB4I,EAAOtvE,MAAQruB,KAAKs4F,aACpBt4F,KAAK46F,gBAAgB+C,EAAOtvE,MAjwCb,GAkwCfzH,EAAMnnB,KAAKO,KAAKq2F,WAAWsH,EAAQ,6BAC5B/2E,EAGT,IADA5mB,KAAKs1F,OAAO/L,GAAMM,SACV7pF,KAAK40F,IAAIrL,GAAMO,SAAS,CAC9B,GAAKniF,EAGIA,GAAQ,OADf,GADA3H,KAAKs1F,OAAO/L,GAAMU,OACdjqF,KAAKm1F,mBAAmB5L,GAAMO,QAAW,MAG/C,IAAI8T,EAAS59F,KAAKqzF,YAClBuK,EAAO/sC,SAAW7wD,KAAKs4F,YAAW,GAC9Bt4F,KAAK80F,cAAc,MACrB8I,EAAOvvE,MAAQruB,KAAKs4F,cAEpBt4F,KAAKq9F,gBAAgBO,EAAO/sC,UAC5B+sC,EAAOvvE,MAAQuvE,EAAO/sC,UAExB7wD,KAAK46F,gBAAgBgD,EAAOvvE,MApxCb,GAqxCfzH,EAAMnnB,KAAKO,KAAKq2F,WAAWuH,EAAQ,oBAErC,OAAOh3E,GAITqvE,GAAKG,uBAAyB,SAASjwE,GACrC,IAAK,IAAIjnB,EAAI,EAAGA,EAAIinB,EAAWhnB,QAAUa,KAAK69F,qBAAqB13E,EAAWjnB,MAAOA,EACnFinB,EAAWjnB,GAAGunD,UAAYtgC,EAAWjnB,GAAGgd,WAAWjV,IAAI/G,MAAM,GAAI,IAGrE+1F,GAAK4H,qBAAuB,SAASpD,GACnC,MACqB,wBAAnBA,EAAU1gF,MACoB,YAA9B0gF,EAAUv+E,WAAWnC,MACiB,iBAA/B0gF,EAAUv+E,WAAW9a,QAEK,MAAhCpB,KAAKivF,MAAMwL,EAAUj6F,QAAmD,MAAhCR,KAAKivF,MAAMwL,EAAUj6F,SAIlE,IAAIs9F,GAAO9M,GAAO7wF,UAKlB29F,GAAKhF,aAAe,SAASz9E,EAAM0iF,EAAWtI,GAC5C,GAAIz1F,KAAKiI,QAAQ0+E,aAAe,GAAKtrE,EACnC,OAAQA,EAAKtB,MACb,IAAK,aACC/Z,KAAKgzF,SAAyB,UAAd33E,EAAKlO,MACrBnN,KAAKu1F,MAAMl6E,EAAK7a,MAAO,6DAC3B,MAEF,IAAK,gBACL,IAAK,eACL,IAAK,oBACL,IAAK,cACH,MAEF,IAAK,mBACH6a,EAAKtB,KAAO,gBACR07E,GAA0Bz1F,KAAKw1F,mBAAmBC,GAAwB,GAC9E,IAAK,IAAIv2F,EAAI,EAAGqX,EAAO8E,EAAK7X,WAAYtE,EAAIqX,EAAKpX,OAAQD,GAAK,EAAG,CAC/D,IAAI+a,EAAO1D,EAAKrX,GAElBc,KAAK84F,aAAa7+E,EAAM8jF,GAON,gBAAd9jF,EAAKF,MACmB,iBAAvBE,EAAKE,SAASJ,MAAkD,kBAAvBE,EAAKE,SAASJ,MAExD/Z,KAAKu1F,MAAMt7E,EAAKE,SAAS3Z,MAAO,oBAGpC,MAEF,IAAK,WAEe,SAAd6a,EAAKw/B,MAAmB76C,KAAKu1F,MAAMl6E,EAAKpJ,IAAIzR,MAAO,iDACvDR,KAAK84F,aAAaz9E,EAAKja,MAAO28F,GAC9B,MAEF,IAAK,kBACH1iF,EAAKtB,KAAO,eACR07E,GAA0Bz1F,KAAKw1F,mBAAmBC,GAAwB,GAC9Ez1F,KAAKg+F,iBAAiB3iF,EAAKvB,SAAUikF,GACrC,MAEF,IAAK,gBACH1iF,EAAKtB,KAAO,cACZ/Z,KAAK84F,aAAaz9E,EAAKlB,SAAU4jF,GACN,sBAAvB1iF,EAAKlB,SAASJ,MACd/Z,KAAKu1F,MAAMl6E,EAAKlB,SAAS3Z,MAAO,6CACpC,MAEF,IAAK,uBACmB,MAAlB6a,EAAK4rC,UAAoBjnD,KAAKu1F,MAAMl6E,EAAKrB,KAAKvZ,IAAK,+DACvD4a,EAAKtB,KAAO,2BACLsB,EAAK4rC,SACZjnD,KAAK84F,aAAaz9E,EAAKrB,KAAM+jF,GAC7B,MAEF,IAAK,0BACH/9F,KAAK84F,aAAaz9E,EAAKa,WAAY6hF,EAAWtI,GAC9C,MAEF,IAAK,kBACHz1F,KAAK01F,iBAAiBr6E,EAAK7a,MAAO,qDAClC,MAEF,IAAK,mBACH,IAAKu9F,EAAa,MAEpB,QACE/9F,KAAKu1F,MAAMl6E,EAAK7a,MAAO,4BAEhBi1F,GAA0Bz1F,KAAKw1F,mBAAmBC,GAAwB,GACrF,OAAOp6E,GAKTyiF,GAAKE,iBAAmB,SAASC,EAAUF,GAEzC,IADA,IAAIt9F,EAAMw9F,EAAS9+F,OACVD,EAAI,EAAGA,EAAIuB,EAAKvB,IAAK,CAC5B,IAAI4f,EAAMm/E,EAAS/+F,GACf4f,GAAO9e,KAAK84F,aAAah6E,EAAKi/E,GAEpC,GAAIt9F,EAAK,CACP,IAAIoK,EAAOozF,EAASx9F,EAAM,GACO,IAA7BT,KAAKiI,QAAQ0+E,aAAqBoX,GAAalzF,GAAsB,gBAAdA,EAAKkP,MAAiD,eAAvBlP,EAAKsP,SAASJ,MACpG/Z,KAAKg1F,WAAWnqF,EAAKsP,SAAS3Z,OAEpC,OAAOy9F,GAKTH,GAAKI,YAAc,SAASzI,GAC1B,IAAIp6E,EAAOrb,KAAKqzF,YAGhB,OAFArzF,KAAKqB,OACLga,EAAKlB,SAAWna,KAAKi6F,kBAAiB,EAAOxE,GACtCz1F,KAAKq2F,WAAWh7E,EAAM,kBAG/ByiF,GAAKK,iBAAmB,WACtB,IAAI9iF,EAAOrb,KAAKqzF,YAShB,OARArzF,KAAKqB,OAG4B,IAA7BrB,KAAKiI,QAAQ0+E,aAAqB3mF,KAAK+Z,OAASwvE,GAAMp8E,MACtDnN,KAAKg1F,aAET35E,EAAKlB,SAAWna,KAAK05F,mBAEd15F,KAAKq2F,WAAWh7E,EAAM,gBAK/ByiF,GAAKpE,iBAAmB,WACtB,GAAI15F,KAAKiI,QAAQ0+E,aAAe,EAC9B,OAAQ3mF,KAAK+Z,MACb,KAAKwvE,GAAMI,SACT,IAAItuE,EAAOrb,KAAKqzF,YAGhB,OAFArzF,KAAKqB,OACLga,EAAKvB,SAAW9Z,KAAKk7F,iBAAiB3R,GAAMK,UAAU,GAAM,GACrD5pF,KAAKq2F,WAAWh7E,EAAM,gBAE/B,KAAKkuE,GAAMM,OACT,OAAO7pF,KAAKo+F,UAAS,GAGzB,OAAOp+F,KAAKs4F,cAGdwF,GAAK5C,iBAAmB,SAAShiE,EAAOmlE,EAAYC,GAElD,IADA,IAAIC,EAAO,GAAI52F,GAAQ,GACf3H,KAAK40F,IAAI17D,IAGf,GAFIvxB,EAASA,GAAQ,EACd3H,KAAKs1F,OAAO/L,GAAMU,OACrBoU,GAAcr+F,KAAK+Z,OAASwvE,GAAMU,MACpCsU,EAAK9+F,KAAK,UACL,CAAA,GAAI6+F,GAAsBt+F,KAAKm1F,mBAAmBj8D,GACvD,MACK,GAAIl5B,KAAK+Z,OAASwvE,GAAMmB,SAAU,CACvC,IAAI8T,EAAOx+F,KAAKm+F,mBAChBn+F,KAAKy+F,qBAAqBD,GAC1BD,EAAK9+F,KAAK++F,GACNx+F,KAAK+Z,OAASwvE,GAAMU,OAASjqF,KAAKu1F,MAAMv1F,KAAKQ,MAAO,iDACxDR,KAAKs1F,OAAOp8D,GACZ,MAEA,IAAIwlE,EAAO1+F,KAAK2+F,kBAAkB3+F,KAAKQ,MAAOR,KAAK2wF,UACnD3wF,KAAKy+F,qBAAqBC,GAC1BH,EAAK9+F,KAAKi/F,GAGd,OAAOH,GAGTT,GAAKW,qBAAuB,SAAS7kF,GACnC,OAAOA,GAKTkkF,GAAKa,kBAAoB,SAAS1N,EAAUN,EAAU32E,GAEpD,GADAA,EAAOA,GAAQha,KAAK05F,mBAChB15F,KAAKiI,QAAQ0+E,YAAc,IAAM3mF,KAAK40F,IAAIrL,GAAMsB,IAAO,OAAO7wE,EAClE,IAAIqB,EAAOrb,KAAKi8F,YAAYhL,EAAUN,GAGtC,OAFAt1E,EAAKrB,KAAOA,EACZqB,EAAK6C,MAAQle,KAAKi6F,mBACXj6F,KAAKq2F,WAAWh7E,EAAM,sBAmE/ByiF,GAAKlD,gBAAkB,SAAS5E,EAAM4I,EAAaC,QAC5B,IAAhBD,IAAyBA,EAjiDhB,GAmiDd,IAAIE,EAniDU,IAmiDDF,EAEb,OAAQ5I,EAAKj8E,MACb,IAAK,aACC/Z,KAAK8nE,QAAU9nE,KAAKqxF,wBAAwBrsF,KAAKgxF,EAAK7oF,OACtDnN,KAAK01F,iBAAiBM,EAAKx1F,OAAQs+F,EAAS,WAAa,iBAAmB9I,EAAK7oF,KAAO,mBACxF2xF,IAviDW,IAwiDTF,GAA8C,QAAd5I,EAAK7oF,MACrCnN,KAAK01F,iBAAiBM,EAAKx1F,MAAO,+CAClCq+F,IACEv+F,GAAIu+F,EAAc7I,EAAK7oF,OACvBnN,KAAK01F,iBAAiBM,EAAKx1F,MAAO,uBACtCq+F,EAAa7I,EAAK7oF,OAAQ,GA1iDf,IA4iDTyxF,GAAgC5+F,KAAK++F,YAAY/I,EAAK7oF,KAAMyxF,EAAa5I,EAAKx1F,QAEpF,MAEF,IAAK,kBACHR,KAAK01F,iBAAiBM,EAAKx1F,MAAO,qDAClC,MAEF,IAAK,mBACCs+F,GAAU9+F,KAAK01F,iBAAiBM,EAAKx1F,MAAO,6BAChD,MAEF,IAAK,0BAEH,OADIs+F,GAAU9+F,KAAK01F,iBAAiBM,EAAKx1F,MAAO,oCACzCR,KAAK46F,gBAAgB5E,EAAK95E,WAAY0iF,EAAaC,GAE5D,QACE7+F,KAAKu1F,MAAMS,EAAKx1F,OAAQs+F,EAAS,UAAY,gBAAkB,aAInEhB,GAAK/E,iBAAmB,SAAS/C,EAAM4I,EAAaC,GAGlD,YAFqB,IAAhBD,IAAyBA,EAvkDhB,GAykDN5I,EAAKj8E,MACb,IAAK,gBACH,IAAK,IAAI7a,EAAI,EAAGqX,EAAOy/E,EAAKxyF,WAAYtE,EAAIqX,EAAKpX,OAAQD,GAAK,EAAG,CAC/D,IAAI+a,EAAO1D,EAAKrX,GAElBc,KAAKg/F,sBAAsB/kF,EAAM2kF,EAAaC,GAE9C,MAEF,IAAK,eACH,IAAK,IAAIhiF,EAAM,EAAGC,EAASk5E,EAAKl8E,SAAU+C,EAAMC,EAAO3d,OAAQ0d,GAAO,EAAG,CACvE,IAAI6hF,EAAO5hF,EAAOD,GAEhB6hF,GAAQ1+F,KAAKg/F,sBAAsBN,EAAME,EAAaC,GAE1D,MAEF,QACE7+F,KAAK46F,gBAAgB5E,EAAM4I,EAAaC,KAI5Cf,GAAKkB,sBAAwB,SAAShJ,EAAM4I,EAAaC,GAGvD,YAFqB,IAAhBD,IAAyBA,EAhmDhB,GAkmDN5I,EAAKj8E,MACb,IAAK,WAEH/Z,KAAKg/F,sBAAsBhJ,EAAK50F,MAAOw9F,EAAaC,GACpD,MAEF,IAAK,oBACH7+F,KAAK+4F,iBAAiB/C,EAAKh8E,KAAM4kF,EAAaC,GAC9C,MAEF,IAAK,cACH7+F,KAAK+4F,iBAAiB/C,EAAK77E,SAAUykF,EAAaC,GAClD,MAEF,QACE7+F,KAAK+4F,iBAAiB/C,EAAM4I,EAAaC,KAM7C,IAAII,GAAOjO,GAAO7wF,UAsPlB,SAAS++F,GAAqB7jF,GAC5B,MACgB,qBAAdA,EAAKtB,MAAsD,sBAAvBsB,EAAKoF,SAAS1G,MACpC,oBAAdsB,EAAKtB,MAA8BmlF,GAAqB7jF,EAAKa,YAlPjE+iF,GAAKE,eAAiB,SAASllF,EAAMmlF,EAAU3J,GAC7C,KAAIz1F,KAAKiI,QAAQ0+E,aAAe,GAAmB,kBAAd1sE,EAAKF,MAEtC/Z,KAAKiI,QAAQ0+E,aAAe,IAAM1sE,EAAK+E,UAAY/E,EAAKylC,QAAUzlC,EAAKs8C,YAA3E,CAEA,IACIppD,EADA8E,EAAMgI,EAAKhI,IAEf,OAAQA,EAAI8H,MACZ,IAAK,aAAc5M,EAAO8E,EAAI9E,KAAM,MACpC,IAAK,UAAWA,EAAOqnB,OAAOviB,EAAI7Q,OAAQ,MAC1C,QAAS,OAET,IAAIy5C,EAAO5gC,EAAK4gC,KAChB,GAAI76C,KAAKiI,QAAQ0+E,aAAe,EACjB,cAATx5E,GAAiC,SAAT0tC,IACtBukD,EAASC,QACP5J,EACEA,EAAuBf,YAAc,IACrCe,EAAuBf,YAAcziF,EAAIzR,OAEtCR,KAAK01F,iBAAiBzjF,EAAIzR,MAAO,uCAE5C4+F,EAASC,OAAQ,OATrB,CAcA,IAAIC,EAAQF,EADZjyF,EAAO,IAAMA,GAETmyF,GAEW,SAATzkD,EACa76C,KAAK8nE,QAAUw3B,EAAMptF,MAAQotF,EAAMltF,KAAOktF,EAAMjtF,IAEhDitF,EAAMptF,MAAQotF,EAAMzkD,KAGjC76C,KAAK01F,iBAAiBzjF,EAAIzR,MAAO,4BAErC8+F,EAAQF,EAASjyF,GAAQ,CACvB+E,MAAM,EACNE,KAAK,EACLC,KAAK,GAGTitF,EAAMzkD,IAAQ,KAkBhBokD,GAAKhL,gBAAkB,SAASsL,EAAS9J,GACvC,IAAIxE,EAAWjxF,KAAKQ,MAAOmwF,EAAW3wF,KAAK2wF,SACvCqF,EAAOh2F,KAAKi6F,iBAAiBsF,EAAS9J,GAC1C,GAAIz1F,KAAK+Z,OAASwvE,GAAMU,MAAO,CAC7B,IAAI5uE,EAAOrb,KAAKi8F,YAAYhL,EAAUN,GAEtC,IADAt1E,EAAKqE,YAAc,CAACs2E,GACbh2F,KAAK40F,IAAIrL,GAAMU,QAAU5uE,EAAKqE,YAAYjgB,KAAKO,KAAKi6F,iBAAiBsF,EAAS9J,IACrF,OAAOz1F,KAAKq2F,WAAWh7E,EAAM,sBAE/B,OAAO26E,GAMTiJ,GAAKhF,iBAAmB,SAASsF,EAAS9J,EAAwB+J,GAChE,GAAIx/F,KAAK60F,aAAa,SAAU,CAC9B,GAAI70F,KAAK+yF,YAAe,OAAO/yF,KAAKy/F,WAAWF,GAGxCv/F,KAAK+xF,aAAc,EAG5B,IAAI2N,GAAyB,EAAOC,GAAkB,EAAGC,GAAoB,EACzEnK,GACFkK,EAAiBlK,EAAuBjB,oBACxCoL,EAAmBnK,EAAuBlB,cAC1CkB,EAAuBjB,oBAAsBiB,EAAuBlB,eAAiB,IAErFkB,EAAyB,IAAIpB,GAC7BqL,GAAyB,GAG3B,IAAIzO,EAAWjxF,KAAKQ,MAAOmwF,EAAW3wF,KAAK2wF,SACvC3wF,KAAK+Z,OAASwvE,GAAMQ,QAAU/pF,KAAK+Z,OAASwvE,GAAMp8E,OACpDnN,KAAKkyF,iBAAmBlyF,KAAKQ,MAC7BR,KAAKmyF,yBAAuC,UAAZoN,GAElC,IAAIvlF,EAAOha,KAAK6/F,sBAAsBN,EAAS9J,GAE/C,GADI+J,IAAkBxlF,EAAOwlF,EAAel5F,KAAKtG,KAAMga,EAAMi3E,EAAUN,IACnE3wF,KAAK+Z,KAAKivE,SAAU,CACtB,IAAI3tE,EAAOrb,KAAKi8F,YAAYhL,EAAUN,GAgBtC,OAfAt1E,EAAK4rC,SAAWjnD,KAAKoB,MACjBpB,KAAK+Z,OAASwvE,GAAMsB,KACpB7wE,EAAOha,KAAK84F,aAAa9+E,GAAM,EAAOy7E,IACrCiK,IACHjK,EAAuBjB,oBAAsBiB,EAAuBlB,cAAgBkB,EAAuBf,aAAe,GAExHe,EAAuBnB,iBAAmBt6E,EAAKxZ,QAC/Ci1F,EAAuBnB,iBAAmB,GAC1Ct0F,KAAK+Z,OAASwvE,GAAMsB,GACpB7qF,KAAK+4F,iBAAiB/+E,GAEtBha,KAAK46F,gBAAgB5gF,GACzBqB,EAAKrB,KAAOA,EACZha,KAAKqB,OACLga,EAAK6C,MAAQle,KAAKi6F,iBAAiBsF,GAC5Bv/F,KAAKq2F,WAAWh7E,EAAM,wBAM/B,OAJMqkF,GAA0B1/F,KAAK41F,sBAAsBH,GAAwB,GAE/EkK,GAAkB,IAAKlK,EAAuBjB,oBAAsBmL,GACpEC,GAAoB,IAAKnK,EAAuBlB,cAAgBqL,GAC7D5lF,GAKTilF,GAAKY,sBAAwB,SAASN,EAAS9J,GAC7C,IAAIxE,EAAWjxF,KAAKQ,MAAOmwF,EAAW3wF,KAAK2wF,SACvCqF,EAAOh2F,KAAK8/F,aAAaP,EAAS9J,GACtC,GAAIz1F,KAAK41F,sBAAsBH,GAA2B,OAAOO,EACjE,GAAIh2F,KAAK40F,IAAIrL,GAAMc,UAAW,CAC5B,IAAIhvE,EAAOrb,KAAKi8F,YAAYhL,EAAUN,GAKtC,OAJAt1E,EAAKrW,KAAOgxF,EACZ36E,EAAKe,WAAapc,KAAKi6F,mBACvBj6F,KAAKs1F,OAAO/L,GAAMY,OAClB9uE,EAAKgB,UAAYrc,KAAKi6F,iBAAiBsF,GAChCv/F,KAAKq2F,WAAWh7E,EAAM,yBAE/B,OAAO26E,GAKTiJ,GAAKa,aAAe,SAASP,EAAS9J,GACpC,IAAIxE,EAAWjxF,KAAKQ,MAAOmwF,EAAW3wF,KAAK2wF,SACvCqF,EAAOh2F,KAAK+/F,gBAAgBtK,GAAwB,GACxD,OAAIz1F,KAAK41F,sBAAsBH,IACxBO,EAAKx1F,QAAUywF,GAA0B,4BAAd+E,EAAKj8E,KAD0Bi8E,EACkBh2F,KAAKggG,YAAYhK,EAAM/E,EAAUN,GAAW,EAAG4O,IASpIN,GAAKe,YAAc,SAAShmF,EAAMimF,EAAcC,EAAcC,EAASZ,GACrE,IAAInW,EAAOppF,KAAK+Z,KAAKmvE,MACrB,GAAY,MAARE,KAAkBmW,GAAWv/F,KAAK+Z,OAASwvE,GAAMoE,MAC/CvE,EAAO+W,EAAS,CAClB,IAAIC,EAAUpgG,KAAK+Z,OAASwvE,GAAMwB,WAAa/qF,KAAK+Z,OAASwvE,GAAMyB,WAC/DY,EAAW5rF,KAAK+Z,OAASwvE,GAAMqC,SAC/BA,IAGFxC,EAAOG,GAAMyB,WAAW9B,OAE1B,IAAI3xB,EAAKv3D,KAAKoB,MACdpB,KAAKqB,OACL,IAAI4vF,EAAWjxF,KAAKQ,MAAOmwF,EAAW3wF,KAAK2wF,SACvCzyE,EAAQle,KAAKggG,YAAYhgG,KAAK+/F,gBAAgB,MAAM,GAAQ9O,EAAUN,EAAUvH,EAAMmW,GACtFlkF,EAAOrb,KAAKqgG,YAAYJ,EAAcC,EAAclmF,EAAMkE,EAAOq5C,EAAI6oC,GAAWxU,GAIpF,OAHKwU,GAAWpgG,KAAK+Z,OAASwvE,GAAMqC,UAAcA,IAAa5rF,KAAK+Z,OAASwvE,GAAMwB,WAAa/qF,KAAK+Z,OAASwvE,GAAMyB,cAClHhrF,KAAK01F,iBAAiB11F,KAAKQ,MAAO,4FAE7BR,KAAKggG,YAAY3kF,EAAM4kF,EAAcC,EAAcC,EAASZ,GAGvE,OAAOvlF,GAGTilF,GAAKoB,YAAc,SAASpP,EAAUN,EAAU32E,EAAMkE,EAAOq5C,EAAI6oC,GAC/D,IAAI/kF,EAAOrb,KAAKi8F,YAAYhL,EAAUN,GAItC,OAHAt1E,EAAKrB,KAAOA,EACZqB,EAAK4rC,SAAWsQ,EAChBl8C,EAAK6C,MAAQA,EACNle,KAAKq2F,WAAWh7E,EAAM+kF,EAAU,oBAAsB,qBAK/DnB,GAAKc,gBAAkB,SAAStK,EAAwB6K,EAAUxV,GAChE,IAAqDkL,EAAjD/E,EAAWjxF,KAAKQ,MAAOmwF,EAAW3wF,KAAK2wF,SAC3C,GAAI3wF,KAAK60F,aAAa,WAAa70F,KAAKgzF,UAAahzF,KAAK8yF,YAAc9yF,KAAKiI,QAAQynF,2BACnFsG,EAAOh2F,KAAKugG,aACZD,GAAW,OACN,GAAItgG,KAAK+Z,KAAKu9C,OAAQ,CAC3B,IAAIj8C,EAAOrb,KAAKqzF,YAAat1E,EAAS/d,KAAK+Z,OAASwvE,GAAMuB,OAC1DzvE,EAAK4rC,SAAWjnD,KAAKoB,MACrBia,EAAKi8C,QAAS,EACdt3D,KAAKqB,OACLga,EAAKlB,SAAWna,KAAK+/F,gBAAgB,MAAM,EAAMhiF,GACjD/d,KAAK41F,sBAAsBH,GAAwB,GAC/C13E,EAAU/d,KAAK46F,gBAAgBv/E,EAAKlB,UAC/Bna,KAAK8nE,QAA4B,WAAlBzsD,EAAK4rC,UACG,eAAvB5rC,EAAKlB,SAASJ,KACnB/Z,KAAK01F,iBAAiBr6E,EAAK7a,MAAO,0CACX,WAAlB6a,EAAK4rC,UAAyBi4C,GAAqB7jF,EAAKlB,UAC7Dna,KAAK01F,iBAAiBr6E,EAAK7a,MAAO,qCAC/B8/F,GAAW,EAClBtK,EAAOh2F,KAAKq2F,WAAWh7E,EAAM0C,EAAS,mBAAqB,uBACtD,CAEL,GADAi4E,EAAOh2F,KAAK28F,oBAAoBlH,GAC5Bz1F,KAAK41F,sBAAsBH,GAA2B,OAAOO,EACjE,KAAOh2F,KAAK+Z,KAAKkvE,UAAYjpF,KAAKi1F,sBAAsB,CACtD,IAAI0I,EAAS39F,KAAKi8F,YAAYhL,EAAUN,GACxCgN,EAAO12C,SAAWjnD,KAAKoB,MACvBu8F,EAAOrmC,QAAS,EAChBqmC,EAAOxjF,SAAW67E,EAClBh2F,KAAK46F,gBAAgB5E,GACrBh2F,KAAKqB,OACL20F,EAAOh2F,KAAKq2F,WAAWsH,EAAQ,qBAInC,OAAK7S,IAAU9qF,KAAK40F,IAAIrL,GAAMoC,UAMrBqK,EALHsK,OACAtgG,KAAKg1F,WAAWh1F,KAAK4xF,cAEd5xF,KAAKqgG,YAAYpP,EAAUN,EAAUqF,EAAMh2F,KAAK+/F,gBAAgB,MAAM,GAAQ,MAAM,IAenGd,GAAKtC,oBAAsB,SAASlH,GAClC,IAAIxE,EAAWjxF,KAAKQ,MAAOmwF,EAAW3wF,KAAK2wF,SACvCqF,EAAOh2F,KAAK88F,cAAcrH,GAC9B,GAAkB,4BAAdO,EAAKj8E,MAA+F,MAAzD/Z,KAAKivF,MAAM/uF,MAAMF,KAAK4xF,aAAc5xF,KAAK6xF,YACpF,OAAOmE,EACX,IAAIp2F,EAASI,KAAKwgG,gBAAgBxK,EAAM/E,EAAUN,GAMlD,OALI8E,GAA0C,qBAAhB71F,EAAOma,OAC/B07E,EAAuBjB,qBAAuB50F,EAAOY,QAASi1F,EAAuBjB,qBAAuB,GAC5GiB,EAAuBhB,mBAAqB70F,EAAOY,QAASi1F,EAAuBhB,mBAAqB,GACxGgB,EAAuBlB,eAAiB30F,EAAOY,QAASi1F,EAAuBlB,eAAiB,IAE/F30F,GAGTq/F,GAAKuB,gBAAkB,SAASzpF,EAAMk6E,EAAUN,EAAU8P,GAMxD,IALA,IAAIC,EAAkB1gG,KAAKiI,QAAQ0+E,aAAe,GAAmB,eAAd5vE,EAAKgD,MAAuC,UAAdhD,EAAK5J,MACtFnN,KAAK6xF,aAAe96E,EAAKtW,MAAQT,KAAKi1F,sBAAwBl+E,EAAKtW,IAAMsW,EAAKvW,OAAU,GACxFR,KAAKkyF,mBAAqBn7E,EAAKvW,MAC/BmgG,GAAkB,IAET,CACX,IAAI9mF,EAAU7Z,KAAK4gG,eAAe7pF,EAAMk6E,EAAUN,EAAU8P,EAASC,EAAiBC,GAGtF,GADI9mF,EAAQgnF,WAAYF,GAAkB,GACtC9mF,IAAY9C,GAAyB,4BAAjB8C,EAAQE,KAAoC,CAClE,GAAI4mF,EAAiB,CACnB,IAAIG,EAAY9gG,KAAKi8F,YAAYhL,EAAUN,GAC3CmQ,EAAU5kF,WAAarC,EACvBA,EAAU7Z,KAAKq2F,WAAWyK,EAAW,mBAEvC,OAAOjnF,EAGT9C,EAAO8C,IAIXolF,GAAK2B,eAAiB,SAAS7pF,EAAMk6E,EAAUN,EAAU8P,EAASC,EAAiBC,GACjF,IAAII,EAAoB/gG,KAAKiI,QAAQ0+E,aAAe,GAChDka,EAAWE,GAAqB/gG,KAAK40F,IAAIrL,GAAMe,aAC/CmW,GAAWI,GAAY7gG,KAAKu1F,MAAMv1F,KAAK4xF,aAAc,oEAEzD,IAAI5yE,EAAWhf,KAAK40F,IAAIrL,GAAMI,UAC9B,GAAI3qE,GAAa6hF,GAAY7gG,KAAK+Z,OAASwvE,GAAMQ,QAAU/pF,KAAK+Z,OAASwvE,GAAMoB,WAAc3qF,KAAK40F,IAAIrL,GAAMa,KAAM,CAChH,IAAI/uE,EAAOrb,KAAKi8F,YAAYhL,EAAUN,GACtCt1E,EAAKqB,OAAS3F,EACViI,GACF3D,EAAKoF,SAAWzgB,KAAKi0F,kBACrBj0F,KAAKs1F,OAAO/L,GAAMK,WACT5pF,KAAK+Z,OAASwvE,GAAME,WAA2B,UAAd1yE,EAAKgD,KAC/CsB,EAAKoF,SAAWzgB,KAAKu8F,oBAErBlhF,EAAKoF,SAAWzgB,KAAKs4F,WAA0C,UAA/Bt4F,KAAKiI,QAAQsnF,eAE/Cl0E,EAAK2D,WAAaA,EACd+hF,IACF1lF,EAAKwlF,SAAWA,GAElB9pF,EAAO/W,KAAKq2F,WAAWh7E,EAAM,yBACxB,IAAKolF,GAAWzgG,KAAK40F,IAAIrL,GAAMQ,QAAS,CAC7C,IAAI0L,EAAyB,IAAIpB,GAAqBwG,EAAc76F,KAAKoyF,SAAU0I,EAAc96F,KAAKqyF,SAAU0I,EAAmB/6F,KAAKsyF,cACxItyF,KAAKoyF,SAAW,EAChBpyF,KAAKqyF,SAAW,EAChBryF,KAAKsyF,cAAgB,EACrB,IAAI2L,EAAWj+F,KAAKghG,cAAczX,GAAMS,OAAQhqF,KAAKiI,QAAQ0+E,aAAe,GAAG,EAAO8O,GACtF,GAAIiL,IAAoBG,IAAa7gG,KAAKi1F,sBAAwBj1F,KAAK40F,IAAIrL,GAAMgB,OAQ/E,OAPAvqF,KAAKw1F,mBAAmBC,GAAwB,GAChDz1F,KAAK81F,iCACD91F,KAAKsyF,cAAgB,GACrBtyF,KAAKu1F,MAAMv1F,KAAKsyF,cAAe,6DACnCtyF,KAAKoyF,SAAWyI,EAChB76F,KAAKqyF,SAAWyI,EAChB96F,KAAKsyF,cAAgByI,EACd/6F,KAAKihG,qBAAqBjhG,KAAKi8F,YAAYhL,EAAUN,GAAWsN,GAAU,GAEnFj+F,KAAK41F,sBAAsBH,GAAwB,GACnDz1F,KAAKoyF,SAAWyI,GAAe76F,KAAKoyF,SACpCpyF,KAAKqyF,SAAWyI,GAAe96F,KAAKqyF,SACpCryF,KAAKsyF,cAAgByI,GAAoB/6F,KAAKsyF,cAC9C,IAAIqL,EAAS39F,KAAKi8F,YAAYhL,EAAUN,GACxCgN,EAAOp9E,OAASxJ,EAChB4mF,EAAOjwF,UAAYuwF,EACf8C,IACFpD,EAAOkD,SAAWA,GAEpB9pF,EAAO/W,KAAKq2F,WAAWsH,EAAQ,uBAC1B,GAAI39F,KAAK+Z,OAASwvE,GAAMoB,UAAW,EACpCkW,GAAYF,IACd3gG,KAAKu1F,MAAMv1F,KAAKQ,MAAO,6EAEzB,IAAIo9F,EAAS59F,KAAKi8F,YAAYhL,EAAUN,GACxCiN,EAAOp8E,IAAMzK,EACb6mF,EAAOn8E,MAAQzhB,KAAKkhG,cAAc,CAACC,UAAU,IAC7CpqF,EAAO/W,KAAKq2F,WAAWuH,EAAQ,4BAEjC,OAAO7mF,GAQTkoF,GAAKnC,cAAgB,SAASrH,GAGxBz1F,KAAK+Z,OAASwvE,GAAMmC,OAAS1rF,KAAKohG,aAEtC,IAAI/lF,EAAMgmF,EAAarhG,KAAKkyF,mBAAqBlyF,KAAKQ,MACtD,OAAQR,KAAK+Z,MACb,KAAKwvE,GAAM4D,OAeT,OAdKntF,KAAKizF,YACNjzF,KAAKu1F,MAAMv1F,KAAKQ,MAAO,oCAC3B6a,EAAOrb,KAAKqzF,YACZrzF,KAAKqB,OACDrB,KAAK+Z,OAASwvE,GAAMQ,QAAW/pF,KAAKkzF,kBACpClzF,KAAKu1F,MAAMl6E,EAAK7a,MAAO,kDAOvBR,KAAK+Z,OAASwvE,GAAMa,KAAOpqF,KAAK+Z,OAASwvE,GAAMI,UAAY3pF,KAAK+Z,OAASwvE,GAAMQ,QAC/E/pF,KAAKg1F,aACFh1F,KAAKq2F,WAAWh7E,EAAM,SAE/B,KAAKkuE,GAAM2D,MAGT,OAFA7xE,EAAOrb,KAAKqzF,YACZrzF,KAAKqB,OACErB,KAAKq2F,WAAWh7E,EAAM,kBAE/B,KAAKkuE,GAAMp8E,KACT,IAAI8jF,EAAWjxF,KAAKQ,MAAOmwF,EAAW3wF,KAAK2wF,SAAUW,EAActxF,KAAKsxF,YACpEx6E,EAAK9W,KAAKs4F,YAAW,GACzB,GAAIt4F,KAAKiI,QAAQ0+E,aAAe,IAAM2K,GAA2B,UAAZx6E,EAAG3J,OAAqBnN,KAAKi1F,sBAAwBj1F,KAAK40F,IAAIrL,GAAMgD,WACrH,OAAOvsF,KAAKk5F,cAAcl5F,KAAKi8F,YAAYhL,EAAUN,GAAW,GAAG,GAAO,GAC9E,GAAI0Q,IAAerhG,KAAKi1F,qBAAsB,CAC5C,GAAIj1F,KAAK40F,IAAIrL,GAAMgB,OACf,OAAOvqF,KAAKihG,qBAAqBjhG,KAAKi8F,YAAYhL,EAAUN,GAAW,CAAC75E,IAAK,GACjF,GAAI9W,KAAKiI,QAAQ0+E,aAAe,GAAiB,UAAZ7vE,EAAG3J,MAAoBnN,KAAK+Z,OAASwvE,GAAMp8E,OAASmkF,KACnFtxF,KAAKmyF,0BAA2C,OAAfnyF,KAAKoB,OAAkBpB,KAAKsxF,aAIjE,OAHAx6E,EAAK9W,KAAKs4F,YAAW,IACjBt4F,KAAKi1F,sBAAyBj1F,KAAK40F,IAAIrL,GAAMgB,QAC7CvqF,KAAKg1F,aACFh1F,KAAKihG,qBAAqBjhG,KAAKi8F,YAAYhL,EAAUN,GAAW,CAAC75E,IAAK,GAGjF,OAAOA,EAET,KAAKyyE,GAAMC,OACT,IAAIpoF,EAAQpB,KAAKoB,MAGjB,OAFAia,EAAOrb,KAAKshG,aAAalgG,EAAMA,QAC1BwiD,MAAQ,CAAC95C,QAAS1I,EAAM0I,QAAS2pF,MAAOryF,EAAMqyF,OAC5Cp4E,EAET,KAAKkuE,GAAM5pF,IAAK,KAAK4pF,GAAMvhF,OACzB,OAAOhI,KAAKshG,aAAathG,KAAKoB,OAEhC,KAAKmoF,GAAMiE,MAAO,KAAKjE,GAAMkE,MAAO,KAAKlE,GAAMmE,OAK7C,OAJAryE,EAAOrb,KAAKqzF,aACPjyF,MAAQpB,KAAK+Z,OAASwvE,GAAMiE,MAAQ,KAAOxtF,KAAK+Z,OAASwvE,GAAMkE,MACpEpyE,EAAKpU,IAAMjH,KAAK+Z,KAAK6uE,QACrB5oF,KAAKqB,OACErB,KAAKq2F,WAAWh7E,EAAM,WAE/B,KAAKkuE,GAAMQ,OACT,IAAIvpF,EAAQR,KAAKQ,MAAOw1F,EAAOh2F,KAAKuhG,mCAAmCF,GAOvE,OANI5L,IACEA,EAAuBjB,oBAAsB,IAAMx0F,KAAK+1F,qBAAqBC,KAC7EP,EAAuBjB,oBAAsBh0F,GAC7Ci1F,EAAuBhB,kBAAoB,IAC3CgB,EAAuBhB,kBAAoBj0F,IAE1Cw1F,EAET,KAAKzM,GAAMI,SAIT,OAHAtuE,EAAOrb,KAAKqzF,YACZrzF,KAAKqB,OACLga,EAAKvB,SAAW9Z,KAAKghG,cAAczX,GAAMK,UAAU,GAAM,EAAM6L,GACxDz1F,KAAKq2F,WAAWh7E,EAAM,mBAE/B,KAAKkuE,GAAMM,OACT,OAAO7pF,KAAKo+F,UAAS,EAAO3I,GAE9B,KAAKlM,GAAMgD,UAGT,OAFAlxE,EAAOrb,KAAKqzF,YACZrzF,KAAKqB,OACErB,KAAKk5F,cAAc79E,EAAM,GAElC,KAAKkuE,GAAM6D,OACT,OAAOptF,KAAKq3F,WAAWr3F,KAAKqzF,aAAa,GAE3C,KAAK9J,GAAM0D,KACT,OAAOjtF,KAAKwhG,WAEd,KAAKjY,GAAMoB,UACT,OAAO3qF,KAAKkhG,gBAEd,KAAK3X,GAAMgE,QACT,OAAIvtF,KAAKiI,QAAQ0+E,aAAe,GACvB3mF,KAAKyhG,kBAELzhG,KAAKg1F,aAGhB,QACEh1F,KAAKg1F,eAITiK,GAAKwC,gBAAkB,WACrB,IAAIpmF,EAAOrb,KAAKqzF,YAIZrzF,KAAKsxF,aAAetxF,KAAK01F,iBAAiB11F,KAAKQ,MAAO,qCAC1D,IAAI4W,EAAOpX,KAAKs4F,YAAW,GAE3B,OAAQt4F,KAAK+Z,MACb,KAAKwvE,GAAMQ,OACT,OAAO/pF,KAAK0hG,mBAAmBrmF,GACjC,KAAKkuE,GAAMa,IAET,OADA/uE,EAAKjE,KAAOA,EACLpX,KAAK2hG,gBAAgBtmF,GAC9B,QACErb,KAAKg1F,eAITiK,GAAKyC,mBAAqB,SAASrmF,GAOjC,GANArb,KAAKqB,OAGLga,EAAK7U,OAASxG,KAAKi6F,oBAGdj6F,KAAK40F,IAAIrL,GAAMS,QAAS,CAC3B,IAAI4X,EAAW5hG,KAAKQ,MAChBR,KAAK40F,IAAIrL,GAAMU,QAAUjqF,KAAK40F,IAAIrL,GAAMS,QAC1ChqF,KAAK01F,iBAAiBkM,EAAU,6CAEhC5hG,KAAKg1F,WAAW4M,GAIpB,OAAO5hG,KAAKq2F,WAAWh7E,EAAM,qBAG/B4jF,GAAK0C,gBAAkB,SAAStmF,GAC9Brb,KAAKqB,OAEL,IAAIiwF,EAActxF,KAAKsxF,YAUvB,OATAj2E,EAAKoF,SAAWzgB,KAAKs4F,YAAW,GAEL,SAAvBj9E,EAAKoF,SAAStT,MACdnN,KAAK01F,iBAAiBr6E,EAAKoF,SAASjgB,MAAO,4DAC3C8wF,GACAtxF,KAAK01F,iBAAiBr6E,EAAK7a,MAAO,qDACN,WAA5BR,KAAKiI,QAAQmnF,YAA4BpvF,KAAKiI,QAAQwnF,6BACtDzvF,KAAK01F,iBAAiBr6E,EAAK7a,MAAO,6CAE/BR,KAAKq2F,WAAWh7E,EAAM,iBAG/B4jF,GAAKqC,aAAe,SAASlgG,GAC3B,IAAIia,EAAOrb,KAAKqzF,YAKhB,OAJAh4E,EAAKja,MAAQA,EACbia,EAAKpU,IAAMjH,KAAKivF,MAAM/uF,MAAMF,KAAKQ,MAAOR,KAAKS,KACI,MAA7C4a,EAAKpU,IAAI7H,WAAWic,EAAKpU,IAAI9H,OAAS,KAAckc,EAAKwmF,OAASxmF,EAAKpU,IAAI/G,MAAM,GAAI,GAAGyC,QAAQ,KAAM,KAC1G3C,KAAKqB,OACErB,KAAKq2F,WAAWh7E,EAAM,YAG/B4jF,GAAKzG,qBAAuB,WAC1Bx4F,KAAKs1F,OAAO/L,GAAMQ,QAClB,IAAI1d,EAAMrsE,KAAKi0F,kBAEf,OADAj0F,KAAKs1F,OAAO/L,GAAMS,QACX3d,GAGT4yB,GAAKsC,mCAAqC,SAASF,GACjD,IAAqDh1B,EAAjD4kB,EAAWjxF,KAAKQ,MAAOmwF,EAAW3wF,KAAK2wF,SAAe2N,EAAqBt+F,KAAKiI,QAAQ0+E,aAAe,EAC3G,GAAI3mF,KAAKiI,QAAQ0+E,aAAe,EAAG,CACjC3mF,KAAKqB,OAEL,IAEgHygG,EAF5GC,EAAgB/hG,KAAKQ,MAAOwhG,EAAgBhiG,KAAK2wF,SACjDsN,EAAW,GAAIt2F,GAAQ,EAAMs6F,GAAc,EAC3CxM,EAAyB,IAAIpB,GAAqBwG,EAAc76F,KAAKoyF,SAAU0I,EAAc96F,KAAKqyF,SAItG,IAHAryF,KAAKoyF,SAAW,EAChBpyF,KAAKqyF,SAAW,EAETryF,KAAK+Z,OAASwvE,GAAMS,QAAQ,CAEjC,GADAriF,EAAQA,GAAQ,EAAQ3H,KAAKs1F,OAAO/L,GAAMU,OACtCqU,GAAsBt+F,KAAKm1F,mBAAmB5L,GAAMS,QAAQ,GAAO,CACrEiY,GAAc,EACd,MACK,GAAIjiG,KAAK+Z,OAASwvE,GAAMmB,SAAU,CACvCoX,EAAc9hG,KAAKQ,MACnBy9F,EAASx+F,KAAKO,KAAKkiG,eAAeliG,KAAKm+F,qBACnCn+F,KAAK+Z,OAASwvE,GAAMU,OAASjqF,KAAKu1F,MAAMv1F,KAAKQ,MAAO,iDACxD,MAEAy9F,EAASx+F,KAAKO,KAAKi6F,kBAAiB,EAAOxE,EAAwBz1F,KAAKkiG,iBAG5E,IAAIC,EAAcniG,KAAKQ,MAAO4hG,EAAcpiG,KAAK2wF,SAGjD,GAFA3wF,KAAKs1F,OAAO/L,GAAMS,QAEdqX,IAAerhG,KAAKi1F,sBAAwBj1F,KAAK40F,IAAIrL,GAAMgB,OAK7D,OAJAvqF,KAAKw1F,mBAAmBC,GAAwB,GAChDz1F,KAAK81F,iCACL91F,KAAKoyF,SAAWyI,EAChB76F,KAAKqyF,SAAWyI,EACT96F,KAAKqiG,oBAAoBpR,EAAUN,EAAUsN,GAGjDA,EAAS9+F,SAAU8iG,GAAejiG,KAAKg1F,WAAWh1F,KAAK4xF,cACxDkQ,GAAe9hG,KAAKg1F,WAAW8M,GACnC9hG,KAAK41F,sBAAsBH,GAAwB,GACnDz1F,KAAKoyF,SAAWyI,GAAe76F,KAAKoyF,SACpCpyF,KAAKqyF,SAAWyI,GAAe96F,KAAKqyF,SAEhC4L,EAAS9+F,OAAS,IACpBktE,EAAMrsE,KAAKi8F,YAAY8F,EAAeC,IAClCtiF,YAAcu+E,EAClBj+F,KAAKsiG,aAAaj2B,EAAK,qBAAsB81B,EAAaC,IAE1D/1B,EAAM4xB,EAAS,QAGjB5xB,EAAMrsE,KAAKw4F,uBAGb,GAAIx4F,KAAKiI,QAAQioF,eAAgB,CAC/B,IAAIqS,EAAMviG,KAAKi8F,YAAYhL,EAAUN,GAErC,OADA4R,EAAIrmF,WAAamwD,EACVrsE,KAAKq2F,WAAWkM,EAAK,2BAE5B,OAAOl2B,GAIX4yB,GAAKiD,eAAiB,SAASvrF,GAC7B,OAAOA,GAGTsoF,GAAKoD,oBAAsB,SAASpR,EAAUN,EAAUsN,GACtD,OAAOj+F,KAAKihG,qBAAqBjhG,KAAKi8F,YAAYhL,EAAUN,GAAWsN,IASzE,IAAIuE,GAAU,GAEdvD,GAAKuC,SAAW,WACVxhG,KAAKsxF,aAAetxF,KAAK01F,iBAAiB11F,KAAKQ,MAAO,kCAC1D,IAAI6a,EAAOrb,KAAKqzF,YACZj8E,EAAOpX,KAAKs4F,YAAW,GAC3B,GAAIt4F,KAAKiI,QAAQ0+E,aAAe,GAAK3mF,KAAK40F,IAAIrL,GAAMa,KAAM,CACxD/uE,EAAKjE,KAAOA,EACZ,IAAIk6E,EAActxF,KAAKsxF,YAQvB,OAPAj2E,EAAKoF,SAAWzgB,KAAKs4F,YAAW,GACL,WAAvBj9E,EAAKoF,SAAStT,MACdnN,KAAK01F,iBAAiBr6E,EAAKoF,SAASjgB,MAAO,wDAC3C8wF,GACAtxF,KAAK01F,iBAAiBr6E,EAAK7a,MAAO,oDACjCR,KAAKozF,oBACNpzF,KAAK01F,iBAAiBr6E,EAAK7a,MAAO,8CAC/BR,KAAKq2F,WAAWh7E,EAAM,gBAE/B,IAAI41E,EAAWjxF,KAAKQ,MAAOmwF,EAAW3wF,KAAK2wF,SAAU8R,EAAWziG,KAAK+Z,OAASwvE,GAAMgE,QAOpF,OANAlyE,EAAKkF,OAASvgB,KAAKwgG,gBAAgBxgG,KAAK88F,gBAAiB7L,EAAUN,GAAU,GACzE8R,GAAiC,qBAArBpnF,EAAKkF,OAAOxG,MAC1B/Z,KAAKu1F,MAAMtE,EAAU,gCAEnBjxF,KAAK40F,IAAIrL,GAAMQ,QAAW1uE,EAAK3N,UAAY1N,KAAKghG,cAAczX,GAAMS,OAAQhqF,KAAKiI,QAAQ0+E,aAAe,GAAG,GACxGtrE,EAAK3N,UAAY80F,GACjBxiG,KAAKq2F,WAAWh7E,EAAM,kBAK/B4jF,GAAKyD,qBAAuB,SAASpU,GACnC,IAAI6S,EAAW7S,EAAI6S,SAEfzC,EAAO1+F,KAAKqzF,YAiBhB,OAhBIrzF,KAAK+Z,OAASwvE,GAAMkB,iBACjB0W,GACHnhG,KAAK01F,iBAAiB11F,KAAKQ,MAAO,oDAEpCk+F,EAAKt9F,MAAQ,CACX6F,IAAKjH,KAAKoB,MACV0iD,OAAQ,OAGV46C,EAAKt9F,MAAQ,CACX6F,IAAKjH,KAAKivF,MAAM/uF,MAAMF,KAAKQ,MAAOR,KAAKS,KAAKkC,QAAQ,SAAU,MAC9DmhD,OAAQ9jD,KAAKoB,OAGjBpB,KAAKqB,OACLq9F,EAAKiE,KAAO3iG,KAAK+Z,OAASwvE,GAAMoB,UACzB3qF,KAAKq2F,WAAWqI,EAAM,oBAG/BO,GAAKiC,cAAgB,SAAS5S,QACf,IAARA,IAAiBA,EAAM,IAC5B,IAAI6S,EAAW7S,EAAI6S,cAA4B,IAAbA,IAAsBA,GAAW,GAEnE,IAAI9lF,EAAOrb,KAAKqzF,YAChBrzF,KAAKqB,OACLga,EAAKqE,YAAc,GACnB,IAAIkjF,EAAS5iG,KAAK0iG,qBAAqB,CAACvB,SAAUA,IAElD,IADA9lF,EAAKuE,OAAS,CAACgjF,IACPA,EAAOD,MACT3iG,KAAK+Z,OAASwvE,GAAMG,KAAO1pF,KAAKu1F,MAAMv1F,KAAK2G,IAAK,iCACpD3G,KAAKs1F,OAAO/L,GAAMqB,cAClBvvE,EAAKqE,YAAYjgB,KAAKO,KAAKi0F,mBAC3Bj0F,KAAKs1F,OAAO/L,GAAMO,QAClBzuE,EAAKuE,OAAOngB,KAAKmjG,EAAS5iG,KAAK0iG,qBAAqB,CAACvB,SAAUA,KAGjE,OADAnhG,KAAKqB,OACErB,KAAKq2F,WAAWh7E,EAAM,oBAG/B4jF,GAAK4D,YAAc,SAAS5oF,GAC1B,OAAQA,EAAK+E,UAA8B,eAAlB/E,EAAKhI,IAAI8H,MAA2C,UAAlBE,EAAKhI,IAAI9E,OACjEnN,KAAK+Z,OAASwvE,GAAMp8E,MAAQnN,KAAK+Z,OAASwvE,GAAM5pF,KAAOK,KAAK+Z,OAASwvE,GAAMvhF,QAAUhI,KAAK+Z,OAASwvE,GAAMI,UAAY3pF,KAAK+Z,KAAK6uE,SAAY5oF,KAAKiI,QAAQ0+E,aAAe,GAAK3mF,KAAK+Z,OAASwvE,GAAMkC,QAChMuC,GAAUhpF,KAAKhF,KAAKivF,MAAM/uF,MAAMF,KAAK6xF,WAAY7xF,KAAKQ,SAK3Dy+F,GAAKb,SAAW,SAAS0E,EAAWrN,GAClC,IAAIp6E,EAAOrb,KAAKqzF,YAAa1rF,GAAQ,EAAMy3F,EAAW,GAGtD,IAFA/jF,EAAK7X,WAAa,GAClBxD,KAAKqB,QACGrB,KAAK40F,IAAIrL,GAAMO,SAAS,CAC9B,GAAKniF,EAGIA,GAAQ,OADf,GADA3H,KAAKs1F,OAAO/L,GAAMU,OACdjqF,KAAKiI,QAAQ0+E,aAAe,GAAK3mF,KAAKm1F,mBAAmB5L,GAAMO,QAAW,MAGhF,IAAI7vE,EAAOja,KAAK+iG,cAAcD,EAAWrN,GACpCqN,GAAa9iG,KAAKm/F,eAAellF,EAAMmlF,EAAU3J,GACtDp6E,EAAK7X,WAAW/D,KAAKwa,GAEvB,OAAOja,KAAKq2F,WAAWh7E,EAAMynF,EAAY,gBAAkB,qBAG7D7D,GAAK8D,cAAgB,SAASD,EAAWrN,GACvC,IAA6BqG,EAAa9C,EAAS/H,EAAUN,EAAzD12E,EAAOja,KAAKqzF,YAChB,GAAIrzF,KAAKiI,QAAQ0+E,aAAe,GAAK3mF,KAAK40F,IAAIrL,GAAMmB,UAClD,OAAIoY,GACF7oF,EAAKE,SAAWna,KAAKs4F,YAAW,GAC5Bt4F,KAAK+Z,OAASwvE,GAAMU,OACtBjqF,KAAKu1F,MAAMv1F,KAAKQ,MAAO,iDAElBR,KAAKq2F,WAAWp8E,EAAM,iBAG3Bja,KAAK+Z,OAASwvE,GAAMQ,QAAU0L,IAC5BA,EAAuBjB,oBAAsB,IAC/CiB,EAAuBjB,oBAAsBx0F,KAAKQ,OAEhDi1F,EAAuBhB,kBAAoB,IAC7CgB,EAAuBhB,kBAAoBz0F,KAAKQ,QAIpDyZ,EAAKE,SAAWna,KAAKi6F,kBAAiB,EAAOxE,GAEzCz1F,KAAK+Z,OAASwvE,GAAMU,OAASwL,GAA0BA,EAAuBlB,cAAgB,IAChGkB,EAAuBlB,cAAgBv0F,KAAKQ,OAGvCR,KAAKq2F,WAAWp8E,EAAM,kBAE3Bja,KAAKiI,QAAQ0+E,aAAe,IAC9B1sE,EAAKylC,QAAS,EACdzlC,EAAKs8C,WAAY,GACbusC,GAAarN,KACfxE,EAAWjxF,KAAKQ,MAChBmwF,EAAW3wF,KAAK2wF,UAEbmS,IACDhH,EAAc97F,KAAK40F,IAAIrL,GAAMkC,QAEnC,IAAI6F,EAActxF,KAAKsxF,YAUvB,OATAtxF,KAAKw8F,kBAAkBviF,IAClB6oF,IAAcxR,GAAetxF,KAAKiI,QAAQ0+E,aAAe,IAAMmV,GAAe97F,KAAK6iG,YAAY5oF,IAClG++E,GAAU,EACV8C,EAAc97F,KAAKiI,QAAQ0+E,aAAe,GAAK3mF,KAAK40F,IAAIrL,GAAMkC,MAC9DzrF,KAAKw8F,kBAAkBviF,EAAMw7E,IAE7BuD,GAAU,EAEZh5F,KAAKgjG,mBAAmB/oF,EAAM6oF,EAAWhH,EAAa9C,EAAS/H,EAAUN,EAAU8E,EAAwBnE,GACpGtxF,KAAKq2F,WAAWp8E,EAAM,aAG/BglF,GAAK+D,mBAAqB,SAAS/oF,EAAM6oF,EAAWhH,EAAa9C,EAAS/H,EAAUN,EAAU8E,EAAwBnE,GAIpH,IAHKwK,GAAe9C,IAAYh5F,KAAK+Z,OAASwvE,GAAMY,OAChDnqF,KAAKg1F,aAELh1F,KAAK40F,IAAIrL,GAAMY,OACjBlwE,EAAK7Y,MAAQ0hG,EAAY9iG,KAAK2+F,kBAAkB3+F,KAAKQ,MAAOR,KAAK2wF,UAAY3wF,KAAKi6F,kBAAiB,EAAOxE,GAC1Gx7E,EAAK4gC,KAAO,YACP,GAAI76C,KAAKiI,QAAQ0+E,aAAe,GAAK3mF,KAAK+Z,OAASwvE,GAAMQ,OAC1D+Y,GAAa9iG,KAAKg1F,aACtB/6E,EAAK4gC,KAAO,OACZ5gC,EAAKylC,QAAS,EACdzlC,EAAK7Y,MAAQpB,KAAKy8F,YAAYX,EAAa9C,QACtC,GAAK8J,GAAcxR,KACftxF,KAAKiI,QAAQ0+E,aAAe,IAAM1sE,EAAK+E,UAA8B,eAAlB/E,EAAKhI,IAAI8H,MACzC,QAAlBE,EAAKhI,IAAI9E,MAAoC,QAAlB8M,EAAKhI,IAAI9E,MACpCnN,KAAK+Z,OAASwvE,GAAMU,OAASjqF,KAAK+Z,OAASwvE,GAAMO,QAAU9pF,KAAK+Z,OAASwvE,GAAMsB,GAgBhF7qF,KAAKiI,QAAQ0+E,aAAe,IAAM1sE,EAAK+E,UAA8B,eAAlB/E,EAAKhI,IAAI8H,OACjE+hF,GAAe9C,IAAWh5F,KAAKg1F,aACnCh1F,KAAKq9F,gBAAgBpjF,EAAKhI,KACJ,UAAlBgI,EAAKhI,IAAI9E,MAAqBnN,KAAKsyF,gBACnCtyF,KAAKsyF,cAAgBrB,GACzBh3E,EAAK4gC,KAAO,OACRioD,EACF7oF,EAAK7Y,MAAQpB,KAAK2+F,kBAAkB1N,EAAUN,EAAU3wF,KAAKijG,SAAShpF,EAAKhI,MAClEjS,KAAK+Z,OAASwvE,GAAMsB,IAAM4K,GAC/BA,EAAuBnB,gBAAkB,IACzCmB,EAAuBnB,gBAAkBt0F,KAAKQ,OAClDyZ,EAAK7Y,MAAQpB,KAAK2+F,kBAAkB1N,EAAUN,EAAU3wF,KAAKijG,SAAShpF,EAAKhI,OAE3EgI,EAAK7Y,MAAQpB,KAAKijG,SAAShpF,EAAKhI,KAElCgI,EAAKs8C,WAAY,GACVv2D,KAAKg1F,iBAhCkF,EAC1F8G,GAAe9C,IAAWh5F,KAAKg1F,aACnC/6E,EAAK4gC,KAAO5gC,EAAKhI,IAAI9E,KACrBnN,KAAKw8F,kBAAkBviF,GACvBA,EAAK7Y,MAAQpB,KAAKy8F,aAAY,GAC9B,IAAIyG,EAA2B,QAAdjpF,EAAK4gC,KAAiB,EAAI,EAC3C,GAAI5gC,EAAK7Y,MAAMqd,OAAOtf,SAAW+jG,EAAY,CAC3C,IAAI1iG,EAAQyZ,EAAK7Y,MAAMZ,MACL,QAAdyZ,EAAK4gC,KACL76C,KAAK01F,iBAAiBl1F,EAAO,gCAE7BR,KAAK01F,iBAAiBl1F,EAAO,4CAEf,QAAdyZ,EAAK4gC,MAAgD,gBAA9B5gC,EAAK7Y,MAAMqd,OAAO,GAAG1E,MAC5C/Z,KAAK01F,iBAAiBz7E,EAAK7Y,MAAMqd,OAAO,GAAGje,MAAO,mCAqB5Dy+F,GAAKzC,kBAAoB,SAASviF,GAChC,GAAIja,KAAKiI,QAAQ0+E,aAAe,EAAG,CACjC,GAAI3mF,KAAK40F,IAAIrL,GAAMI,UAIjB,OAHA1vE,EAAK+E,UAAW,EAChB/E,EAAKhI,IAAMjS,KAAKi6F,mBAChBj6F,KAAKs1F,OAAO/L,GAAMK,UACX3vE,EAAKhI,IAEZgI,EAAK+E,UAAW,EAGpB,OAAO/E,EAAKhI,IAAMjS,KAAK+Z,OAASwvE,GAAM5pF,KAAOK,KAAK+Z,OAASwvE,GAAMvhF,OAAShI,KAAK88F,gBAAkB98F,KAAKs4F,WAA0C,UAA/Bt4F,KAAKiI,QAAQsnF,gBAKhI0P,GAAKtE,aAAe,SAASt/E,GAC3BA,EAAKvE,GAAK,KACN9W,KAAKiI,QAAQ0+E,aAAe,IAAKtrE,EAAK01E,UAAY11E,EAAKa,YAAa,GACpElc,KAAKiI,QAAQ0+E,aAAe,IAAKtrE,EAAK8mC,OAAQ,IAKpD88C,GAAKxC,YAAc,SAASX,EAAa9C,EAAS9F,GAChD,IAAI73E,EAAOrb,KAAKqzF,YAAawH,EAAc76F,KAAKoyF,SAAU0I,EAAc96F,KAAKqyF,SAAU0I,EAAmB/6F,KAAKsyF,cAqB/G,OAnBAtyF,KAAK26F,aAAat/E,GACdrb,KAAKiI,QAAQ0+E,aAAe,IAC5BtrE,EAAK01E,UAAY+K,GACjB97F,KAAKiI,QAAQ0+E,aAAe,IAC5BtrE,EAAK8mC,QAAU62C,GAEnBh5F,KAAKoyF,SAAW,EAChBpyF,KAAKqyF,SAAW,EAChBryF,KAAKsyF,cAAgB,EACrBtyF,KAAK0yF,WA/8EW,GA+8EA5B,GAAckI,EAAS39E,EAAK01E,YAA4BmC,EA98EjD,IA88EyF,IAEhHlzF,KAAKs1F,OAAO/L,GAAMQ,QAClB1uE,EAAKoD,OAASze,KAAKk7F,iBAAiB3R,GAAMS,QAAQ,EAAOhqF,KAAKiI,QAAQ0+E,aAAe,GACrF3mF,KAAK81F,iCACL91F,KAAKi7F,kBAAkB5/E,GAAM,GAAO,GAEpCrb,KAAKoyF,SAAWyI,EAChB76F,KAAKqyF,SAAWyI,EAChB96F,KAAKsyF,cAAgByI,EACd/6F,KAAKq2F,WAAWh7E,EAAM,uBAK/B4jF,GAAKgC,qBAAuB,SAAS5lF,EAAMoD,EAAQu6E,GACjD,IAAI6B,EAAc76F,KAAKoyF,SAAU0I,EAAc96F,KAAKqyF,SAAU0I,EAAmB/6F,KAAKsyF,cAgBtF,OAdAtyF,KAAK0yF,WAn+EW,GAm+EA5B,GAAckI,GAAS,IACvCh5F,KAAK26F,aAAat/E,GACdrb,KAAKiI,QAAQ0+E,aAAe,IAAKtrE,EAAK8mC,QAAU62C,GAEpDh5F,KAAKoyF,SAAW,EAChBpyF,KAAKqyF,SAAW,EAChBryF,KAAKsyF,cAAgB,EAErBj3E,EAAKoD,OAASze,KAAKg+F,iBAAiBv/E,GAAQ,GAC5Cze,KAAKi7F,kBAAkB5/E,GAAM,GAAM,GAEnCrb,KAAKoyF,SAAWyI,EAChB76F,KAAKqyF,SAAWyI,EAChB96F,KAAKsyF,cAAgByI,EACd/6F,KAAKq2F,WAAWh7E,EAAM,4BAK/B4jF,GAAKhE,kBAAoB,SAAS5/E,EAAM8nF,EAAiBC,GACvD,IAAIC,EAAeF,GAAmBnjG,KAAK+Z,OAASwvE,GAAMM,OACtDuR,EAAYp7F,KAAK8nE,OAAQG,GAAY,EAEzC,GAAIo7B,EACFhoF,EAAKzN,KAAO5N,KAAKi6F,mBACjB5+E,EAAKa,YAAa,EAClBlc,KAAKsjG,YAAYjoF,GAAM,OAClB,CACL,IAAIkoF,EAAYvjG,KAAKiI,QAAQ0+E,aAAe,IAAM3mF,KAAKwjG,kBAAkBnoF,EAAKoD,QACzE28E,IAAamI,IAChBt7B,EAAYjoE,KAAKiyF,gBAAgBjyF,KAAKS,OAIrB8iG,GACbvjG,KAAK01F,iBAAiBr6E,EAAK7a,MAAO,6EAIxC,IAAIijG,EAAYzjG,KAAKgb,OACrBhb,KAAKgb,OAAS,GACVitD,IAAajoE,KAAK8nE,QAAS,GAI/B9nE,KAAKsjG,YAAYjoF,GAAO+/E,IAAcnzB,IAAck7B,IAAoBC,GAAYpjG,KAAKwjG,kBAAkBnoF,EAAKoD,SAE5Gze,KAAK8nE,QAAUzsD,EAAKvE,IAAM9W,KAAK46F,gBAAgBv/E,EAAKvE,GAlgFzC,GAmgFfuE,EAAKzN,KAAO5N,KAAK83F,YAAW,OAAOj1F,EAAWolE,IAAcmzB,GAC5D//E,EAAKa,YAAa,EAClBlc,KAAKo2F,uBAAuB/6E,EAAKzN,KAAKA,MACtC5N,KAAKgb,OAASyoF,EAEhBzjG,KAAKu5F,aAGP0F,GAAKuE,kBAAoB,SAAS/kF,GAChC,IAAK,IAAIvf,EAAI,EAAGqX,EAAOkI,EAAQvf,EAAIqX,EAAKpX,OAAQD,GAAK,EAInD,GAAmB,eAFPqX,EAAKrX,GAEP6a,KAAyB,OAAO,EAE5C,OAAO,GAMTklF,GAAKqE,YAAc,SAASjoF,EAAMqoF,GAEhC,IADA,IAAIC,EAAW3iG,OAAO+R,OAAO,MACpB7T,EAAI,EAAGqX,EAAO8E,EAAKoD,OAAQvf,EAAIqX,EAAKpX,OAAQD,GAAK,EACxD,CACA,IAAI0a,EAAQrD,EAAKrX,GAEjBc,KAAKg/F,sBAAsBplF,EAliFhB,EAkiFiC8pF,EAAkB,KAAOC,KAUzE1E,GAAK+B,cAAgB,SAAS9nE,EAAOolE,EAAoBD,EAAY5I,GAEnE,IADA,IAAI8I,EAAO,GAAI52F,GAAQ,GACf3H,KAAK40F,IAAI17D,IAAQ,CACvB,GAAKvxB,EAGIA,GAAQ,OADf,GADA3H,KAAKs1F,OAAO/L,GAAMU,OACdqU,GAAsBt+F,KAAKm1F,mBAAmBj8D,GAAU,MAG9D,IAAIpa,SACAu/E,GAAcr+F,KAAK+Z,OAASwvE,GAAMU,MAClCnrE,EAAM,KACD9e,KAAK+Z,OAASwvE,GAAMmB,UAC3B5rE,EAAM9e,KAAKk+F,YAAYzI,GACnBA,GAA0Bz1F,KAAK+Z,OAASwvE,GAAMU,OAASwL,EAAuBlB,cAAgB,IAC9FkB,EAAuBlB,cAAgBv0F,KAAKQ,QAEhDse,EAAM9e,KAAKi6F,kBAAiB,EAAOxE,GAErC8I,EAAK9+F,KAAKqf,GAEZ,OAAOy/E,GAGTU,GAAK5B,gBAAkB,SAAS/O,GAC9B,IAAI9tF,EAAQ8tF,EAAI9tF,MACZC,EAAM6tF,EAAI7tF,IACV0M,EAAOmhF,EAAInhF,KAEXnN,KAAK+yF,aAAwB,UAAT5lF,GACpBnN,KAAK01F,iBAAiBl1F,EAAO,uDAC7BR,KAAKgzF,SAAoB,UAAT7lF,GAChBnN,KAAK01F,iBAAiBl1F,EAAO,6DAC7BR,KAAK2zF,mBAAmBD,kBAA6B,cAATvmF,GAC5CnN,KAAK01F,iBAAiBl1F,EAAO,qDAC7BR,KAAK6nF,SAAS7iF,KAAKmI,IACnBnN,KAAKu1F,MAAM/0F,EAAQ,uBAAyB2M,EAAO,KACnDnN,KAAKiI,QAAQ0+E,YAAc,IACmB,IAAhD3mF,KAAKivF,MAAM/uF,MAAMM,EAAOC,GAAKgJ,QAAQ,QAC9BzJ,KAAK8nE,OAAS9nE,KAAKoxF,oBAAsBpxF,KAAK6V,eAChD7Q,KAAKmI,KACLnN,KAAKgzF,SAAoB,UAAT7lF,GACjBnN,KAAK01F,iBAAiBl1F,EAAO,wDACjCR,KAAK01F,iBAAiBl1F,EAAQ,gBAAkB2M,EAAO,mBAQ3D8xF,GAAK3G,WAAa,SAASsL,EAAS7F,GAClC,IAAI1iF,EAAOrb,KAAKqzF,YAwBhB,OAvBIrzF,KAAK+Z,OAASwvE,GAAMp8E,KACtBkO,EAAKlO,KAAOnN,KAAKoB,MACRpB,KAAK+Z,KAAK6uE,SACnBvtE,EAAKlO,KAAOnN,KAAK+Z,KAAK6uE,QAMH,UAAdvtE,EAAKlO,MAAkC,aAAdkO,EAAKlO,MAC9BnN,KAAK6xF,aAAe7xF,KAAK4xF,aAAe,GAAkD,KAA7C5xF,KAAKivF,MAAM7vF,WAAWY,KAAK4xF,eAC3E5xF,KAAK0U,QAAQ5O,OAGf9F,KAAKg1F,aAEPh1F,KAAKqB,OAAOuiG,GACZ5jG,KAAKq2F,WAAWh7E,EAAM,cACjBuoF,IACH5jG,KAAKq9F,gBAAgBhiF,GACH,UAAdA,EAAKlO,MAAqBnN,KAAKsyF,gBAC/BtyF,KAAKsyF,cAAgBj3E,EAAK7a,QAEzB6a,GAGT4jF,GAAK1C,kBAAoB,WACvB,IAAIlhF,EAAOrb,KAAKqzF,YAgBhB,OAfIrzF,KAAK+Z,OAASwvE,GAAME,UACtBpuE,EAAKlO,KAAOnN,KAAKoB,MAEjBpB,KAAKg1F,aAEPh1F,KAAKqB,OACLrB,KAAKq2F,WAAWh7E,EAAM,qBAGe,IAAjCrb,KAAK4yF,iBAAiBzzF,OACxBa,KAAKu1F,MAAMl6E,EAAK7a,MAAQ,mBAAsB6a,EAAS,KAAI,4CAE3Drb,KAAK4yF,iBAAiB5yF,KAAK4yF,iBAAiBzzF,OAAS,GAAGqW,KAAK/V,KAAK4b,GAG7DA,GAKT4jF,GAAKQ,WAAa,SAASF,GACpBv/F,KAAKoyF,WAAYpyF,KAAKoyF,SAAWpyF,KAAKQ,OAE3C,IAAI6a,EAAOrb,KAAKqzF,YAShB,OARArzF,KAAKqB,OACDrB,KAAK+Z,OAASwvE,GAAMW,MAAQlqF,KAAKi1F,sBAAyBj1F,KAAK+Z,OAASwvE,GAAMkC,OAASzrF,KAAK+Z,KAAK+uE,YACnGztE,EAAKwoF,UAAW,EAChBxoF,EAAKlB,SAAW,OAEhBkB,EAAKwoF,SAAW7jG,KAAK40F,IAAIrL,GAAMkC,MAC/BpwE,EAAKlB,SAAWna,KAAKi6F,iBAAiBsF,IAEjCv/F,KAAKq2F,WAAWh7E,EAAM,oBAG/B4jF,GAAKsB,WAAa,WACXvgG,KAAKqyF,WAAYryF,KAAKqyF,SAAWryF,KAAKQ,OAE3C,IAAI6a,EAAOrb,KAAKqzF,YAGhB,OAFArzF,KAAKqB,OACLga,EAAKlB,SAAWna,KAAK+/F,gBAAgB,MAAM,GACpC//F,KAAKq2F,WAAWh7E,EAAM,oBAG/B,IAAIyoF,GAAO9S,GAAO7wF,UAQlB2jG,GAAKvO,MAAQ,SAAS5uF,EAAKqS,GACzB,IAAI1R,EAAM0nF,GAAYhvF,KAAKivF,MAAOtoF,GAClCqS,GAAW,KAAO1R,EAAIhI,KAAO,IAAMgI,EAAIT,OAAS,IAChD,IAAIi6D,EAAM,IAAIlsC,YAAY5b,GAE1B,MADA8nD,EAAIn6D,IAAMA,EAAKm6D,EAAIx5D,IAAMA,EAAKw5D,EAAIijC,SAAW/jG,KAAK2G,IAC5Cm6D,GAGRgjC,GAAKpO,iBAAmBoO,GAAKvO,MAE7BuO,GAAKrS,YAAc,WACjB,GAAIzxF,KAAKiI,QAAQ2nF,UACf,OAAO,IAAIjB,GAAS3uF,KAAKwxF,QAASxxF,KAAK2G,IAAM3G,KAAKuxF,YAItD,IAAIyS,GAAOhT,GAAO7wF,UAEdqsB,GAAQ,SAAeinE,GACzBzzF,KAAKyzF,MAAQA,EAEbzzF,KAAK2R,IAAM,GAEX3R,KAAKikG,QAAU,GAEfjkG,KAAKkkG,UAAY,GAEjBlkG,KAAK0zF,kBAAmB,GAK1BsQ,GAAKtR,WAAa,SAASe,GACzBzzF,KAAKyyF,WAAWhzF,KAAK,IAAI+sB,GAAMinE,KAGjCuQ,GAAKzK,UAAY,WACfv5F,KAAKyyF,WAAW3sF,OAMlBk+F,GAAKpQ,2BAA6B,SAASpvE,GACzC,OA5uFmB,EA4uFXA,EAAMivE,QAA4BzzF,KAAKgyF,UA7uFjC,EA6uF8CxtE,EAAMivE,OAGpEuQ,GAAKjF,YAAc,SAAS5xF,EAAMyxF,EAAaj4F,GAC7C,IAAIw9F,GAAa,EACjB,GAhuFiB,IAguFbvF,EAA8B,CAChC,IAAIp6E,EAAQxkB,KAAK6zF,eACjBsQ,EAAa3/E,EAAMy/E,QAAQx6F,QAAQ0D,IAAS,GAAKqX,EAAM0/E,UAAUz6F,QAAQ0D,IAAS,GAAKqX,EAAM7S,IAAIlI,QAAQ0D,IAAS,EAClHqX,EAAMy/E,QAAQxkG,KAAK0N,GACfnN,KAAKgyF,UAtvFG,EAsvFUxtE,EAAMivE,cACjBzzF,KAAKuyF,iBAAiBplF,QAC5B,GApuFe,IAouFXyxF,EACK5+F,KAAK6zF,eACXoQ,QAAQxkG,KAAK0N,QAChB,GAxuFW,IAwuFPyxF,EAA+B,CACxC,IAAIwF,EAAUpkG,KAAK6zF,eAEfsQ,EADAnkG,KAAKmzF,oBACQiR,EAAQH,QAAQx6F,QAAQ0D,IAAS,EAEjCi3F,EAAQH,QAAQx6F,QAAQ0D,IAAS,GAAKi3F,EAAQzyF,IAAIlI,QAAQ0D,IAAS,EACpFi3F,EAAQF,UAAUzkG,KAAK0N,QAEvB,IAAK,IAAIjO,EAAIc,KAAKyyF,WAAWtzF,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACpD,IAAImlG,EAAUrkG,KAAKyyF,WAAWvzF,GAC9B,GAAImlG,EAAQJ,QAAQx6F,QAAQ0D,IAAS,KA/vFlB,GA+vF0Bk3F,EAAQ5Q,OAA+B4Q,EAAQJ,QAAQ,KAAO92F,KACtGnN,KAAK4zF,2BAA2ByQ,IAAYA,EAAQH,UAAUz6F,QAAQ0D,IAAS,EAAG,CACrFg3F,GAAa,EACb,MAKF,GAHAE,EAAQ1yF,IAAIlS,KAAK0N,GACbnN,KAAKgyF,UA3wFC,EA2wFYqS,EAAQ5Q,cACnBzzF,KAAKuyF,iBAAiBplF,GA1wFvBm3F,EA2wFND,EAAQ5Q,MAAqB,MAGjC0Q,GAAcnkG,KAAK01F,iBAAiB/uF,EAAM,eAAiBwG,EAAO,gCAGxE62F,GAAK1G,iBAAmB,SAASxmF,IAEsB,IAAjD9W,KAAKyyF,WAAW,GAAGwR,QAAQx6F,QAAQqN,EAAG3J,QACO,IAA7CnN,KAAKyyF,WAAW,GAAG9gF,IAAIlI,QAAQqN,EAAG3J,QACpCnN,KAAKuyF,iBAAiBz7E,EAAG3J,MAAQ2J,IAIrCktF,GAAKnQ,aAAe,WAClB,OAAO7zF,KAAKyyF,WAAWzyF,KAAKyyF,WAAWtzF,OAAS,IAGlD6kG,GAAKxQ,gBAAkB,WACrB,IAAK,IAAIt0F,EAAIc,KAAKyyF,WAAWtzF,OAAS,GAAID,IAAK,CAC7C,IAAIslB,EAAQxkB,KAAKyyF,WAAWvzF,GAC5B,GAhyFYolG,EAgyFR9/E,EAAMivE,MAAqB,OAAOjvE,IAK1Cw/E,GAAKrQ,iBAAmB,WACtB,IAAK,IAAIz0F,EAAIc,KAAKyyF,WAAWtzF,OAAS,GAAID,IAAK,CAC7C,IAAIslB,EAAQxkB,KAAKyyF,WAAWvzF,GAC5B,GAxyFYolG,EAwyFR9/E,EAAMivE,SAryFI,GAqyFmBjvE,EAAMivE,OAAwB,OAAOjvE,IAI1E,IAAIikB,GAAO,SAAcurD,EAAQrtF,EAAKW,GACpCtH,KAAK+Z,KAAO,GACZ/Z,KAAKQ,MAAQmG,EACb3G,KAAKS,IAAM,EACPuzF,EAAO/rF,QAAQ2nF,YACf5vF,KAAKsH,IAAM,IAAIwnF,GAAekF,EAAQ1sF,IACtC0sF,EAAO/rF,QAAQgoF,mBACfjwF,KAAK+uF,WAAaiF,EAAO/rF,QAAQgoF,kBACjC+D,EAAO/rF,QAAQ8nF,SACf/vF,KAAKqZ,MAAQ,CAAC1S,EAAK,KAKrB49F,GAAOvT,GAAO7wF,UAYlB,SAASmiG,GAAajnF,EAAMtB,EAAMpT,EAAKW,GAOrC,OANA+T,EAAKtB,KAAOA,EACZsB,EAAK5a,IAAMkG,EACP3G,KAAKiI,QAAQ2nF,YACbv0E,EAAK/T,IAAI7G,IAAM6G,GACftH,KAAKiI,QAAQ8nF,SACb10E,EAAKhC,MAAM,GAAK1S,GACb0U,EAjBTkpF,GAAKlR,UAAY,WACf,OAAO,IAAI5qD,GAAKzoC,KAAMA,KAAKQ,MAAOR,KAAK2wF,WAGzC4T,GAAKtI,YAAc,SAASt1F,EAAKW,GAC/B,OAAO,IAAImhC,GAAKzoC,KAAM2G,EAAKW,IAe7Bi9F,GAAKlO,WAAa,SAASh7E,EAAMtB,GAC/B,OAAOuoF,GAAah8F,KAAKtG,KAAMqb,EAAMtB,EAAM/Z,KAAK6xF,WAAY7xF,KAAK0xF,gBAKnE6S,GAAKjC,aAAe,SAASjnF,EAAMtB,EAAMpT,EAAKW,GAC5C,OAAOg7F,GAAah8F,KAAKtG,KAAMqb,EAAMtB,EAAMpT,EAAKW,IAGlDi9F,GAAKtB,SAAW,SAAS5nF,GACvB,IAAImpF,EAAU,IAAI/7D,GAAKzoC,KAAMqb,EAAK7a,MAAOR,KAAK2wF,UAC9C,IAAK,IAAI12E,KAAQoB,EAAQmpF,EAAQvqF,GAAQoB,EAAKpB,GAC9C,OAAOuqF,GAKT,IAAIC,GAAa,SAAoBjU,EAAOkU,EAAQC,EAAeC,EAAU7T,GAC3E/wF,KAAKwwF,MAAQA,EACbxwF,KAAK0kG,SAAWA,EAChB1kG,KAAK2kG,gBAAkBA,EACvB3kG,KAAK4kG,SAAWA,EAChB5kG,KAAK+wF,YAAcA,GAGjB8T,GAAU,CACZC,OAAQ,IAAIL,GAAW,KAAK,GAC5BM,OAAQ,IAAIN,GAAW,KAAK,GAC5BO,OAAQ,IAAIP,GAAW,MAAM,GAC7BQ,OAAQ,IAAIR,GAAW,KAAK,GAC5BS,OAAQ,IAAIT,GAAW,KAAK,GAC5BU,OAAQ,IAAIV,GAAW,KAAK,GAAM,GAAM,SAAU72B,GAAK,OAAOA,EAAEw3B,0BAChEC,OAAQ,IAAIZ,GAAW,YAAY,GACnCa,OAAQ,IAAIb,GAAW,YAAY,GACnCc,WAAY,IAAId,GAAW,YAAY,GAAM,EAAO,MAAM,GAC1De,MAAO,IAAIf,GAAW,YAAY,GAAO,EAAO,MAAM,IAGpDgB,GAAOzU,GAAO7wF,UAElBslG,GAAK3T,eAAiB,WACpB,MAAO,CAAC+S,GAAQC,SAGlBW,GAAKC,aAAe,SAASC,GAC3B,IAAI9hF,EAAS7jB,KAAK4lG,aAClB,OAAI/hF,IAAWghF,GAAQS,QAAUzhF,IAAWghF,GAAQQ,SAEhDM,IAAapc,GAAMY,OAAUtmE,IAAWghF,GAAQC,QAAUjhF,IAAWghF,GAAQE,OAM7EY,IAAapc,GAAMkD,SAAWkZ,IAAapc,GAAMp8E,MAAQnN,KAAK+xF,YACvD/D,GAAUhpF,KAAKhF,KAAKivF,MAAM/uF,MAAMF,KAAK6xF,WAAY7xF,KAAKQ,QAC7DmlG,IAAapc,GAAM6C,OAASuZ,IAAapc,GAAMW,MAAQyb,IAAapc,GAAMG,KAAOic,IAAapc,GAAMS,QAAU2b,IAAapc,GAAMgB,QAEjIob,IAAapc,GAAMM,OACZhmE,IAAWghF,GAAQC,OAC1Ba,IAAapc,GAAMsD,MAAQ8Y,IAAapc,GAAMuD,QAAU6Y,IAAapc,GAAMp8E,OAEvEnN,KAAK+xF,cAbDluE,EAAO6gF,SAgBrBe,GAAKI,mBAAqB,WACxB,IAAK,IAAI3mG,EAAIc,KAAK0U,QAAQvV,OAAS,EAAGD,GAAK,EAAGA,IAAK,CACjD,IAAIwV,EAAU1U,KAAK0U,QAAQxV,GAC3B,GAAsB,aAAlBwV,EAAQ87E,MACR,OAAO97E,EAAQq8E,UAErB,OAAO,GAGT0U,GAAKtc,cAAgB,SAASwc,GAC5B,IAAI5nF,EAAQhE,EAAO/Z,KAAK+Z,KACpBA,EAAK6uE,SAAW+c,IAAapc,GAAMa,IACnCpqF,KAAK+xF,aAAc,GACdh0E,EAAShE,EAAKovE,eACnBprE,EAAOzX,KAAKtG,KAAM2lG,GAElB3lG,KAAK+xF,YAAch4E,EAAK8uE,YAK9BU,GAAMS,OAAOb,cAAgBI,GAAMO,OAAOX,cAAgB,WACxD,GAA4B,IAAxBnpF,KAAK0U,QAAQvV,OAAjB,CAIA,IAAI8iF,EAAMjiF,KAAK0U,QAAQ5O,MACnBm8E,IAAQ4iB,GAAQC,QAAsC,aAA5B9kG,KAAK4lG,aAAapV,QAC9CvO,EAAMjiF,KAAK0U,QAAQ5O,OAErB9F,KAAK+xF,aAAe9P,EAAIyiB,YAPtB1kG,KAAK+xF,aAAc,GAUvBxI,GAAMM,OAAOV,cAAgB,SAASwc,GACpC3lG,KAAK0U,QAAQjV,KAAKO,KAAK0lG,aAAaC,GAAYd,GAAQC,OAASD,GAAQE,QACzE/kG,KAAK+xF,aAAc,GAGrBxI,GAAMqB,aAAazB,cAAgB,WACjCnpF,KAAK0U,QAAQjV,KAAKolG,GAAQG,QAC1BhlG,KAAK+xF,aAAc,GAGrBxI,GAAMQ,OAAOZ,cAAgB,SAASwc,GACpC,IAAIG,EAAkBH,IAAapc,GAAMiD,KAAOmZ,IAAapc,GAAM+C,MAAQqZ,IAAapc,GAAMyD,OAAS2Y,IAAapc,GAAMwD,OAC1H/sF,KAAK0U,QAAQjV,KAAKqmG,EAAkBjB,GAAQI,OAASJ,GAAQK,QAC7DllG,KAAK+xF,aAAc,GAGrBxI,GAAMuB,OAAO3B,cAAgB,aAI7BI,GAAMgD,UAAUpD,cAAgBI,GAAM6D,OAAOjE,cAAgB,SAASwc,IAChEA,EAAS9c,YAAc8c,IAAapc,GAAM6C,OACxCuZ,IAAapc,GAAMW,MAAQlqF,KAAK4lG,eAAiBf,GAAQI,QACzDU,IAAapc,GAAMkD,SAAWuB,GAAUhpF,KAAKhF,KAAKivF,MAAM/uF,MAAMF,KAAK6xF,WAAY7xF,KAAKQ,UACnFmlG,IAAapc,GAAMY,OAASwb,IAAapc,GAAMM,SAAW7pF,KAAK4lG,eAAiBf,GAAQC,OAG3F9kG,KAAK0U,QAAQjV,KAAKolG,GAAQQ,QAF1BrlG,KAAK0U,QAAQjV,KAAKolG,GAAQS,QAG9BtlG,KAAK+xF,aAAc,GAGrBxI,GAAMoB,UAAUxB,cAAgB,WAC1BnpF,KAAK4lG,eAAiBf,GAAQM,OAC9BnlG,KAAK0U,QAAQ5O,MAEb9F,KAAK0U,QAAQjV,KAAKolG,GAAQM,QAC9BnlG,KAAK+xF,aAAc,GAGrBxI,GAAMkC,KAAKtC,cAAgB,SAASwc,GAClC,GAAIA,IAAapc,GAAMgD,UAAW,CAChC,IAAI5qF,EAAQ3B,KAAK0U,QAAQvV,OAAS,EAC9Ba,KAAK0U,QAAQ/S,KAAWkjG,GAAQS,OAChCtlG,KAAK0U,QAAQ/S,GAASkjG,GAAQU,WAE9BvlG,KAAK0U,QAAQ/S,GAASkjG,GAAQW,MAEpCxlG,KAAK+xF,aAAc,GAGrBxI,GAAMp8E,KAAKg8E,cAAgB,SAASwc,GAClC,IAAII,GAAU,EACV/lG,KAAKiI,QAAQ0+E,aAAe,GAAKgf,IAAapc,GAAMa,MACnC,OAAfpqF,KAAKoB,QAAmBpB,KAAK+xF,aACd,UAAf/xF,KAAKoB,OAAqBpB,KAAK6lG,wBAC/BE,GAAU,GAEhB/lG,KAAK+xF,YAAcgU,GAQrB,IAAIC,GAAwB,89BACxBC,GAAyBD,GAAwB,yBAGjDE,GAA0B,CAC5BC,EAAGH,GACHI,GAAIH,GACJI,GAL2BJ,GAM3BK,GAL2BC,ohCASzBC,GAA+B,qpBAG/BC,GAAoB,2+DACpBC,GAAqBD,GAAoB,kHACzCE,GAAqBD,GAAqB,yEAE1CE,GAAsB,CACxBT,EAAGM,GACHL,GAAIM,GACJL,GAAIM,GACJL,GALuBK,uuEAQrBE,GAAO,GACX,SAASC,GAAiBngB,GACxB,IAAIjtE,EAAImtF,GAAKlgB,GAAe,CAC1BogB,OAAQtY,GAAYyX,GAAwBvf,GAAe,IAAM6f,IACjEQ,UAAW,CACTC,iBAAkBxY,GAAY+X,IAC9BU,OAAQzY,GAAYmY,GAAoBjgB,MAG5CjtE,EAAEstF,UAAUG,kBAAoBztF,EAAEstF,UAAUE,OAE5CxtF,EAAEstF,UAAUI,GAAK1tF,EAAEstF,UAAUC,iBAC7BvtF,EAAEstF,UAAUK,GAAK3tF,EAAEstF,UAAUE,OAC7BxtF,EAAEstF,UAAUM,IAAM5tF,EAAEstF,UAAUG,kBAEhCL,GAAiB,GACjBA,GAAiB,IACjBA,GAAiB,IACjBA,GAAiB,IAEjB,IAAIS,GAAOvW,GAAO7wF,UAEdqnG,GAAwB,SAA+BxT,GACzDh0F,KAAKg0F,OAASA,EACdh0F,KAAKynG,WAAa,OAASzT,EAAO/rF,QAAQ0+E,aAAe,EAAI,KAAO,KAAOqN,EAAO/rF,QAAQ0+E,aAAe,EAAI,IAAM,KAAOqN,EAAO/rF,QAAQ0+E,aAAe,GAAK,IAAM,IACnK3mF,KAAK0nG,kBAAoBb,GAAK7S,EAAO/rF,QAAQ0+E,aAAe,GAAK,GAAKqN,EAAO/rF,QAAQ0+E,aACrF3mF,KAAKwG,OAAS,GACdxG,KAAKyzF,MAAQ,GACbzzF,KAAKQ,MAAQ,EACbR,KAAK2nG,SAAU,EACf3nG,KAAK4nG,SAAU,EACf5nG,KAAK2G,IAAM,EACX3G,KAAK6nG,aAAe,EACpB7nG,KAAK8nG,gBAAkB,GACvB9nG,KAAK+nG,6BAA8B,EACnC/nG,KAAKgoG,mBAAqB,EAC1BhoG,KAAKioG,iBAAmB,EACxBjoG,KAAKkoG,WAAa,GAClBloG,KAAKmoG,mBAAqB,IA8E5B,SAASC,GAAkB75B,GACzB,OAAIA,GAAM,MAAiB/5C,OAAOC,aAAa85C,IAC/CA,GAAM,MACC/5C,OAAOC,aAA0B,OAAZ85C,GAAM,IAA8B,OAAV,KAALA,KAiSnD,SAAS85B,GAAkB95B,GACzB,OACS,KAAPA,GACAA,GAAM,IAAgBA,GAAM,IACrB,KAAPA,GACO,KAAPA,GACAA,GAAM,IAAgBA,GAAM,IAC5BA,GAAM,KAAgBA,GAAM,IA8PhC,SAAS+5B,GAAgB/5B,GACvB,OACGA,GAAM,IAAgBA,GAAM,IAC5BA,GAAM,IAAgBA,GAAM,IA6KjC,SAASg6B,GAA+Bh6B,GACtC,OAAO+5B,GAAgB/5B,IAAc,KAAPA,EAchC,SAASi6B,GAAgCj6B,GACvC,OAAOg6B,GAA+Bh6B,IAAOk6B,GAAel6B,GAuI9D,SAASk6B,GAAel6B,GACtB,OAAOA,GAAM,IAAgBA,GAAM,GAcrC,SAASm6B,GAAWn6B,GAClB,OACGA,GAAM,IAAgBA,GAAM,IAC5BA,GAAM,IAAgBA,GAAM,IAC5BA,GAAM,IAAgBA,GAAM,IAGjC,SAASo6B,GAASp6B,GAChB,OAAIA,GAAM,IAAgBA,GAAM,GACjBA,EAAK,GAAX,GAELA,GAAM,IAAgBA,GAAM,IACjBA,EAAK,GAAX,GAEFA,EAAK,GAkCd,SAASq6B,GAAar6B,GACpB,OAAOA,GAAM,IAAgBA,GAAM,GA3/BrCi5B,GAAsBrnG,UAAU0oG,MAAQ,SAAgBroG,EAAOsJ,EAAS2pF,GACtE,IAAIqV,GAAkC,IAAxBrV,EAAMhqF,QAAQ,KAC5BzJ,KAAKQ,MAAgB,EAARA,EACbR,KAAKwG,OAASsD,EAAU,GACxB9J,KAAKyzF,MAAQA,EACbzzF,KAAK2nG,QAAUmB,GAAW9oG,KAAKg0F,OAAO/rF,QAAQ0+E,aAAe,EAC7D3mF,KAAK4nG,QAAUkB,GAAW9oG,KAAKg0F,OAAO/rF,QAAQ0+E,aAAe,GAG/D6gB,GAAsBrnG,UAAUo1F,MAAQ,SAAgBv8E,GACtDhZ,KAAKg0F,OAAO0B,iBAAiB11F,KAAKQ,MAAQ,gCAAmCR,KAAW,OAAI,MAAQgZ,IAKtGwuF,GAAsBrnG,UAAU2lD,GAAK,SAAa5mD,EAAG6pG,QACjC,IAAXA,IAAoBA,GAAS,GAEpC,IAAIrhF,EAAI1nB,KAAKwG,OACTgmE,EAAI9kD,EAAEvoB,OACV,GAAID,GAAKstE,EACP,OAAQ,EAEV,IAAIjxD,EAAImM,EAAEtoB,WAAWF,GACrB,IAAM6pG,IAAU/oG,KAAK2nG,SAAYpsF,GAAK,OAAUA,GAAK,OAAUrc,EAAI,GAAKstE,EACtE,OAAOjxD,EAET,IAAIla,EAAOqmB,EAAEtoB,WAAWF,EAAI,GAC5B,OAAOmC,GAAQ,OAAUA,GAAQ,OAAUka,GAAK,IAAMla,EAAO,SAAYka,GAG3EisF,GAAsBrnG,UAAUumB,UAAY,SAAoBxnB,EAAG6pG,QAC/C,IAAXA,IAAoBA,GAAS,GAEpC,IAAIrhF,EAAI1nB,KAAKwG,OACTgmE,EAAI9kD,EAAEvoB,OACV,GAAID,GAAKstE,EACP,OAAOA,EAET,IAAyBnrE,EAArBka,EAAImM,EAAEtoB,WAAWF,GACrB,OAAM6pG,IAAU/oG,KAAK2nG,SAAYpsF,GAAK,OAAUA,GAAK,OAAUrc,EAAI,GAAKstE,IACnEnrE,EAAOqmB,EAAEtoB,WAAWF,EAAI,IAAM,OAAUmC,EAAO,MAC3CnC,EAAI,EAENA,EAAI,GAGbsoG,GAAsBrnG,UAAUiF,QAAU,SAAkB2jG,GAG1D,YAFkB,IAAXA,IAAoBA,GAAS,GAE7B/oG,KAAK8lD,GAAG9lD,KAAK2G,IAAKoiG,IAG3BvB,GAAsBrnG,UAAU6oG,UAAY,SAAoBD,GAG9D,YAFkB,IAAXA,IAAoBA,GAAS,GAE7B/oG,KAAK8lD,GAAG9lD,KAAK0mB,UAAU1mB,KAAK2G,IAAKoiG,GAASA,IAGnDvB,GAAsBrnG,UAAUoH,QAAU,SAAkBwhG,QACxC,IAAXA,IAAoBA,GAAS,GAEpC/oG,KAAK2G,IAAM3G,KAAK0mB,UAAU1mB,KAAK2G,IAAKoiG,IAGtCvB,GAAsBrnG,UAAUy0F,IAAM,SAAcrmB,EAAIw6B,GAGtD,YAFkB,IAAXA,IAAoBA,GAAS,GAEhC/oG,KAAKoF,QAAQ2jG,KAAYx6B,IAC3BvuE,KAAKuH,QAAQwhG,IACN,IAiBXxB,GAAK0B,oBAAsB,SAAS1mF,GAIlC,IAHA,IAAIklF,EAAallF,EAAMklF,WACnBhU,EAAQlxE,EAAMkxE,MAETv0F,EAAI,EAAGA,EAAIu0F,EAAMt0F,OAAQD,IAAK,CACrC,IAAIgqG,EAAOzV,EAAM1pE,OAAO7qB,IACU,IAA9BuoG,EAAWh+F,QAAQy/F,IACrBlpG,KAAKu1F,MAAMhzE,EAAM/hB,MAAO,mCAEtBizF,EAAMhqF,QAAQy/F,EAAMhqG,EAAI,IAAM,GAChCc,KAAKu1F,MAAMhzE,EAAM/hB,MAAO,uCAW9B+mG,GAAK4B,sBAAwB,SAAS5mF,GACpCviB,KAAKopG,eAAe7mF,IAOfA,EAAMqlF,SAAW5nG,KAAKiI,QAAQ0+E,aAAe,GAAKpkE,EAAM2lF,WAAW/oG,OAAS,IAC/EojB,EAAMqlF,SAAU,EAChB5nG,KAAKopG,eAAe7mF,KAKxBglF,GAAK6B,eAAiB,SAAS7mF,GAC7BA,EAAM5b,IAAM,EACZ4b,EAAMslF,aAAe,EACrBtlF,EAAMulF,gBAAkB,GACxBvlF,EAAMwlF,6BAA8B,EACpCxlF,EAAMylF,mBAAqB,EAC3BzlF,EAAM0lF,iBAAmB,EACzB1lF,EAAM2lF,WAAW/oG,OAAS,EAC1BojB,EAAM4lF,mBAAmBhpG,OAAS,EAElCa,KAAKqpG,mBAAmB9mF,GAEpBA,EAAM5b,MAAQ4b,EAAM/b,OAAOrH,SAEzBojB,EAAMqyE,IAAI,KACZryE,EAAMgzE,MAAM,kBAEVhzE,EAAMqyE,IAAI,KAAiBryE,EAAMqyE,IAAI,OACvCryE,EAAMgzE,MAAM,6BAGZhzE,EAAM0lF,iBAAmB1lF,EAAMylF,oBACjCzlF,EAAMgzE,MAAM,kBAEd,IAAK,IAAIr2F,EAAI,EAAGqX,EAAOgM,EAAM4lF,mBAAoBjpG,EAAIqX,EAAKpX,OAAQD,GAAK,EAAG,CACxE,IAAIiO,EAAOoJ,EAAKrX,IAEwB,IAApCqjB,EAAM2lF,WAAWz+F,QAAQ0D,IAC3BoV,EAAMgzE,MAAM,sCAMlBgS,GAAK8B,mBAAqB,SAAS9mF,GAEjC,IADAviB,KAAKspG,mBAAmB/mF,GACjBA,EAAMqyE,IAAI,MACf50F,KAAKspG,mBAAmB/mF,GAItBviB,KAAKupG,qBAAqBhnF,GAAO,IACnCA,EAAMgzE,MAAM,qBAEVhzE,EAAMqyE,IAAI,MACZryE,EAAMgzE,MAAM,6BAKhBgS,GAAK+B,mBAAqB,SAAS/mF,GACjC,KAAOA,EAAM5b,IAAM4b,EAAM/b,OAAOrH,QAAUa,KAAKwpG,eAAejnF,OAKhEglF,GAAKiC,eAAiB,SAASjnF,GAC7B,OAAIviB,KAAKypG,oBAAoBlnF,IAIvBA,EAAMwlF,6BAA+B/nG,KAAKupG,qBAAqBhnF,IAE7DA,EAAMolF,SACRplF,EAAMgzE,MAAM,uBAGT,MAGLhzE,EAAMolF,QAAU3nG,KAAK0pG,eAAennF,GAASviB,KAAK2pG,uBAAuBpnF,MAC3EviB,KAAKupG,qBAAqBhnF,IACnB,IAOXglF,GAAKkC,oBAAsB,SAASlnF,GAClC,IAAI/hB,EAAQ+hB,EAAM5b,IAIlB,GAHA4b,EAAMwlF,6BAA8B,EAGhCxlF,EAAMqyE,IAAI,KAAiBryE,EAAMqyE,IAAI,IACvC,OAAO,EAIT,GAAIryE,EAAMqyE,IAAI,IAAe,CAC3B,GAAIryE,EAAMqyE,IAAI,KAAiBryE,EAAMqyE,IAAI,IACvC,OAAO,EAETryE,EAAM5b,IAAMnG,EAId,GAAI+hB,EAAMqyE,IAAI,KAAiBryE,EAAMqyE,IAAI,IAAe,CACtD,IAAIgV,GAAa,EAIjB,GAHI5pG,KAAKiI,QAAQ0+E,aAAe,IAC9BijB,EAAarnF,EAAMqyE,IAAI,KAErBryE,EAAMqyE,IAAI,KAAiBryE,EAAMqyE,IAAI,IAMvC,OALA50F,KAAKqpG,mBAAmB9mF,GACnBA,EAAMqyE,IAAI,KACbryE,EAAMgzE,MAAM,sBAEdhzE,EAAMwlF,6BAA+B6B,GAC9B,EAKX,OADArnF,EAAM5b,IAAMnG,GACL,GAIT+mG,GAAKgC,qBAAuB,SAAShnF,EAAOsnF,GAG1C,YAFiB,IAAZA,IAAqBA,GAAU,KAEhC7pG,KAAK8pG,2BAA2BvnF,EAAOsnF,KACzCtnF,EAAMqyE,IAAI,KACH,IAMX2S,GAAKuC,2BAA6B,SAASvnF,EAAOsnF,GAChD,OACEtnF,EAAMqyE,IAAI,KACVryE,EAAMqyE,IAAI,KACVryE,EAAMqyE,IAAI,KACV50F,KAAK+pG,2BAA2BxnF,EAAOsnF,IAG3CtC,GAAKwC,2BAA6B,SAASxnF,EAAOsnF,GAChD,IAAIrpG,EAAQ+hB,EAAM5b,IAClB,GAAI4b,EAAMqyE,IAAI,KAAe,CAC3B,IAAI1vF,EAAM,EAAGktB,GAAO,EACpB,GAAIpyB,KAAKgqG,wBAAwBznF,KAC/Brd,EAAMqd,EAAMslF,aACRtlF,EAAMqyE,IAAI,KAAiB50F,KAAKgqG,wBAAwBznF,KAC1D6P,EAAM7P,EAAMslF,cAEVtlF,EAAMqyE,IAAI,MAKZ,OAHa,IAATxiE,GAAcA,EAAMltB,IAAQ2kG,GAC9BtnF,EAAMgzE,MAAM,0CAEP,EAGPhzE,EAAMolF,UAAYkC,GACpBtnF,EAAMgzE,MAAM,yBAEdhzE,EAAM5b,IAAMnG,EAEd,OAAO,GAIT+mG,GAAKmC,eAAiB,SAASnnF,GAC7B,OACEviB,KAAKiqG,4BAA4B1nF,IACjCA,EAAMqyE,IAAI,KACV50F,KAAKkqG,mCAAmC3nF,IACxCviB,KAAKmqG,yBAAyB5nF,IAC9BviB,KAAKoqG,2BAA2B7nF,IAChCviB,KAAKqqG,yBAAyB9nF,IAGlCglF,GAAK2C,mCAAqC,SAAS3nF,GACjD,IAAI/hB,EAAQ+hB,EAAM5b,IAClB,GAAI4b,EAAMqyE,IAAI,IAAe,CAC3B,GAAI50F,KAAKsqG,qBAAqB/nF,GAC5B,OAAO,EAETA,EAAM5b,IAAMnG,EAEd,OAAO,GAET+mG,GAAK6C,2BAA6B,SAAS7nF,GACzC,IAAI/hB,EAAQ+hB,EAAM5b,IAClB,GAAI4b,EAAMqyE,IAAI,IAAe,CAC3B,GAAIryE,EAAMqyE,IAAI,KAAiBryE,EAAMqyE,IAAI,IAAe,CAEtD,GADA50F,KAAKqpG,mBAAmB9mF,GACpBA,EAAMqyE,IAAI,IACZ,OAAO,EAETryE,EAAMgzE,MAAM,sBAEdhzE,EAAM5b,IAAMnG,EAEd,OAAO,GAET+mG,GAAK8C,yBAA2B,SAAS9nF,GACvC,GAAIA,EAAMqyE,IAAI,IAAe,CAO3B,GANI50F,KAAKiI,QAAQ0+E,aAAe,EAC9B3mF,KAAKuqG,sBAAsBhoF,GACE,KAApBA,EAAMnd,WACfmd,EAAMgzE,MAAM,iBAEdv1F,KAAKqpG,mBAAmB9mF,GACpBA,EAAMqyE,IAAI,IAEZ,OADAryE,EAAMylF,oBAAsB,GACrB,EAETzlF,EAAMgzE,MAAM,sBAEd,OAAO,GAITgS,GAAKoC,uBAAyB,SAASpnF,GACrC,OACEA,EAAMqyE,IAAI,KACV50F,KAAKkqG,mCAAmC3nF,IACxCviB,KAAKmqG,yBAAyB5nF,IAC9BviB,KAAKoqG,2BAA2B7nF,IAChCviB,KAAKqqG,yBAAyB9nF,IAC9BviB,KAAKwqG,kCAAkCjoF,IACvCviB,KAAKyqG,mCAAmCloF,IAK5CglF,GAAKiD,kCAAoC,SAASjoF,GAIhD,OAHIviB,KAAK+pG,2BAA2BxnF,GAAO,IACzCA,EAAMgzE,MAAM,sBAEP,GAITgS,GAAKmD,0BAA4B,SAASnoF,GACxC,IAAIgsD,EAAKhsD,EAAMnd,UACf,QAAIijG,GAAkB95B,KACpBhsD,EAAMslF,aAAet5B,EACrBhsD,EAAMhb,WACC,IAiBXggG,GAAK0C,4BAA8B,SAAS1nF,GAG1C,IAFA,IAAI/hB,EAAQ+hB,EAAM5b,IACd4nE,EAAK,GAC0B,KAA3BA,EAAKhsD,EAAMnd,aAAsBijG,GAAkB95B,IACzDhsD,EAAMhb,UAER,OAAOgb,EAAM5b,MAAQnG,GAIvB+mG,GAAKkD,mCAAqC,SAASloF,GACjD,IAAIgsD,EAAKhsD,EAAMnd,UACf,SACU,IAARmpE,GACO,KAAPA,GACEA,GAAM,IAAgBA,GAAM,IACvB,KAAPA,GACO,KAAPA,GACO,KAAPA,GACO,KAAPA,GACO,MAAPA,IAEAhsD,EAAMhb,UACC,KAQXggG,GAAKgD,sBAAwB,SAAShoF,GACpC,GAAIA,EAAMqyE,IAAI,IAAe,CAC3B,GAAI50F,KAAK2qG,oBAAoBpoF,GAK3B,OAJyD,IAArDA,EAAM2lF,WAAWz+F,QAAQ8Y,EAAMulF,kBACjCvlF,EAAMgzE,MAAM,qCAEdhzE,EAAM2lF,WAAWzoG,KAAK8iB,EAAMulF,iBAG9BvlF,EAAMgzE,MAAM,mBAOhBgS,GAAKoD,oBAAsB,SAASpoF,GAElC,GADAA,EAAMulF,gBAAkB,GACpBvlF,EAAMqyE,IAAI,IAAe,CAC3B,GAAI50F,KAAK4qG,+BAA+BroF,IAAUA,EAAMqyE,IAAI,IAC1D,OAAO,EAETryE,EAAMgzE,MAAM,8BAEd,OAAO,GAOTgS,GAAKqD,+BAAiC,SAASroF,GAE7C,GADAA,EAAMulF,gBAAkB,GACpB9nG,KAAK6qG,gCAAgCtoF,GAAQ,CAE/C,IADAA,EAAMulF,iBAAmBM,GAAkB7lF,EAAMslF,cAC1C7nG,KAAK8qG,+BAA+BvoF,IACzCA,EAAMulF,iBAAmBM,GAAkB7lF,EAAMslF,cAEnD,OAAO,EAET,OAAO,GAQTN,GAAKsD,gCAAkC,SAAStoF,GAC9C,IAAI/hB,EAAQ+hB,EAAM5b,IACdoiG,EAAS/oG,KAAKiI,QAAQ0+E,aAAe,GACrCpY,EAAKhsD,EAAMnd,QAAQ2jG,GAMvB,OALAxmF,EAAMhb,QAAQwhG,GAEH,KAAPx6B,GAAuBvuE,KAAK+qG,sCAAsCxoF,EAAOwmF,KAC3Ex6B,EAAKhsD,EAAMslF,cAUf,SAAiCt5B,GAC/B,OAAOga,GAAkBha,GAAI,IAAgB,KAAPA,GAA8B,KAAPA,EATzDy8B,CAAwBz8B,IAC1BhsD,EAAMslF,aAAet5B,GACd,IAGThsD,EAAM5b,IAAMnG,GACL,IAaT+mG,GAAKuD,+BAAiC,SAASvoF,GAC7C,IAAI/hB,EAAQ+hB,EAAM5b,IACdoiG,EAAS/oG,KAAKiI,QAAQ0+E,aAAe,GACrCpY,EAAKhsD,EAAMnd,QAAQ2jG,GAMvB,OALAxmF,EAAMhb,QAAQwhG,GAEH,KAAPx6B,GAAuBvuE,KAAK+qG,sCAAsCxoF,EAAOwmF,KAC3Ex6B,EAAKhsD,EAAMslF,cAUf,SAAgCt5B,GAC9B,OAAOka,GAAiBla,GAAI,IAAgB,KAAPA,GAA8B,KAAPA,GAA8B,OAAPA,GAAqC,OAAPA,EAT7G08B,CAAuB18B,IACzBhsD,EAAMslF,aAAet5B,GACd,IAGThsD,EAAM5b,IAAMnG,GACL,IAOT+mG,GAAK+C,qBAAuB,SAAS/nF,GACnC,SACEviB,KAAKkrG,wBAAwB3oF,IAC7BviB,KAAKmrG,+BAA+B5oF,IACpCviB,KAAKorG,0BAA0B7oF,IAC9BA,EAAMqlF,SAAW5nG,KAAKqrG,qBAAqB9oF,MAI1CA,EAAMolF,UAEgB,KAApBplF,EAAMnd,WACRmd,EAAMgzE,MAAM,0BAEdhzE,EAAMgzE,MAAM,oBAEP,IAETgS,GAAK2D,wBAA0B,SAAS3oF,GACtC,IAAI/hB,EAAQ+hB,EAAM5b,IAClB,GAAI3G,KAAKsrG,wBAAwB/oF,GAAQ,CACvC,IAAIliB,EAAIkiB,EAAMslF,aACd,GAAItlF,EAAMolF,QAKR,OAHItnG,EAAIkiB,EAAM0lF,mBACZ1lF,EAAM0lF,iBAAmB5nG,IAEpB,EAET,GAAIA,GAAKkiB,EAAMylF,mBACb,OAAO,EAETzlF,EAAM5b,IAAMnG,EAEd,OAAO,GAET+mG,GAAK8D,qBAAuB,SAAS9oF,GACnC,GAAIA,EAAMqyE,IAAI,KAAe,CAC3B,GAAI50F,KAAK2qG,oBAAoBpoF,GAE3B,OADAA,EAAM4lF,mBAAmB1oG,KAAK8iB,EAAMulF,kBAC7B,EAETvlF,EAAMgzE,MAAM,2BAEd,OAAO,GAITgS,GAAK6D,0BAA4B,SAAS7oF,GACxC,OACEviB,KAAKurG,wBAAwBhpF,IAC7BviB,KAAKwrG,yBAAyBjpF,IAC9BviB,KAAKyrG,eAAelpF,IACpBviB,KAAK0rG,4BAA4BnpF,IACjCviB,KAAK+qG,sCAAsCxoF,GAAO,KAChDA,EAAMolF,SAAW3nG,KAAK2rG,oCAAoCppF,IAC5DviB,KAAK4rG,yBAAyBrpF,IAGlCglF,GAAKiE,yBAA2B,SAASjpF,GACvC,IAAI/hB,EAAQ+hB,EAAM5b,IAClB,GAAI4b,EAAMqyE,IAAI,IAAe,CAC3B,GAAI50F,KAAK6rG,wBAAwBtpF,GAC/B,OAAO,EAETA,EAAM5b,IAAMnG,EAEd,OAAO,GAET+mG,GAAKkE,eAAiB,SAASlpF,GAC7B,OAAwB,KAApBA,EAAMnd,YAA+BqjG,GAAelmF,EAAMymF,eAC5DzmF,EAAMslF,aAAe,EACrBtlF,EAAMhb,WACC,IAMXggG,GAAKgE,wBAA0B,SAAShpF,GACtC,IAAIgsD,EAAKhsD,EAAMnd,UACf,OAAW,MAAPmpE,GACFhsD,EAAMslF,aAAe,EACrBtlF,EAAMhb,WACC,GAEE,MAAPgnE,GACFhsD,EAAMslF,aAAe,GACrBtlF,EAAMhb,WACC,GAEE,MAAPgnE,GACFhsD,EAAMslF,aAAe,GACrBtlF,EAAMhb,WACC,GAEE,MAAPgnE,GACFhsD,EAAMslF,aAAe,GACrBtlF,EAAMhb,WACC,GAEE,MAAPgnE,IACFhsD,EAAMslF,aAAe,GACrBtlF,EAAMhb,WACC,IAMXggG,GAAKsE,wBAA0B,SAAStpF,GACtC,IAAIgsD,EAAKhsD,EAAMnd,UACf,QAAIkjG,GAAgB/5B,KAClBhsD,EAAMslF,aAAet5B,EAAK,GAC1BhsD,EAAMhb,WACC,IAYXggG,GAAKwD,sCAAwC,SAASxoF,EAAOwmF,QAC3C,IAAXA,IAAoBA,GAAS,GAElC,IAqCsBx6B,EArClB/tE,EAAQ+hB,EAAM5b,IACdghG,EAAUoB,GAAUxmF,EAAMolF,QAE9B,GAAIplF,EAAMqyE,IAAI,KAAe,CAC3B,GAAI50F,KAAK8rG,yBAAyBvpF,EAAO,GAAI,CAC3C,IAAIwpF,EAAOxpF,EAAMslF,aACjB,GAAIF,GAAWoE,GAAQ,OAAUA,GAAQ,MAAQ,CAC/C,IAAIC,EAAmBzpF,EAAM5b,IAC7B,GAAI4b,EAAMqyE,IAAI,KAAiBryE,EAAMqyE,IAAI,MAAiB50F,KAAK8rG,yBAAyBvpF,EAAO,GAAI,CACjG,IAAI0pF,EAAQ1pF,EAAMslF,aAClB,GAAIoE,GAAS,OAAUA,GAAS,MAE9B,OADA1pF,EAAMslF,aAAiC,MAAjBkE,EAAO,QAAmBE,EAAQ,OAAU,OAC3D,EAGX1pF,EAAM5b,IAAMqlG,EACZzpF,EAAMslF,aAAekE,EAEvB,OAAO,EAET,GACEpE,GACAplF,EAAMqyE,IAAI,MACV50F,KAAKksG,oBAAoB3pF,IACzBA,EAAMqyE,IAAI,OAaQrmB,EAZHhsD,EAAMslF,eAaZ,GAAKt5B,GAAM,QAXpB,OAAO,EAELo5B,GACFplF,EAAMgzE,MAAM,0BAEdhzE,EAAM5b,IAAMnG,EAGd,OAAO,GAOT+mG,GAAKqE,yBAA2B,SAASrpF,GACvC,GAAIA,EAAMolF,QACR,QAAI3nG,KAAK0qG,0BAA0BnoF,MAG/BA,EAAMqyE,IAAI,MACZryE,EAAMslF,aAAe,IACd,GAKX,IAAIt5B,EAAKhsD,EAAMnd,UACf,QAAW,KAAPmpE,GAAyBhsD,EAAMqlF,SAAkB,MAAPr5B,IAC5ChsD,EAAMslF,aAAet5B,EACrBhsD,EAAMhb,UACC,KAOXggG,GAAK+D,wBAA0B,SAAS/oF,GACtCA,EAAMslF,aAAe,EACrB,IAAIt5B,EAAKhsD,EAAMnd,UACf,GAAImpE,GAAM,IAAgBA,GAAM,GAAc,CAC5C,GACEhsD,EAAMslF,aAAe,GAAKtlF,EAAMslF,cAAgBt5B,EAAK,IACrDhsD,EAAMhb,iBACEgnE,EAAKhsD,EAAMnd,YAAc,IAAgBmpE,GAAM,IACzD,OAAO,EAET,OAAO,GAITg5B,GAAK4D,+BAAiC,SAAS5oF,GAC7C,IAAIgsD,EAAKhsD,EAAMnd,UAEf,GAyBF,SAAgCmpE,GAC9B,OACS,MAAPA,GACO,KAAPA,GACO,MAAPA,GACO,KAAPA,GACO,MAAPA,GACO,KAAPA,EAhCE49B,CAAuB59B,GAGzB,OAFAhsD,EAAMslF,cAAgB,EACtBtlF,EAAMhb,WACC,EAGT,GACEgb,EAAMolF,SACN3nG,KAAKiI,QAAQ0+E,aAAe,IACpB,KAAPpY,GAA8B,MAAPA,GACxB,CAGA,GAFAhsD,EAAMslF,cAAgB,EACtBtlF,EAAMhb,UAEJgb,EAAMqyE,IAAI,MACV50F,KAAKosG,yCAAyC7pF,IAC9CA,EAAMqyE,IAAI,KAEV,OAAO,EAETryE,EAAMgzE,MAAM,yBAGd,OAAO,GAgBTgS,GAAK6E,yCAA2C,SAAS7pF,GACvD,IAAI/hB,EAAQ+hB,EAAM5b,IAGlB,GAAI3G,KAAKqsG,8BAA8B9pF,IAAUA,EAAMqyE,IAAI,IAAe,CACxE,IAAIznF,EAAOoV,EAAMulF,gBACjB,GAAI9nG,KAAKssG,+BAA+B/pF,GAAQ,CAC9C,IAAInhB,EAAQmhB,EAAMulF,gBAElB,OADA9nG,KAAKusG,2CAA2ChqF,EAAOpV,EAAM/L,IACtD,GAMX,GAHAmhB,EAAM5b,IAAMnG,EAGRR,KAAKwsG,yCAAyCjqF,GAAQ,CACxD,IAAIkqF,EAAclqF,EAAMulF,gBAExB,OADA9nG,KAAK0sG,0CAA0CnqF,EAAOkqF,IAC/C,EAET,OAAO,GAETlF,GAAKgF,2CAA6C,SAAShqF,EAAOpV,EAAM/L,GACjEd,GAAIiiB,EAAMmlF,kBAAkBV,UAAW75F,IACxCoV,EAAMgzE,MAAM,yBACXhzE,EAAMmlF,kBAAkBV,UAAU75F,GAAMnI,KAAK5D,IAC9CmhB,EAAMgzE,MAAM,2BAElBgS,GAAKmF,0CAA4C,SAASnqF,EAAOkqF,GAC1DlqF,EAAMmlF,kBAAkBX,OAAO/hG,KAAKynG,IACrClqF,EAAMgzE,MAAM,0BAKlBgS,GAAK8E,8BAAgC,SAAS9pF,GAC5C,IAAIgsD,EAAK,EAET,IADAhsD,EAAMulF,gBAAkB,GACjBS,GAA+Bh6B,EAAKhsD,EAAMnd,YAC/Cmd,EAAMulF,iBAAmBM,GAAkB75B,GAC3ChsD,EAAMhb,UAER,MAAiC,KAA1Bgb,EAAMulF,iBAQfP,GAAK+E,+BAAiC,SAAS/pF,GAC7C,IAAIgsD,EAAK,EAET,IADAhsD,EAAMulF,gBAAkB,GACjBU,GAAgCj6B,EAAKhsD,EAAMnd,YAChDmd,EAAMulF,iBAAmBM,GAAkB75B,GAC3ChsD,EAAMhb,UAER,MAAiC,KAA1Bgb,EAAMulF,iBAQfP,GAAKiF,yCAA2C,SAASjqF,GACvD,OAAOviB,KAAKssG,+BAA+B/pF,IAI7CglF,GAAK4C,yBAA2B,SAAS5nF,GACvC,GAAIA,EAAMqyE,IAAI,IAAe,CAG3B,GAFAryE,EAAMqyE,IAAI,IACV50F,KAAK2sG,mBAAmBpqF,GACpBA,EAAMqyE,IAAI,IACZ,OAAO,EAGTryE,EAAMgzE,MAAM,gCAEd,OAAO,GAMTgS,GAAKoF,mBAAqB,SAASpqF,GACjC,KAAOviB,KAAK4sG,oBAAoBrqF,IAAQ,CACtC,IAAIvI,EAAOuI,EAAMslF,aACjB,GAAItlF,EAAMqyE,IAAI,KAAiB50F,KAAK4sG,oBAAoBrqF,GAAQ,CAC9D,IAAIrE,EAAQqE,EAAMslF,cACdtlF,EAAMolF,UAAsB,IAAV3tF,IAA0B,IAAXkE,GACnCqE,EAAMgzE,MAAM,4BAEA,IAAVv7E,IAA0B,IAAXkE,GAAgBlE,EAAOkE,GACxCqE,EAAMgzE,MAAM,4CAQpBgS,GAAKqF,oBAAsB,SAASrqF,GAClC,IAAI/hB,EAAQ+hB,EAAM5b,IAElB,GAAI4b,EAAMqyE,IAAI,IAAe,CAC3B,GAAI50F,KAAK6sG,sBAAsBtqF,GAC7B,OAAO,EAET,GAAIA,EAAMolF,QAAS,CAEjB,IAAImF,EAAOvqF,EAAMnd,WACJ,KAAT0nG,GAAyBlE,GAAakE,KACxCvqF,EAAMgzE,MAAM,wBAEdhzE,EAAMgzE,MAAM,kBAEdhzE,EAAM5b,IAAMnG,EAGd,IAAI+tE,EAAKhsD,EAAMnd,UACf,OAAW,KAAPmpE,IACFhsD,EAAMslF,aAAet5B,EACrBhsD,EAAMhb,WACC,IAOXggG,GAAKsF,sBAAwB,SAAStqF,GACpC,IAAI/hB,EAAQ+hB,EAAM5b,IAElB,GAAI4b,EAAMqyE,IAAI,IAEZ,OADAryE,EAAMslF,aAAe,GACd,EAGT,GAAItlF,EAAMolF,SAAWplF,EAAMqyE,IAAI,IAE7B,OADAryE,EAAMslF,aAAe,IACd,EAGT,IAAKtlF,EAAMolF,SAAWplF,EAAMqyE,IAAI,IAAe,CAC7C,GAAI50F,KAAK+sG,6BAA6BxqF,GACpC,OAAO,EAETA,EAAM5b,IAAMnG,EAGd,OACER,KAAKmrG,+BAA+B5oF,IACpCviB,KAAKorG,0BAA0B7oF,IAKnCglF,GAAKwF,6BAA+B,SAASxqF,GAC3C,IAAIgsD,EAAKhsD,EAAMnd,UACf,SAAIqjG,GAAel6B,IAAc,KAAPA,IACxBhsD,EAAMslF,aAAet5B,EAAK,GAC1BhsD,EAAMhb,UACC,KAMXggG,GAAKmE,4BAA8B,SAASnpF,GAC1C,IAAI/hB,EAAQ+hB,EAAM5b,IAClB,GAAI4b,EAAMqyE,IAAI,KAAe,CAC3B,GAAI50F,KAAK8rG,yBAAyBvpF,EAAO,GACvC,OAAO,EAELA,EAAMolF,SACRplF,EAAMgzE,MAAM,kBAEdhzE,EAAM5b,IAAMnG,EAEd,OAAO,GAIT+mG,GAAKyC,wBAA0B,SAASznF,GACtC,IAAI/hB,EAAQ+hB,EAAM5b,IACd4nE,EAAK,EAET,IADAhsD,EAAMslF,aAAe,EACdY,GAAel6B,EAAKhsD,EAAMnd,YAC/Bmd,EAAMslF,aAAe,GAAKtlF,EAAMslF,cAAgBt5B,EAAK,IACrDhsD,EAAMhb,UAER,OAAOgb,EAAM5b,MAAQnG,GAOvB+mG,GAAK2E,oBAAsB,SAAS3pF,GAClC,IAAI/hB,EAAQ+hB,EAAM5b,IACd4nE,EAAK,EAET,IADAhsD,EAAMslF,aAAe,EACda,GAAWn6B,EAAKhsD,EAAMnd,YAC3Bmd,EAAMslF,aAAe,GAAKtlF,EAAMslF,aAAec,GAASp6B,GACxDhsD,EAAMhb,UAER,OAAOgb,EAAM5b,MAAQnG,GAqBvB+mG,GAAKoE,oCAAsC,SAASppF,GAClD,GAAIviB,KAAKgtG,qBAAqBzqF,GAAQ,CACpC,IAAI0qF,EAAK1qF,EAAMslF,aACf,GAAI7nG,KAAKgtG,qBAAqBzqF,GAAQ,CACpC,IAAI2qF,EAAK3qF,EAAMslF,aACXoF,GAAM,GAAKjtG,KAAKgtG,qBAAqBzqF,GACvCA,EAAMslF,aAAoB,GAALoF,EAAe,EAALC,EAAS3qF,EAAMslF,aAE9CtlF,EAAMslF,aAAoB,EAALoF,EAASC,OAGhC3qF,EAAMslF,aAAeoF,EAEvB,OAAO,EAET,OAAO,GAIT1F,GAAKyF,qBAAuB,SAASzqF,GACnC,IAAIgsD,EAAKhsD,EAAMnd,UACf,OAAIwjG,GAAar6B,IACfhsD,EAAMslF,aAAet5B,EAAK,GAC1BhsD,EAAMhb,WACC,IAETgb,EAAMslF,aAAe,GACd,IASTN,GAAKuE,yBAA2B,SAASvpF,EAAOpjB,GAC9C,IAAIqB,EAAQ+hB,EAAM5b,IAClB4b,EAAMslF,aAAe,EACrB,IAAK,IAAI3oG,EAAI,EAAGA,EAAIC,IAAUD,EAAG,CAC/B,IAAIqvE,EAAKhsD,EAAMnd,UACf,IAAKsjG,GAAWn6B,GAEd,OADAhsD,EAAM5b,IAAMnG,GACL,EAET+hB,EAAMslF,aAAe,GAAKtlF,EAAMslF,aAAec,GAASp6B,GACxDhsD,EAAMhb,UAER,OAAO,GAOT,IAAI4lG,GAAQ,SAAev/B,GACzB5tE,KAAK+Z,KAAO6zD,EAAE7zD,KACd/Z,KAAKoB,MAAQwsE,EAAExsE,MACfpB,KAAKQ,MAAQotE,EAAEptE,MACfR,KAAKS,IAAMmtE,EAAEntE,IACTmtE,EAAE3lE,QAAQ2nF,YACV5vF,KAAKsH,IAAM,IAAIwnF,GAAelhB,EAAGA,EAAE+iB,SAAU/iB,EAAEgjB,SAC/ChjB,EAAE3lE,QAAQ8nF,SACV/vF,KAAKqZ,MAAQ,CAACu0D,EAAEptE,MAAOotE,EAAEntE,OAK3B2sG,GAAOpc,GAAO7wF,UA8dlB,SAASktG,GAAenqG,GACtB,MAAsB,mBAAXusB,OACF,KAIFA,OAAOvsB,EAAIP,QAAQ,KAAM,KA+DlC,SAAS2qG,GAAoB1oG,GAE3B,OAAIA,GAAQ,MAAiB4vB,OAAOC,aAAa7vB,IACjDA,GAAQ,MACD4vB,OAAOC,aAA4B,OAAd7vB,GAAQ,IAA8B,OAAR,KAAPA,KAniBrDwoG,GAAK/rG,KAAO,SAASksG,IACdA,GAAiCvtG,KAAK+Z,KAAK6uE,SAAW5oF,KAAKsxF,aAC5DtxF,KAAK01F,iBAAiB11F,KAAKQ,MAAO,8BAAgCR,KAAK+Z,KAAK6uE,SAC5E5oF,KAAKiI,QAAQ4nF,SACb7vF,KAAKiI,QAAQ4nF,QAAQ,IAAIsd,GAAMntG,OAEnCA,KAAK6xF,WAAa7xF,KAAKS,IACvBT,KAAK4xF,aAAe5xF,KAAKQ,MACzBR,KAAK0xF,cAAgB1xF,KAAK4wF,OAC1B5wF,KAAK2xF,gBAAkB3xF,KAAK2wF,SAC5B3wF,KAAKszF,aAGP8Z,GAAKI,SAAW,WAEd,OADAxtG,KAAKqB,OACE,IAAI8rG,GAAMntG,OAIG,oBAAXuS,SACP66F,GAAK76F,OAAOk7F,UAAY,WACxB,IAAInkG,EAAStJ,KAEb,MAAO,CACLqB,KAAM,WACJ,IAAImvF,EAAQlnF,EAAOkkG,WACnB,MAAO,CACLE,KAAMld,EAAMz2E,OAASwvE,GAAMG,IAC3BtoF,MAAOovF,OASjB4c,GAAKxH,WAAa,WAChB,OAAO5lG,KAAK0U,QAAQ1U,KAAK0U,QAAQvV,OAAS,IAM5CiuG,GAAK9Z,UAAY,WACf,IAAIsS,EAAa5lG,KAAK4lG,aAKtB,OAJKA,GAAeA,EAAWjB,eAAiB3kG,KAAK2tG,YAErD3tG,KAAKQ,MAAQR,KAAK2G,IACd3G,KAAKiI,QAAQ2nF,YAAa5vF,KAAK2wF,SAAW3wF,KAAKyxF,eAC/CzxF,KAAK2G,KAAO3G,KAAKivF,MAAM9vF,OAAiBa,KAAK4tG,YAAYrkB,GAAMG,KAE/Dkc,EAAWhB,SAAmBgB,EAAWhB,SAAS5kG,WAC/CA,KAAK6tG,UAAU7tG,KAAK8tG,sBAG7BV,GAAKS,UAAY,SAASjpG,GAGxB,OAAI2jF,GAAkB3jF,EAAM5E,KAAKiI,QAAQ0+E,aAAe,IAAe,KAAT/hF,EACnD5E,KAAK+tG,WAET/tG,KAAKguG,iBAAiBppG,IAG/BwoG,GAAKU,kBAAoB,WACvB,IAAIlpG,EAAO5E,KAAKivF,MAAM7vF,WAAWY,KAAK2G,KACtC,GAAI/B,GAAQ,OAAUA,GAAQ,MAAU,OAAOA,EAC/C,IAAIvD,EAAOrB,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,GAC5C,OAAOtF,GAAQ,OAAUA,GAAQ,MAASuD,GAAQA,GAAQ,IAAMvD,EAAO,UAGzE+rG,GAAKa,iBAAmB,WACtB,IAMM3jG,EANFqmF,EAAW3wF,KAAKiI,QAAQ6nF,WAAa9vF,KAAKyxF,cAC1CjxF,EAAQR,KAAK2G,IAAKlG,EAAMT,KAAKivF,MAAMxlF,QAAQ,KAAMzJ,KAAK2G,KAAO,GAGjE,IAFa,IAATlG,GAAcT,KAAKu1F,MAAMv1F,KAAK2G,IAAM,EAAG,wBAC3C3G,KAAK2G,IAAMlG,EAAM,EACbT,KAAKiI,QAAQ2nF,UAGf,IAFA3B,GAAW1qE,UAAY/iB,GAEf8J,EAAQ2jF,GAAW3oF,KAAKtF,KAAKivF,SAAW3kF,EAAM3I,MAAQ3B,KAAK2G,OAC/D3G,KAAKwxF,QACPxxF,KAAKuxF,UAAYjnF,EAAM3I,MAAQ2I,EAAM,GAAGnL,OAGxCa,KAAKiI,QAAQ6nF,WACb9vF,KAAKiI,QAAQ6nF,WAAU,EAAM9vF,KAAKivF,MAAM/uF,MAAMM,EAAQ,EAAGC,GAAMD,EAAOR,KAAK2G,IACtDgqF,EAAU3wF,KAAKyxF,gBAG1C2b,GAAK5a,gBAAkB,SAAS0b,GAI9B,IAHA,IAAI1tG,EAAQR,KAAK2G,IACbgqF,EAAW3wF,KAAKiI,QAAQ6nF,WAAa9vF,KAAKyxF,cAC1CljB,EAAKvuE,KAAKivF,MAAM7vF,WAAWY,KAAK2G,KAAOunG,GACpCluG,KAAK2G,IAAM3G,KAAKivF,MAAM9vF,SAAW+uF,GAAU3f,IAChDA,EAAKvuE,KAAKivF,MAAM7vF,aAAaY,KAAK2G,KAEhC3G,KAAKiI,QAAQ6nF,WACb9vF,KAAKiI,QAAQ6nF,WAAU,EAAO9vF,KAAKivF,MAAM/uF,MAAMM,EAAQ0tG,EAAWluG,KAAK2G,KAAMnG,EAAOR,KAAK2G,IACpEgqF,EAAU3wF,KAAKyxF,gBAM1C2b,GAAKO,UAAY,WACfQ,EAAM,KAAOnuG,KAAK2G,IAAM3G,KAAKivF,MAAM9vF,QAAQ,CACzC,IAAIovE,EAAKvuE,KAAKivF,MAAM7vF,WAAWY,KAAK2G,KACpC,OAAQ4nE,GACR,KAAK,GAAI,KAAK,MACVvuE,KAAK2G,IACP,MACF,KAAK,GACyC,KAAxC3G,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,MACjC3G,KAAK2G,IAEX,KAAK,GAAI,KAAK,KAAM,KAAK,OACrB3G,KAAK2G,IACH3G,KAAKiI,QAAQ2nF,cACb5vF,KAAKwxF,QACPxxF,KAAKuxF,UAAYvxF,KAAK2G,KAExB,MACF,KAAK,GACH,OAAQ3G,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,IACzC,KAAK,GACH3G,KAAKiuG,mBACL,MACF,KAAK,GACHjuG,KAAKwyF,gBAAgB,GACrB,MACF,QACE,MAAM2b,EAER,MACF,QACE,KAAI5/B,EAAK,GAAKA,EAAK,IAAMA,GAAM,MAAQ6f,GAAmBppF,KAAKwvB,OAAOC,aAAa85C,KAGjF,MAAM4/B,IAFJnuG,KAAK2G,OAafymG,GAAKQ,YAAc,SAAS7zF,EAAMsyD,GAChCrsE,KAAKS,IAAMT,KAAK2G,IACZ3G,KAAKiI,QAAQ2nF,YAAa5vF,KAAK4wF,OAAS5wF,KAAKyxF,eACjD,IAAIkU,EAAW3lG,KAAK+Z,KACpB/Z,KAAK+Z,KAAOA,EACZ/Z,KAAKoB,MAAQirE,EAEbrsE,KAAKmpF,cAAcwc,IAYrByH,GAAKgB,cAAgB,WACnB,IAAI/sG,EAAOrB,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,GAC5C,GAAItF,GAAQ,IAAMA,GAAQ,GAAM,OAAOrB,KAAKquG,YAAW,GACvD,IAAIC,EAAQtuG,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,GAC7C,OAAI3G,KAAKiI,QAAQ0+E,aAAe,GAAc,KAATtlF,GAAyB,KAAVitG,GAClDtuG,KAAK2G,KAAO,EACL3G,KAAK4tG,YAAYrkB,GAAMmB,cAE5B1qF,KAAK2G,IACA3G,KAAK4tG,YAAYrkB,GAAMa,OAIlCgjB,GAAKmB,gBAAkB,WACrB,IAAIltG,EAAOrB,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,GAC5C,OAAI3G,KAAK+xF,eAAiB/xF,KAAK2G,IAAY3G,KAAKohG,cACnC,KAAT//F,EAAsBrB,KAAKwuG,SAASjlB,GAAMp7B,OAAQ,GAC/CnuD,KAAKwuG,SAASjlB,GAAMmC,MAAO,IAGpC0hB,GAAKqB,0BAA4B,SAAS7pG,GACxC,IAAIvD,EAAOrB,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,GACxCywD,EAAO,EACPs3C,EAAqB,KAAT9pG,EAAc2kF,GAAMkC,KAAOlC,GAAMiC,OASjD,OANIxrF,KAAKiI,QAAQ0+E,aAAe,GAAc,KAAT/hF,GAAwB,KAATvD,MAChD+1D,EACFs3C,EAAYnlB,GAAMoC,SAClBtqF,EAAOrB,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,IAG7B,KAATtF,EAAsBrB,KAAKwuG,SAASjlB,GAAMp7B,OAAQiJ,EAAO,GACtDp3D,KAAKwuG,SAASE,EAAWt3C,IAGlCg2C,GAAKuB,mBAAqB,SAAS/pG,GACjC,IAAIvD,EAAOrB,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,GAC5C,OAAItF,IAASuD,EACP5E,KAAKiI,QAAQ0+E,aAAe,IAEhB,KADF3mF,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,GAClB3G,KAAKwuG,SAASjlB,GAAMp7B,OAAQ,GAElDnuD,KAAKwuG,SAAkB,MAAT5pG,EAAe2kF,GAAMwB,UAAYxB,GAAMyB,WAAY,GAE7D,KAAT3pF,EAAsBrB,KAAKwuG,SAASjlB,GAAMp7B,OAAQ,GAC/CnuD,KAAKwuG,SAAkB,MAAT5pG,EAAe2kF,GAAM0B,UAAY1B,GAAM4B,WAAY,IAG1EiiB,GAAKwB,gBAAkB,WAErB,OAAa,KADF5uG,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,GAClB3G,KAAKwuG,SAASjlB,GAAMp7B,OAAQ,GAC/CnuD,KAAKwuG,SAASjlB,GAAM2B,WAAY,IAGzCkiB,GAAKyB,mBAAqB,SAASjqG,GACjC,IAAIvD,EAAOrB,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,GAC5C,OAAItF,IAASuD,EACE,KAATvD,GAAgBrB,KAAKgyF,UAAoD,KAAxChyF,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,IAC7C,IAApB3G,KAAK6xF,aAAoB7D,GAAUhpF,KAAKhF,KAAKivF,MAAM/uF,MAAMF,KAAK6xF,WAAY7xF,KAAK2G,MAM7E3G,KAAKwuG,SAASjlB,GAAMuB,OAAQ,IAJjC9qF,KAAKwyF,gBAAgB,GACrBxyF,KAAK2tG,YACE3tG,KAAKszF,aAIH,KAATjyF,EAAsBrB,KAAKwuG,SAASjlB,GAAMp7B,OAAQ,GAC/CnuD,KAAKwuG,SAASjlB,GAAMgC,QAAS,IAGtC6hB,GAAK0B,gBAAkB,SAASlqG,GAC9B,IAAIvD,EAAOrB,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,GACxCywD,EAAO,EACX,OAAI/1D,IAASuD,GACXwyD,EAAgB,KAATxyD,GAAuD,KAAxC5E,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,GAAY,EAAI,EACxB,KAA3C3G,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAMywD,GAAuBp3D,KAAKwuG,SAASjlB,GAAMp7B,OAAQiJ,EAAO,GACxFp3D,KAAKwuG,SAASjlB,GAAM+B,SAAUl0B,IAE1B,KAAT/1D,GAAwB,KAATuD,GAAgB5E,KAAKgyF,UAAoD,KAAxChyF,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,IACzC,KAAxC3G,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,IAMxB,KAATtF,IAAe+1D,EAAO,GACnBp3D,KAAKwuG,SAASjlB,GAAM8B,WAAYj0B,KALrCp3D,KAAKwyF,gBAAgB,GACrBxyF,KAAK2tG,YACE3tG,KAAKszF,cAMhB8Z,GAAK2B,kBAAoB,SAASnqG,GAChC,IAAIvD,EAAOrB,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,GAC5C,OAAa,KAATtF,EAAsBrB,KAAKwuG,SAASjlB,GAAM6B,SAAkD,KAAxCprF,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,GAAY,EAAI,GAC5F,KAAT/B,GAAwB,KAATvD,GAAerB,KAAKiI,QAAQ0+E,aAAe,GAC5D3mF,KAAK2G,KAAO,EACL3G,KAAK4tG,YAAYrkB,GAAMgB,QAEzBvqF,KAAKwuG,SAAkB,KAAT5pG,EAAc2kF,GAAMsB,GAAKtB,GAAMjyB,OAAQ,IAG9D81C,GAAK4B,mBAAqB,WACxB,IAAIroB,EAAc3mF,KAAKiI,QAAQ0+E,YAC/B,GAAIA,GAAe,GAAI,CACrB,IAAItlF,EAAOrB,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,GAC5C,GAAa,KAATtF,EAAa,CACf,IAAIitG,EAAQtuG,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,GAC7C,GAAI2nG,EAAQ,IAAMA,EAAQ,GAAM,OAAOtuG,KAAKwuG,SAASjlB,GAAMe,YAAa,GAE1E,GAAa,KAATjpF,EACF,OAAIslF,GAAe,IAED,KADF3mF,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,GAClB3G,KAAKwuG,SAASjlB,GAAMp7B,OAAQ,GAEpDnuD,KAAKwuG,SAASjlB,GAAMqC,SAAU,GAGzC,OAAO5rF,KAAKwuG,SAASjlB,GAAMc,SAAU,IAGvC+iB,GAAK6B,qBAAuB,WAC1B,IACIrqG,EAAO,GACX,GAFkB5E,KAAKiI,QAAQ0+E,aAEZ,OACf3mF,KAAK2G,IAEH4hF,GADJ3jF,EAAO5E,KAAK8tG,qBACgB,IAAkB,KAATlpG,GACnC,OAAO5E,KAAK4tG,YAAYrkB,GAAME,UAAWzpF,KAAKkvG,aAIlDlvG,KAAKu1F,MAAMv1F,KAAK2G,IAAK,yBAA2B2mG,GAAoB1oG,GAAQ,MAG9EwoG,GAAKY,iBAAmB,SAASppG,GAC/B,OAAQA,GAGR,KAAK,GACH,OAAO5E,KAAKouG,gBAGd,KAAK,GAAgB,QAAVpuG,KAAK2G,IAAY3G,KAAK4tG,YAAYrkB,GAAMQ,QACnD,KAAK,GAAgB,QAAV/pF,KAAK2G,IAAY3G,KAAK4tG,YAAYrkB,GAAMS,QACnD,KAAK,GAAgB,QAAVhqF,KAAK2G,IAAY3G,KAAK4tG,YAAYrkB,GAAMW,MACnD,KAAK,GAAgB,QAAVlqF,KAAK2G,IAAY3G,KAAK4tG,YAAYrkB,GAAMU,OACnD,KAAK,GAAgB,QAAVjqF,KAAK2G,IAAY3G,KAAK4tG,YAAYrkB,GAAMI,UACnD,KAAK,GAAgB,QAAV3pF,KAAK2G,IAAY3G,KAAK4tG,YAAYrkB,GAAMK,UACnD,KAAK,IAAiB,QAAV5pF,KAAK2G,IAAY3G,KAAK4tG,YAAYrkB,GAAMM,QACpD,KAAK,IAAiB,QAAV7pF,KAAK2G,IAAY3G,KAAK4tG,YAAYrkB,GAAMO,QACpD,KAAK,GAAgB,QAAV9pF,KAAK2G,IAAY3G,KAAK4tG,YAAYrkB,GAAMY,OAEnD,KAAK,GACH,GAAInqF,KAAKiI,QAAQ0+E,YAAc,EAAK,MAEpC,QADE3mF,KAAK2G,IACA3G,KAAK4tG,YAAYrkB,GAAMoB,WAEhC,KAAK,GACH,IAAItpF,EAAOrB,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,GAC5C,GAAa,MAATtF,GAAyB,KAATA,EAAe,OAAOrB,KAAKmvG,gBAAgB,IAC/D,GAAInvG,KAAKiI,QAAQ0+E,aAAe,EAAG,CACjC,GAAa,MAATtlF,GAAyB,KAATA,EAAe,OAAOrB,KAAKmvG,gBAAgB,GAC/D,GAAa,KAAT9tG,GAAwB,KAATA,EAAe,OAAOrB,KAAKmvG,gBAAgB,GAKlE,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAC3E,OAAOnvG,KAAKquG,YAAW,GAGzB,KAAK,GAAI,KAAK,GACZ,OAAOruG,KAAKovG,WAAWxqG,GAOzB,KAAK,GACH,OAAO5E,KAAKuuG,kBAEd,KAAK,GAAI,KAAK,GACZ,OAAOvuG,KAAKyuG,0BAA0B7pG,GAExC,KAAK,IAAK,KAAK,GACb,OAAO5E,KAAK2uG,mBAAmB/pG,GAEjC,KAAK,GACH,OAAO5E,KAAK4uG,kBAEd,KAAK,GAAI,KAAK,GACZ,OAAO5uG,KAAK6uG,mBAAmBjqG,GAEjC,KAAK,GAAI,KAAK,GACZ,OAAO5E,KAAK8uG,gBAAgBlqG,GAE9B,KAAK,GAAI,KAAK,GACZ,OAAO5E,KAAK+uG,kBAAkBnqG,GAEhC,KAAK,GACH,OAAO5E,KAAKgvG,qBAEd,KAAK,IACH,OAAOhvG,KAAKwuG,SAASjlB,GAAMjyB,OAAQ,GAErC,KAAK,GACH,OAAOt3D,KAAKivG,uBAGdjvG,KAAKu1F,MAAMv1F,KAAK2G,IAAK,yBAA2B2mG,GAAoB1oG,GAAQ,MAG9EwoG,GAAKoB,SAAW,SAASz0F,EAAMq9C,GAC7B,IAAIl0D,EAAMlD,KAAKivF,MAAM/uF,MAAMF,KAAK2G,IAAK3G,KAAK2G,IAAMywD,GAEhD,OADAp3D,KAAK2G,KAAOywD,EACLp3D,KAAK4tG,YAAY7zF,EAAM7W,IAGhCkqG,GAAKhM,WAAa,WAEhB,IADA,IAAIiO,EAASC,EAAS9uG,EAAQR,KAAK2G,MAC1B,CACH3G,KAAK2G,KAAO3G,KAAKivF,MAAM9vF,QAAUa,KAAKu1F,MAAM/0F,EAAO,mCACvD,IAAI+tE,EAAKvuE,KAAKivF,MAAMllE,OAAO/pB,KAAK2G,KAEhC,GADIqnF,GAAUhpF,KAAKupE,IAAOvuE,KAAKu1F,MAAM/0F,EAAO,mCACvC6uG,EAKIA,GAAU,MALL,CACZ,GAAW,MAAP9gC,EAAc+gC,GAAU,OACvB,GAAW,MAAP/gC,GAAc+gC,EAAWA,GAAU,OACvC,GAAW,MAAP/gC,IAAe+gC,EAAW,MACnCD,EAAiB,OAAP9gC,IAEVvuE,KAAK2G,IAET,IAAImD,EAAU9J,KAAKivF,MAAM/uF,MAAMM,EAAOR,KAAK2G,OACzC3G,KAAK2G,IACP,IAAI4oG,EAAavvG,KAAK2G,IAClB8sF,EAAQzzF,KAAKkvG,YACblvG,KAAKsxF,aAAetxF,KAAKg1F,WAAWua,GAGxC,IAAIhtF,EAAQviB,KAAK2yF,cAAgB3yF,KAAK2yF,YAAc,IAAI6U,GAAsBxnG,OAC9EuiB,EAAMsmF,MAAMroG,EAAOsJ,EAAS2pF,GAC5BzzF,KAAKipG,oBAAoB1mF,GACzBviB,KAAKmpG,sBAAsB5mF,GAG3B,IAAInhB,EAAQ,KACZ,IACEA,EAAQ,IAAIkL,OAAOxC,EAAS2pF,GAC5B,MAAOhyB,IAKT,OAAOzhE,KAAK4tG,YAAYrkB,GAAMC,OAAQ,CAAC1/E,QAASA,EAAS2pF,MAAOA,EAAOryF,MAAOA,KAOhFgsG,GAAKoC,QAAU,SAASC,EAAO3hC,EAAK4hC,GAUlC,IARA,IAAIC,EAAkB3vG,KAAKiI,QAAQ0+E,aAAe,SAAc9jF,IAARirE,EAKpD8hC,EAA8BF,GAAsE,KAApC1vG,KAAKivF,MAAM7vF,WAAWY,KAAK2G,KAE3FnG,EAAQR,KAAK2G,IAAKkpG,EAAQ,EAAGC,EAAW,EACnC5wG,EAAI,EAAGuiE,EAAW,MAAPqM,EAActoE,EAAAA,EAAWsoE,EAAK5uE,EAAIuiE,IAAKviE,IAAKc,KAAK2G,IAAK,CACxE,IAAI/B,EAAO5E,KAAKivF,MAAM7vF,WAAWY,KAAK2G,KAAM0lE,SAE5C,GAAIsjC,GAA4B,KAAT/qG,EACjBgrG,GAA+B5vG,KAAK01F,iBAAiB11F,KAAK2G,IAAK,qEAClD,KAAbmpG,GAAmB9vG,KAAK01F,iBAAiB11F,KAAK2G,IAAK,oDAC7C,IAANzH,GAAWc,KAAK01F,iBAAiB11F,KAAK2G,IAAK,2DAC/CmpG,EAAWlrG,MAJb,CAYA,IAJkBynE,EAAdznE,GAAQ,GAAYA,EAAO,GAAK,GAC3BA,GAAQ,GAAYA,EAAO,GAAK,GAChCA,GAAQ,IAAMA,GAAQ,GAAYA,EAAO,GACrCY,EAAAA,IACFiqG,EAAS,MACpBK,EAAWlrG,EACXirG,EAAQA,EAAQJ,EAAQpjC,GAI1B,OADIsjC,GAAgC,KAAbG,GAAmB9vG,KAAK01F,iBAAiB11F,KAAK2G,IAAM,EAAG,0DAC1E3G,KAAK2G,MAAQnG,GAAgB,MAAPstE,GAAe9tE,KAAK2G,IAAMnG,IAAUstE,EAAc,KAErE+hC,GAqBTzC,GAAK+B,gBAAkB,SAASM,GAC9B,IAAIjvG,EAAQR,KAAK2G,IACjB3G,KAAK2G,KAAO,EACZ,IAAI0lE,EAAMrsE,KAAKwvG,QAAQC,GAMvB,OALW,MAAPpjC,GAAersE,KAAKu1F,MAAMv1F,KAAKQ,MAAQ,EAAG,4BAA8BivG,GACxEzvG,KAAKiI,QAAQ0+E,aAAe,IAA0C,MAApC3mF,KAAKivF,MAAM7vF,WAAWY,KAAK2G,MAC/D0lE,EAAMghC,GAAertG,KAAKivF,MAAM/uF,MAAMM,EAAOR,KAAK2G,QAChD3G,KAAK2G,KACE4hF,GAAkBvoF,KAAK8tG,sBAAwB9tG,KAAKu1F,MAAMv1F,KAAK2G,IAAK,oCACxE3G,KAAK4tG,YAAYrkB,GAAM5pF,IAAK0sE,IAKrC+gC,GAAKiB,WAAa,SAAS0B,GACzB,IAAIvvG,EAAQR,KAAK2G,IACZopG,GAAuD,OAAtC/vG,KAAKwvG,QAAQ,QAAI3sG,GAAW,IAAkB7C,KAAKu1F,MAAM/0F,EAAO,kBACtF,IAAIwvG,EAAQhwG,KAAK2G,IAAMnG,GAAS,GAAsC,KAAjCR,KAAKivF,MAAM7vF,WAAWoB,GACvDwvG,GAAShwG,KAAK8nE,QAAU9nE,KAAKu1F,MAAM/0F,EAAO,kBAC9C,IAAIa,EAAOrB,KAAKivF,MAAM7vF,WAAWY,KAAK2G,KACtC,IAAKqpG,IAAUD,GAAiB/vG,KAAKiI,QAAQ0+E,aAAe,IAAe,MAATtlF,EAAc,CAC9E,IAAI4uG,EAAQ5C,GAAertG,KAAKivF,MAAM/uF,MAAMM,EAAOR,KAAK2G,MAGxD,QAFE3G,KAAK2G,IACH4hF,GAAkBvoF,KAAK8tG,sBAAwB9tG,KAAKu1F,MAAMv1F,KAAK2G,IAAK,oCACjE3G,KAAK4tG,YAAYrkB,GAAM5pF,IAAKswG,GAEjCD,GAAS,OAAOhrG,KAAKhF,KAAKivF,MAAM/uF,MAAMM,EAAOR,KAAK2G,QAASqpG,GAAQ,GAC1D,KAAT3uG,GAAgB2uG,MAChBhwG,KAAK2G,IACP3G,KAAKwvG,QAAQ,IACbnuG,EAAOrB,KAAKivF,MAAM7vF,WAAWY,KAAK2G,MAEtB,KAATtF,GAAwB,MAATA,GAAkB2uG,IAEvB,MADb3uG,EAAOrB,KAAKivF,MAAM7vF,aAAaY,KAAK2G,OACR,KAATtF,KAAiBrB,KAAK2G,IAChB,OAArB3G,KAAKwvG,QAAQ,KAAgBxvG,KAAKu1F,MAAM/0F,EAAO,mBAEjD+nF,GAAkBvoF,KAAK8tG,sBAAwB9tG,KAAKu1F,MAAMv1F,KAAK2G,IAAK,oCAExE,IAzDsBzD,EAyDlBmpE,GAzDkBnpE,EAyDGlD,KAAKivF,MAAM/uF,MAAMM,EAAOR,KAAK2G,KAAMqpG,EAvDnD58E,SAASlwB,EAAK,GAIhBiwB,WAAWjwB,EAAIP,QAAQ,KAAM,MAoDpC,OAAO3C,KAAK4tG,YAAYrkB,GAAM5pF,IAAK0sE,IAKrC+gC,GAAK8C,cAAgB,WACnB,IAA0CtrG,EAE1C,GAAW,MAFF5E,KAAKivF,MAAM7vF,WAAWY,KAAK2G,KAEpB,CACV3G,KAAKiI,QAAQ0+E,YAAc,GAAK3mF,KAAKg1F,aACzC,IAAImb,IAAYnwG,KAAK2G,IACrB/B,EAAO5E,KAAKowG,YAAYpwG,KAAKivF,MAAMxlF,QAAQ,IAAKzJ,KAAK2G,KAAO3G,KAAK2G,OAC/D3G,KAAK2G,IACH/B,EAAO,SAAY5E,KAAKqwG,mBAAmBF,EAAS,iCAExDvrG,EAAO5E,KAAKowG,YAAY,GAE1B,OAAOxrG,GAUTwoG,GAAKgC,WAAa,SAASkB,GAEzB,IADA,IAAIruB,EAAM,GAAIsuB,IAAevwG,KAAK2G,MACzB,CACH3G,KAAK2G,KAAO3G,KAAKivF,MAAM9vF,QAAUa,KAAKu1F,MAAMv1F,KAAKQ,MAAO,gCAC5D,IAAI+tE,EAAKvuE,KAAKivF,MAAM7vF,WAAWY,KAAK2G,KACpC,GAAI4nE,IAAO+hC,EAAS,MACT,KAAP/hC,GACF0T,GAAOjiF,KAAKivF,MAAM/uF,MAAMqwG,EAAYvwG,KAAK2G,KACzCs7E,GAAOjiF,KAAKwwG,iBAAgB,GAC5BD,EAAavwG,KAAK2G,MAEdunF,GAAU3f,EAAIvuE,KAAKiI,QAAQ0+E,aAAe,KAAO3mF,KAAKu1F,MAAMv1F,KAAKQ,MAAO,kCAC1ER,KAAK2G,KAIX,OADAs7E,GAAOjiF,KAAKivF,MAAM/uF,MAAMqwG,EAAYvwG,KAAK2G,OAClC3G,KAAK4tG,YAAYrkB,GAAMvhF,OAAQi6E,IAKxC,IAAIwuB,GAAgC,GAEpCrD,GAAKhI,qBAAuB,WAC1BplG,KAAK0wG,mBAAoB,EACzB,IACE1wG,KAAK2wG,gBACL,MAAO7vC,GACP,GAAIA,IAAQ2vC,GAGV,MAAM3vC,EAFN9gE,KAAK4wG,2BAMT5wG,KAAK0wG,mBAAoB,GAG3BtD,GAAKiD,mBAAqB,SAASQ,EAAU73F,GAC3C,GAAIhZ,KAAK0wG,mBAAqB1wG,KAAKiI,QAAQ0+E,aAAe,EACxD,MAAM8pB,GAENzwG,KAAKu1F,MAAMsb,EAAU73F,IAIzBo0F,GAAKuD,cAAgB,WAEnB,IADA,IAAI1uB,EAAM,GAAIsuB,EAAavwG,KAAK2G,MACvB,CACH3G,KAAK2G,KAAO3G,KAAKivF,MAAM9vF,QAAUa,KAAKu1F,MAAMv1F,KAAKQ,MAAO,yBAC5D,IAAI+tE,EAAKvuE,KAAKivF,MAAM7vF,WAAWY,KAAK2G,KACpC,GAAW,KAAP4nE,GAAoB,KAAPA,GAAqD,MAAxCvuE,KAAKivF,MAAM7vF,WAAWY,KAAK2G,IAAM,GAC7D,OAAI3G,KAAK2G,MAAQ3G,KAAKQ,OAAUR,KAAK+Z,OAASwvE,GAAMiB,UAAYxqF,KAAK+Z,OAASwvE,GAAMkB,iBASpFxI,GAAOjiF,KAAKivF,MAAM/uF,MAAMqwG,EAAYvwG,KAAK2G,KAClC3G,KAAK4tG,YAAYrkB,GAAMiB,SAAUvI,IAT3B,KAAP1T,GACFvuE,KAAK2G,KAAO,EACL3G,KAAK4tG,YAAYrkB,GAAMqB,kBAE5B5qF,KAAK2G,IACA3G,KAAK4tG,YAAYrkB,GAAMoB,YAMpC,GAAW,KAAPpc,EACF0T,GAAOjiF,KAAKivF,MAAM/uF,MAAMqwG,EAAYvwG,KAAK2G,KACzCs7E,GAAOjiF,KAAKwwG,iBAAgB,GAC5BD,EAAavwG,KAAK2G,SACb,GAAIunF,GAAU3f,GAAK,CAGxB,OAFA0T,GAAOjiF,KAAKivF,MAAM/uF,MAAMqwG,EAAYvwG,KAAK2G,OACvC3G,KAAK2G,IACC4nE,GACR,KAAK,GACqC,KAApCvuE,KAAKivF,MAAM7vF,WAAWY,KAAK2G,QAAiB3G,KAAK2G,IACvD,KAAK,GACHs7E,GAAO,KACP,MACF,QACEA,GAAOztD,OAAOC,aAAa85C,GAGzBvuE,KAAKiI,QAAQ2nF,cACb5vF,KAAKwxF,QACPxxF,KAAKuxF,UAAYvxF,KAAK2G,KAExB4pG,EAAavwG,KAAK2G,UAEhB3G,KAAK2G,MAMbymG,GAAKwD,yBAA2B,WAC9B,KAAO5wG,KAAK2G,IAAM3G,KAAKivF,MAAM9vF,OAAQa,KAAK2G,MACxC,OAAQ3G,KAAKivF,MAAMjvF,KAAK2G,MACxB,IAAK,OACD3G,KAAK2G,IACP,MAEF,IAAK,IACH,GAAiC,MAA7B3G,KAAKivF,MAAMjvF,KAAK2G,IAAM,GACxB,MAIJ,IAAK,IACH,OAAO3G,KAAK4tG,YAAYrkB,GAAMkB,gBAAiBzqF,KAAKivF,MAAM/uF,MAAMF,KAAKQ,MAAOR,KAAK2G,MAKrF3G,KAAKu1F,MAAMv1F,KAAKQ,MAAO,0BAKzB4sG,GAAKoD,gBAAkB,SAASM,GAC9B,IAAIviC,EAAKvuE,KAAKivF,MAAM7vF,aAAaY,KAAK2G,KAEtC,SADE3G,KAAK2G,IACC4nE,GACR,KAAK,IAAK,MAAO,KACjB,KAAK,IAAK,MAAO,KACjB,KAAK,IAAK,OAAO/5C,OAAOC,aAAaz0B,KAAKowG,YAAY,IACtD,KAAK,IAAK,OAAO9C,GAAoBttG,KAAKkwG,iBAC1C,KAAK,IAAK,MAAO,KACjB,KAAK,GAAI,MAAO,KAChB,KAAK,IAAK,MAAO,KACjB,KAAK,IAAK,MAAO,KACjB,KAAK,GAA4C,KAApClwG,KAAKivF,MAAM7vF,WAAWY,KAAK2G,QAAiB3G,KAAK2G,IAC9D,KAAK,GAEH,OADI3G,KAAKiI,QAAQ2nF,YAAa5vF,KAAKuxF,UAAYvxF,KAAK2G,MAAO3G,KAAKwxF,SACzD,GACT,KAAK,GACL,KAAK,GAOH,GANIxxF,KAAK8nE,QACP9nE,KAAKqwG,mBACHrwG,KAAK2G,IAAM,EACX,2BAGAmqG,EAAY,CACd,IAAIX,EAAUnwG,KAAK2G,IAAM,EAOzB,OALA3G,KAAKqwG,mBACHF,EACA,8CAGK,KAEX,QACE,GAAI5hC,GAAM,IAAMA,GAAM,GAAI,CACxB,IAAIwiC,EAAW/wG,KAAKivF,MAAMxjF,OAAOzL,KAAK2G,IAAM,EAAG,GAAG2D,MAAM,WAAW,GAC/D0lG,EAAQ58E,SAAS29E,EAAU,GAe/B,OAdIf,EAAQ,MACVe,EAAWA,EAAS7wG,MAAM,GAAI,GAC9B8vG,EAAQ58E,SAAS29E,EAAU,IAE7B/wG,KAAK2G,KAAOoqG,EAAS5xG,OAAS,EAC9BovE,EAAKvuE,KAAKivF,MAAM7vF,WAAWY,KAAK2G,KACd,MAAboqG,GAA2B,KAAPxiC,GAAoB,KAAPA,IAAevuE,KAAK8nE,SAAUgpC,GAClE9wG,KAAKqwG,mBACHrwG,KAAK2G,IAAM,EAAIoqG,EAAS5xG,OACxB2xG,EACI,mCACA,gCAGDt8E,OAAOC,aAAau7E,GAE7B,OAAI9hB,GAAU3f,GAGL,GAEF/5C,OAAOC,aAAa85C,KAM/B6+B,GAAKgD,YAAc,SAAStiC,GAC1B,IAAIqiC,EAAUnwG,KAAK2G,IACftG,EAAIL,KAAKwvG,QAAQ,GAAI1hC,GAEzB,OADU,OAANztE,GAAcL,KAAKqwG,mBAAmBF,EAAS,iCAC5C9vG,GAST+sG,GAAK8B,UAAY,WACflvG,KAAKsxF,aAAc,EAGnB,IAFA,IAAI9jB,EAAO,GAAI7lE,GAAQ,EAAM4oG,EAAavwG,KAAK2G,IAC3C6hF,EAASxoF,KAAKiI,QAAQ0+E,aAAe,EAClC3mF,KAAK2G,IAAM3G,KAAKivF,MAAM9vF,QAAQ,CACnC,IAAIovE,EAAKvuE,KAAK8tG,oBACd,GAAIrlB,GAAiBla,EAAIia,GACvBxoF,KAAK2G,KAAO4nE,GAAM,MAAS,EAAI,MAC1B,CAAA,GAAW,KAAPA,EAaT,MAZAvuE,KAAKsxF,aAAc,EACnB9jB,GAAQxtE,KAAKivF,MAAM/uF,MAAMqwG,EAAYvwG,KAAK2G,KAC1C,IAAIqqG,EAAWhxG,KAAK2G,IACsB,MAAtC3G,KAAKivF,MAAM7vF,aAAaY,KAAK2G,MAC7B3G,KAAKqwG,mBAAmBrwG,KAAK2G,IAAK,+CACpC3G,KAAK2G,IACP,IAAIsqG,EAAMjxG,KAAKkwG,iBACTvoG,EAAQ4gF,GAAoBE,IAAkBwoB,EAAKzoB,IACrDxoF,KAAKqwG,mBAAmBW,EAAU,0BACtCxjC,GAAQ8/B,GAAoB2D,GAC5BV,EAAavwG,KAAK2G,IAIpBgB,GAAQ,EAEV,OAAO6lE,EAAOxtE,KAAKivF,MAAM/uF,MAAMqwG,EAAYvwG,KAAK2G,MAMlDymG,GAAKW,SAAW,WACd,IAAIvgC,EAAOxtE,KAAKkvG,YACZn1F,EAAOwvE,GAAMp8E,KAIjB,OAHInN,KAAK6nF,SAAS7iF,KAAKwoE,KACrBzzD,EAAOsvE,GAAW7b,IAEbxtE,KAAK4tG,YAAY7zF,EAAMyzD,IAOhCwjB,GAAOkgB,MAAQ,CACblgB,OAAQA,GACRvtF,QAJY,QAKZ0rF,eAAgBA,GAChBR,SAAUA,GACVG,eAAgBA,GAChBE,YAAaA,GACbvmD,KAAMA,GACNigD,UAAWA,GACXyoB,SAAU5nB,GACV6nB,aAAc/nB,GACdob,WAAYA,GACZ4M,YAAaxM,GACbpc,iBAAkBA,GAClBF,kBAAmBA,GACnB4kB,MAAOA,GACPjf,UAAWA,GACXF,UAAWA,GACXC,WAAYA,GACZG,mBAAoBA,ICh1Kf,MAAMkjB,GAAqB5xD,GAAmB,KACpD1D,GAAM,CACLp3C,KAAM,mBACNoU,QAAS,uCAAuC0mC,4HAChDqK,IAAK,qDCJMwnD,GAAWD,GAAkB,eAC7BE,GAAYF,GAAkB,sBCH9BG,GAQZ3+F,YAAmB4+F,EAAc,GAAd1xG,iBAAA0xG,EAPX1xG,WAAQ,IAAIyF,MAKZzF,iBAAc,EAItB8S,IAAO6+F,GACN,OAAO,IAAI59E,SAAQ,CAACplB,EAASulB,KAC5Bl0B,KAAK4xG,MAAMnyG,KAAK,CAAEy0B,OAAAA,EAAQvlB,QAAAA,EAASgjG,KAAAA,IACnC3xG,KAAK6xG,UAIC/+F,aACP,GAAI9S,KAAK8xG,aAAe9xG,KAAK0xG,YAAa,OAG1C,IAAIlvB,EACJ,IAHAxiF,KAAK8xG,cAGGtvB,EAAQxiF,KAAK4xG,MAAM7rG,SAAU,CACpC,MAAMmuB,OAAEA,EAAMvlB,QAAEA,EAAOgjG,KAAEA,GAASnvB,EAElC,IAEC7zE,QADqBgjG,KAEpB,MAAO7wC,GACR5sC,EAAO4sC,IAIT9gE,KAAK8xG,eC5BA3vD,eAAeiY,GACrB5zD,EACAqS,EACAk5F,EACA38C,EACA48C,EAMAvb,EACAwb,GAaA,sBCnBAzrG,EACAqS,EACAu8C,EACA48C,EAMAvb,EACAwb,GAEA,IAAIC,EAA8B,KAC9BC,EAAwC,KAC5C,GAAI1b,EAAM,CACTyb,EAAU,IAAIl/F,IACd,IAAK,MAAMo/F,KAAe3b,EACrBjwF,IAAW4rG,EAAY5rG,QAAUqS,IAAau5F,EAAYv5F,UAC7Dq5F,EAAQ9xG,IAAIgyG,EAAY73C,QAG1B43C,EAAiB,CAACE,EAAe93C,SAC7B83C,EACH1jG,QAAS,CAACnI,EAAQqS,GAAYy5F,OAAAA,EAAQC,SAAAA,GAAa98F,IAC3Cu8F,EACNxrG,EACAqS,EACAy5F,EACAC,EAAW,IAAI9b,EAAM,CAAE59E,SAAAA,EAAU0hD,OAAAA,EAAQ/zD,OAAAA,IAAYiwF,KAKzD,OAAOrhC,EAAao9C,UACnB,YACA,CAAChsG,EAAQqS,EAAU,CAAEy5F,OAAQL,IAC7BE,EACAD,GD7B0BO,CAC1BjsG,EACAqS,EACAu8C,EACA48C,EACAvb,EACAwb,GEtBK,MAAMS,GAA0B,eAC1BC,GAAiC,+BAE9BC,GACf9xC,EACAvG,GACAE,KAAEA,EAAI3jD,GAAEA,GAAuC,IAc/C,MAZmB,iBAARgqD,IAAkBA,EAAM,CAAE9nD,QAAS8nD,IAC1CA,EAAIl8D,MAAQk8D,EAAIl8D,OAASmqD,GAAO8jD,eACnC/xC,EAAIgyC,WAAahyC,EAAIl8D,MAEtBk8D,EAAIl8D,KAAOmqD,GAAO8jD,aAClB/xC,EAAIvG,OAASA,EACTE,IACHqG,EAAIrG,KAAOA,GAER3jD,IACHgqD,EAAIhqD,GAAKA,GAEHklC,GAAM8kB,GAGP,MAAMiyC,GAAkF,CAC9F,CAAEC,QAAQ,EAAMC,WAAY,kBAAmB7pD,YAAa,mBCqBhD8pD,GAAwB,CACpCvjG,OAAM,KACE,EAERmD,QAGAxS,IAAG,KACK,EAERwS,SAGD,SAASqgG,GAAuBC,GAC/B,OACCA,EAAW7oF,WAAWmoF,KACtBU,EAAW7oF,WAAWooF,IAEf32D,GAAM,CACZp3C,KAAM,yBACNoU,QACC,+FAGIgjC,GAAM,CACZp3C,KAAM,wBACNoU,QAAS,mBAAmBo6F,yKCnDN/4C,GACvB7zD,EACA2O,EACAigD,EACAzqD,GAEA,MAAMmM,EAAK3B,EAAO2B,GACZqpD,EAA8C,GAEpD,IAAID,EAAmC,OAAf15D,EAAO6G,IAAe,KAAO6mE,GAAiB1tE,EAAO6G,KAC7E,MAAM4yD,EAAez5D,EAAO5B,KAC5B,IAAIkT,EAAMtR,EAAOsR,IACjB,MAAMsoD,EAAkC,GAClCizC,EAA8B,GACpC,IAAIrzC,GAAuB,EAC3B,MAAMszC,EAA0B,IAAOtzC,GAAuB,EAC9D,IAAIuzC,EACJ,MAAMC,EAAoBhtG,EAAO5B,KAuCjC,OAAOwwD,EACLwmB,eACA,YACA,CAAC43B,EAAW18F,IAxCd,SAEC28F,EACA7zG,EACA26D,GAEA,IAAI31D,EACAyI,EACJ,GAAsB,iBAAXzN,EACVgF,EAAOhF,MACD,CAAA,IAAIA,GAA4B,iBAAXA,EAU3B,OAAO6zG,EARP,GADAt+F,EAAOorD,cAAc3gE,GACF,MAAfA,EAAOgF,KAIV,OAHIhF,EAAOyN,KAAOzN,EAAOkY,MACxBnN,G9GyT6CyoG,E8GzTN74C,EAAOptD,K9G0T3C,CACNvI,KAAMmqD,GAAO2kD,qCACb16F,QACC,eAAeo6F,oF8G3TPK,IAEL7uG,KAAAA,EAAMyI,IAAAA,EAAKyK,IAAAA,GAAQlY,O9GqTyBwzG,E8GrShD,OATY,OAAR/lG,GACH8yD,EAAe1gE,KACdy0E,GAAgC,iBAAR7mE,EAAmBpH,KAAK+pB,MAAM3iB,GAAOA,IAAQ,CACpEy8C,SAAS,EACTyQ,OAAQA,EAAOptD,OAKXvI,KAQN,CAACytG,EAAe93C,KAEf,OADAg5C,EAAYh5C,EACL,IACH83C,EACHv/F,aAAagE,GACZspD,EAAsB3gE,KAAKqX,GAC3Bu7F,EAAcsB,aAAa78F,IAE5B88F,MAAO5zC,EACJqyC,EAAcuB,ODlEgBC,ECmERxB,EAAcuB,MDnEoBE,ECmEbR,EDlE3C,CACN3jG,OAAOmH,IACNg9F,IACOD,EAAYlkG,OAAOmH,IAE3B1E,IAAI0E,IACHg9F,IACOD,EAAYzhG,IAAI0E,IAExBxW,IAAIwW,IACHg9F,IACOD,EAAYvzG,IAAIwW,IAExBzE,IAAG,CAACyE,EAAY1V,KACf0yG,IACOD,EAAYxhG,IAAIyE,EAAI1V,MCoDzB++E,UAAS,CAAChzE,EAAc3G,KACvB6sG,EAAa5zG,KAAK,CAAE0N,KAAAA,EAAM3G,OAAAA,EAAQuT,KAAM,UACjCs4F,EAAclyB,UAAUhzE,EAAM3G,IAEtC05E,UAAS,CAACppE,EAAI7O,KACborG,EAAa5zG,KAAK,CAAEqX,GAAAA,EAAI3J,KAAMlF,GAAWA,EAAQkF,KAAM4M,KAAM,UACtDs4F,EAAcnyB,UAAUppE,EAAI7O,IAEpC8rG,SAAS30B,IACRi0B,EAAa5zG,KAAK2/E,GACXhqB,EAAa2+C,SAAS30B,IAE9BpjC,MAAK,CAAC8kB,EAA2Bn6D,KACb,iBAARm6D,IAAkBA,EAAM,CAAE9nD,QAAS8nD,IAC1Cn6D,GAAKynD,GAAoB0S,EAAKn6D,EAAK6sG,EAAW18F,GAClDgqD,EAAIhqD,GAAKA,EACTgqD,EAAIrG,KAAO,YACJ43C,EAAcr2D,MAAM8kB,IAE5BhuD,uBACC,MAAMkhG,WjC8HXl9F,EACAmpD,EACAC,EACAC,EACAx1D,GAEA,OAAKw1D,EAAehhE,OAYb,CAAEsE,QAAS,KARHsoE,GACdj1D,EACAmpD,EACAC,EACAC,EACA2L,GAAWnhE,IAEOuxE,iBAVXhc,EiCrIiB+zC,CACnBn9F,EACAmpD,EACAC,EACAC,EACAx1D,GAED,OAAKqpG,GAID9zC,IAAsB8zC,IACzB9zC,EAAoB8zC,EACpB7zC,EAAehhE,OAAS,GAElB,IAAIoE,EAAU,IACjBywG,EACHtwG,KAAM,KACNE,eAAgBowG,EAAYpwG,kBAVR,IAAImE,EAAYk4D,GACjBt2D,YAAY,CAAE5C,OAAO,EAAM2C,gBAAgB,EAAMlD,OAAQsQ,KAY9EhE,iBACC,OAAO9S,KAAKg8C,MAAM,CACjBp3C,KAAM,yBACNoU,QAAS,2IAGXlG,KAAK6+C,EAAiChrD,GACd,iBAAZgrD,IAAsBA,EAAU,CAAE34C,QAAS24C,IAClDhrD,GAAKynD,GAAoBuD,EAAShrD,EAAK6sG,EAAW18F,GACtD66C,EAAQ76C,GAAKA,EACb66C,EAAQ8I,KAAO,YACf43C,EAAc1nG,KAAKgnD,SDxHakiD,EAA0BC,KC6H7DzkG,OAAMyxD,GAAO8xC,GAAiB9xC,EAAKyyC,EAAUpmG,KAAM,CAAEstD,KAAM,YAAa3jD,GAAAA,MACxE8jD,MAAKh2D,IACAo7D,GAEAqzC,EAAal0G,SAAQgW,EAAOkrD,eAAiBgzC,GAG3C,CACNv7F,IAAAA,EACAlT,KAAAA,EACAo7D,qBAAAA,EACA5oD,KAAMjC,EAAO0C,KAAKT,KAClB6oD,aAAAA,EACAC,kBAAAA,EACAC,eAAAA,EACAC,sBAAAA,YCrHS8zC,GAQZphG,YACkB2pD,EACAgC,EACAx2D,EACAmtD,GAHAp1D,WAAAy8D,EACAz8D,iBAAAy+D,EACAz+D,aAAAiI,EACAjI,kBAAAo1D,EAVDp1D,0BAAuB,IAAIgT,IAC3BhT,yBAA2D,GACpEA,8BAA6C+zB,QAAQplB,UACrD3O,0BAAuB,EACvBA,eAAY,IAAIyxG,GA2FxBzxG,eAAYmiD,MACX37C,EACAqS,EACAo5F,EACAxb,EAAkF,OAE3Ez2F,KAAKm0G,wBACXn0G,KAAKo0G,wCACJp0G,KAAKiI,QAAQs1B,SAAS/2B,EAAQqS,GAAU,UAE/BuhD,GACN5zD,EACAqS,EACA7Y,KAAKiI,QAAQosG,iBACbr0G,KAAKo1D,aACLp1D,KAAKo6D,UACLq8B,EACAwb,GAGHp5F,EACArS,IAxGFxG,KAAKmX,qBAAuBlP,EAAQ6yC,UACjC7yC,EAAQ6yC,UAAU2lB,kBAClB,KAAM,EACTzgE,KAAKs0G,UAAU5C,YAAczpG,EAAQssG,qBAGtCzhG,2BAA2B0hG,GAC1B,MAAM50G,EAASI,KAAKy0G,yBACnB1gF,QAAQC,IAAIwgF,EAAkBnnG,KAAIyJ,GAAM9W,KAAK00G,gBAAgB59F,GAAI,OAAOjU,EAAW,UAGpF,aADM7C,KAAK20G,0BACJ/0G,EAGRkT,sBACC8hG,EACAC,GAMA,MAAMC,EAAwB90G,KAAK+0G,qBACnC/0G,KAAK+0G,sBAAwBH,EAAuBz1G,OACpD,MAAM61G,QAAwBh1G,KAAKy0G,yBAClC1gF,QAAQC,IACP4gF,EAAuBvnG,KACtB,EAAGyJ,GAAAA,EAAI+B,SAAAA,KAAgC7Y,KAAK00G,gBAAgB59F,GAAI,EAAM+B,EAAU,SAEhF+hD,MAAK6a,IACN,IAAIw/B,EAAcH,EAClB,IAAK,IAAInzG,EAAQ,EAAGA,EAAQ8zE,EAAat2E,OAAQwC,IAAS,CACzD,MAAM2tD,EAAcmmB,EAAa9zE,GACjC2tD,EAAYinB,wBACXjnB,EAAYinB,yBAA2Bs+B,EACxCK,GAAsB5lD,EAAaslD,EAAuBjzG,GAAQkzG,GAClE,MAAMM,EAAwBn1G,KAAKo1G,oBAAoBx3E,MACtDy3E,GAAiBA,EAAclgG,SAAWm6C,IAEtC6lD,EAGJA,EAAsBxzG,MAAQ4D,KAAKL,IAAIiwG,EAAsBxzG,MAAOszG,GAFpEj1G,KAAKo1G,oBAAoB31G,KAAK,CAAEkC,MAAOszG,EAAa9/F,OAAQm6C,IAI7D2lD,IAKD,OAHAj1G,KAAKo1G,oBAAoB7nG,MAAK,EAAG5L,MAAO2zG,IAAY3zG,MAAO4zG,KAC1DD,EAASC,EAAS,GAAK,IAEjB9/B,MAIT,aADMz1E,KAAK20G,0BACJ,CACNl/B,aAAcz1E,KAAKo1G,oBAAoB/nG,KAAI,EAAG8H,OAAAA,KAAaA,IAC3DwgE,qBAAsB,IAAI31E,KAAK21E,sBAC/Bq/B,gBAAAA,GAIFliG,iBAAgB82C,SACfA,EAAQ9yC,GACRA,EAAE+B,SACFA,EAAQ1L,KACRA,EAAI6K,2BACJA,EAA0Bw+D,kBAC1BA,IAEA,MAAMg/B,EAAqC,CAC1C5rD,SAAUA,GAAY,KACtB9yC,GAAAA,EACA+B,SAAAA,EACA1L,KAAMA,GAAQ,MAETgI,EAAS6C,QACNhY,KAAKy1G,+BAA+BD,EAAkBx9F,UACrDhY,KAAK01G,gBAAgB,CAACF,IAAmB,IAAQR,gBAAgB,GAI3E,OAHyB,MAArBx+B,IACHrhE,EAAOqhE,kBAAoBA,GAErBrhE,EA6BArC,wBACP6iG,WAEA,IAAKA,EACJ,OAAO,KAER,MAAMp4E,EAAWo4E,EAAWp4E,WAAY,EACxC,MAAO,CACNA,SAAAA,EACAzmB,GAAI6+F,EAAW7+F,GACfM,KAAMu+F,EAAWv+F,MAAQzB,EACzB8qD,4BACCk1C,EAAWl1C,iCAAqBzgE,KAAKmX,qBAAqBw+F,EAAW7+F,KAAMymB,GAC5EllB,gCAAuBs9F,EAAWt9F,uCAI5BvF,+BACP0iG,EACA34C,GAEA,OAAO78D,KAAKy0G,yBACXz0G,KAAK00G,gBAAgBc,EAAiB1+F,IAAI,EAAO0+F,EAAiB38F,SAAU,MAAM+hD,MACjFzY,MAAMmN,IAEL,GADA4lD,GAAsB5lD,EAAakmD,GAAkB,IAChDlmD,EAAYz3C,KAAKM,QAAS,CAC9BnY,KAAK21E,qBAAqBv1E,IAAIkvD,GAC9B,MAAMsmD,QAAqC7hF,QAAQC,IAClD6oC,EAAsBxvD,KAAIyJ,GACzB9W,KAAK00G,gBAAgB59F,GAAI,EAAO0+F,EAAiB38F,SAAUy2C,EAAYx4C,OAGzE,IAAK,MAAM3B,KAAUygG,EACpBtmD,EAAYuN,sBAAsBz8D,IAAI+U,GAEvC,IAAK,MAAM0gG,KAAavmD,EAAYuN,sBACnCg5C,EAAU59F,uBAAuB7X,IAAIkvD,GAGvC,OAAOA,MAMHx8C,sBAAsBgE,EAAY+B,EAA8B1D,SAEvE,IAAI3O,EADJuzD,GAAU,eAAgB,GAE1B,IACCvzD,kBACQxG,KAAKo1D,aAAao9C,UAAU,OAAQ,CAAC17F,yBACrC9W,KAAKs0G,UAAUwB,KAAI3zD,SAAYovD,GAASz6F,KAC/C,MAAOgqD,GACR9G,GAAQ,eAAgB,GACxB,IAAIsS,EAAM,kBAAkBx1D,IAI5B,MAHI+B,IAAUyzD,GAAO,iBAAiBt1D,GAAW6B,OACjDyzD,GAAO,KAAKxL,EAAI9nD,UAChB8nD,EAAI9nD,QAAUszD,EACRxL,EAEP9G,GAAQ,eAAgB,GACxB,MAAM+7C,EACa,iBAAXvvG,EACJ,CAAE5B,KAAM4B,GACU,iBAAXA,GAA8C,iBAAhBA,EAAO5B,KAC5C4B,EACAw1C,Y/G7EuBllC,GAC5B,MAAO,CACNlS,KAAMmqD,GAAOinD,WACbh9F,QAAS,iBAAiBhC,GACzBF,wF+GyESm/F,CAAan/F,IACjBo/F,EAAel2G,KAAKy8D,MAAM05C,cAAc/jG,IAAI0E,GAClD,GACCo/F,IACCA,EAAal2C,sBACdk2C,EAAaj2C,eAAiB81C,EAAkBnxG,KAC/C,CACD,GAAIsxG,EAAa71C,eAChB,IAAK,MAAM+e,KAAe82B,EAAa71C,eACtCrgE,KAAKo1D,aAAa2+C,SAAS30B,GAE7BjqE,EAAOihG,UAAUF,QAEjB/gG,EAAOorD,cAAcw1C,GACrB5gG,EAAOihG,gBACA/7C,GAAU07C,EAAmB5gG,EAAQnV,KAAKo1D,aAAcp1D,KAAKiI,QAAQ8Q,SAKtEjG,gCACP,IAAIujG,EACJ,GACCA,EAAkBr2G,KAAKs2G,+BACjBD,QACEA,IAAoBr2G,KAAKs2G,0BAG3BxjG,yBAA4ByjG,GAQnC,OAPAv2G,KAAKs2G,yBAA2BviF,QAAQC,IAAI,CAC3CuiF,EACAv2G,KAAKs2G,2BAENt2G,KAAKs2G,yBAAyBjnG,OAAM,SAG7BknG,EAGAzjG,+BAA+BqC,GACtC,MAAMymD,QAAqB7nC,QAAQC,IAClC7e,EAAOynD,eAAevvD,KAAI80C,MAAMmgB,IAC/B,MAAMqzC,QAAmB31G,KAAKm6D,qBAC7BhlD,EACkC,iBAA3BmtD,EAAcnoD,SAClBmoD,EAAcnoD,SACdmoD,EAAcnoD,SAASyJ,WAC1BzO,EAAO2B,IAER,OAAmB,OAAf6+F,EAA4B,KACN,iBAAfA,GACVrzC,EAAc3U,WAAagoD,EACpB,MAEArzC,EAAc3U,iBAAmB3tD,KAAKw2G,wBAC7Cx/F,GAAW2+F,EAAW7+F,IACtB3B,EAAO2B,GACP6+F,OAIH,IAAK,MAAM3lD,KAAc4L,EACpB5L,IACH76C,EAAOsjE,oBAAoBr4E,IAAI4vD,GAC/BA,EAAWp4C,iBAAiBnY,KAAK0V,EAAO2B,KAKnChE,mBACPgE,GAAEA,EAAEM,KAAEA,EAAIqpD,kBAAEA,EAAiBpoD,sBAAEA,GAC/BQ,EACAV,GAEA,MAAMs+F,EAAiBz2G,KAAKy+D,YAAYrsD,IAAI0E,GAC5C,GAAI2/F,aAA0Bj6C,GAAQ,CACrC,GAAIrkD,EAAS,CACZs+F,EAAe5+F,KAAKM,SAAU,EAC9BnY,KAAK21E,qBAAqBhmE,OAAO8mG,GACjC,IAAK,MAAMZ,KAAaY,EAAe55C,sBACtCg5C,EAAU59F,uBAAuBtI,OAAO8mG,GAEzCA,EAAe55C,sBAAsB65C,QAEtC,OAAOD,EAGR,MAAMthG,EAAiB,IAAIqnD,GAC1Bx8D,KAAKy8D,MACL3lD,EACA9W,KAAKiI,QACLkQ,EACAsoD,EACApoD,EACAjB,GAWD,OATApX,KAAKy+D,YAAYpsD,IAAIyE,EAAI3B,GACzBnV,KAAKy8D,MAAMk6C,WAAW7/F,IAAM,QACtB9W,KAAK42G,gBAAgB9/F,EAAI+B,EAAU1D,SACnCnV,KAAKo1D,aAAasvB,aAAa,eAAgB,CAACvvE,EAAO0C,aACvDkc,QAAQC,IAAI,CACjBh0B,KAAK62G,wBAAwB1hG,GAC7BnV,KAAK82G,yBAAyB3hG,KAE/BA,EAAO4hG,cACA5hG,EAGArC,wBACPtM,EACAqS,EACA88F,GAEA,GAAIA,EAAWp4E,SAAU,CACxB,MAAMA,SAAEA,EAAQzmB,GAAEA,EAAE2pD,kBAAEA,EAAiBrpD,KAAEA,GAASu+F,EAC7C31G,KAAKy+D,YAAYn+D,IAAIwW,IACzB9W,KAAKy+D,YAAYpsD,IAChByE,EACA,IAAII,GACHlX,KAAKiI,QACL6O,EACA2pD,EACArpD,EACa,aAAbmmB,GAA2BvvB,EAAW8I,KAKzC,MAAM+7D,EAAiB7yE,KAAKy+D,YAAYrsD,IAAI0E,GAC5C,OAAM+7D,aAA0B37D,GAGzB6c,QAAQplB,QAAQkkE,GAFf72B,Y/GxImCx1C,EAAgBqS,GAC7D,MAAO,CACNjU,KAAMmqD,GAAOioD,oBACbh+F,QAAS,IAAIxS,oCAAyCwQ,GACrD6B,0D+GoIco+F,CAA8BzwG,EAAQqS,IAIpD,OAAO7Y,KAAKk3G,YAAYvB,EAAY98F,GAAU,GAIxC/F,8BAA8BqC,GACrC,IAAK,MAAM66C,WAAoBj8B,QAAQC,IACtCvuB,MAAMnC,KAAK6R,EAAOxR,SAASw+C,MAAM37C,GAChCxG,KAAKw2G,wBACJhwG,EACA2O,EAAO2B,GACN3B,EAAO2nD,YAAYt2D,GACnB2O,EAAO2nD,YAAYt2D,IACnBxG,KAAKm3G,sBACEn3G,KAAKo6D,UAAU5zD,EAAQ2O,EAAO2B,GAAInB,GACxCnP,EACA2O,EAAO2B,QAKX3B,EAAOymD,aAAax7D,IAAI4vD,GACxBA,EAAWr4C,UAAUlY,KAAK0V,EAAO2B,IAElC,IAAK9W,KAAKiI,QAAQ6yC,WAAkD,iBAArC3lC,EAAO0C,KAAKV,qBAC1C,IAAK,MAAM64C,KAAc76C,EAAOymD,aAC3B5L,aAAsBwM,KACzBxM,EAAW2P,2BAA4B,GAMnC7sD,uCACPskG,EACAv+F,EACArS,GAEA,MAAM6wG,8BAAEA,GAAkCr3G,KAAKiI,QAC/C,GAAImvG,EAAiB,CACpB,GAA+B,iBAApBA,EAA8B,CACxC,MAAM75E,EACL65E,EAAgB75E,UAAYv9B,KAAKiI,QAAQs1B,SAAS65E,EAAgBtgG,GAAI+B,GAAU,GACjF,MAAO,IACHu+F,EACH75E,SACCA,IACc,aAAbA,IACCvvB,EAAWopG,EAAgBtgG,MACd,IAAbymB,GACA+5E,GAAsBF,EAAgBtgG,GAAItQ,EAAQ6wG,IACnD,aAIJ,MAAM95E,EAAWv9B,KAAKiI,QAAQs1B,SAAS65E,EAAiBv+F,GAAU,GAClE,MAAO,CACN0kB,SACCA,IACC+5E,GAAsBF,EAAiB5wG,EAAQ6wG,IAC/C,YACFvgG,GACCymB,GAAY85E,EACTE,GAA4BH,EAAiBv+F,GAC7Cu+F,GAIN,MAAMtgG,EAAKugG,EACRE,GAA4B/wG,EAAQqS,GACpCrS,EACH,OAAwB,IAApB4wG,GAA8Bp3G,KAAKiI,QAAQs1B,SAASzmB,EAAI+B,GAAU,GAG/D,CACN0kB,SAAU+5E,GAAsBxgG,EAAItQ,EAAQ6wG,IAAkC,WAC9EvgG,GAAAA,GAJO,KAQDhE,gBACP6iG,EACAnvG,EACAqS,GAEA,OAAmB,OAAf88F,EACCznG,EAAW1H,GACPw1C,Y/GXyBx1C,EAAgBqS,GACnD,MAAO,CACNjU,KAAMmqD,GAAOyoD,kBACbx+F,QAAS,sBAAsBxS,WAAgBwQ,GAAW6B,M+GQ3C4+F,CAAoBjxG,EAAQqS,KAE1C7Y,KAAKiI,QAAQ8Q,gB/GLfvS,EACAqS,GAEA,MAAO,CACNjU,KAAMmqD,GAAOyoD,kBACb3+F,SAAU7B,GAAW6B,GACrBG,QAAS,IAAIxS,qBAA0BwQ,GACtC6B,wEAEDrS,OAAAA,EACAujD,IAAK,iF+GLgB2tD,CAAqClxG,EAAQqS,IAC1D,CACN0kB,UAAU,EACVzmB,GAAItQ,EACJ4Q,KAAMzB,EACN8qD,kBAAmBzgE,KAAKmX,qBAAqB3Q,GAAQ,GACrD6R,uBAAuB,KAGpBs9F,EAAWp4E,UAAYo4E,EAAWt9F,uBACrCrY,KAAKiI,QAAQ8Q,gB/GD2BvS,EAAgBqS,GAC3D,MAAO,CACNjU,KAAMmqD,GAAO4oD,2BACb9+F,SAAU7B,GAAW6B,GACrBG,QAAS,aAAaxS,mDACtBA,OAAAA,G+GJsBoxG,CAA4BpxG,EAAQqS,IAGnD88F,GAGA7iG,sBACP+kG,EACA1/F,EACAU,EACAZ,GAEA,MAAMm/F,QAAwBh9C,GAC7By9C,EACAh/F,EACA7Y,KAAKiI,QAAQosG,iBACbr0G,KAAKo1D,aACLp1D,KAAKo6D,UACL,KACAzkD,GAED,OAAuB,MAAnByhG,EACIp7D,GACqB,OAA3B/jC,W/GrD+B4/F,GAClC,MAAO,CACNjzG,KAAMmqD,GAAO+oD,iBACb9+F,QAAS,mCAAmChC,GAAW6gG,Q+GmDlDE,CAAmBF,Y/G3MzBA,EACA5/F,GAEA,MAAO,CACNrT,KAAMmqD,GAAOkB,2BACbj3C,QAAS,WAAWhC,GACnB6gG,gDAC8C7gG,GAC9CiB,8B+GoMI+/F,CAA+BH,EAAc5/F,KAI7B,IAApBm/F,GAC4B,iBAApBA,GAAgCA,EAAgB75E,SAEjDye,GACqB,OAA3B/jC,W/GtEqC4/F,GACxC,MAAO,CACNjzG,KAAMmqD,GAAO+oD,iBACb9+F,QAAS,oCAAoChC,GAAW6gG,Q+GoEnDI,CAAyBJ,Y/GnO/BA,EACA5/F,GAEA,MAAO,CACNrT,KAAMmqD,GAAOkB,2BACbj3C,QAAS,WAAWhC,GACnB6gG,gDAC8C7gG,GAC9CiB,2B+G4NIigG,CAAqCL,EAAc5/F,IAGjDjY,KAAKk3G,YACXl3G,KAAKm0G,wBACuB,iBAApBiD,EACHA,EACD,CAAEtgG,GAAIsgG,SAEVv0G,EACAsV,GAIMrF,2BACPqC,EACA8rD,EACApoD,GAEA,MAAM80C,QAAmB3tD,KAAKo1D,aAAao9C,UAAU,uBAAwB,CAC5EvxC,EACApoD,IAED,MAAyB,iBAAdooD,EACgB,iBAAftT,EACHA,EAEHA,EAGE,CACNpwB,UAAU,EACVkjC,mBAAmB,KAChB9S,GALI,KAQS,MAAdA,EACKx4C,EAAO2nD,YAAYmE,GAC1B9rD,EAAO2nD,YAAYmE,IACnBjhE,KAAKm3G,sBACEn3G,KAAKo6D,UAAU6G,EAAW9rD,EAAO2B,GAAInB,GAC3CsrD,EACA9rD,EAAO2B,IAGH9W,KAAKm3G,gBACXn3G,KAAKm0G,wBACJn0G,KAAKo0G,uCAAuCzmD,EAAY90C,EAAUooD,IAEnEA,EACApoD,IAKH,SAAS0+F,GAA4B/wG,EAAgBqS,GACpD,OAAO3K,EAAW1H,GACfqS,EACClK,EAAQkK,EAAU,KAAMrS,GACxBmI,EAAQnI,GACTA,EAGJ,SAAS0uG,GACR//F,GACAy0C,SAAEA,EAAQz8C,KAAEA,GACZ0nG,GAEiB,OAAbjrD,EACHz0C,EAAO+hE,eAAe92E,IAAIwpD,GACP,OAATz8C,IACe,OAArBgI,EAAOwlE,YACVxlE,EAAOwlE,UAAYxtE,GAEhB0nG,GACH1/F,EAAO8hE,eAAe72E,IAAI+M,IAK7B,SAASmqG,GACRxgG,EACAtQ,EACA6wG,GAEA,OACmC,IAAlCA,GACmC,qBAAlCA,GAAwDnpG,EAAW1H,KACnEwH,EAAW8I,SC7kBOqhG,WAAoB3rF,GAGxC1Z,cACCzB,QACArR,KAAK0sB,UAAUra,IAAI,YAAa,IAAI4gD,IAGrCngD,aAAa3F,GACZ,IAAIka,EAAWrnB,KAAK0sB,UAAUta,IAAIjF,GAKlC,OAJKka,IACJA,EAAW,IAAIizB,GAAentC,GAC9BnN,KAAK0sB,UAAUra,IAAIlF,EAAMka,IAEnBA,GCET,SAAS+wF,GACR36F,EACA46F,EACAC,EACAlF,EACA5hD,EACAvpD,GAEA,IAAIswG,GAA0B,EAC9B,UAAY5jG,KACN4jG,IACJA,GAA0B,EAC1BjnD,GACC,CACCt4C,QAAS,aAAaq/F,6CAAuDjF,8BAAuCkF,qDACpH/9C,OAAQ64C,GAET5hD,EACAvpD,IAGKwV,KAAW9I,aAIJ6jG,GACfj+C,EACAs5C,EACAp3C,EACAx0D,EACAwwG,EACAC,GAEA,IAaIC,EAbAC,GAAY,EAchB,GAb+B,iBAApBr+C,EAAOs+C,WAEhBt+C,EAAOptD,KAAKod,WAAWmoF,KACvBn4C,EAAOptD,KAAKod,WAAWooF,KACvB+F,EAAoBp4G,IAAIi6D,EAAOptD,MAE/ByrG,GAAY,EAEZF,EAAoBt4G,IAAIm6D,EAAOptD,OAK5B0mG,EAEE,GAAI+E,EAAW,CACrB,MAAMC,EAAWt+C,EAAOs+C,UAAYt+C,EAAOptD,KJnEXymG,EIqE/BC,EAAYgF,KAAchF,EAAYgF,GAAY73G,OAAO+R,OAAO,OADjE4lG,EJnEM,CACNhpG,OAAOmH,UACQ88F,EAAM98F,GAErBhE,IAAIgE,GACH,MAAMH,EAAOi9F,EAAM98F,GACnB,GAAKH,EAEL,OADAA,EAAK,GAAK,EACHA,EAAK,IAEb7D,IAAIgE,GACH,MAAMH,EAAOi9F,EAAM98F,GACnB,QAAKH,IACLA,EAAK,GAAK,GACH,IAER7D,IAAIgE,EAAY1V,GACfwyG,EAAM98F,GAAM,CAAC,EAAG1V,UAwD0BgyG,EIFE74C,EAAOptD,KAApDwrG,EJGM,CACNhpG,OAAM,IACEwjG,GAAuBC,GAE/BhhG,IAAG,IACK+gG,GAAuBC,GAE/B9yG,IAAG,IACK6yG,GAAuBC,GAE/B/gG,IAAG,IACK8gG,GAAuBC,SIrB/BuF,EAAgBzF,OJS2BE,EA1EXQ,EIuLjC,MA5G+B,CAC9B9gG,aAAagE,GACZ,GAAI2lD,EAAMukB,OAASlC,GAAWg6B,SAC7B,OAAO94G,KAAKg8C,MjHwKR,CACNp3C,KAAMmqD,GAAOmyB,qBACbloE,QAAS,2DiHxKRyjD,EAAMk6C,WAAW7/F,IAAM,GAExB88F,MAAO+E,EACPx4B,UAAWi4B,IACV,CAACjrG,EAAc3G,IACdiyG,EAAY1E,SAAS,CAAE5mG,KAAAA,EAAM3G,OAAAA,EAAQuT,KAAM,WAC5C,YACA,WACAwgD,EAAOptD,MACP,EACAlF,GAEDi4E,UAAWk4B,IACV,CAACthG,EAAY7O,IACZwwG,EAAY1E,SAAS,CAAEj9F,GAAAA,EAAI3J,KAAMlF,GAAWA,EAAQkF,KAAM4M,KAAM,WACjE,YACA,WACAwgD,EAAOptD,MACP,EACAlF,GAED8rG,SAAU0E,EAAY1E,SAASxvF,KAAKk0F,GACpCz8D,MAAM8kB,GACE8xC,GAAiB9xC,EAAKvG,EAAOptD,MAErCoyE,iBAAkB64B,GACjBK,EAAYziD,YACZ,mBACA,cACAuE,EAAOptD,MACP,EACAlF,GAEDw3E,iBAAkB24B,GACjBK,EAAYziD,YACZ,mBACA,cACAuE,EAAOptD,MACP,EACAlF,GAED+tD,YAAayiD,EAAYziD,YACzBuwB,aAAc,IAAM9pB,EAAMgC,YAAYl1D,OACtCi9E,cAAe/pB,EAAM+pB,cACrBuyB,cAAe,IAAM/3G,OAAOuI,KAAKkzD,EAAMk6C,YACvCv+F,WAAYggG,IACX,CAACthG,EAAYkiG,EAA8BC,GAAa,IACvDhxG,EAAQs1B,SAASzmB,EAAIkiG,EAAUC,IAChC,aACA,UACA1+C,EAAOptD,MACP,EACAlF,GAEDmP,KAAM,eACL8hG,EACAC,UAAW18C,EAAM08C,WAElBC,gBAaC,MAAMA,EAAY38C,EAAMgC,YAAYl1D,OACpC,OAbA,YACC+nD,GACC,CACCt4C,QAAS,8DAA8DuhD,EAAOptD,8FAC9EotD,OAAQA,EAAOptD,OAEhB,EACAlF,SAEMmxG,EAIDC,IAERrpF,MAAOysC,EAAMoE,aAAat8C,KAAKk4C,GAC/B9tD,QAAO,CAACnI,EAAQqS,GAAUy5F,OAAEA,EAAMC,SAAEA,GAAa98F,IACzCgnD,EAAM2kB,aAAahnB,UACzB5zD,EACAqS,EACAy5F,EACAC,EAAW,CAAC,CAAE15F,SAAAA,EAAU0hD,OAAAA,EAAQ/zD,OAAAA,IAAY,MAG9C4zD,UAAWg+C,IACV,CAAC5xG,EAAgBqS,IAChB4jD,EAAM2kB,aACJhnB,UAAU5zD,EAAQqS,EAAUpD,GAC5BmlD,MAAKR,GAAaA,GAAaA,EAAUtjD,MAC5C,YACA,UACAyjD,EAAOptD,MACP,EACAlF,GAEDqxG,eAAgBb,EAAYa,eAC5BxmG,KAAK6+C,GACmB,iBAAZA,IAAsBA,EAAU,CAAE34C,QAAS24C,IAClDA,EAAQ/sD,OAAM+sD,EAAQmhD,WAAanhD,EAAQ/sD,MAC/C+sD,EAAQ/sD,KAAO,iBACf+sD,EAAQ4I,OAASA,EAAOptD,KACxBlF,EAAQ8Q,OAAO44C,KC5IlB,MAeM4nD,GAAav4G,OAAOuI,KAbtB,CACHiwG,SAAU,EACVC,WAAY,EACZC,YAAa,EACbC,aAAc,EACdz/C,KAAM,EACN0/C,aAAc,EACd3xG,QAAS,EACTkyD,qBAAsB,EACtBC,UAAW,EACXC,UAAW,EACXw/C,YAAa,IAMd,SAASC,GAAsBC,EAAkB3G,GAChD,OAAOp3D,GAAM,CACZp3C,KAAM,sBACNoU,QAAS,6BAA6B+gG,SAAgB3G,uCAI3C4G,GAeZlnG,YACkB2pD,EACAx0D,EACjBgyG,EACApG,EACAqG,GAJiBl6G,WAAAy8D,EACAz8D,aAAAiI,EALVjI,oBAAiB,IAAI2T,aNpDM2nD,EAAmBrzD,GACtD,IAAK,MAAM+qG,OAAEA,EAAMC,WAAEA,EAAU7pD,YAAEA,KAAiB2pD,GACjD,IAAK,MAAMx4C,KAAUe,EAChB23C,KAAc14C,GACjBjJ,GACC,CACCt4C,QAAS,QAAQi6F,0BAAmC14C,EAAOptD,4BAA4Bi8C,kCACvFmR,OAAQA,EAAOptD,MAEhB6lG,EACA/qG,GMoDHkyG,CAAoBF,EAAahyG,GACjCjI,KAAK6zG,YAAcA,EACnB7zG,KAAKy4G,YAAc,IAAI94B,GACtBljB,EACAx0D,EACAiyG,GAAoBA,EAAiBzB,aAEtCz4G,KAAK+zG,SAAW/zG,KAAKy4G,YAAY1E,SAASxvF,KAAKvkB,KAAKy4G,aACpDz4G,KAAKg2D,YAAch2D,KAAKy4G,YAAYziD,YAAYzxC,KAAKvkB,KAAKy4G,aAC1Dz4G,KAAK0lF,eAAiB1lF,KAAKy4G,YAAY2B,sBAAsB71F,KAAKvkB,KAAKy4G,aACvEz4G,KAAKykF,gBAAkBzkF,KAAKy4G,YAAYh0B,gBAAgBlgE,KAAKvkB,KAAKy4G,aAClEz4G,KAAKs7D,QAAU2+C,EAAYj0G,OAAOk0G,EAAmBA,EAAiB5+C,QAAU,IAChF,MAAMo9C,EAAsB,IAAI1lG,IAChC,IAAK,MAAMunD,KAAUv6D,KAAKs7D,QACzBt7D,KAAKq6G,eAAehoG,IACnBkoD,EACAi+C,GAAiBj+C,EAAQs5C,EAAap3C,EAAOx0D,EAASjI,KAAKy4G,YAAaC,IAG1E,GAAIwB,EACH,IAAK,MAAM3/C,KAAU0/C,EACpB,IAAK,MAAMx/C,KAAQ8+C,GACd9+C,KAAQF,GACXtyD,EAAQ8Q,QlH6E6Bq6F,EkH7EK74C,EAAOptD,KlH6EQ4sG,EkH7EFt/C,ElH8ErD,CACN71D,KAAMmqD,GAAOurD,4BACbthG,QAAS,QAAQ+gG,qCAA4C3G,6LAHpBA,EAAoB2G,EkHtEvDjnG,yBAAyBwoD,GAC/B,OAAO,IAAI0+C,GAAah6G,KAAKy8D,MAAOz8D,KAAKiI,QAASqzD,EAASt7D,KAAK6zG,YAAa7zG,MAI9E8S,UACCinG,EACAplG,EACAw9F,EACAD,GAEA,IAAIqI,EAAqDxmF,QAAQplB,aAAQ9L,GACzE,IAAK,MAAM03D,KAAUv6D,KAAKs7D,QACrB42C,GAAWA,EAAQ5xG,IAAIi6D,KAC3BggD,EAAUA,EAAQ3/C,MAAKh7D,GACR,MAAVA,EAAuBA,EACpBI,KAAKw6G,QAAQT,EAAUplG,EAAM4lD,GAAQ,EAAO43C,MAGrD,OAAOoI,EAIRznG,cACCinG,EACAplG,EACAw9F,GAEA,IAAK,MAAM53C,KAAUv6D,KAAKs7D,QAAS,CAClC,MAAM17D,EAASI,KAAKy6G,YAAYV,EAAUplG,EAAM4lD,EAAQ43C,GACxD,GAAc,MAAVvyG,EAAgB,OAAOA,EAE5B,OAAO,KAIRkT,aACCinG,EACAplG,EACAw9F,GAEA,MAAMuI,EAA4B,GAClC,IAAK,MAAMngD,KAAUv6D,KAAKs7D,QAAS,CAClC,MAAMq/C,EAAc36G,KAAKw6G,QAAQT,EAAUplG,EAAM4lD,GAAQ,EAAO43C,GAC3DwI,GACLD,EAASj7G,KAAKk7G,GAEf,OAAO5mF,QAAQC,IAAI0mF,GAAU9/C,MAAK,SAInC9nD,eACCinG,GACCa,KAASpc,GACVr5F,EAKAgtG,GAEA,IAAIoI,EAAUxmF,QAAQplB,QAAQisG,GAC9B,IAAK,MAAMrgD,KAAUv6D,KAAKs7D,QACzBi/C,EAAUA,EAAQ3/C,MAAKggD,IACtB,MAAMjmG,EAAO,CAACimG,KAASpc,GACjBmc,EAAc36G,KAAKw6G,QAAQT,EAAUplG,EAAM4lD,GAAQ,EAAO43C,GAChE,OAAKwI,EACEA,EAAY//C,MAAKh7D,GACvBuF,EAAOmB,KAAKtG,KAAKq6G,eAAejoG,IAAImoD,GAASqgD,EAAMh7G,EAAQ26D,KAFnCqgD,KAM3B,OAAOL,EAIRznG,mBACCinG,GACCa,KAASpc,GACVr5F,EACAgtG,GAEA,IAAK,MAAM53C,KAAUv6D,KAAKs7D,QAAS,CAClC,MAAM3mD,EAAO,CAACimG,KAASpc,GACjB5+F,EAASI,KAAKy6G,YAAYV,EAAUplG,EAAM4lD,EAAQ43C,GACxDyI,EAAOz1G,EAAOmB,KAAKtG,KAAKq6G,eAAejoG,IAAImoD,GAASqgD,EAAMh7G,EAAQ26D,GAEnE,OAAOqgD,EAIR9nG,gBACCinG,EACAc,EACAlmG,EACAxP,EAKAgtG,GAEA,IAAIoI,EAAUxmF,QAAQplB,QAAQksG,GAC9B,IAAK,MAAMtgD,KAAUv6D,KAAKs7D,QACzBi/C,EAAUA,EAAQ3/C,MAAKx5D,IACtB,MAAMu5G,EAAc36G,KAAKw6G,QAAQT,EAAUplG,EAAM4lD,GAAQ,EAAM43C,GAC/D,OAAKwI,EACEA,EAAY//C,MAAKh7D,GACvBuF,EAAOmB,KAAKtG,KAAKq6G,eAAejoG,IAAImoD,GAASn5D,EAAOxB,EAAQ26D,KAFpCn5D,KAM3B,OAAOm5G,EAIRznG,oBACCinG,EACAc,EACAlmG,EACAxP,EACAgtG,GAEA,IAAIrrC,EAAM+zC,EACV,IAAK,MAAMtgD,KAAUv6D,KAAKs7D,QAAS,CAClC,MAAM17D,EAASI,KAAKy6G,YAAYV,EAAUplG,EAAM4lD,EAAQ43C,GACxDrrC,EAAM3hE,EAAOmB,KAAKtG,KAAKq6G,eAAejoG,IAAImoD,GAASuM,EAAKlnE,EAAQ26D,GAEjE,OAAOuM,EAIRh0D,QACCinG,EACAplG,EACAw9F,GAEA,IAAIoI,EAAUxmF,QAAQplB,UACtB,IAAK,MAAM4rD,KAAUv6D,KAAKs7D,QACzBi/C,EAAUA,EAAQ3/C,MACjB,IAAM56D,KAAKw6G,QAAQT,EAAUplG,EAAM4lD,GAAQ,EAAO43C,KAGpD,OAAOoI,EAIRznG,YACCinG,EACAplG,EACAw9F,GAEA,IAAK,MAAM53C,KAAUv6D,KAAKs7D,QACzBt7D,KAAKy6G,YAAYV,EAAUplG,EAAM4lD,EAAQ43C,GA0BnCr/F,QACPinG,EACAplG,EACA4lD,EACAugD,EACAC,GAEA,MAAMtgD,EAAOF,EAAOw/C,GACpB,IAAKt/C,EAAM,OAEX,IAAI/lD,EAAU1U,KAAKq6G,eAAejoG,IAAImoD,GAKtC,OAJIwgD,IACHrmG,EAAUqmG,EAAYrmG,EAAS6lD,IAGzBxmC,QAAQplB,UACbisD,MAAK,IAEe,mBAATH,EACNqgD,EAAqBrgD,EAClBq/C,GAAsBC,EAAUx/C,EAAOptD,MAGvCstD,EAAkBE,MAAMjmD,EAASC,KAEzCtF,OAAMyxD,GAAO8xC,GAAiB9xC,EAAKvG,EAAOptD,KAAM,CAAEstD,KAAMs/C,MAUnDjnG,YACPinG,EACAplG,EACA4lD,EACAwgD,GAEA,MAAMtgD,EAAOF,EAAOw/C,GACpB,IAAKt/C,EAAM,OAEX,IAAI/lD,EAAU1U,KAAKq6G,eAAejoG,IAAImoD,GAClCwgD,IACHrmG,EAAUqmG,EAAYrmG,EAAS6lD,IAGhC,IAEC,MAAoB,mBAATE,EACHq/C,GAAsBC,EAAUx/C,EAAOptD,MAGvCstD,EAAkBE,MAAMjmD,EAASC,GACxC,MAAOmsD,GACR,OAAO8xC,GAAiB9xC,EAAKvG,EAAOptD,KAAM,CAAEstD,KAAMs/C,YCzThCiB,GAmBpBloG,YAA6B7K,EAAiCgzG,WAG7D,GAH4Bj7G,aAAAiI,EAf7BjI,kBAAyB,GAEzBA,iBAAc,IAAI2T,IAClB3T,2BAAuB,EACvBA,WAAoB8+E,GAAWmC,eAG/BjhF,gBAAmCgB,OAAO+R,OAAO,MACjD/S,gBAAY,EAEJA,qBAAoC,GACpCA,0BAAiC,GACjCA,aAAoB,GAqG5BA,mBAAiBy1D,IAChB,MAAMylD,EAAcl7G,KAAKy+D,YAAYrsD,IAAIqjD,GACzC,OAAKylD,EACEA,EAAYrjG,KADM,MAnGzB7X,KAAKorB,sBAAwB,IAAIvY,EACjC7S,KAAKm2G,cAAgB,IAAIxiG,KACH,IAAlB1L,EAAQ2rG,MAAiB,CAC5B,aAAI3rG,EAAQ2rG,4BAAOl4C,QAClB,IAAK,MAAMvmD,KAAUlN,EAAQ2rG,MAAMl4C,QAAS17D,KAAKm2G,cAAc9jG,IAAI8C,EAAO2B,GAAI3B,GAE/EnV,KAAK6zG,uBAAc5rG,EAAQ2rG,4BAAOt4C,UAAWt6D,OAAO+R,OAAO,MAG3D,IAAK,MAAM5F,KAAQnN,KAAK6zG,YAAa,CACpC,MAAMD,EAAQ5zG,KAAK6zG,YAAY1mG,GAC/B,IAAK,MAAM/L,KAASJ,OAAO0sB,OAAOkmF,GAAQxyG,EAAM,MAIlD,GAAI65G,EAAS,CACZj7G,KAAKm5G,WAAY,EACjB,MAAMgC,EAAgC,IAAIxmG,IACzC3U,KAAKo1D,aAAagmD,YAAY,cAAezmG,GACxC0mG,EAAc,IAAMr7G,KAAKo1D,aAAagmD,YAAY,eAAgB,IACxEH,EAAQK,GAAG,SAAUH,GACrBF,EAAQK,GAAG,QAASD,GACpBJ,EAAQM,KAAK,WAAW,KACvBN,EAAQO,eAAe,SAAUL,GACjCF,EAAQO,eAAe,QAASH,MAGlCr7G,KAAKo1D,aAAe,IAAI4kD,GAAah6G,KAAMiI,EAASA,EAAQqzD,QAASt7D,KAAK6zG,aAC1E7zG,KAAKwkB,MAAQ,IAAI2zF,GACjBn4G,KAAKy7G,YAAcC,GAAa7yC,UAAW5gE,EAAQ0zG,oBACnD37G,KAAKohF,aAAe,IAAI8yB,GAAal0G,KAAMA,KAAKy+D,YAAaz+D,KAAKiI,QAASjI,KAAKo1D,cAGjFtiD,cACCinD,GAAU,wBAAyB,SAC7B/5D,KAAK47G,sBACX5hD,GAAQ,wBAAyB,GAEjCD,GAAU,eAAgB,GAC1B/5D,KAAKghF,MAAQlC,GAAW+8B,QACxB77G,KAAK87G,cACL9hD,GAAQ,eAAgB,GAExBD,GAAU,2BAA4B,GACtC/5D,KAAK+7G,oBACL/hD,GAAQ,2BAA4B,GAEpCh6D,KAAKghF,MAAQlC,GAAWg6B,SAGzBhmG,aAAalO,EAAcqD,EAAkC,IAC5D,MAAM+zG,EAAgB/zG,EAAQ6nF,UACxBmsB,EAA4B,GAGjCh0G,EAAQ6nF,UADLksB,GAAyC,mBAAjBA,EACP,CAACx+F,EAAOkzE,EAAMlwF,EAAOC,KAAQkU,KAChDsnG,EAASx8G,KAAK,CAAEgB,IAAAA,EAAKD,MAAAA,EAAOuZ,KAAMyD,EAAQ,QAAU,OAAQpc,MAAOsvF,IAC5DsrB,EAAc11G,KAAK2B,EAASuV,EAAOkzE,EAAMlwF,EAAOC,KAAQkU,IAG5CsnG,EAGrB,MAAMnkG,EAAM9X,KAAKy7G,YAAYzrF,MAAMprB,EAAM,IACpC5E,KAAKiI,QAAQipG,SACdjpG,IAWJ,MAR4B,iBAAjB+zG,GACVA,EAAcv8G,QAAQw8G,GAGvBh0G,EAAQ6nF,UAAYksB,W/KIrBC,EACAC,EACAt3G,GAEA,MAAM4d,EAA+B,GAC/B25F,EAAyC,GAC/C,IAAK,MAAM15F,KAAWw5F,EACjBz4F,GAAiBxe,KAAKyd,EAAQrhB,OACjCohB,EAAY/iB,KAAKgjB,GACPN,GAAqBnd,KAAKyd,EAAQrhB,QAC5C+6G,EAAsB18G,KAAKgjB,GAG7B,IAAK,MAAMA,KAAW05F,EACrBt5F,GAAaq5F,EAAWz5F,GAAS,GAElCH,GAA4B45F,EAAW,CACtCx5F,gBAAiB,EACjBF,YAAAA,EACA5d,KAAAA,I+KrBAw3G,CAAeH,EAAUnkG,EAAKlT,GAEvBkT,EAGRhF,WAEC,IAAK,MAAM3F,KAAQnN,KAAK6zG,YAAa,CACpC,MAAMD,EAAQ5zG,KAAK6zG,YAAY1mG,GAC/B,IAAIkvG,GAAa,EACjB,IAAK,MAAOpqG,EAAK7Q,KAAUJ,OAAO6jB,QAAQ+uF,GACrCxyG,EAAM,IAAMpB,KAAKiI,QAAQq0G,+BAAgC1I,EAAM3hG,GAC9DoqG,GAAa,EAEfA,UAAmBr8G,KAAK6zG,YAAY1mG,GAGzC,MAAO,CACNuuD,QAAS17D,KAAK07D,QAAQruD,KAAI8H,GAAUA,EAAOonG,WAC3CjhD,QAASt7D,KAAK6zG,aAUR/gG,4BAhJT,IACC2iE,EAkJC,KAFGA,aAAcz1E,KAAKy1E,aAAcE,qBAAsB31E,KAAK21E,4BACxD31E,KAAKohF,aAAas0B,iBAjJ1BjgC,EAiJgEz1E,KAAKiI,QAAQgnF,MA/IzExpF,MAAM4e,QAAQoxD,GACVA,EAAapoE,KAAIyJ,KACvB8yC,SAAU,KACV9yC,GAAAA,EACA+lD,sBAAuB,GACvBhkD,cAAUhW,EACVsK,KAAM,SAGDnM,OAAO6jB,QAAQ4wD,GAAcpoE,KAAI,EAAEF,EAAM2J,OAC/C8yC,SAAU,KACV9yC,GAAAA,EACA+lD,sBAAuB,GACvBhkD,cAAUhW,EACVsK,KAAAA,QAiIoF,IACnD,IAA7BnN,KAAKy1E,aAAat2E,OACrB,MAAM,IAAI6D,MAAM,2CAEjB,IAAK,MAAMmS,KAAUnV,KAAKy+D,YAAY/wC,SACjCvY,aAAkBqnD,GACrBx8D,KAAK07D,QAAQj8D,KAAK0V,GAElBnV,KAAK0wD,gBAAgBjxD,KAAK0V,GAKrBrC,oBACP,IAAK,MAAMqC,IAAU,IAAInV,KAAKy1E,gBAAiBz1E,KAAK21E,sBACnDpa,GAA0CpmD,GAE3C,GAAInV,KAAKiI,QAAQ6yC,UAAW,CAC3B,IAAI0hE,EAAkB,EACtB,EAAG,CACFziD,GAAU,oBAAoByiD,IAAmB,GACjDx8G,KAAKu/D,sBAAuB,EAC5B,IAAK,MAAMpqD,KAAUnV,KAAK07D,QACrBvmD,EAAOsmD,aAC+B,iBAArCtmD,EAAO0C,KAAKV,qBACfhC,EAAOsnG,qBAEPtnG,EAAOP,WAIV,GAAwB,IAApB4nG,EAGH,IAAK,MAAMrnG,IAAU,IAAInV,KAAKy1E,gBAAiBz1E,KAAK21E,uBAClB,IAA7BxgE,EAAOqhE,oBACVrhE,EAAO8iD,mBAAkB,GACzBj4D,KAAKu/D,sBAAuB,GAI/BvF,GAAQ,oBAAoBwiD,IAAqB,SACzCx8G,KAAKu/D,2BAEd,IAAK,MAAMpqD,KAAUnV,KAAK07D,QAASvmD,EAAOsnG,qBAE3C,IAAK,MAAM5pC,KAAkB7yE,KAAK0wD,gBAAiBmiB,EAAe6pC,oBAClE,IAAK,MAAMvnG,KAAUnV,KAAK21E,qBACzB,IAAK,MAAMkgC,KAAa1gG,EAAO0nD,sBACxBg5C,EAAUh+F,KAAKM,SAAW09F,EAAUrgC,cACzCx5B,GAAM8T,GAAkC+lD,IAMpC/iG,cACP,MAAMqiE,eAAEA,EAAcwnC,WAAEA,YhBpNalnC,GAItC,IAAImnC,EAAgB,EACpB,MAAMD,EAAyB,GACzBE,EAAkB,IAAI7pG,IACtB4pD,EAAiB,IAAI5pD,IACrBsxE,EAAU,IAAI3wE,IACdwhE,EAA2B,GAE3B2nC,EAAiB3nG,IACtB,GAAIA,aAAkBqnD,GAAQ,CAC7B,IAAK,MAAMxM,KAAc76C,EAAOymD,aAC3B0oB,EAAQhkF,IAAI0vD,GACV6sD,EAAgBv8G,IAAI0vD,IACxB2sD,EAAWl9G,KAAK4kF,GAAar0B,EAAsB76C,EAAQmvE,KAI7DA,EAAQjyE,IAAI29C,EAAY76C,GACxB2nG,EAAc9sD,IAGf,IAAK,MAAMA,KAAc76C,EAAO8C,uBAC/B2kD,EAAex8D,IAAI4vD,GAEpB,IAAK,MAAMrC,WAAEA,KAAgBx4C,EAAOynD,eAC/BjP,aAAsB6O,IACzBI,EAAex8D,IAAIutD,GAGrBwnB,EAAe11E,KAAK0V,GAGrBA,EAAOmC,UAAYslG,IACnBC,EAAgBz8G,IAAI+U,IAGrB,IAAK,MAAM4nG,KAAYtnC,EACjB6O,EAAQhkF,IAAIy8G,KAChBz4B,EAAQjyE,IAAI0qG,EAAU,MACtBD,EAAcC,IAGhB,IAAK,MAAMA,KAAYngD,EACjB0nB,EAAQhkF,IAAIy8G,KAChBz4B,EAAQjyE,IAAI0qG,EAAU,MACtBD,EAAcC,IAIhB,MAAO,CAAEJ,WAAAA,EAAYxnC,eAAAA,GgBgKmB6nC,CAAuBh9G,KAAKy1E,cACnE,IAAK,MAAMwnC,KAAaN,EACvB38G,KAAKiI,QAAQ8Q,OAAO,CACnBnU,KAAM,sBACNs4G,MAAOD,EACPpkG,SAAUokG,EAAU,GACpBjkG,QAAS,wBAAwBikG,EAAUx4G,KAAK,YAGlDzE,KAAK07D,QAAUyZ,EACf,IAAK,MAAMhgE,KAAUnV,KAAK07D,QACzBvmD,EAAOgoG,iBAERn9G,KAAKo9G,wBAGEtqG,wBACP,IAAK,MAAMqC,KAAUnV,KAAK07D,QACzB,IAAK,MAAMgG,KAAqB1gE,OAAO0sB,OAAOvY,EAAO0qD,oBAExB,MAA3B6B,EAAkBv0D,MAChBu0D,EAAkBvsD,OAAkBonD,yBAAyBmF,EAAkBv0D,OAEjFgI,EAAOxK,KACN,CACC/F,KAAM,sBACNoU,QAAS,wBACR0oD,EAAkBv0D,0BACG6J,GAAY0qD,EAAkBvsD,OAAkB2B,MACtE3J,KAAMu0D,EAAkBv0D,KACxB3G,OAASk7D,EAAkBvsD,OAAkB2B,IAE9C4qD,EAAkBlhE,iBCnQR68G,GACfC,GAEA,OAAI73G,MAAM4e,QAAQi5F,GACVA,EAAMv4G,OAAO0J,SAEjB6uG,EACI,CAACA,GAEF,GCHD,MAAMC,GAAgC5rD,GAAWjnD,QAAQC,KAAKgnD,EAAQ34C,SAAW24C,YAExE6rD,GACfC,EACAC,EACAC,EACAhzG,EACAizG,EAAc,MAEd,MAAMC,EAAiB,IAAI7qG,IAAI0qG,GACzBI,EAAiB98G,OAAOuI,KAAKk0G,GAAe14G,QACjDkN,KAAS4rG,EAAev9G,IAAI2R,IAAQ2rG,EAAY54G,KAAKiN,MAElD6rG,EAAe3+G,OAAS,GAC3BwL,EAAK,CACJ/F,KAAM,iBACNoU,QAAS,WAAW2kG,MAAeG,EAAer5G,KAAK,2BAA2B,IAC9Eo5G,GAEFtwG,OACA9I,KAAK,UAOH,MAAMs5G,GAIT,CACHC,YAAa,CACZx7F,aAAa,EACbu4B,kCAAkC,EAClC0lB,kBAAmB,KAAM,EACzB/f,yBAAyB,EACzBwW,wBAAwB,EACxB9b,0BAA0B,GAE3B6iE,OAAQ,CACPz7F,aAAa,EACbu4B,kCAAkC,EAClC0lB,kBAAmB,KAAM,EACzB/f,yBAAyB,EACzBwW,wBAAwB,EACxB9b,0BAA0B,GAE3B8iE,SAAU,CACT17F,aAAa,EACbu4B,kCAAkC,EAClC0lB,kBAAmB,KAAM,EACzB/f,yBAAyB,EACzBwW,wBAAwB,EACxB9b,0BAA0B,ICetB+iE,GAAaC,IAClB,MAAMrlG,OAAEA,GAAWqlG,EACnB,OAAOrlG,EACJ44C,IACAA,EAAQnvD,SAAW,KAClB,IAAIU,EAAM,GAOV,OALIyuD,EAAQ4I,SAAQr3D,GAAO,IAAIyuD,EAAQ4I,mBACnC5I,EAAQrqD,MACXpE,GAAO,GAAG8T,GAAW26C,EAAQrqD,IAAI5D,UAAWiuD,EAAQrqD,IAAIhI,QAAQqyD,EAAQrqD,IAAIT,YAC7E3D,GAAOyuD,EAAQ34C,QAER9V,GAER6V,EAAO44C,EAAS4rD,KAEhBA,IAGEc,GAAYD,KACjB1uB,2BAA2B,EAC3B/I,YAAa,SACbuJ,gBAAgB,EAChBd,WAAY,YACTgvB,EAAOlN,QAGLoN,GACLF,GACkDf,GAAYe,EAAOzC,oBAEhE4C,GAAYH,UACjB,iBAACA,EAAOxK,4BAAkCA,QAASwK,EAAOxK,OAErD4K,GACLxxG,IAQA,IAAe,IAAXA,EACH,MAAO,KAAM,EAEd,GAAsB,mBAAXA,EACV,MAAO,CAAC8J,KAAOnC,KAAWmC,EAAGyT,WAAW,OAASvd,EAAO8J,KAAOnC,KAAU,EAE1E,GAAI3H,EAAQ,CACX,MAAMyxG,EAAM,IAAIzrG,IACV0rG,EAAqB,GAC3B,IAAK,MAAMt9G,KAASi8G,GAAYrwG,GAC3B5L,aAAiBkL,OACpBoyG,EAASj/G,KAAK2B,GAEdq9G,EAAIr+G,IAAIgB,GAGV,MAAO,CAAC0V,KAAe6nG,IAAUF,EAAIn+G,IAAIwW,IAAO4nG,EAAS7wG,MAAK+wG,GAAWA,EAAQ55G,KAAK8R,KAEvF,MAAO,KAAM,GAGR+nG,GAA0B,CAC/BT,EACAzzG,EACA+mD,KAEA,MAAMotD,EAA6BV,EAAOt3B,qBAS1C,OARIg4B,GACHrtD,GACC,0GACA,EACA9mD,EACA+mD,GAGKotD,GAGFC,GAAYX,IACjB,MAAMY,EAAcZ,EAAOnvB,MAC3B,OAAsB,MAAf+vB,EAAsB,GAA4B,iBAAhBA,EAA2B,CAACA,GAAeA,GAG/EC,GAAkB,CACvBb,EACAzzG,EACA+mD,KAEA,MAAMwtD,EAAqBd,EAAOv4B,aASlC,OARIq5B,GACHztD,GACC,0FACA,EACA9mD,EACA+mD,GAGKwtD,GAGFC,GACLf,IAEA,MAAM7J,EAAuB6J,EAAO7J,qBACpC,MAAoC,iBAAzBA,EACNA,GAAwB,EAAU/uG,EAAAA,EAC/B+uG,EAED,IAGF6K,GAAmB,CACxBhB,EACA1pG,KAEA,MAAM2qG,EAAsBjB,EAAOnnD,cAInC,GAAmC,mBAAxBooD,EACV,OAAOvoG,UAAM,iBAAAuoG,EAAoBvoG,kBAAOpC,GAEzC,GAAI2qG,EAAqB,CACxB,MAAMC,EAAoBt+G,OAAO+R,OAAO,MACxC,IAAK,MAAOd,EAAKglD,KAAkBj2D,OAAO6jB,QAAQw6F,GACjDC,EAAkB3wG,EAAQsD,IAAQglD,EAEnC,OAAOngD,GAAMwoG,EAAkBxoG,IAAOpC,EAEvC,MAAO,IAAMA,GAGR6qG,GAA6B,CAClCnB,EACAhrC,KAEA,MAAMosC,EAAgCpB,EAAO1hD,wBAM7C,OAHqC,MAAjC8iD,GACHpsC,EAAahzE,IAAI,2BAEXo/G,MAAAA,EAAAA,EAAiC,UAGnCC,GAAqB,CAC1BrB,EACAzzG,EACA+mD,KAEA,MAAMguD,EAAwBtB,EAAOlsC,gBASrC,OARIwtC,GACHjuD,GACC,gGACA,EACA9mD,EACA+mD,GAGKguD,GAGFC,GAAe,CACpBvB,EACAzzG,EACA+mD,KAEA,MAAMkuD,EAAkBxB,EAAOtjE,UAC/B,IAAwB,IAApB8kE,EACH,OAAO,EAER,GAA+B,iBAApBA,EAA8B,CACxC,MAAMC,EAAS9B,GAAiB6B,GAChC,GAAIC,EACH,OAAOA,EAER7jE,GACCuT,GACC,YACA,iCAAiCj5C,GAChCtV,OAAOuI,KAAKw0G,sEAKhB,IAAI+B,EAAuC,GAC3C,GAA+B,iBAApBF,EAA8B,MACW,IAAxCA,EAAgBG,qBAC1BtuD,GACC,oOACA,EACA9mD,EACA+mD,GAGFouD,EAAmBF,EACnB,MAAMI,EAAaJ,EAAgBC,OACnC,GAAIG,EAAY,CACf,MAAMH,EAAS9B,GAAiBiC,GAC5BH,EACHC,EAAmB,IAAKD,KAAWD,GAEnC5jE,GACCuT,GACC,mBACA,oBAAoBj5C,GAAsBtV,OAAOuI,KAAKw0G,UAM3D,MAAO,CACNv7F,aAA8C,IAAjCs9F,EAAiBt9F,YAC9Bu4B,kCAAwF,IAAtD+kE,EAAiB/kE,iCACnD0lB,kBAC4B,iBAApBm/C,GAAgCA,EAAgBG,oBACpDE,GACAL,EAAgBn/C,kBAChBm/C,EAAgBG,qBAEhBE,GAAwBH,EAAiBr/C,uBAAmB59D,GAChE69C,wBAC8C,WAA7Co/D,EAAiBp/D,wBACd,UAC6C,IAA7Co/D,EAAiBp/D,wBACrBwW,wBAAoE,IAA5C4oD,EAAiB5oD,uBACzC9b,0BAAwE,IAA9C0kE,EAAiB1kE,2BAIvC6kE,GAA0B,CAC/BC,EACAH,KAEA,GAAuC,kBAA5BG,EACV,MAAO,IAAMA,EAEd,GAAgC,gBAA5BA,EACH,MAAO,CAACC,EAAK5iF,KAAcA,EAE5B,GAAuC,mBAA5B2iF,EACV,MAAO,CAACppG,EAAIymB,MACVzmB,EAAGyT,WAAW,QAAkD,IAA1C21F,EAAwBppG,EAAIymB,GAErD,GAAI93B,MAAM4e,QAAQ67F,GAA0B,CAC3C,MAAMzB,EAAM,IAAIzrG,IAAIktG,GACpB,OAAOppG,GAAM2nG,EAAIn+G,IAAIwW,GAElBopG,GACHlkE,GACCuT,GACC,8BACA,mEAIH,MAAM6wD,EAAuB5B,GAAauB,GAC1C,MAAO,CAACjpG,EAAIymB,MAAeA,GAAY6iF,EAAqBtpG,cC/U7CmhE,GAAiB9qE,GAChC,MAAM7C,EAAQ,WAAWhF,KAAK6H,GACxBkzG,EAAc/1G,EAAQA,EAAM,GAAK,GAIvC,OAAO+1G,EAAclzG,EAAK1B,OAAO40G,EAAYlhH,QAAQwD,QAAQ,WAAY,KCmF1E,MAAM29G,GAAU,CACflC,EACAlsC,EACAnX,KAEA,MAAMr3D,KAAEA,GAAS06G,EACjB,GAAoB,iBAAT16G,EAAmB,CAC7B,GAAIwuE,EACH,OAAOl2B,GAAM,CACZp3C,KAAM,iBACNoU,QACC,uGAGH,IAAKvT,MAAM4e,QAAQ02C,EAAak0B,OAC/B,OAAOjzC,GAAM,CACZp3C,KAAM,iBACNoU,QAAS,oFAGZ,OAAOtV,GAGF68G,GAAanC,IAClB,MAAMoC,EAAepC,EAAO3wF,OAC5B,OAAQ+yF,GACP,UAAK39G,EACL,IAAK,KACL,IAAK,MACL,IAAK,SACJ,MAAO,KACR,IAAK,MACL,IAAK,WACJ,MAAO,MACR,IAAK,SACL,IAAK,WACJ,MAAO,SACR,IAAK,MACL,IAAK,OACL,IAAK,MACJ,OAAO29G,EACR,QACC,OAAOxkE,GAAM,CACZhjC,QAAS,uGACT+wC,IAAK,kDAKH80D,GAA0B,CAC/BT,EACArjD,WAEA,MAAM+rB,aACJs3B,EAAOt3B,oCAAwB/rB,EAAa+rB,wBAAyB,GACjEmI,MAAEA,GAAUl0B,EAClB,OAAI+rB,IAAyBrhF,MAAM4e,QAAQ4qE,GAASA,EAAQjuF,OAAOuI,KAAK0lF,IAAQ9vF,OAAS,EACjF68C,GAAM,CACZp3C,KAAM,iBACNoU,QAAS,yEAGJ8tE,GAGF24B,GAAqB,CAC1BrB,EACAt3B,EACA/rB,WAEA,MAAMmX,aAAmBksC,EAAOlsC,+BAAmBnX,EAAamX,mBAAoB,EACpF,GAAIA,EAAiB,CACpB,GAAI4U,EACH,OAAO9qC,GAAM,CACZp3C,KAAM,iBACNoU,QAAS,4FAGX,IAA6C,IAAzC+hD,EAAa2B,wBAChB,OAAO1gB,GAAM,CACZp3C,KAAM,iBACNoU,QACC,gGAIJ,OAAOk5D,GAGFuuC,GACLrC,IAEA,MAAM/lC,oBAAEA,GAAwB+lC,EAChC,GAAI/lC,MAAAA,EAGJ,OAAO1pE,EAAQ0pE,IAGVqoC,GAAUtC,IACf,MAAMuC,EAAiF,CACtFx9C,QAAQ,EACRC,SAAU,GACV8E,OAAQ,YACLk2C,EAAOrwD,KAGX,IAAK4yD,EAAWx9C,QAAUw9C,EAAWv9C,WAAau9C,EAAW7pG,GAC5D,OAAOklC,GAAM,CACZp3C,KAAM,iBACNoU,QACC,2FAGH,GAAI2nG,EAAWv9C,WAAau9C,EAAWx9C,OACtC,OAAOnnB,GAAM,CACZp3C,KAAM,iBACNoU,QAAS,+DAIX,IAAI4nG,EAcJ,OAZCA,EADGD,EAAWx9C,OACD,CACZA,QAAQ,EACRC,SAAUu9C,EAAWv9C,SACrB8E,OAAQy4C,EAAWz4C,QAGP,CACZ/E,QAAQ,EACR+E,OAAQy4C,EAAWz4C,OACnBpxD,GAAI6pG,EAAW7pG,IAGV8pG,GAGFC,GAAW,CAACzC,EAAuBjxG,KACxC,MAAM2zG,EAAe1C,EAA+BjxG,GAGpD,MAA2B,mBAAhB2zG,EACHA,EAED,IAAMA,GAAe,IAGvBC,GAAS,CACd3C,EACA16G,KAEA,MAAM4K,IAAEA,GAAQ8vG,EAChB,MAAmB,iBAAR9vG,GAAoC,iBAAT5K,EAC9Bs4C,GAAM,CACZp3C,KAAM,iBACNoU,QACC,+GAGI1K,GAGF0yG,GAA2B,CAChC5C,EACArjD,KAEA,MAAMkmD,EAA8B7C,EAAOxoD,sBAQ3C,OAPIqrD,GACH3vD,GACC,+GACA,EACAyJ,GAGKkmD,GAGFC,GAAoB,CACzB9C,EACAhrC,KAEA,MAAM+tC,EAAuB/C,EAAO1mC,eAIpC,OAH4B,MAAxBypC,GACH/tC,EAAahzE,IAAI,kBAEX+gH,MAAAA,EAAAA,EAAwB,aAGhC,SAASrpD,GACRsmD,EACAhrC,GAEA,MAAMguC,EAAgBhD,EAAOlhD,QAC7B,GAAqB,MAAjBkkD,EACHhuC,EAAahzE,IAAI,gBACX,IAAK,CAAC,UAAW,QAAS,OAAQ,QAAQ8pB,SAASk3F,GACzD,OAAOplE,IxH1EmCqT,EwH0ED+xD,ExHzEnC,CACNx8G,KAAMmqD,GAAOsyD,sBACbroG,QAAS,oHAAoHq2C,KAC7HtF,IAAK,sDAJqCsF,EwH4E3C,OAAO+xD,GAAiB,OAGzB,MAAME,GAAY,CAAClD,EAAuBj3F,KACzC,GAAIA,EACH,MAAO,GAER,MAAMo6F,EAAenD,EAAOv0G,OAC5B,OAAwB,IAAjB03G,EAAyB,GAAKA,MAAAA,GAAAA,GAGhCC,GAAwB,IAAIxuG,IAAI,CAAC,OAAQ,WAAY,UAAW,eAAe,GAAM,IAErFyuG,GAAa,CAClBrD,EACArjD,KAEA,MAAM2mD,EAAgBtD,EAAOvwD,QACvB8zD,EAAwB,IAAI3uG,IAC5B4uG,EAAmB/zD,IACxB,IAAK8zD,EAAsBrhH,IAAIutD,GAAU,CAExC,GADA8zD,EAAsBvhH,IAAIytD,IACrB2zD,GAAsBlhH,IAAIutD,GAC9B,OAAO7R,GAAM,CACZp3C,KAAM,iBACNoU,QAAS,aAAa/S,KAAKC,UAC1B2nD,wDACsDpoD,MAAMnC,KAC5Dk+G,GAAsB9zF,UACtBtsB,GAAS6E,KAAKC,UAAU9E,KACvBqD,KAAK,iBACPslD,IAAK,iDAGgB,kBAAZ8D,GACVyD,GACC,CACCt4C,QAAS,sBAAsB60C,yDAC9BA,EAAU,SAAW,oDAEtB9D,IAAK,iDAEN,EACAgR,GAIH,OAAOlN,GAGR,GAA6B,mBAAlB6zD,EAA8B,CACxC,MAAMG,EAA8C7gH,OAAO+R,OAAO,MAClE,IAAI+uG,EAAqC,KACzC,OAAOhrG,GACC,OAAPA,EACGgrG,GAAkBF,EAAiBE,EAAiBJ,EAAc5qG,IAClEA,KAAM+qG,EACNA,EAAa/qG,GACb8qG,EAAiBC,EAAa/qG,GAAM4qG,EAAc5qG,IAEvD,YAAyBjU,IAAlB6+G,EAA8B,KAAM,EAAO,IAAME,EAAgBF,IAGnEzC,GAAkB,CACvBb,EACAt3B,EACA5U,EACAnX,KAEA,MAAMmkD,EAAqBd,EAAOv4B,cAAgB9qB,EAAa8qB,aAC/D,GAAIq5B,EAAoB,CACvB,GAAIp4B,EACH,OAAO9qC,GAAM,CACZp3C,KAAM,iBACNoU,QACC,yFAGH,GAAIk5D,EACH,OAAOl2B,GAAM,CACZp3C,KAAM,iBACNoU,QAAS,oFAIZ,OAAOkmG,GAAsB,IAGxB6C,GAA2B,CAChC3D,EACA3wF,EACAtG,WAEA,iBAAAi3F,EAAOxnC,qCAA0BzvD,GAAsB,OAAXsG,GAA8B,WAAXA,GCnPhE,SAASu0F,GAAiB1mD,EAAmB2mD,GAC5C,IAAK,IAAIC,EAAc,EAAGA,EAAc5mD,EAAQn8D,OAAQ+iH,IAAe,CACtE,MAAM3nD,EAASe,EAAQ4mD,GAClB3nD,EAAOptD,OACXotD,EAAOptD,KAAO,GAAG80G,IAAkBC,EAAc,MAKpD//D,eAAeggE,GACd39B,EACAzpB,EACAqnD,EACAC,EACA5lD,GAEA,MACCx0D,QAASmtE,EAAarf,mBACtBA,EAAkBqd,aAClBA,GAsBF,SACCivC,EACAC,EACAvnD,EACAqnD,GAMA,IAAKC,EACJ,MAAM,IAAIr/G,MAAM,qCAEjB,MAAMu/G,EAAalF,GAAYgF,EAAiB/mD,SAChD0mD,GAAiBO,EAAY5P,IAC7B,MAAM58C,EAAqBusD,EAAkBE,yBAAyBD,GAEtE,MAAO,IACHE,GAAiB1nD,EAAcqnD,EAAmBC,EAAkBtsD,GACvEA,mBAAAA,GAxCG2sD,CACHL,EACA5lD,EAAMrH,aACN2F,EACAqnD,GAEKl1G,EAAS,IAAIP,GAAOyoE,EAAehC,EAAcrY,EAAchF,EAAoB0G,GACnFkmD,QAAkBz1G,EAAO01G,SAASp+B,GACxC,GAAIA,EAAS,CACZ,IAAKpP,EAAc9mE,MAAQ8mE,EAAc1xE,KACxC,OAAOs4C,GAAM,CACZp3C,KAAM,iBACNoU,QAAS,wEAGL+a,QAAQC,IAAIhzB,OAAO0sB,OAAOi1F,GAAWt1G,KAAI5L,GAwFjD,SACC4/E,EACAjM,GAEA,MAAMxrB,EAAWj7C,EAAQymE,EAAc9mE,KAAOD,EAAQ+mE,EAAc1xE,MAAQ29E,EAAWz3B,UACvF,IAAIi5D,EACAr8G,EACJ,GAAwB,UAApB66E,EAAWtnE,KACdvT,EAAS66E,EAAW76E,YAGpB,GADAA,EAAS66E,EAAWz8E,KAChBwwE,EAAc9T,WAAa+f,EAAWh0E,IAAK,CAC9C,IAAI08C,EAC4B,WAA5BqrB,EAAc9T,UACjBvX,EAAMs3B,EAAWh0E,IAAIlH,SAErB4jD,EAAM,GAAG37C,EAASizE,EAAWz3B,gBAC7Bi5D,EAAwBrR,GAAU,GAAG5nD,QAAgBy3B,EAAWh0E,IAAI7K,aAErC,WAA5B4yE,EAAc9T,YACjB96D,GAAU,wBAA4BujD,OAKzC,OAAOh2B,QAAQC,IAAI,CAACw9E,GAAU5nD,EAAUpjD,GAASq8G,IAjHQC,CAAgBrhH,EAAO2zE,YACzErf,EAAmB2uB,aAAa,cAAe,CAACtP,EAAeutC,IAEtE,OAoDAjiC,EApDoBiiC,EAsDb,CACN/rG,OACC5V,OAAO0sB,OAAOgzD,GAAc37E,QAAOs8E,GAAcrgF,OAAOuI,KAAK83E,GAAYliF,OAAS,IAIjFoO,MAAK,CAACw1G,EAAaC,KACpB,MAAMC,EAAYC,GAAmBH,GAC/BI,EAAYD,GAAmBF,GACrC,OAAIC,IAAcE,EAAkB,EAC7BF,EAAYE,GAAa,EAAI,MAbvC,IACCziC,EA1BD,SAAS+hC,GACR1nD,EACAqnD,EACAC,EACAtsD,GAEA,gBDjMAqoD,EACArjD,EACAqnD,qBAIA,MAAMhvC,EAAe,IAAIpgE,IAAIovG,GAEvBj7F,EAAUi3F,EAAOj3F,UAAW,EAC5BsG,EAAS8yF,GAAUnC,GACnBt3B,EAAuB+3B,GAAwBT,EAAQrjD,GACvDmX,EAAkButC,GAAmBrB,EAAQt3B,EAAsB/rB,GACnEr3D,EAAO48G,GAAQlC,EAAQlsC,EAAiBnX,GAExCqa,EAAyD,CAC9DrnB,IAAK2yD,GAAOtC,GACZ38B,yBAAgB28B,EAAO38B,8BAAkB,gCACzClG,OAAQslC,GAASzC,EAAQ,UACzBlnC,yBAAgBknC,EAAOlnC,8BAAkB,mBACzC/vD,QAAAA,EACA7Y,IAAKyyG,GAAO3C,EAAQ16G,GACpBkyD,sBAAuBorD,GAAyB5C,EAAQrjD,GACxD2c,eAAgBwpC,GAAkB9C,EAAQhrC,GAC1CjnB,mBAAUiyD,EAAOjyD,yBACjB+Q,QAASpF,GAAWsmD,EAAQhrC,GAC5BvK,OAAQu1C,EAAOv1C,SAAU,EACzBvc,+BAAsB8xD,EAAO9xD,qCAC7B5oD,KAAAA,EACA83E,OAAQqlC,GAASzC,EAAQ,UACzB3wF,OAAAA,EACA/X,iBAAQ0oG,EAAO1oG,uBACfwX,QAASkxF,EAAOlxF,SAAW,GAC3B4sD,iCAAwBskC,EAAOtkC,uCAC/BjwE,OAAQy3G,GAAUlD,EAAQj3F,GAC1B2/D,qBAAAA,EACAj5B,QAAS4zD,GAAWrD,EAAQrjD,GAC5Bn6D,MAAOigH,GAASzC,EAAQ,SACxBv4B,aAAco5B,GAAgBb,EAAQt3B,EAAsB5U,EAAiBnX,GAC7E6b,sBAAuBmrC,GAAyB3D,EAAQ3wF,EAAQtG,GAChEha,KAAMixG,EAAOjxG,KACb+/C,qBAAsBkxD,EAAOlxD,uBAAwB,EACrDkd,WAAYg0C,EAAOh0C,aAAc,EACjCvpE,MAAOggH,GAASzC,EAAQ,SACxBxvG,MAAOwvG,EAAOxvG,OAAS,GACvB0sD,QAAS+hD,GAAYe,EAAO9iD,SAC5Bue,YAAaukC,EAAOvkC,cAAe,EACnC3H,gBAAAA,EACAmG,oBAAqBooC,GAAuBrC,GAC5CnmC,iBACoC,mBAA5BmmC,EAAOnmC,iBACXmmC,EAAOnmC,kBACqB,IAA5BmmC,EAAOnmC,iBACPnhE,GAAMA,EACNssG,GACJ9hD,UAAW88C,EAAO98C,YAAa,EAC/B8a,wBAAyBgiC,EAAOhiC,0BAA2B,EAC3DP,cAAeuiC,EAAOviC,cACtBS,uBAAwB8hC,EAAO9hC,uBAG/BxU,iBAAQs2C,EAAOt2C,uBACf+B,kBAAmBu0C,EAAOv0C,oBAAqB,EAC/C4c,SAAU23B,EAAO33B,WAAY,GAS9B,OANA+2B,GACCY,EACAp9G,OAAOuI,KAAK6rE,GACZ,iBACAra,EAAahiD,QAEP,CAAE9Q,QAASmtE,EAAehC,aAAAA,GC0H1BiwC,CACNttD,EAAmButD,mBAClB,gBACA,CAACjB,EAAiBzrG,QAAUyrG,IAC5B,CAACjtC,EAAex1E,IAAWA,GAAUw1E,IACrCi9B,IACC,MAAMkR,EAAY,IAAMlR,EAAcr2D,MzHjIlC,CACNp3C,KAAMmqD,GAAOy0D,8BACbxqG,QAAS,4GyHgIP,MAAO,IACHq5F,EACH0B,SAAUwP,EACVjK,eAAgBiK,MAInBxoD,EACAqnD,GAsBF,IAAKqB,GAML,SAASP,GAAmBx/G,GAC3B,MAAkB,UAAdA,EAAKqW,KACD0pG,GAAgBC,MAEpBhgH,EAAKyU,QACDsrG,GAAgBE,YAEjBF,GAAgBG,iBAbxB,SAAKH,GACJA,iCACAA,yCACAA,qBAHD,CAAKA,KAAAA,4CAiDmEx7G,GACvE,OAAOA,qBA5QuB47G,GAC9B,OAGM1hE,eACN0hE,EACA5I,GAEA,MAAQhzG,QAAS8yD,EAAcqY,aAAcgvC,SAsE9CjgE,eACC0hE,EACA1K,GAEA,IAAK0K,EACJ,MAAM,IAAI7gH,MAAM,+CAEjB,MAAMu/G,EAAalF,GAAYwG,EAAgBvoD,UACzCrzD,QAAEA,EAAOmrE,aAAEA,YHnFoBgrC,aAMrC,MAAMhrC,EAAe,IAAIpgE,IAEnB0B,YAAU0pG,EAAO1pG,uBAAW,YAC5BqE,EAASolG,GAAUC,GACnB1sD,EAAqB0sD,EAAO1sD,qBAAsB,EAClDzpD,EAAiD,CACtDipG,MAAOmN,GAASD,GAChBzC,mBAAoB2C,GAAsBF,GAC1CxK,MAAO2K,GAASH,GAChB1pG,QAAAA,EACA4nG,kCAAyB8B,EAAO9B,uCAA2B,GAC3D/+E,SAAUihF,GAAaJ,EAAO7gF,UAC9BupD,qBAAsB+3B,GAAwBT,EAAQrlG,EAAQ24C,GAC9Du9B,MAAO8vB,GAASX,GAChB/G,wCAA+B+G,EAAO/G,8CACtCxxB,aAAco5B,GAAgBb,EAAQrlG,EAAQ24C,GAC9C6iD,qBAAsB4K,GAAwBf,GAC9CnnD,cAAemoD,GAAiBhB,EAAQ1pG,GACxCqE,OAAAA,EACAiiD,KAAMojD,EAAOpjD,OAAQ,EACrBM,QAAS+hD,GAAYe,EAAO9iD,SAC5BoB,wBAAyB6iD,GAA2BnB,EAAQhrC,GAC5DlB,gBAAiButC,GAAmBrB,EAAQrlG,EAAQ24C,GACpD2iD,iBAAkB+J,EAAO/J,mBAAoB,EAC7Cj1C,mBAAoBg/C,EAAOh/C,qBAAsB,EACjD1N,mBAAAA,EACA5W,UAAW6kE,GAAavB,EAAQrlG,EAAQ24C,IAUzC,OAPA8rD,GACCY,EACA,IAAIp9G,OAAOuI,KAAKtB,GAAU,SAC1B,gBACAA,EAAQ8Q,OACR,cAEM,CAAE9Q,QAAAA,EAASmrE,aAAAA,GGyCgB0wC,OAC3BvB,EAAWp9G,OAMnB,SAAyBg0G,GACxB,OAAOh3D,MACN4Y,EACAR,IAEIA,EAAOtyD,eAEDsyD,EAAOtyD,QAAQ3B,KACtB,CAAE8Q,KAAM,eAAE8hG,EAAeC,UAAAA,UACnBp+C,IAKFA,EApBiBgpD,CAAgB5K,GAAYplF,QAAQplB,QAAQk1G,KAGrE,OADA7B,GAAiB/5G,EAAQqzD,QAASo3C,IAC3B,CAAEzqG,QAAAA,EAASmrE,aAAAA,GAlFuD4wC,CACxEH,EACY,OAAZ5I,GAEDngD,GAAiBC,GAEjB,MAAM0B,EAAQ,IAAIu+C,GAAMjgD,EAAckgD,GAGhCgJ,GAAqC,IAA1BJ,EAAgBjQ,aAC1B74C,EAAa64C,aACbiQ,EAAgBjQ,MAEvB75C,GAAU,QAAS,GAEnB,UACO0C,EAAMrH,aAAasvB,aAAa,aAAc,CAAC3pB,UAC/C0B,EAAMynD,QACX,MAAOpjD,GACR,MAAM61C,EAAa31G,OAAOuI,KAAKkzD,EAAMk6C,YAMrC,MALIA,EAAWx3G,OAAS,IACvB2hE,EAAI61C,WAAaA,SAEZl6C,EAAMrH,aAAasvB,aAAa,WAAY,CAAC5jB,UAC7CrE,EAAMrH,aAAasvB,aAAa,cAAe,IAC/C5jB,QAGDrE,EAAMrH,aAAasvB,aAAa,WAAY,IAElD1qB,GAAQ,QAAS,GAEjB,MAAMp6D,EAAsB,CAC3Bg0G,MAAOqQ,EAAWxnD,EAAM8hD,gBAAa17G,EACrCiQ,cACKlT,EAAOu5B,SAEXv5B,EAAOu5B,QAAS,QAEVsjC,EAAMrH,aAAasvB,aAAa,cAAe,MAEtDvrD,QAAQ,EACRypF,SAAc,MAACP,GACVziH,EAAOu5B,OAAe6iB,GAAMoV,MAEzB+wD,IACN,EACApnD,EACAqnD,EACAC,EACA5lD,GAGFk6C,WAAY31G,OAAOuI,KAAKkzD,EAAMk6C,YAC9BwN,MAAW,MAAC9B,GACPziH,EAAOu5B,OAAe6iB,GAAMoV,MAEzB+wD,IACN,EACApnD,EACAqnD,EACAC,EACA5lD,IAKH,OADI1B,EAAaC,OAAMp7D,EAAOi6D,WAAaA,IACpCj6D,EA1EAwkH,CAAeP,EAAiB"}
\No newline at end of file