{
  "version": 3,
  "sources": ["../../fast-glob/out/utils/array.js", "../../fast-glob/out/utils/errno.js", "../../fast-glob/out/utils/fs.js", "../../fast-glob/out/utils/path.js", "../../is-extglob/index.js", "../../is-glob/index.js", "../../glob-parent/index.js", "../../braces/lib/utils.js", "../../braces/lib/stringify.js", "../../is-number/index.js", "../../to-regex-range/index.js", "../../fill-range/index.js", "../../braces/lib/compile.js", "../../braces/lib/expand.js", "../../braces/lib/constants.js", "../../braces/lib/parse.js", "../../braces/index.js", "../../picomatch/lib/constants.js", "../../picomatch/lib/utils.js", "../../picomatch/lib/scan.js", "../../picomatch/lib/parse.js", "../../picomatch/lib/picomatch.js", "../../picomatch/index.js", "../../micromatch/index.js", "../../fast-glob/out/utils/pattern.js", "../../merge2/index.js", "../../fast-glob/out/utils/stream.js", "../../fast-glob/out/utils/string.js", "../../fast-glob/out/utils/index.js", "../../fast-glob/out/managers/tasks.js", "../../@nodelib/fs.stat/out/providers/async.js", "../../@nodelib/fs.stat/out/providers/sync.js", "../../@nodelib/fs.stat/out/adapters/fs.js", "../../@nodelib/fs.stat/out/settings.js", "../../@nodelib/fs.stat/out/index.js", "../../queue-microtask/index.js", "../../run-parallel/index.js", "../../@nodelib/fs.scandir/out/constants.js", "../../@nodelib/fs.scandir/out/utils/fs.js", "../../@nodelib/fs.scandir/out/utils/index.js", "../../@nodelib/fs.scandir/out/providers/common.js", "../../@nodelib/fs.scandir/out/providers/async.js", "../../@nodelib/fs.scandir/out/providers/sync.js", "../../@nodelib/fs.scandir/out/adapters/fs.js", "../../@nodelib/fs.scandir/out/settings.js", "../../@nodelib/fs.scandir/out/index.js", "../../reusify/reusify.js", "../../fastq/queue.js", "../../@nodelib/fs.walk/out/readers/common.js", "../../@nodelib/fs.walk/out/readers/reader.js", "../../@nodelib/fs.walk/out/readers/async.js", "../../@nodelib/fs.walk/out/providers/async.js", "../../@nodelib/fs.walk/out/providers/stream.js", "../../@nodelib/fs.walk/out/readers/sync.js", "../../@nodelib/fs.walk/out/providers/sync.js", "../../@nodelib/fs.walk/out/settings.js", "../../@nodelib/fs.walk/out/index.js", "../../fast-glob/out/readers/reader.js", "../../fast-glob/out/readers/stream.js", "../../fast-glob/out/readers/async.js", "../../fast-glob/out/providers/matchers/matcher.js", "../../fast-glob/out/providers/matchers/partial.js", "../../fast-glob/out/providers/filters/deep.js", "../../fast-glob/out/providers/filters/entry.js", "../../fast-glob/out/providers/filters/error.js", "../../fast-glob/out/providers/transformers/entry.js", "../../fast-glob/out/providers/provider.js", "../../fast-glob/out/providers/async.js", "../../fast-glob/out/providers/stream.js", "../../fast-glob/out/readers/sync.js", "../../fast-glob/out/providers/sync.js", "../../fast-glob/out/settings.js", "../../fast-glob/out/index.js", "../src/bindings/duckdb-mvp.js", "../src/bindings/duckdb-eh.js", "../src/bindings/connection.ts", "../src/bindings/udf_runtime.ts", "../src/bindings/runtime.ts", "../src/bindings/file_stats.ts", "../src/json_typedef.ts", "../src/bindings/bindings_base.ts", "../src/log.ts", "../../wasm-feature-detect/dist/esm/index.js", "../src/platform.ts", "../src/bindings/runtime_node.ts", "../src/bindings/bindings_node_mvp.ts", "../src/bindings/bindings_node_base.ts", "../src/bindings/bindings_node_eh.ts", "../src/targets/duckdb-node-blocking.ts", "../src/parallel/async_connection.ts", "../src/parallel/worker_request.ts", "../src/parallel/async_bindings.ts", "../test/index_node.ts", "../test/all_types.test.ts", "../test/bindings.test.ts", "../test/batch_stream.test.ts", "../test/filesystem.test.ts", "../test/batch_stream_async.test.ts", "../test/insert_arrow.test.ts", "../test/table_test.ts", "../test/insert_json.test.ts", "../test/insert_csv.test.ts", "../test/tokenizer.test.ts", "../test/tablenames.test.ts", "../test/udf.test.ts", "../test/regression/github_332.test.ts", "../test/regression/github_334.test.ts", "../test/regression/github_393.test.ts", "../test/regression/github_448.test.ts", "../test/regression/github_470.test.ts", "../test/regression/github_477.test.ts", "../test/regression/github_1467.test.ts", "../test/regression/index.ts", "../test/fts.test.ts", "../test/icu_test.ts"],
  "sourcesContent": ["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.splitWhen = exports.flatten = void 0;\nfunction flatten(items) {\n    return items.reduce((collection, item) => [].concat(collection, item), []);\n}\nexports.flatten = flatten;\nfunction splitWhen(items, predicate) {\n    const result = [[]];\n    let groupIndex = 0;\n    for (const item of items) {\n        if (predicate(item)) {\n            groupIndex++;\n            result[groupIndex] = [];\n        }\n        else {\n            result[groupIndex].push(item);\n        }\n    }\n    return result;\n}\nexports.splitWhen = splitWhen;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEnoentCodeError = void 0;\nfunction isEnoentCodeError(error) {\n    return error.code === 'ENOENT';\n}\nexports.isEnoentCodeError = isEnoentCodeError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createDirentFromStats = void 0;\nclass DirentFromStats {\n    constructor(name, stats) {\n        this.name = name;\n        this.isBlockDevice = stats.isBlockDevice.bind(stats);\n        this.isCharacterDevice = stats.isCharacterDevice.bind(stats);\n        this.isDirectory = stats.isDirectory.bind(stats);\n        this.isFIFO = stats.isFIFO.bind(stats);\n        this.isFile = stats.isFile.bind(stats);\n        this.isSocket = stats.isSocket.bind(stats);\n        this.isSymbolicLink = stats.isSymbolicLink.bind(stats);\n    }\n}\nfunction createDirentFromStats(name, stats) {\n    return new DirentFromStats(name, stats);\n}\nexports.createDirentFromStats = createDirentFromStats;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertPosixPathToPattern = exports.convertWindowsPathToPattern = exports.convertPathToPattern = exports.escapePosixPath = exports.escapeWindowsPath = exports.escape = exports.removeLeadingDotSegment = exports.makeAbsolute = exports.unixify = void 0;\nconst os = require(\"os\");\nconst path = require(\"path\");\nconst IS_WINDOWS_PLATFORM = os.platform() === 'win32';\nconst LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; // ./ or .\\\\\n/**\n * All non-escaped special characters.\n * Posix: ()*?[\\]{|}, !+@ before (, ! at the beginning, \\\\ before non-special characters.\n * Windows: (){}, !+@ before (, ! at the beginning.\n */\nconst POSIX_UNESCAPED_GLOB_SYMBOLS_RE = /(\\\\?)([()*?[\\]{|}]|^!|[!+@](?=\\()|\\\\(?![!()*+?@[\\]{|}]))/g;\nconst WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE = /(\\\\?)([(){}]|^!|[!+@](?=\\())/g;\n/**\n * The device path (\\\\.\\ or \\\\?\\).\n * https://learn.microsoft.com/en-us/dotnet/standard/io/file-path-formats#dos-device-paths\n */\nconst DOS_DEVICE_PATH_RE = /^\\\\\\\\([.?])/;\n/**\n * All backslashes except those escaping special characters.\n * Windows: !()+@{}\n * https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#naming-conventions\n */\nconst WINDOWS_BACKSLASHES_RE = /\\\\(?![!()+@{}])/g;\n/**\n * Designed to work only with simple paths: `dir\\\\file`.\n */\nfunction unixify(filepath) {\n    return filepath.replace(/\\\\/g, '/');\n}\nexports.unixify = unixify;\nfunction makeAbsolute(cwd, filepath) {\n    return path.resolve(cwd, filepath);\n}\nexports.makeAbsolute = makeAbsolute;\nfunction removeLeadingDotSegment(entry) {\n    // We do not use `startsWith` because this is 10x slower than current implementation for some cases.\n    // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with\n    if (entry.charAt(0) === '.') {\n        const secondCharactery = entry.charAt(1);\n        if (secondCharactery === '/' || secondCharactery === '\\\\') {\n            return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT);\n        }\n    }\n    return entry;\n}\nexports.removeLeadingDotSegment = removeLeadingDotSegment;\nexports.escape = IS_WINDOWS_PLATFORM ? escapeWindowsPath : escapePosixPath;\nfunction escapeWindowsPath(pattern) {\n    return pattern.replace(WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE, '\\\\$2');\n}\nexports.escapeWindowsPath = escapeWindowsPath;\nfunction escapePosixPath(pattern) {\n    return pattern.replace(POSIX_UNESCAPED_GLOB_SYMBOLS_RE, '\\\\$2');\n}\nexports.escapePosixPath = escapePosixPath;\nexports.convertPathToPattern = IS_WINDOWS_PLATFORM ? convertWindowsPathToPattern : convertPosixPathToPattern;\nfunction convertWindowsPathToPattern(filepath) {\n    return escapeWindowsPath(filepath)\n        .replace(DOS_DEVICE_PATH_RE, '//$1')\n        .replace(WINDOWS_BACKSLASHES_RE, '/');\n}\nexports.convertWindowsPathToPattern = convertWindowsPathToPattern;\nfunction convertPosixPathToPattern(filepath) {\n    return escapePosixPath(filepath);\n}\nexports.convertPosixPathToPattern = convertPosixPathToPattern;\n", "/*!\n * is-extglob <https://github.com/jonschlinkert/is-extglob>\n *\n * Copyright (c) 2014-2016, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\nmodule.exports = function isExtglob(str) {\n  if (typeof str !== 'string' || str === '') {\n    return false;\n  }\n\n  var match;\n  while ((match = /(\\\\).|([@?!+*]\\(.*\\))/g.exec(str))) {\n    if (match[2]) return true;\n    str = str.slice(match.index + match[0].length);\n  }\n\n  return false;\n};\n", "/*!\n * is-glob <https://github.com/jonschlinkert/is-glob>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nvar isExtglob = require('is-extglob');\nvar chars = { '{': '}', '(': ')', '[': ']'};\nvar strictCheck = function(str) {\n  if (str[0] === '!') {\n    return true;\n  }\n  var index = 0;\n  var pipeIndex = -2;\n  var closeSquareIndex = -2;\n  var closeCurlyIndex = -2;\n  var closeParenIndex = -2;\n  var backSlashIndex = -2;\n  while (index < str.length) {\n    if (str[index] === '*') {\n      return true;\n    }\n\n    if (str[index + 1] === '?' && /[\\].+)]/.test(str[index])) {\n      return true;\n    }\n\n    if (closeSquareIndex !== -1 && str[index] === '[' && str[index + 1] !== ']') {\n      if (closeSquareIndex < index) {\n        closeSquareIndex = str.indexOf(']', index);\n      }\n      if (closeSquareIndex > index) {\n        if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {\n          return true;\n        }\n        backSlashIndex = str.indexOf('\\\\', index);\n        if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {\n          return true;\n        }\n      }\n    }\n\n    if (closeCurlyIndex !== -1 && str[index] === '{' && str[index + 1] !== '}') {\n      closeCurlyIndex = str.indexOf('}', index);\n      if (closeCurlyIndex > index) {\n        backSlashIndex = str.indexOf('\\\\', index);\n        if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) {\n          return true;\n        }\n      }\n    }\n\n    if (closeParenIndex !== -1 && str[index] === '(' && str[index + 1] === '?' && /[:!=]/.test(str[index + 2]) && str[index + 3] !== ')') {\n      closeParenIndex = str.indexOf(')', index);\n      if (closeParenIndex > index) {\n        backSlashIndex = str.indexOf('\\\\', index);\n        if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {\n          return true;\n        }\n      }\n    }\n\n    if (pipeIndex !== -1 && str[index] === '(' && str[index + 1] !== '|') {\n      if (pipeIndex < index) {\n        pipeIndex = str.indexOf('|', index);\n      }\n      if (pipeIndex !== -1 && str[pipeIndex + 1] !== ')') {\n        closeParenIndex = str.indexOf(')', pipeIndex);\n        if (closeParenIndex > pipeIndex) {\n          backSlashIndex = str.indexOf('\\\\', pipeIndex);\n          if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {\n            return true;\n          }\n        }\n      }\n    }\n\n    if (str[index] === '\\\\') {\n      var open = str[index + 1];\n      index += 2;\n      var close = chars[open];\n\n      if (close) {\n        var n = str.indexOf(close, index);\n        if (n !== -1) {\n          index = n + 1;\n        }\n      }\n\n      if (str[index] === '!') {\n        return true;\n      }\n    } else {\n      index++;\n    }\n  }\n  return false;\n};\n\nvar relaxedCheck = function(str) {\n  if (str[0] === '!') {\n    return true;\n  }\n  var index = 0;\n  while (index < str.length) {\n    if (/[*?{}()[\\]]/.test(str[index])) {\n      return true;\n    }\n\n    if (str[index] === '\\\\') {\n      var open = str[index + 1];\n      index += 2;\n      var close = chars[open];\n\n      if (close) {\n        var n = str.indexOf(close, index);\n        if (n !== -1) {\n          index = n + 1;\n        }\n      }\n\n      if (str[index] === '!') {\n        return true;\n      }\n    } else {\n      index++;\n    }\n  }\n  return false;\n};\n\nmodule.exports = function isGlob(str, options) {\n  if (typeof str !== 'string' || str === '') {\n    return false;\n  }\n\n  if (isExtglob(str)) {\n    return true;\n  }\n\n  var check = strictCheck;\n\n  // optionally relax check\n  if (options && options.strict === false) {\n    check = relaxedCheck;\n  }\n\n  return check(str);\n};\n", "'use strict';\n\nvar isGlob = require('is-glob');\nvar pathPosixDirname = require('path').posix.dirname;\nvar isWin32 = require('os').platform() === 'win32';\n\nvar slash = '/';\nvar backslash = /\\\\/g;\nvar enclosure = /[\\{\\[].*[\\}\\]]$/;\nvar globby = /(^|[^\\\\])([\\{\\[]|\\([^\\)]+$)/;\nvar escaped = /\\\\([\\!\\*\\?\\|\\[\\]\\(\\)\\{\\}])/g;\n\n/**\n * @param {string} str\n * @param {Object} opts\n * @param {boolean} [opts.flipBackslashes=true]\n * @returns {string}\n */\nmodule.exports = function globParent(str, opts) {\n  var options = Object.assign({ flipBackslashes: true }, opts);\n\n  // flip windows path separators\n  if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) {\n    str = str.replace(backslash, slash);\n  }\n\n  // special case for strings ending in enclosure containing path separator\n  if (enclosure.test(str)) {\n    str += slash;\n  }\n\n  // preserves full path in case of trailing path separator\n  str += 'a';\n\n  // remove path parts that are globby\n  do {\n    str = pathPosixDirname(str);\n  } while (isGlob(str) || globby.test(str));\n\n  // remove escape chars and return result\n  return str.replace(escaped, '$1');\n};\n", "'use strict';\n\nexports.isInteger = num => {\n  if (typeof num === 'number') {\n    return Number.isInteger(num);\n  }\n  if (typeof num === 'string' && num.trim() !== '') {\n    return Number.isInteger(Number(num));\n  }\n  return false;\n};\n\n/**\n * Find a node of the given type\n */\n\nexports.find = (node, type) => node.nodes.find(node => node.type === type);\n\n/**\n * Find a node of the given type\n */\n\nexports.exceedsLimit = (min, max, step = 1, limit) => {\n  if (limit === false) return false;\n  if (!exports.isInteger(min) || !exports.isInteger(max)) return false;\n  return ((Number(max) - Number(min)) / Number(step)) >= limit;\n};\n\n/**\n * Escape the given node with '\\\\' before node.value\n */\n\nexports.escapeNode = (block, n = 0, type) => {\n  let node = block.nodes[n];\n  if (!node) return;\n\n  if ((type && node.type === type) || node.type === 'open' || node.type === 'close') {\n    if (node.escaped !== true) {\n      node.value = '\\\\' + node.value;\n      node.escaped = true;\n    }\n  }\n};\n\n/**\n * Returns true if the given brace node should be enclosed in literal braces\n */\n\nexports.encloseBrace = node => {\n  if (node.type !== 'brace') return false;\n  if ((node.commas >> 0 + node.ranges >> 0) === 0) {\n    node.invalid = true;\n    return true;\n  }\n  return false;\n};\n\n/**\n * Returns true if a brace node is invalid.\n */\n\nexports.isInvalidBrace = block => {\n  if (block.type !== 'brace') return false;\n  if (block.invalid === true || block.dollar) return true;\n  if ((block.commas >> 0 + block.ranges >> 0) === 0) {\n    block.invalid = true;\n    return true;\n  }\n  if (block.open !== true || block.close !== true) {\n    block.invalid = true;\n    return true;\n  }\n  return false;\n};\n\n/**\n * Returns true if a node is an open or close node\n */\n\nexports.isOpenOrClose = node => {\n  if (node.type === 'open' || node.type === 'close') {\n    return true;\n  }\n  return node.open === true || node.close === true;\n};\n\n/**\n * Reduce an array of text nodes.\n */\n\nexports.reduce = nodes => nodes.reduce((acc, node) => {\n  if (node.type === 'text') acc.push(node.value);\n  if (node.type === 'range') node.type = 'text';\n  return acc;\n}, []);\n\n/**\n * Flatten an array\n */\n\nexports.flatten = (...args) => {\n  const result = [];\n  const flat = arr => {\n    for (let i = 0; i < arr.length; i++) {\n      let ele = arr[i];\n      Array.isArray(ele) ? flat(ele, result) : ele !== void 0 && result.push(ele);\n    }\n    return result;\n  };\n  flat(args);\n  return result;\n};\n", "'use strict';\n\nconst utils = require('./utils');\n\nmodule.exports = (ast, options = {}) => {\n  let stringify = (node, parent = {}) => {\n    let invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent);\n    let invalidNode = node.invalid === true && options.escapeInvalid === true;\n    let output = '';\n\n    if (node.value) {\n      if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) {\n        return '\\\\' + node.value;\n      }\n      return node.value;\n    }\n\n    if (node.value) {\n      return node.value;\n    }\n\n    if (node.nodes) {\n      for (let child of node.nodes) {\n        output += stringify(child);\n      }\n    }\n    return output;\n  };\n\n  return stringify(ast);\n};\n\n", "/*!\n * is-number <https://github.com/jonschlinkert/is-number>\n *\n * Copyright (c) 2014-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function(num) {\n  if (typeof num === 'number') {\n    return num - num === 0;\n  }\n  if (typeof num === 'string' && num.trim() !== '') {\n    return Number.isFinite ? Number.isFinite(+num) : isFinite(+num);\n  }\n  return false;\n};\n", "/*!\n * to-regex-range <https://github.com/micromatch/to-regex-range>\n *\n * Copyright (c) 2015-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nconst isNumber = require('is-number');\n\nconst toRegexRange = (min, max, options) => {\n  if (isNumber(min) === false) {\n    throw new TypeError('toRegexRange: expected the first argument to be a number');\n  }\n\n  if (max === void 0 || min === max) {\n    return String(min);\n  }\n\n  if (isNumber(max) === false) {\n    throw new TypeError('toRegexRange: expected the second argument to be a number.');\n  }\n\n  let opts = { relaxZeros: true, ...options };\n  if (typeof opts.strictZeros === 'boolean') {\n    opts.relaxZeros = opts.strictZeros === false;\n  }\n\n  let relax = String(opts.relaxZeros);\n  let shorthand = String(opts.shorthand);\n  let capture = String(opts.capture);\n  let wrap = String(opts.wrap);\n  let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap;\n\n  if (toRegexRange.cache.hasOwnProperty(cacheKey)) {\n    return toRegexRange.cache[cacheKey].result;\n  }\n\n  let a = Math.min(min, max);\n  let b = Math.max(min, max);\n\n  if (Math.abs(a - b) === 1) {\n    let result = min + '|' + max;\n    if (opts.capture) {\n      return `(${result})`;\n    }\n    if (opts.wrap === false) {\n      return result;\n    }\n    return `(?:${result})`;\n  }\n\n  let isPadded = hasPadding(min) || hasPadding(max);\n  let state = { min, max, a, b };\n  let positives = [];\n  let negatives = [];\n\n  if (isPadded) {\n    state.isPadded = isPadded;\n    state.maxLen = String(state.max).length;\n  }\n\n  if (a < 0) {\n    let newMin = b < 0 ? Math.abs(b) : 1;\n    negatives = splitToPatterns(newMin, Math.abs(a), state, opts);\n    a = state.a = 0;\n  }\n\n  if (b >= 0) {\n    positives = splitToPatterns(a, b, state, opts);\n  }\n\n  state.negatives = negatives;\n  state.positives = positives;\n  state.result = collatePatterns(negatives, positives, opts);\n\n  if (opts.capture === true) {\n    state.result = `(${state.result})`;\n  } else if (opts.wrap !== false && (positives.length + negatives.length) > 1) {\n    state.result = `(?:${state.result})`;\n  }\n\n  toRegexRange.cache[cacheKey] = state;\n  return state.result;\n};\n\nfunction collatePatterns(neg, pos, options) {\n  let onlyNegative = filterPatterns(neg, pos, '-', false, options) || [];\n  let onlyPositive = filterPatterns(pos, neg, '', false, options) || [];\n  let intersected = filterPatterns(neg, pos, '-?', true, options) || [];\n  let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive);\n  return subpatterns.join('|');\n}\n\nfunction splitToRanges(min, max) {\n  let nines = 1;\n  let zeros = 1;\n\n  let stop = countNines(min, nines);\n  let stops = new Set([max]);\n\n  while (min <= stop && stop <= max) {\n    stops.add(stop);\n    nines += 1;\n    stop = countNines(min, nines);\n  }\n\n  stop = countZeros(max + 1, zeros) - 1;\n\n  while (min < stop && stop <= max) {\n    stops.add(stop);\n    zeros += 1;\n    stop = countZeros(max + 1, zeros) - 1;\n  }\n\n  stops = [...stops];\n  stops.sort(compare);\n  return stops;\n}\n\n/**\n * Convert a range to a regex pattern\n * @param {Number} `start`\n * @param {Number} `stop`\n * @return {String}\n */\n\nfunction rangeToPattern(start, stop, options) {\n  if (start === stop) {\n    return { pattern: start, count: [], digits: 0 };\n  }\n\n  let zipped = zip(start, stop);\n  let digits = zipped.length;\n  let pattern = '';\n  let count = 0;\n\n  for (let i = 0; i < digits; i++) {\n    let [startDigit, stopDigit] = zipped[i];\n\n    if (startDigit === stopDigit) {\n      pattern += startDigit;\n\n    } else if (startDigit !== '0' || stopDigit !== '9') {\n      pattern += toCharacterClass(startDigit, stopDigit, options);\n\n    } else {\n      count++;\n    }\n  }\n\n  if (count) {\n    pattern += options.shorthand === true ? '\\\\d' : '[0-9]';\n  }\n\n  return { pattern, count: [count], digits };\n}\n\nfunction splitToPatterns(min, max, tok, options) {\n  let ranges = splitToRanges(min, max);\n  let tokens = [];\n  let start = min;\n  let prev;\n\n  for (let i = 0; i < ranges.length; i++) {\n    let max = ranges[i];\n    let obj = rangeToPattern(String(start), String(max), options);\n    let zeros = '';\n\n    if (!tok.isPadded && prev && prev.pattern === obj.pattern) {\n      if (prev.count.length > 1) {\n        prev.count.pop();\n      }\n\n      prev.count.push(obj.count[0]);\n      prev.string = prev.pattern + toQuantifier(prev.count);\n      start = max + 1;\n      continue;\n    }\n\n    if (tok.isPadded) {\n      zeros = padZeros(max, tok, options);\n    }\n\n    obj.string = zeros + obj.pattern + toQuantifier(obj.count);\n    tokens.push(obj);\n    start = max + 1;\n    prev = obj;\n  }\n\n  return tokens;\n}\n\nfunction filterPatterns(arr, comparison, prefix, intersection, options) {\n  let result = [];\n\n  for (let ele of arr) {\n    let { string } = ele;\n\n    // only push if _both_ are negative...\n    if (!intersection && !contains(comparison, 'string', string)) {\n      result.push(prefix + string);\n    }\n\n    // or _both_ are positive\n    if (intersection && contains(comparison, 'string', string)) {\n      result.push(prefix + string);\n    }\n  }\n  return result;\n}\n\n/**\n * Zip strings\n */\n\nfunction zip(a, b) {\n  let arr = [];\n  for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]);\n  return arr;\n}\n\nfunction compare(a, b) {\n  return a > b ? 1 : b > a ? -1 : 0;\n}\n\nfunction contains(arr, key, val) {\n  return arr.some(ele => ele[key] === val);\n}\n\nfunction countNines(min, len) {\n  return Number(String(min).slice(0, -len) + '9'.repeat(len));\n}\n\nfunction countZeros(integer, zeros) {\n  return integer - (integer % Math.pow(10, zeros));\n}\n\nfunction toQuantifier(digits) {\n  let [start = 0, stop = ''] = digits;\n  if (stop || start > 1) {\n    return `{${start + (stop ? ',' + stop : '')}}`;\n  }\n  return '';\n}\n\nfunction toCharacterClass(a, b, options) {\n  return `[${a}${(b - a === 1) ? '' : '-'}${b}]`;\n}\n\nfunction hasPadding(str) {\n  return /^-?(0+)\\d/.test(str);\n}\n\nfunction padZeros(value, tok, options) {\n  if (!tok.isPadded) {\n    return value;\n  }\n\n  let diff = Math.abs(tok.maxLen - String(value).length);\n  let relax = options.relaxZeros !== false;\n\n  switch (diff) {\n    case 0:\n      return '';\n    case 1:\n      return relax ? '0?' : '0';\n    case 2:\n      return relax ? '0{0,2}' : '00';\n    default: {\n      return relax ? `0{0,${diff}}` : `0{${diff}}`;\n    }\n  }\n}\n\n/**\n * Cache\n */\n\ntoRegexRange.cache = {};\ntoRegexRange.clearCache = () => (toRegexRange.cache = {});\n\n/**\n * Expose `toRegexRange`\n */\n\nmodule.exports = toRegexRange;\n", "/*!\n * fill-range <https://github.com/jonschlinkert/fill-range>\n *\n * Copyright (c) 2014-present, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n'use strict';\n\nconst util = require('util');\nconst toRegexRange = require('to-regex-range');\n\nconst isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\n\nconst transform = toNumber => {\n  return value => toNumber === true ? Number(value) : String(value);\n};\n\nconst isValidValue = value => {\n  return typeof value === 'number' || (typeof value === 'string' && value !== '');\n};\n\nconst isNumber = num => Number.isInteger(+num);\n\nconst zeros = input => {\n  let value = `${input}`;\n  let index = -1;\n  if (value[0] === '-') value = value.slice(1);\n  if (value === '0') return false;\n  while (value[++index] === '0');\n  return index > 0;\n};\n\nconst stringify = (start, end, options) => {\n  if (typeof start === 'string' || typeof end === 'string') {\n    return true;\n  }\n  return options.stringify === true;\n};\n\nconst pad = (input, maxLength, toNumber) => {\n  if (maxLength > 0) {\n    let dash = input[0] === '-' ? '-' : '';\n    if (dash) input = input.slice(1);\n    input = (dash + input.padStart(dash ? maxLength - 1 : maxLength, '0'));\n  }\n  if (toNumber === false) {\n    return String(input);\n  }\n  return input;\n};\n\nconst toMaxLen = (input, maxLength) => {\n  let negative = input[0] === '-' ? '-' : '';\n  if (negative) {\n    input = input.slice(1);\n    maxLength--;\n  }\n  while (input.length < maxLength) input = '0' + input;\n  return negative ? ('-' + input) : input;\n};\n\nconst toSequence = (parts, options) => {\n  parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n  parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n\n  let prefix = options.capture ? '' : '?:';\n  let positives = '';\n  let negatives = '';\n  let result;\n\n  if (parts.positives.length) {\n    positives = parts.positives.join('|');\n  }\n\n  if (parts.negatives.length) {\n    negatives = `-(${prefix}${parts.negatives.join('|')})`;\n  }\n\n  if (positives && negatives) {\n    result = `${positives}|${negatives}`;\n  } else {\n    result = positives || negatives;\n  }\n\n  if (options.wrap) {\n    return `(${prefix}${result})`;\n  }\n\n  return result;\n};\n\nconst toRange = (a, b, isNumbers, options) => {\n  if (isNumbers) {\n    return toRegexRange(a, b, { wrap: false, ...options });\n  }\n\n  let start = String.fromCharCode(a);\n  if (a === b) return start;\n\n  let stop = String.fromCharCode(b);\n  return `[${start}-${stop}]`;\n};\n\nconst toRegex = (start, end, options) => {\n  if (Array.isArray(start)) {\n    let wrap = options.wrap === true;\n    let prefix = options.capture ? '' : '?:';\n    return wrap ? `(${prefix}${start.join('|')})` : start.join('|');\n  }\n  return toRegexRange(start, end, options);\n};\n\nconst rangeError = (...args) => {\n  return new RangeError('Invalid range arguments: ' + util.inspect(...args));\n};\n\nconst invalidRange = (start, end, options) => {\n  if (options.strictRanges === true) throw rangeError([start, end]);\n  return [];\n};\n\nconst invalidStep = (step, options) => {\n  if (options.strictRanges === true) {\n    throw new TypeError(`Expected step \"${step}\" to be a number`);\n  }\n  return [];\n};\n\nconst fillNumbers = (start, end, step = 1, options = {}) => {\n  let a = Number(start);\n  let b = Number(end);\n\n  if (!Number.isInteger(a) || !Number.isInteger(b)) {\n    if (options.strictRanges === true) throw rangeError([start, end]);\n    return [];\n  }\n\n  // fix negative zero\n  if (a === 0) a = 0;\n  if (b === 0) b = 0;\n\n  let descending = a > b;\n  let startString = String(start);\n  let endString = String(end);\n  let stepString = String(step);\n  step = Math.max(Math.abs(step), 1);\n\n  let padded = zeros(startString) || zeros(endString) || zeros(stepString);\n  let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0;\n  let toNumber = padded === false && stringify(start, end, options) === false;\n  let format = options.transform || transform(toNumber);\n\n  if (options.toRegex && step === 1) {\n    return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options);\n  }\n\n  let parts = { negatives: [], positives: [] };\n  let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num));\n  let range = [];\n  let index = 0;\n\n  while (descending ? a >= b : a <= b) {\n    if (options.toRegex === true && step > 1) {\n      push(a);\n    } else {\n      range.push(pad(format(a, index), maxLen, toNumber));\n    }\n    a = descending ? a - step : a + step;\n    index++;\n  }\n\n  if (options.toRegex === true) {\n    return step > 1\n      ? toSequence(parts, options)\n      : toRegex(range, null, { wrap: false, ...options });\n  }\n\n  return range;\n};\n\nconst fillLetters = (start, end, step = 1, options = {}) => {\n  if ((!isNumber(start) && start.length > 1) || (!isNumber(end) && end.length > 1)) {\n    return invalidRange(start, end, options);\n  }\n\n\n  let format = options.transform || (val => String.fromCharCode(val));\n  let a = `${start}`.charCodeAt(0);\n  let b = `${end}`.charCodeAt(0);\n\n  let descending = a > b;\n  let min = Math.min(a, b);\n  let max = Math.max(a, b);\n\n  if (options.toRegex && step === 1) {\n    return toRange(min, max, false, options);\n  }\n\n  let range = [];\n  let index = 0;\n\n  while (descending ? a >= b : a <= b) {\n    range.push(format(a, index));\n    a = descending ? a - step : a + step;\n    index++;\n  }\n\n  if (options.toRegex === true) {\n    return toRegex(range, null, { wrap: false, options });\n  }\n\n  return range;\n};\n\nconst fill = (start, end, step, options = {}) => {\n  if (end == null && isValidValue(start)) {\n    return [start];\n  }\n\n  if (!isValidValue(start) || !isValidValue(end)) {\n    return invalidRange(start, end, options);\n  }\n\n  if (typeof step === 'function') {\n    return fill(start, end, 1, { transform: step });\n  }\n\n  if (isObject(step)) {\n    return fill(start, end, 0, step);\n  }\n\n  let opts = { ...options };\n  if (opts.capture === true) opts.wrap = true;\n  step = step || opts.step || 1;\n\n  if (!isNumber(step)) {\n    if (step != null && !isObject(step)) return invalidStep(step, opts);\n    return fill(start, end, 1, step);\n  }\n\n  if (isNumber(start) && isNumber(end)) {\n    return fillNumbers(start, end, step, opts);\n  }\n\n  return fillLetters(start, end, Math.max(Math.abs(step), 1), opts);\n};\n\nmodule.exports = fill;\n", "'use strict';\n\nconst fill = require('fill-range');\nconst utils = require('./utils');\n\nconst compile = (ast, options = {}) => {\n  let walk = (node, parent = {}) => {\n    let invalidBlock = utils.isInvalidBrace(parent);\n    let invalidNode = node.invalid === true && options.escapeInvalid === true;\n    let invalid = invalidBlock === true || invalidNode === true;\n    let prefix = options.escapeInvalid === true ? '\\\\' : '';\n    let output = '';\n\n    if (node.isOpen === true) {\n      return prefix + node.value;\n    }\n    if (node.isClose === true) {\n      return prefix + node.value;\n    }\n\n    if (node.type === 'open') {\n      return invalid ? (prefix + node.value) : '(';\n    }\n\n    if (node.type === 'close') {\n      return invalid ? (prefix + node.value) : ')';\n    }\n\n    if (node.type === 'comma') {\n      return node.prev.type === 'comma' ? '' : (invalid ? node.value : '|');\n    }\n\n    if (node.value) {\n      return node.value;\n    }\n\n    if (node.nodes && node.ranges > 0) {\n      let args = utils.reduce(node.nodes);\n      let range = fill(...args, { ...options, wrap: false, toRegex: true });\n\n      if (range.length !== 0) {\n        return args.length > 1 && range.length > 1 ? `(${range})` : range;\n      }\n    }\n\n    if (node.nodes) {\n      for (let child of node.nodes) {\n        output += walk(child, node);\n      }\n    }\n    return output;\n  };\n\n  return walk(ast);\n};\n\nmodule.exports = compile;\n", "'use strict';\n\nconst fill = require('fill-range');\nconst stringify = require('./stringify');\nconst utils = require('./utils');\n\nconst append = (queue = '', stash = '', enclose = false) => {\n  let result = [];\n\n  queue = [].concat(queue);\n  stash = [].concat(stash);\n\n  if (!stash.length) return queue;\n  if (!queue.length) {\n    return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash;\n  }\n\n  for (let item of queue) {\n    if (Array.isArray(item)) {\n      for (let value of item) {\n        result.push(append(value, stash, enclose));\n      }\n    } else {\n      for (let ele of stash) {\n        if (enclose === true && typeof ele === 'string') ele = `{${ele}}`;\n        result.push(Array.isArray(ele) ? append(item, ele, enclose) : (item + ele));\n      }\n    }\n  }\n  return utils.flatten(result);\n};\n\nconst expand = (ast, options = {}) => {\n  let rangeLimit = options.rangeLimit === void 0 ? 1000 : options.rangeLimit;\n\n  let walk = (node, parent = {}) => {\n    node.queue = [];\n\n    let p = parent;\n    let q = parent.queue;\n\n    while (p.type !== 'brace' && p.type !== 'root' && p.parent) {\n      p = p.parent;\n      q = p.queue;\n    }\n\n    if (node.invalid || node.dollar) {\n      q.push(append(q.pop(), stringify(node, options)));\n      return;\n    }\n\n    if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) {\n      q.push(append(q.pop(), ['{}']));\n      return;\n    }\n\n    if (node.nodes && node.ranges > 0) {\n      let args = utils.reduce(node.nodes);\n\n      if (utils.exceedsLimit(...args, options.step, rangeLimit)) {\n        throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.');\n      }\n\n      let range = fill(...args, options);\n      if (range.length === 0) {\n        range = stringify(node, options);\n      }\n\n      q.push(append(q.pop(), range));\n      node.nodes = [];\n      return;\n    }\n\n    let enclose = utils.encloseBrace(node);\n    let queue = node.queue;\n    let block = node;\n\n    while (block.type !== 'brace' && block.type !== 'root' && block.parent) {\n      block = block.parent;\n      queue = block.queue;\n    }\n\n    for (let i = 0; i < node.nodes.length; i++) {\n      let child = node.nodes[i];\n\n      if (child.type === 'comma' && node.type === 'brace') {\n        if (i === 1) queue.push('');\n        queue.push('');\n        continue;\n      }\n\n      if (child.type === 'close') {\n        q.push(append(q.pop(), queue, enclose));\n        continue;\n      }\n\n      if (child.value && child.type !== 'open') {\n        queue.push(append(queue.pop(), child.value));\n        continue;\n      }\n\n      if (child.nodes) {\n        walk(child, node);\n      }\n    }\n\n    return queue;\n  };\n\n  return utils.flatten(walk(ast));\n};\n\nmodule.exports = expand;\n", "'use strict';\n\nmodule.exports = {\n  MAX_LENGTH: 1024 * 64,\n\n  // Digits\n  CHAR_0: '0', /* 0 */\n  CHAR_9: '9', /* 9 */\n\n  // Alphabet chars.\n  CHAR_UPPERCASE_A: 'A', /* A */\n  CHAR_LOWERCASE_A: 'a', /* a */\n  CHAR_UPPERCASE_Z: 'Z', /* Z */\n  CHAR_LOWERCASE_Z: 'z', /* z */\n\n  CHAR_LEFT_PARENTHESES: '(', /* ( */\n  CHAR_RIGHT_PARENTHESES: ')', /* ) */\n\n  CHAR_ASTERISK: '*', /* * */\n\n  // Non-alphabetic chars.\n  CHAR_AMPERSAND: '&', /* & */\n  CHAR_AT: '@', /* @ */\n  CHAR_BACKSLASH: '\\\\', /* \\ */\n  CHAR_BACKTICK: '`', /* ` */\n  CHAR_CARRIAGE_RETURN: '\\r', /* \\r */\n  CHAR_CIRCUMFLEX_ACCENT: '^', /* ^ */\n  CHAR_COLON: ':', /* : */\n  CHAR_COMMA: ',', /* , */\n  CHAR_DOLLAR: '$', /* . */\n  CHAR_DOT: '.', /* . */\n  CHAR_DOUBLE_QUOTE: '\"', /* \" */\n  CHAR_EQUAL: '=', /* = */\n  CHAR_EXCLAMATION_MARK: '!', /* ! */\n  CHAR_FORM_FEED: '\\f', /* \\f */\n  CHAR_FORWARD_SLASH: '/', /* / */\n  CHAR_HASH: '#', /* # */\n  CHAR_HYPHEN_MINUS: '-', /* - */\n  CHAR_LEFT_ANGLE_BRACKET: '<', /* < */\n  CHAR_LEFT_CURLY_BRACE: '{', /* { */\n  CHAR_LEFT_SQUARE_BRACKET: '[', /* [ */\n  CHAR_LINE_FEED: '\\n', /* \\n */\n  CHAR_NO_BREAK_SPACE: '\\u00A0', /* \\u00A0 */\n  CHAR_PERCENT: '%', /* % */\n  CHAR_PLUS: '+', /* + */\n  CHAR_QUESTION_MARK: '?', /* ? */\n  CHAR_RIGHT_ANGLE_BRACKET: '>', /* > */\n  CHAR_RIGHT_CURLY_BRACE: '}', /* } */\n  CHAR_RIGHT_SQUARE_BRACKET: ']', /* ] */\n  CHAR_SEMICOLON: ';', /* ; */\n  CHAR_SINGLE_QUOTE: '\\'', /* ' */\n  CHAR_SPACE: ' ', /*   */\n  CHAR_TAB: '\\t', /* \\t */\n  CHAR_UNDERSCORE: '_', /* _ */\n  CHAR_VERTICAL_LINE: '|', /* | */\n  CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\\uFEFF' /* \\uFEFF */\n};\n", "'use strict';\n\nconst stringify = require('./stringify');\n\n/**\n * Constants\n */\n\nconst {\n  MAX_LENGTH,\n  CHAR_BACKSLASH, /* \\ */\n  CHAR_BACKTICK, /* ` */\n  CHAR_COMMA, /* , */\n  CHAR_DOT, /* . */\n  CHAR_LEFT_PARENTHESES, /* ( */\n  CHAR_RIGHT_PARENTHESES, /* ) */\n  CHAR_LEFT_CURLY_BRACE, /* { */\n  CHAR_RIGHT_CURLY_BRACE, /* } */\n  CHAR_LEFT_SQUARE_BRACKET, /* [ */\n  CHAR_RIGHT_SQUARE_BRACKET, /* ] */\n  CHAR_DOUBLE_QUOTE, /* \" */\n  CHAR_SINGLE_QUOTE, /* ' */\n  CHAR_NO_BREAK_SPACE,\n  CHAR_ZERO_WIDTH_NOBREAK_SPACE\n} = require('./constants');\n\n/**\n * parse\n */\n\nconst parse = (input, options = {}) => {\n  if (typeof input !== 'string') {\n    throw new TypeError('Expected a string');\n  }\n\n  let opts = options || {};\n  let max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n  if (input.length > max) {\n    throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`);\n  }\n\n  let ast = { type: 'root', input, nodes: [] };\n  let stack = [ast];\n  let block = ast;\n  let prev = ast;\n  let brackets = 0;\n  let length = input.length;\n  let index = 0;\n  let depth = 0;\n  let value;\n  let memo = {};\n\n  /**\n   * Helpers\n   */\n\n  const advance = () => input[index++];\n  const push = node => {\n    if (node.type === 'text' && prev.type === 'dot') {\n      prev.type = 'text';\n    }\n\n    if (prev && prev.type === 'text' && node.type === 'text') {\n      prev.value += node.value;\n      return;\n    }\n\n    block.nodes.push(node);\n    node.parent = block;\n    node.prev = prev;\n    prev = node;\n    return node;\n  };\n\n  push({ type: 'bos' });\n\n  while (index < length) {\n    block = stack[stack.length - 1];\n    value = advance();\n\n    /**\n     * Invalid chars\n     */\n\n    if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) {\n      continue;\n    }\n\n    /**\n     * Escaped chars\n     */\n\n    if (value === CHAR_BACKSLASH) {\n      push({ type: 'text', value: (options.keepEscaping ? value : '') + advance() });\n      continue;\n    }\n\n    /**\n     * Right square bracket (literal): ']'\n     */\n\n    if (value === CHAR_RIGHT_SQUARE_BRACKET) {\n      push({ type: 'text', value: '\\\\' + value });\n      continue;\n    }\n\n    /**\n     * Left square bracket: '['\n     */\n\n    if (value === CHAR_LEFT_SQUARE_BRACKET) {\n      brackets++;\n\n      let closed = true;\n      let next;\n\n      while (index < length && (next = advance())) {\n        value += next;\n\n        if (next === CHAR_LEFT_SQUARE_BRACKET) {\n          brackets++;\n          continue;\n        }\n\n        if (next === CHAR_BACKSLASH) {\n          value += advance();\n          continue;\n        }\n\n        if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n          brackets--;\n\n          if (brackets === 0) {\n            break;\n          }\n        }\n      }\n\n      push({ type: 'text', value });\n      continue;\n    }\n\n    /**\n     * Parentheses\n     */\n\n    if (value === CHAR_LEFT_PARENTHESES) {\n      block = push({ type: 'paren', nodes: [] });\n      stack.push(block);\n      push({ type: 'text', value });\n      continue;\n    }\n\n    if (value === CHAR_RIGHT_PARENTHESES) {\n      if (block.type !== 'paren') {\n        push({ type: 'text', value });\n        continue;\n      }\n      block = stack.pop();\n      push({ type: 'text', value });\n      block = stack[stack.length - 1];\n      continue;\n    }\n\n    /**\n     * Quotes: '|\"|`\n     */\n\n    if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) {\n      let open = value;\n      let next;\n\n      if (options.keepQuotes !== true) {\n        value = '';\n      }\n\n      while (index < length && (next = advance())) {\n        if (next === CHAR_BACKSLASH) {\n          value += next + advance();\n          continue;\n        }\n\n        if (next === open) {\n          if (options.keepQuotes === true) value += next;\n          break;\n        }\n\n        value += next;\n      }\n\n      push({ type: 'text', value });\n      continue;\n    }\n\n    /**\n     * Left curly brace: '{'\n     */\n\n    if (value === CHAR_LEFT_CURLY_BRACE) {\n      depth++;\n\n      let dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true;\n      let brace = {\n        type: 'brace',\n        open: true,\n        close: false,\n        dollar,\n        depth,\n        commas: 0,\n        ranges: 0,\n        nodes: []\n      };\n\n      block = push(brace);\n      stack.push(block);\n      push({ type: 'open', value });\n      continue;\n    }\n\n    /**\n     * Right curly brace: '}'\n     */\n\n    if (value === CHAR_RIGHT_CURLY_BRACE) {\n      if (block.type !== 'brace') {\n        push({ type: 'text', value });\n        continue;\n      }\n\n      let type = 'close';\n      block = stack.pop();\n      block.close = true;\n\n      push({ type, value });\n      depth--;\n\n      block = stack[stack.length - 1];\n      continue;\n    }\n\n    /**\n     * Comma: ','\n     */\n\n    if (value === CHAR_COMMA && depth > 0) {\n      if (block.ranges > 0) {\n        block.ranges = 0;\n        let open = block.nodes.shift();\n        block.nodes = [open, { type: 'text', value: stringify(block) }];\n      }\n\n      push({ type: 'comma', value });\n      block.commas++;\n      continue;\n    }\n\n    /**\n     * Dot: '.'\n     */\n\n    if (value === CHAR_DOT && depth > 0 && block.commas === 0) {\n      let siblings = block.nodes;\n\n      if (depth === 0 || siblings.length === 0) {\n        push({ type: 'text', value });\n        continue;\n      }\n\n      if (prev.type === 'dot') {\n        block.range = [];\n        prev.value += value;\n        prev.type = 'range';\n\n        if (block.nodes.length !== 3 && block.nodes.length !== 5) {\n          block.invalid = true;\n          block.ranges = 0;\n          prev.type = 'text';\n          continue;\n        }\n\n        block.ranges++;\n        block.args = [];\n        continue;\n      }\n\n      if (prev.type === 'range') {\n        siblings.pop();\n\n        let before = siblings[siblings.length - 1];\n        before.value += prev.value + value;\n        prev = before;\n        block.ranges--;\n        continue;\n      }\n\n      push({ type: 'dot', value });\n      continue;\n    }\n\n    /**\n     * Text\n     */\n\n    push({ type: 'text', value });\n  }\n\n  // Mark imbalanced braces and brackets as invalid\n  do {\n    block = stack.pop();\n\n    if (block.type !== 'root') {\n      block.nodes.forEach(node => {\n        if (!node.nodes) {\n          if (node.type === 'open') node.isOpen = true;\n          if (node.type === 'close') node.isClose = true;\n          if (!node.nodes) node.type = 'text';\n          node.invalid = true;\n        }\n      });\n\n      // get the location of the block on parent.nodes (block's siblings)\n      let parent = stack[stack.length - 1];\n      let index = parent.nodes.indexOf(block);\n      // replace the (invalid) block with it's nodes\n      parent.nodes.splice(index, 1, ...block.nodes);\n    }\n  } while (stack.length > 0);\n\n  push({ type: 'eos' });\n  return ast;\n};\n\nmodule.exports = parse;\n", "'use strict';\n\nconst stringify = require('./lib/stringify');\nconst compile = require('./lib/compile');\nconst expand = require('./lib/expand');\nconst parse = require('./lib/parse');\n\n/**\n * Expand the given pattern or create a regex-compatible string.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)']\n * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c']\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {String}\n * @api public\n */\n\nconst braces = (input, options = {}) => {\n  let output = [];\n\n  if (Array.isArray(input)) {\n    for (let pattern of input) {\n      let result = braces.create(pattern, options);\n      if (Array.isArray(result)) {\n        output.push(...result);\n      } else {\n        output.push(result);\n      }\n    }\n  } else {\n    output = [].concat(braces.create(input, options));\n  }\n\n  if (options && options.expand === true && options.nodupes === true) {\n    output = [...new Set(output)];\n  }\n  return output;\n};\n\n/**\n * Parse the given `str` with the given `options`.\n *\n * ```js\n * // braces.parse(pattern, [, options]);\n * const ast = braces.parse('a/{b,c}/d');\n * console.log(ast);\n * ```\n * @param {String} pattern Brace pattern to parse\n * @param {Object} options\n * @return {Object} Returns an AST\n * @api public\n */\n\nbraces.parse = (input, options = {}) => parse(input, options);\n\n/**\n * Creates a braces string from an AST, or an AST node.\n *\n * ```js\n * const braces = require('braces');\n * let ast = braces.parse('foo/{a,b}/bar');\n * console.log(stringify(ast.nodes[2])); //=> '{a,b}'\n * ```\n * @param {String} `input` Brace pattern or AST.\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.stringify = (input, options = {}) => {\n  if (typeof input === 'string') {\n    return stringify(braces.parse(input, options), options);\n  }\n  return stringify(input, options);\n};\n\n/**\n * Compiles a brace pattern into a regex-compatible, optimized string.\n * This method is called by the main [braces](#braces) function by default.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.compile('a/{b,c}/d'));\n * //=> ['a/(b|c)/d']\n * ```\n * @param {String} `input` Brace pattern or AST.\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.compile = (input, options = {}) => {\n  if (typeof input === 'string') {\n    input = braces.parse(input, options);\n  }\n  return compile(input, options);\n};\n\n/**\n * Expands a brace pattern into an array. This method is called by the\n * main [braces](#braces) function when `options.expand` is true. Before\n * using this method it's recommended that you read the [performance notes](#performance))\n * and advantages of using [.compile](#compile) instead.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.expand('a/{b,c}/d'));\n * //=> ['a/b/d', 'a/c/d'];\n * ```\n * @param {String} `pattern` Brace pattern\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.expand = (input, options = {}) => {\n  if (typeof input === 'string') {\n    input = braces.parse(input, options);\n  }\n\n  let result = expand(input, options);\n\n  // filter out empty strings if specified\n  if (options.noempty === true) {\n    result = result.filter(Boolean);\n  }\n\n  // filter out duplicates if specified\n  if (options.nodupes === true) {\n    result = [...new Set(result)];\n  }\n\n  return result;\n};\n\n/**\n * Processes a brace pattern and returns either an expanded array\n * (if `options.expand` is true), a highly optimized regex-compatible string.\n * This method is called by the main [braces](#braces) function.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}'))\n * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)'\n * ```\n * @param {String} `pattern` Brace pattern\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.create = (input, options = {}) => {\n  if (input === '' || input.length < 3) {\n    return [input];\n  }\n\n return options.expand !== true\n    ? braces.compile(input, options)\n    : braces.expand(input, options);\n};\n\n/**\n * Expose \"braces\"\n */\n\nmodule.exports = braces;\n", "'use strict';\n\nconst path = require('path');\nconst WIN_SLASH = '\\\\\\\\/';\nconst WIN_NO_SLASH = `[^${WIN_SLASH}]`;\n\n/**\n * Posix glob regex\n */\n\nconst DOT_LITERAL = '\\\\.';\nconst PLUS_LITERAL = '\\\\+';\nconst QMARK_LITERAL = '\\\\?';\nconst SLASH_LITERAL = '\\\\/';\nconst ONE_CHAR = '(?=.)';\nconst QMARK = '[^/]';\nconst END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;\nconst START_ANCHOR = `(?:^|${SLASH_LITERAL})`;\nconst DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;\nconst NO_DOT = `(?!${DOT_LITERAL})`;\nconst NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;\nconst NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;\nconst NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;\nconst QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;\nconst STAR = `${QMARK}*?`;\n\nconst POSIX_CHARS = {\n  DOT_LITERAL,\n  PLUS_LITERAL,\n  QMARK_LITERAL,\n  SLASH_LITERAL,\n  ONE_CHAR,\n  QMARK,\n  END_ANCHOR,\n  DOTS_SLASH,\n  NO_DOT,\n  NO_DOTS,\n  NO_DOT_SLASH,\n  NO_DOTS_SLASH,\n  QMARK_NO_DOT,\n  STAR,\n  START_ANCHOR\n};\n\n/**\n * Windows glob regex\n */\n\nconst WINDOWS_CHARS = {\n  ...POSIX_CHARS,\n\n  SLASH_LITERAL: `[${WIN_SLASH}]`,\n  QMARK: WIN_NO_SLASH,\n  STAR: `${WIN_NO_SLASH}*?`,\n  DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,\n  NO_DOT: `(?!${DOT_LITERAL})`,\n  NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n  NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,\n  NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n  QMARK_NO_DOT: `[^.${WIN_SLASH}]`,\n  START_ANCHOR: `(?:^|[${WIN_SLASH}])`,\n  END_ANCHOR: `(?:[${WIN_SLASH}]|$)`\n};\n\n/**\n * POSIX Bracket Regex\n */\n\nconst POSIX_REGEX_SOURCE = {\n  alnum: 'a-zA-Z0-9',\n  alpha: 'a-zA-Z',\n  ascii: '\\\\x00-\\\\x7F',\n  blank: ' \\\\t',\n  cntrl: '\\\\x00-\\\\x1F\\\\x7F',\n  digit: '0-9',\n  graph: '\\\\x21-\\\\x7E',\n  lower: 'a-z',\n  print: '\\\\x20-\\\\x7E ',\n  punct: '\\\\-!\"#$%&\\'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~',\n  space: ' \\\\t\\\\r\\\\n\\\\v\\\\f',\n  upper: 'A-Z',\n  word: 'A-Za-z0-9_',\n  xdigit: 'A-Fa-f0-9'\n};\n\nmodule.exports = {\n  MAX_LENGTH: 1024 * 64,\n  POSIX_REGEX_SOURCE,\n\n  // regular expressions\n  REGEX_BACKSLASH: /\\\\(?![*+?^${}(|)[\\]])/g,\n  REGEX_NON_SPECIAL_CHARS: /^[^@![\\].,$*+?^{}()|\\\\/]+/,\n  REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\\]]/,\n  REGEX_SPECIAL_CHARS_BACKREF: /(\\\\?)((\\W)(\\3*))/g,\n  REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\\]])/g,\n  REGEX_REMOVE_BACKSLASH: /(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,\n\n  // Replace globs with equivalent patterns to reduce parsing time.\n  REPLACEMENTS: {\n    '***': '*',\n    '**/**': '**',\n    '**/**/**': '**'\n  },\n\n  // Digits\n  CHAR_0: 48, /* 0 */\n  CHAR_9: 57, /* 9 */\n\n  // Alphabet chars.\n  CHAR_UPPERCASE_A: 65, /* A */\n  CHAR_LOWERCASE_A: 97, /* a */\n  CHAR_UPPERCASE_Z: 90, /* Z */\n  CHAR_LOWERCASE_Z: 122, /* z */\n\n  CHAR_LEFT_PARENTHESES: 40, /* ( */\n  CHAR_RIGHT_PARENTHESES: 41, /* ) */\n\n  CHAR_ASTERISK: 42, /* * */\n\n  // Non-alphabetic chars.\n  CHAR_AMPERSAND: 38, /* & */\n  CHAR_AT: 64, /* @ */\n  CHAR_BACKWARD_SLASH: 92, /* \\ */\n  CHAR_CARRIAGE_RETURN: 13, /* \\r */\n  CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */\n  CHAR_COLON: 58, /* : */\n  CHAR_COMMA: 44, /* , */\n  CHAR_DOT: 46, /* . */\n  CHAR_DOUBLE_QUOTE: 34, /* \" */\n  CHAR_EQUAL: 61, /* = */\n  CHAR_EXCLAMATION_MARK: 33, /* ! */\n  CHAR_FORM_FEED: 12, /* \\f */\n  CHAR_FORWARD_SLASH: 47, /* / */\n  CHAR_GRAVE_ACCENT: 96, /* ` */\n  CHAR_HASH: 35, /* # */\n  CHAR_HYPHEN_MINUS: 45, /* - */\n  CHAR_LEFT_ANGLE_BRACKET: 60, /* < */\n  CHAR_LEFT_CURLY_BRACE: 123, /* { */\n  CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */\n  CHAR_LINE_FEED: 10, /* \\n */\n  CHAR_NO_BREAK_SPACE: 160, /* \\u00A0 */\n  CHAR_PERCENT: 37, /* % */\n  CHAR_PLUS: 43, /* + */\n  CHAR_QUESTION_MARK: 63, /* ? */\n  CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */\n  CHAR_RIGHT_CURLY_BRACE: 125, /* } */\n  CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */\n  CHAR_SEMICOLON: 59, /* ; */\n  CHAR_SINGLE_QUOTE: 39, /* ' */\n  CHAR_SPACE: 32, /*   */\n  CHAR_TAB: 9, /* \\t */\n  CHAR_UNDERSCORE: 95, /* _ */\n  CHAR_VERTICAL_LINE: 124, /* | */\n  CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \\uFEFF */\n\n  SEP: path.sep,\n\n  /**\n   * Create EXTGLOB_CHARS\n   */\n\n  extglobChars(chars) {\n    return {\n      '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` },\n      '?': { type: 'qmark', open: '(?:', close: ')?' },\n      '+': { type: 'plus', open: '(?:', close: ')+' },\n      '*': { type: 'star', open: '(?:', close: ')*' },\n      '@': { type: 'at', open: '(?:', close: ')' }\n    };\n  },\n\n  /**\n   * Create GLOB_CHARS\n   */\n\n  globChars(win32) {\n    return win32 === true ? WINDOWS_CHARS : POSIX_CHARS;\n  }\n};\n", "'use strict';\n\nconst path = require('path');\nconst win32 = process.platform === 'win32';\nconst {\n  REGEX_BACKSLASH,\n  REGEX_REMOVE_BACKSLASH,\n  REGEX_SPECIAL_CHARS,\n  REGEX_SPECIAL_CHARS_GLOBAL\n} = require('./constants');\n\nexports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\nexports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);\nexports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str);\nexports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\\\$1');\nexports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');\n\nexports.removeBackslashes = str => {\n  return str.replace(REGEX_REMOVE_BACKSLASH, match => {\n    return match === '\\\\' ? '' : match;\n  });\n};\n\nexports.supportsLookbehinds = () => {\n  const segs = process.version.slice(1).split('.').map(Number);\n  if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) {\n    return true;\n  }\n  return false;\n};\n\nexports.isWindows = options => {\n  if (options && typeof options.windows === 'boolean') {\n    return options.windows;\n  }\n  return win32 === true || path.sep === '\\\\';\n};\n\nexports.escapeLast = (input, char, lastIdx) => {\n  const idx = input.lastIndexOf(char, lastIdx);\n  if (idx === -1) return input;\n  if (input[idx - 1] === '\\\\') return exports.escapeLast(input, char, idx - 1);\n  return `${input.slice(0, idx)}\\\\${input.slice(idx)}`;\n};\n\nexports.removePrefix = (input, state = {}) => {\n  let output = input;\n  if (output.startsWith('./')) {\n    output = output.slice(2);\n    state.prefix = './';\n  }\n  return output;\n};\n\nexports.wrapOutput = (input, state = {}, options = {}) => {\n  const prepend = options.contains ? '' : '^';\n  const append = options.contains ? '' : '$';\n\n  let output = `${prepend}(?:${input})${append}`;\n  if (state.negated === true) {\n    output = `(?:^(?!${output}).*$)`;\n  }\n  return output;\n};\n", "'use strict';\n\nconst utils = require('./utils');\nconst {\n  CHAR_ASTERISK,             /* * */\n  CHAR_AT,                   /* @ */\n  CHAR_BACKWARD_SLASH,       /* \\ */\n  CHAR_COMMA,                /* , */\n  CHAR_DOT,                  /* . */\n  CHAR_EXCLAMATION_MARK,     /* ! */\n  CHAR_FORWARD_SLASH,        /* / */\n  CHAR_LEFT_CURLY_BRACE,     /* { */\n  CHAR_LEFT_PARENTHESES,     /* ( */\n  CHAR_LEFT_SQUARE_BRACKET,  /* [ */\n  CHAR_PLUS,                 /* + */\n  CHAR_QUESTION_MARK,        /* ? */\n  CHAR_RIGHT_CURLY_BRACE,    /* } */\n  CHAR_RIGHT_PARENTHESES,    /* ) */\n  CHAR_RIGHT_SQUARE_BRACKET  /* ] */\n} = require('./constants');\n\nconst isPathSeparator = code => {\n  return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\n};\n\nconst depth = token => {\n  if (token.isPrefix !== true) {\n    token.depth = token.isGlobstar ? Infinity : 1;\n  }\n};\n\n/**\n * Quickly scans a glob pattern and returns an object with a handful of\n * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists),\n * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not\n * with `!(`) and `negatedExtglob` (true if the path starts with `!(`).\n *\n * ```js\n * const pm = require('picomatch');\n * console.log(pm.scan('foo/bar/*.js'));\n * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' }\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {Object} Returns an object with tokens and regex source string.\n * @api public\n */\n\nconst scan = (input, options) => {\n  const opts = options || {};\n\n  const length = input.length - 1;\n  const scanToEnd = opts.parts === true || opts.scanToEnd === true;\n  const slashes = [];\n  const tokens = [];\n  const parts = [];\n\n  let str = input;\n  let index = -1;\n  let start = 0;\n  let lastIndex = 0;\n  let isBrace = false;\n  let isBracket = false;\n  let isGlob = false;\n  let isExtglob = false;\n  let isGlobstar = false;\n  let braceEscaped = false;\n  let backslashes = false;\n  let negated = false;\n  let negatedExtglob = false;\n  let finished = false;\n  let braces = 0;\n  let prev;\n  let code;\n  let token = { value: '', depth: 0, isGlob: false };\n\n  const eos = () => index >= length;\n  const peek = () => str.charCodeAt(index + 1);\n  const advance = () => {\n    prev = code;\n    return str.charCodeAt(++index);\n  };\n\n  while (index < length) {\n    code = advance();\n    let next;\n\n    if (code === CHAR_BACKWARD_SLASH) {\n      backslashes = token.backslashes = true;\n      code = advance();\n\n      if (code === CHAR_LEFT_CURLY_BRACE) {\n        braceEscaped = true;\n      }\n      continue;\n    }\n\n    if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) {\n      braces++;\n\n      while (eos() !== true && (code = advance())) {\n        if (code === CHAR_BACKWARD_SLASH) {\n          backslashes = token.backslashes = true;\n          advance();\n          continue;\n        }\n\n        if (code === CHAR_LEFT_CURLY_BRACE) {\n          braces++;\n          continue;\n        }\n\n        if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) {\n          isBrace = token.isBrace = true;\n          isGlob = token.isGlob = true;\n          finished = true;\n\n          if (scanToEnd === true) {\n            continue;\n          }\n\n          break;\n        }\n\n        if (braceEscaped !== true && code === CHAR_COMMA) {\n          isBrace = token.isBrace = true;\n          isGlob = token.isGlob = true;\n          finished = true;\n\n          if (scanToEnd === true) {\n            continue;\n          }\n\n          break;\n        }\n\n        if (code === CHAR_RIGHT_CURLY_BRACE) {\n          braces--;\n\n          if (braces === 0) {\n            braceEscaped = false;\n            isBrace = token.isBrace = true;\n            finished = true;\n            break;\n          }\n        }\n      }\n\n      if (scanToEnd === true) {\n        continue;\n      }\n\n      break;\n    }\n\n    if (code === CHAR_FORWARD_SLASH) {\n      slashes.push(index);\n      tokens.push(token);\n      token = { value: '', depth: 0, isGlob: false };\n\n      if (finished === true) continue;\n      if (prev === CHAR_DOT && index === (start + 1)) {\n        start += 2;\n        continue;\n      }\n\n      lastIndex = index + 1;\n      continue;\n    }\n\n    if (opts.noext !== true) {\n      const isExtglobChar = code === CHAR_PLUS\n        || code === CHAR_AT\n        || code === CHAR_ASTERISK\n        || code === CHAR_QUESTION_MARK\n        || code === CHAR_EXCLAMATION_MARK;\n\n      if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) {\n        isGlob = token.isGlob = true;\n        isExtglob = token.isExtglob = true;\n        finished = true;\n        if (code === CHAR_EXCLAMATION_MARK && index === start) {\n          negatedExtglob = true;\n        }\n\n        if (scanToEnd === true) {\n          while (eos() !== true && (code = advance())) {\n            if (code === CHAR_BACKWARD_SLASH) {\n              backslashes = token.backslashes = true;\n              code = advance();\n              continue;\n            }\n\n            if (code === CHAR_RIGHT_PARENTHESES) {\n              isGlob = token.isGlob = true;\n              finished = true;\n              break;\n            }\n          }\n          continue;\n        }\n        break;\n      }\n    }\n\n    if (code === CHAR_ASTERISK) {\n      if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true;\n      isGlob = token.isGlob = true;\n      finished = true;\n\n      if (scanToEnd === true) {\n        continue;\n      }\n      break;\n    }\n\n    if (code === CHAR_QUESTION_MARK) {\n      isGlob = token.isGlob = true;\n      finished = true;\n\n      if (scanToEnd === true) {\n        continue;\n      }\n      break;\n    }\n\n    if (code === CHAR_LEFT_SQUARE_BRACKET) {\n      while (eos() !== true && (next = advance())) {\n        if (next === CHAR_BACKWARD_SLASH) {\n          backslashes = token.backslashes = true;\n          advance();\n          continue;\n        }\n\n        if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n          isBracket = token.isBracket = true;\n          isGlob = token.isGlob = true;\n          finished = true;\n          break;\n        }\n      }\n\n      if (scanToEnd === true) {\n        continue;\n      }\n\n      break;\n    }\n\n    if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) {\n      negated = token.negated = true;\n      start++;\n      continue;\n    }\n\n    if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) {\n      isGlob = token.isGlob = true;\n\n      if (scanToEnd === true) {\n        while (eos() !== true && (code = advance())) {\n          if (code === CHAR_LEFT_PARENTHESES) {\n            backslashes = token.backslashes = true;\n            code = advance();\n            continue;\n          }\n\n          if (code === CHAR_RIGHT_PARENTHESES) {\n            finished = true;\n            break;\n          }\n        }\n        continue;\n      }\n      break;\n    }\n\n    if (isGlob === true) {\n      finished = true;\n\n      if (scanToEnd === true) {\n        continue;\n      }\n\n      break;\n    }\n  }\n\n  if (opts.noext === true) {\n    isExtglob = false;\n    isGlob = false;\n  }\n\n  let base = str;\n  let prefix = '';\n  let glob = '';\n\n  if (start > 0) {\n    prefix = str.slice(0, start);\n    str = str.slice(start);\n    lastIndex -= start;\n  }\n\n  if (base && isGlob === true && lastIndex > 0) {\n    base = str.slice(0, lastIndex);\n    glob = str.slice(lastIndex);\n  } else if (isGlob === true) {\n    base = '';\n    glob = str;\n  } else {\n    base = str;\n  }\n\n  if (base && base !== '' && base !== '/' && base !== str) {\n    if (isPathSeparator(base.charCodeAt(base.length - 1))) {\n      base = base.slice(0, -1);\n    }\n  }\n\n  if (opts.unescape === true) {\n    if (glob) glob = utils.removeBackslashes(glob);\n\n    if (base && backslashes === true) {\n      base = utils.removeBackslashes(base);\n    }\n  }\n\n  const state = {\n    prefix,\n    input,\n    start,\n    base,\n    glob,\n    isBrace,\n    isBracket,\n    isGlob,\n    isExtglob,\n    isGlobstar,\n    negated,\n    negatedExtglob\n  };\n\n  if (opts.tokens === true) {\n    state.maxDepth = 0;\n    if (!isPathSeparator(code)) {\n      tokens.push(token);\n    }\n    state.tokens = tokens;\n  }\n\n  if (opts.parts === true || opts.tokens === true) {\n    let prevIndex;\n\n    for (let idx = 0; idx < slashes.length; idx++) {\n      const n = prevIndex ? prevIndex + 1 : start;\n      const i = slashes[idx];\n      const value = input.slice(n, i);\n      if (opts.tokens) {\n        if (idx === 0 && start !== 0) {\n          tokens[idx].isPrefix = true;\n          tokens[idx].value = prefix;\n        } else {\n          tokens[idx].value = value;\n        }\n        depth(tokens[idx]);\n        state.maxDepth += tokens[idx].depth;\n      }\n      if (idx !== 0 || value !== '') {\n        parts.push(value);\n      }\n      prevIndex = i;\n    }\n\n    if (prevIndex && prevIndex + 1 < input.length) {\n      const value = input.slice(prevIndex + 1);\n      parts.push(value);\n\n      if (opts.tokens) {\n        tokens[tokens.length - 1].value = value;\n        depth(tokens[tokens.length - 1]);\n        state.maxDepth += tokens[tokens.length - 1].depth;\n      }\n    }\n\n    state.slashes = slashes;\n    state.parts = parts;\n  }\n\n  return state;\n};\n\nmodule.exports = scan;\n", "'use strict';\n\nconst constants = require('./constants');\nconst utils = require('./utils');\n\n/**\n * Constants\n */\n\nconst {\n  MAX_LENGTH,\n  POSIX_REGEX_SOURCE,\n  REGEX_NON_SPECIAL_CHARS,\n  REGEX_SPECIAL_CHARS_BACKREF,\n  REPLACEMENTS\n} = constants;\n\n/**\n * Helpers\n */\n\nconst expandRange = (args, options) => {\n  if (typeof options.expandRange === 'function') {\n    return options.expandRange(...args, options);\n  }\n\n  args.sort();\n  const value = `[${args.join('-')}]`;\n\n  try {\n    /* eslint-disable-next-line no-new */\n    new RegExp(value);\n  } catch (ex) {\n    return args.map(v => utils.escapeRegex(v)).join('..');\n  }\n\n  return value;\n};\n\n/**\n * Create the message for a syntax error\n */\n\nconst syntaxError = (type, char) => {\n  return `Missing ${type}: \"${char}\" - use \"\\\\\\\\${char}\" to match literal characters`;\n};\n\n/**\n * Parse the given input string.\n * @param {String} input\n * @param {Object} options\n * @return {Object}\n */\n\nconst parse = (input, options) => {\n  if (typeof input !== 'string') {\n    throw new TypeError('Expected a string');\n  }\n\n  input = REPLACEMENTS[input] || input;\n\n  const opts = { ...options };\n  const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n\n  let len = input.length;\n  if (len > max) {\n    throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n  }\n\n  const bos = { type: 'bos', value: '', output: opts.prepend || '' };\n  const tokens = [bos];\n\n  const capture = opts.capture ? '' : '?:';\n  const win32 = utils.isWindows(options);\n\n  // create constants based on platform, for windows or posix\n  const PLATFORM_CHARS = constants.globChars(win32);\n  const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);\n\n  const {\n    DOT_LITERAL,\n    PLUS_LITERAL,\n    SLASH_LITERAL,\n    ONE_CHAR,\n    DOTS_SLASH,\n    NO_DOT,\n    NO_DOT_SLASH,\n    NO_DOTS_SLASH,\n    QMARK,\n    QMARK_NO_DOT,\n    STAR,\n    START_ANCHOR\n  } = PLATFORM_CHARS;\n\n  const globstar = opts => {\n    return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n  };\n\n  const nodot = opts.dot ? '' : NO_DOT;\n  const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;\n  let star = opts.bash === true ? globstar(opts) : STAR;\n\n  if (opts.capture) {\n    star = `(${star})`;\n  }\n\n  // minimatch options support\n  if (typeof opts.noext === 'boolean') {\n    opts.noextglob = opts.noext;\n  }\n\n  const state = {\n    input,\n    index: -1,\n    start: 0,\n    dot: opts.dot === true,\n    consumed: '',\n    output: '',\n    prefix: '',\n    backtrack: false,\n    negated: false,\n    brackets: 0,\n    braces: 0,\n    parens: 0,\n    quotes: 0,\n    globstar: false,\n    tokens\n  };\n\n  input = utils.removePrefix(input, state);\n  len = input.length;\n\n  const extglobs = [];\n  const braces = [];\n  const stack = [];\n  let prev = bos;\n  let value;\n\n  /**\n   * Tokenizing helpers\n   */\n\n  const eos = () => state.index === len - 1;\n  const peek = state.peek = (n = 1) => input[state.index + n];\n  const advance = state.advance = () => input[++state.index] || '';\n  const remaining = () => input.slice(state.index + 1);\n  const consume = (value = '', num = 0) => {\n    state.consumed += value;\n    state.index += num;\n  };\n\n  const append = token => {\n    state.output += token.output != null ? token.output : token.value;\n    consume(token.value);\n  };\n\n  const negate = () => {\n    let count = 1;\n\n    while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) {\n      advance();\n      state.start++;\n      count++;\n    }\n\n    if (count % 2 === 0) {\n      return false;\n    }\n\n    state.negated = true;\n    state.start++;\n    return true;\n  };\n\n  const increment = type => {\n    state[type]++;\n    stack.push(type);\n  };\n\n  const decrement = type => {\n    state[type]--;\n    stack.pop();\n  };\n\n  /**\n   * Push tokens onto the tokens array. This helper speeds up\n   * tokenizing by 1) helping us avoid backtracking as much as possible,\n   * and 2) helping us avoid creating extra tokens when consecutive\n   * characters are plain text. This improves performance and simplifies\n   * lookbehinds.\n   */\n\n  const push = tok => {\n    if (prev.type === 'globstar') {\n      const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace');\n      const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'));\n\n      if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) {\n        state.output = state.output.slice(0, -prev.output.length);\n        prev.type = 'star';\n        prev.value = '*';\n        prev.output = star;\n        state.output += prev.output;\n      }\n    }\n\n    if (extglobs.length && tok.type !== 'paren') {\n      extglobs[extglobs.length - 1].inner += tok.value;\n    }\n\n    if (tok.value || tok.output) append(tok);\n    if (prev && prev.type === 'text' && tok.type === 'text') {\n      prev.value += tok.value;\n      prev.output = (prev.output || '') + tok.value;\n      return;\n    }\n\n    tok.prev = prev;\n    tokens.push(tok);\n    prev = tok;\n  };\n\n  const extglobOpen = (type, value) => {\n    const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' };\n\n    token.prev = prev;\n    token.parens = state.parens;\n    token.output = state.output;\n    const output = (opts.capture ? '(' : '') + token.open;\n\n    increment('parens');\n    push({ type, value, output: state.output ? '' : ONE_CHAR });\n    push({ type: 'paren', extglob: true, value: advance(), output });\n    extglobs.push(token);\n  };\n\n  const extglobClose = token => {\n    let output = token.close + (opts.capture ? ')' : '');\n    let rest;\n\n    if (token.type === 'negate') {\n      let extglobStar = star;\n\n      if (token.inner && token.inner.length > 1 && token.inner.includes('/')) {\n        extglobStar = globstar(opts);\n      }\n\n      if (extglobStar !== star || eos() || /^\\)+$/.test(remaining())) {\n        output = token.close = `)$))${extglobStar}`;\n      }\n\n      if (token.inner.includes('*') && (rest = remaining()) && /^\\.[^\\\\/.]+$/.test(rest)) {\n        output = token.close = `)${rest})${extglobStar})`;\n      }\n\n      if (token.prev.type === 'bos') {\n        state.negatedExtglob = true;\n      }\n    }\n\n    push({ type: 'paren', extglob: true, value, output });\n    decrement('parens');\n  };\n\n  /**\n   * Fast paths\n   */\n\n  if (opts.fastpaths !== false && !/(^[*!]|[/()[\\]{}\"])/.test(input)) {\n    let backslashes = false;\n\n    let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {\n      if (first === '\\\\') {\n        backslashes = true;\n        return m;\n      }\n\n      if (first === '?') {\n        if (esc) {\n          return esc + first + (rest ? QMARK.repeat(rest.length) : '');\n        }\n        if (index === 0) {\n          return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : '');\n        }\n        return QMARK.repeat(chars.length);\n      }\n\n      if (first === '.') {\n        return DOT_LITERAL.repeat(chars.length);\n      }\n\n      if (first === '*') {\n        if (esc) {\n          return esc + first + (rest ? star : '');\n        }\n        return star;\n      }\n      return esc ? m : `\\\\${m}`;\n    });\n\n    if (backslashes === true) {\n      if (opts.unescape === true) {\n        output = output.replace(/\\\\/g, '');\n      } else {\n        output = output.replace(/\\\\+/g, m => {\n          return m.length % 2 === 0 ? '\\\\\\\\' : (m ? '\\\\' : '');\n        });\n      }\n    }\n\n    if (output === input && opts.contains === true) {\n      state.output = input;\n      return state;\n    }\n\n    state.output = utils.wrapOutput(output, state, options);\n    return state;\n  }\n\n  /**\n   * Tokenize input until we reach end-of-string\n   */\n\n  while (!eos()) {\n    value = advance();\n\n    if (value === '\\u0000') {\n      continue;\n    }\n\n    /**\n     * Escaped characters\n     */\n\n    if (value === '\\\\') {\n      const next = peek();\n\n      if (next === '/' && opts.bash !== true) {\n        continue;\n      }\n\n      if (next === '.' || next === ';') {\n        continue;\n      }\n\n      if (!next) {\n        value += '\\\\';\n        push({ type: 'text', value });\n        continue;\n      }\n\n      // collapse slashes to reduce potential for exploits\n      const match = /^\\\\+/.exec(remaining());\n      let slashes = 0;\n\n      if (match && match[0].length > 2) {\n        slashes = match[0].length;\n        state.index += slashes;\n        if (slashes % 2 !== 0) {\n          value += '\\\\';\n        }\n      }\n\n      if (opts.unescape === true) {\n        value = advance();\n      } else {\n        value += advance();\n      }\n\n      if (state.brackets === 0) {\n        push({ type: 'text', value });\n        continue;\n      }\n    }\n\n    /**\n     * If we're inside a regex character class, continue\n     * until we reach the closing bracket.\n     */\n\n    if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) {\n      if (opts.posix !== false && value === ':') {\n        const inner = prev.value.slice(1);\n        if (inner.includes('[')) {\n          prev.posix = true;\n\n          if (inner.includes(':')) {\n            const idx = prev.value.lastIndexOf('[');\n            const pre = prev.value.slice(0, idx);\n            const rest = prev.value.slice(idx + 2);\n            const posix = POSIX_REGEX_SOURCE[rest];\n            if (posix) {\n              prev.value = pre + posix;\n              state.backtrack = true;\n              advance();\n\n              if (!bos.output && tokens.indexOf(prev) === 1) {\n                bos.output = ONE_CHAR;\n              }\n              continue;\n            }\n          }\n        }\n      }\n\n      if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) {\n        value = `\\\\${value}`;\n      }\n\n      if (value === ']' && (prev.value === '[' || prev.value === '[^')) {\n        value = `\\\\${value}`;\n      }\n\n      if (opts.posix === true && value === '!' && prev.value === '[') {\n        value = '^';\n      }\n\n      prev.value += value;\n      append({ value });\n      continue;\n    }\n\n    /**\n     * If we're inside a quoted string, continue\n     * until we reach the closing double quote.\n     */\n\n    if (state.quotes === 1 && value !== '\"') {\n      value = utils.escapeRegex(value);\n      prev.value += value;\n      append({ value });\n      continue;\n    }\n\n    /**\n     * Double quotes\n     */\n\n    if (value === '\"') {\n      state.quotes = state.quotes === 1 ? 0 : 1;\n      if (opts.keepQuotes === true) {\n        push({ type: 'text', value });\n      }\n      continue;\n    }\n\n    /**\n     * Parentheses\n     */\n\n    if (value === '(') {\n      increment('parens');\n      push({ type: 'paren', value });\n      continue;\n    }\n\n    if (value === ')') {\n      if (state.parens === 0 && opts.strictBrackets === true) {\n        throw new SyntaxError(syntaxError('opening', '('));\n      }\n\n      const extglob = extglobs[extglobs.length - 1];\n      if (extglob && state.parens === extglob.parens + 1) {\n        extglobClose(extglobs.pop());\n        continue;\n      }\n\n      push({ type: 'paren', value, output: state.parens ? ')' : '\\\\)' });\n      decrement('parens');\n      continue;\n    }\n\n    /**\n     * Square brackets\n     */\n\n    if (value === '[') {\n      if (opts.nobracket === true || !remaining().includes(']')) {\n        if (opts.nobracket !== true && opts.strictBrackets === true) {\n          throw new SyntaxError(syntaxError('closing', ']'));\n        }\n\n        value = `\\\\${value}`;\n      } else {\n        increment('brackets');\n      }\n\n      push({ type: 'bracket', value });\n      continue;\n    }\n\n    if (value === ']') {\n      if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) {\n        push({ type: 'text', value, output: `\\\\${value}` });\n        continue;\n      }\n\n      if (state.brackets === 0) {\n        if (opts.strictBrackets === true) {\n          throw new SyntaxError(syntaxError('opening', '['));\n        }\n\n        push({ type: 'text', value, output: `\\\\${value}` });\n        continue;\n      }\n\n      decrement('brackets');\n\n      const prevValue = prev.value.slice(1);\n      if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {\n        value = `/${value}`;\n      }\n\n      prev.value += value;\n      append({ value });\n\n      // when literal brackets are explicitly disabled\n      // assume we should match with a regex character class\n      if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) {\n        continue;\n      }\n\n      const escaped = utils.escapeRegex(prev.value);\n      state.output = state.output.slice(0, -prev.value.length);\n\n      // when literal brackets are explicitly enabled\n      // assume we should escape the brackets to match literal characters\n      if (opts.literalBrackets === true) {\n        state.output += escaped;\n        prev.value = escaped;\n        continue;\n      }\n\n      // when the user specifies nothing, try to match both\n      prev.value = `(${capture}${escaped}|${prev.value})`;\n      state.output += prev.value;\n      continue;\n    }\n\n    /**\n     * Braces\n     */\n\n    if (value === '{' && opts.nobrace !== true) {\n      increment('braces');\n\n      const open = {\n        type: 'brace',\n        value,\n        output: '(',\n        outputIndex: state.output.length,\n        tokensIndex: state.tokens.length\n      };\n\n      braces.push(open);\n      push(open);\n      continue;\n    }\n\n    if (value === '}') {\n      const brace = braces[braces.length - 1];\n\n      if (opts.nobrace === true || !brace) {\n        push({ type: 'text', value, output: value });\n        continue;\n      }\n\n      let output = ')';\n\n      if (brace.dots === true) {\n        const arr = tokens.slice();\n        const range = [];\n\n        for (let i = arr.length - 1; i >= 0; i--) {\n          tokens.pop();\n          if (arr[i].type === 'brace') {\n            break;\n          }\n          if (arr[i].type !== 'dots') {\n            range.unshift(arr[i].value);\n          }\n        }\n\n        output = expandRange(range, opts);\n        state.backtrack = true;\n      }\n\n      if (brace.comma !== true && brace.dots !== true) {\n        const out = state.output.slice(0, brace.outputIndex);\n        const toks = state.tokens.slice(brace.tokensIndex);\n        brace.value = brace.output = '\\\\{';\n        value = output = '\\\\}';\n        state.output = out;\n        for (const t of toks) {\n          state.output += (t.output || t.value);\n        }\n      }\n\n      push({ type: 'brace', value, output });\n      decrement('braces');\n      braces.pop();\n      continue;\n    }\n\n    /**\n     * Pipes\n     */\n\n    if (value === '|') {\n      if (extglobs.length > 0) {\n        extglobs[extglobs.length - 1].conditions++;\n      }\n      push({ type: 'text', value });\n      continue;\n    }\n\n    /**\n     * Commas\n     */\n\n    if (value === ',') {\n      let output = value;\n\n      const brace = braces[braces.length - 1];\n      if (brace && stack[stack.length - 1] === 'braces') {\n        brace.comma = true;\n        output = '|';\n      }\n\n      push({ type: 'comma', value, output });\n      continue;\n    }\n\n    /**\n     * Slashes\n     */\n\n    if (value === '/') {\n      // if the beginning of the glob is \"./\", advance the start\n      // to the current index, and don't add the \"./\" characters\n      // to the state. This greatly simplifies lookbehinds when\n      // checking for BOS characters like \"!\" and \".\" (not \"./\")\n      if (prev.type === 'dot' && state.index === state.start + 1) {\n        state.start = state.index + 1;\n        state.consumed = '';\n        state.output = '';\n        tokens.pop();\n        prev = bos; // reset \"prev\" to the first token\n        continue;\n      }\n\n      push({ type: 'slash', value, output: SLASH_LITERAL });\n      continue;\n    }\n\n    /**\n     * Dots\n     */\n\n    if (value === '.') {\n      if (state.braces > 0 && prev.type === 'dot') {\n        if (prev.value === '.') prev.output = DOT_LITERAL;\n        const brace = braces[braces.length - 1];\n        prev.type = 'dots';\n        prev.output += value;\n        prev.value += value;\n        brace.dots = true;\n        continue;\n      }\n\n      if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') {\n        push({ type: 'text', value, output: DOT_LITERAL });\n        continue;\n      }\n\n      push({ type: 'dot', value, output: DOT_LITERAL });\n      continue;\n    }\n\n    /**\n     * Question marks\n     */\n\n    if (value === '?') {\n      const isGroup = prev && prev.value === '(';\n      if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n        extglobOpen('qmark', value);\n        continue;\n      }\n\n      if (prev && prev.type === 'paren') {\n        const next = peek();\n        let output = value;\n\n        if (next === '<' && !utils.supportsLookbehinds()) {\n          throw new Error('Node.js v10 or higher is required for regex lookbehinds');\n        }\n\n        if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\\w+>)/.test(remaining()))) {\n          output = `\\\\${value}`;\n        }\n\n        push({ type: 'text', value, output });\n        continue;\n      }\n\n      if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) {\n        push({ type: 'qmark', value, output: QMARK_NO_DOT });\n        continue;\n      }\n\n      push({ type: 'qmark', value, output: QMARK });\n      continue;\n    }\n\n    /**\n     * Exclamation\n     */\n\n    if (value === '!') {\n      if (opts.noextglob !== true && peek() === '(') {\n        if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) {\n          extglobOpen('negate', value);\n          continue;\n        }\n      }\n\n      if (opts.nonegate !== true && state.index === 0) {\n        negate();\n        continue;\n      }\n    }\n\n    /**\n     * Plus\n     */\n\n    if (value === '+') {\n      if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n        extglobOpen('plus', value);\n        continue;\n      }\n\n      if ((prev && prev.value === '(') || opts.regex === false) {\n        push({ type: 'plus', value, output: PLUS_LITERAL });\n        continue;\n      }\n\n      if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) {\n        push({ type: 'plus', value });\n        continue;\n      }\n\n      push({ type: 'plus', value: PLUS_LITERAL });\n      continue;\n    }\n\n    /**\n     * Plain text\n     */\n\n    if (value === '@') {\n      if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n        push({ type: 'at', extglob: true, value, output: '' });\n        continue;\n      }\n\n      push({ type: 'text', value });\n      continue;\n    }\n\n    /**\n     * Plain text\n     */\n\n    if (value !== '*') {\n      if (value === '$' || value === '^') {\n        value = `\\\\${value}`;\n      }\n\n      const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());\n      if (match) {\n        value += match[0];\n        state.index += match[0].length;\n      }\n\n      push({ type: 'text', value });\n      continue;\n    }\n\n    /**\n     * Stars\n     */\n\n    if (prev && (prev.type === 'globstar' || prev.star === true)) {\n      prev.type = 'star';\n      prev.star = true;\n      prev.value += value;\n      prev.output = star;\n      state.backtrack = true;\n      state.globstar = true;\n      consume(value);\n      continue;\n    }\n\n    let rest = remaining();\n    if (opts.noextglob !== true && /^\\([^?]/.test(rest)) {\n      extglobOpen('star', value);\n      continue;\n    }\n\n    if (prev.type === 'star') {\n      if (opts.noglobstar === true) {\n        consume(value);\n        continue;\n      }\n\n      const prior = prev.prev;\n      const before = prior.prev;\n      const isStart = prior.type === 'slash' || prior.type === 'bos';\n      const afterStar = before && (before.type === 'star' || before.type === 'globstar');\n\n      if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) {\n        push({ type: 'star', value, output: '' });\n        continue;\n      }\n\n      const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace');\n      const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren');\n      if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) {\n        push({ type: 'star', value, output: '' });\n        continue;\n      }\n\n      // strip consecutive `/**/`\n      while (rest.slice(0, 3) === '/**') {\n        const after = input[state.index + 4];\n        if (after && after !== '/') {\n          break;\n        }\n        rest = rest.slice(3);\n        consume('/**', 3);\n      }\n\n      if (prior.type === 'bos' && eos()) {\n        prev.type = 'globstar';\n        prev.value += value;\n        prev.output = globstar(opts);\n        state.output = prev.output;\n        state.globstar = true;\n        consume(value);\n        continue;\n      }\n\n      if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {\n        state.output = state.output.slice(0, -(prior.output + prev.output).length);\n        prior.output = `(?:${prior.output}`;\n\n        prev.type = 'globstar';\n        prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)');\n        prev.value += value;\n        state.globstar = true;\n        state.output += prior.output + prev.output;\n        consume(value);\n        continue;\n      }\n\n      if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') {\n        const end = rest[1] !== void 0 ? '|$' : '';\n\n        state.output = state.output.slice(0, -(prior.output + prev.output).length);\n        prior.output = `(?:${prior.output}`;\n\n        prev.type = 'globstar';\n        prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;\n        prev.value += value;\n\n        state.output += prior.output + prev.output;\n        state.globstar = true;\n\n        consume(value + advance());\n\n        push({ type: 'slash', value: '/', output: '' });\n        continue;\n      }\n\n      if (prior.type === 'bos' && rest[0] === '/') {\n        prev.type = 'globstar';\n        prev.value += value;\n        prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;\n        state.output = prev.output;\n        state.globstar = true;\n        consume(value + advance());\n        push({ type: 'slash', value: '/', output: '' });\n        continue;\n      }\n\n      // remove single star from output\n      state.output = state.output.slice(0, -prev.output.length);\n\n      // reset previous token to globstar\n      prev.type = 'globstar';\n      prev.output = globstar(opts);\n      prev.value += value;\n\n      // reset output with globstar\n      state.output += prev.output;\n      state.globstar = true;\n      consume(value);\n      continue;\n    }\n\n    const token = { type: 'star', value, output: star };\n\n    if (opts.bash === true) {\n      token.output = '.*?';\n      if (prev.type === 'bos' || prev.type === 'slash') {\n        token.output = nodot + token.output;\n      }\n      push(token);\n      continue;\n    }\n\n    if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) {\n      token.output = value;\n      push(token);\n      continue;\n    }\n\n    if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') {\n      if (prev.type === 'dot') {\n        state.output += NO_DOT_SLASH;\n        prev.output += NO_DOT_SLASH;\n\n      } else if (opts.dot === true) {\n        state.output += NO_DOTS_SLASH;\n        prev.output += NO_DOTS_SLASH;\n\n      } else {\n        state.output += nodot;\n        prev.output += nodot;\n      }\n\n      if (peek() !== '*') {\n        state.output += ONE_CHAR;\n        prev.output += ONE_CHAR;\n      }\n    }\n\n    push(token);\n  }\n\n  while (state.brackets > 0) {\n    if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']'));\n    state.output = utils.escapeLast(state.output, '[');\n    decrement('brackets');\n  }\n\n  while (state.parens > 0) {\n    if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')'));\n    state.output = utils.escapeLast(state.output, '(');\n    decrement('parens');\n  }\n\n  while (state.braces > 0) {\n    if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}'));\n    state.output = utils.escapeLast(state.output, '{');\n    decrement('braces');\n  }\n\n  if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {\n    push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });\n  }\n\n  // rebuild the output if we had to backtrack at any point\n  if (state.backtrack === true) {\n    state.output = '';\n\n    for (const token of state.tokens) {\n      state.output += token.output != null ? token.output : token.value;\n\n      if (token.suffix) {\n        state.output += token.suffix;\n      }\n    }\n  }\n\n  return state;\n};\n\n/**\n * Fast paths for creating regular expressions for common glob patterns.\n * This can significantly speed up processing and has very little downside\n * impact when none of the fast paths match.\n */\n\nparse.fastpaths = (input, options) => {\n  const opts = { ...options };\n  const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n  const len = input.length;\n  if (len > max) {\n    throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n  }\n\n  input = REPLACEMENTS[input] || input;\n  const win32 = utils.isWindows(options);\n\n  // create constants based on platform, for windows or posix\n  const {\n    DOT_LITERAL,\n    SLASH_LITERAL,\n    ONE_CHAR,\n    DOTS_SLASH,\n    NO_DOT,\n    NO_DOTS,\n    NO_DOTS_SLASH,\n    STAR,\n    START_ANCHOR\n  } = constants.globChars(win32);\n\n  const nodot = opts.dot ? NO_DOTS : NO_DOT;\n  const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;\n  const capture = opts.capture ? '' : '?:';\n  const state = { negated: false, prefix: '' };\n  let star = opts.bash === true ? '.*?' : STAR;\n\n  if (opts.capture) {\n    star = `(${star})`;\n  }\n\n  const globstar = opts => {\n    if (opts.noglobstar === true) return star;\n    return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n  };\n\n  const create = str => {\n    switch (str) {\n      case '*':\n        return `${nodot}${ONE_CHAR}${star}`;\n\n      case '.*':\n        return `${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n      case '*.*':\n        return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n      case '*/*':\n        return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;\n\n      case '**':\n        return nodot + globstar(opts);\n\n      case '**/*':\n        return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;\n\n      case '**/*.*':\n        return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n      case '**/.*':\n        return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n      default: {\n        const match = /^(.*?)\\.(\\w+)$/.exec(str);\n        if (!match) return;\n\n        const source = create(match[1]);\n        if (!source) return;\n\n        return source + DOT_LITERAL + match[2];\n      }\n    }\n  };\n\n  const output = utils.removePrefix(input, state);\n  let source = create(output);\n\n  if (source && opts.strictSlashes !== true) {\n    source += `${SLASH_LITERAL}?`;\n  }\n\n  return source;\n};\n\nmodule.exports = parse;\n", "'use strict';\n\nconst path = require('path');\nconst scan = require('./scan');\nconst parse = require('./parse');\nconst utils = require('./utils');\nconst constants = require('./constants');\nconst isObject = val => val && typeof val === 'object' && !Array.isArray(val);\n\n/**\n * Creates a matcher function from one or more glob patterns. The\n * returned function takes a string to match as its first argument,\n * and returns true if the string is a match. The returned matcher\n * function also takes a boolean as the second argument that, when true,\n * returns an object with additional information.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch(glob[, options]);\n *\n * const isMatch = picomatch('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @name picomatch\n * @param {String|Array} `globs` One or more glob patterns.\n * @param {Object=} `options`\n * @return {Function=} Returns a matcher function.\n * @api public\n */\n\nconst picomatch = (glob, options, returnState = false) => {\n  if (Array.isArray(glob)) {\n    const fns = glob.map(input => picomatch(input, options, returnState));\n    const arrayMatcher = str => {\n      for (const isMatch of fns) {\n        const state = isMatch(str);\n        if (state) return state;\n      }\n      return false;\n    };\n    return arrayMatcher;\n  }\n\n  const isState = isObject(glob) && glob.tokens && glob.input;\n\n  if (glob === '' || (typeof glob !== 'string' && !isState)) {\n    throw new TypeError('Expected pattern to be a non-empty string');\n  }\n\n  const opts = options || {};\n  const posix = utils.isWindows(options);\n  const regex = isState\n    ? picomatch.compileRe(glob, options)\n    : picomatch.makeRe(glob, options, false, true);\n\n  const state = regex.state;\n  delete regex.state;\n\n  let isIgnored = () => false;\n  if (opts.ignore) {\n    const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null };\n    isIgnored = picomatch(opts.ignore, ignoreOpts, returnState);\n  }\n\n  const matcher = (input, returnObject = false) => {\n    const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix });\n    const result = { glob, state, regex, posix, input, output, match, isMatch };\n\n    if (typeof opts.onResult === 'function') {\n      opts.onResult(result);\n    }\n\n    if (isMatch === false) {\n      result.isMatch = false;\n      return returnObject ? result : false;\n    }\n\n    if (isIgnored(input)) {\n      if (typeof opts.onIgnore === 'function') {\n        opts.onIgnore(result);\n      }\n      result.isMatch = false;\n      return returnObject ? result : false;\n    }\n\n    if (typeof opts.onMatch === 'function') {\n      opts.onMatch(result);\n    }\n    return returnObject ? result : true;\n  };\n\n  if (returnState) {\n    matcher.state = state;\n  }\n\n  return matcher;\n};\n\n/**\n * Test `input` with the given `regex`. This is used by the main\n * `picomatch()` function to test the input string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.test(input, regex[, options]);\n *\n * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\\/([^/]*?))$/));\n * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' }\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp} `regex`\n * @return {Object} Returns an object with matching info.\n * @api public\n */\n\npicomatch.test = (input, regex, options, { glob, posix } = {}) => {\n  if (typeof input !== 'string') {\n    throw new TypeError('Expected input to be a string');\n  }\n\n  if (input === '') {\n    return { isMatch: false, output: '' };\n  }\n\n  const opts = options || {};\n  const format = opts.format || (posix ? utils.toPosixSlashes : null);\n  let match = input === glob;\n  let output = (match && format) ? format(input) : input;\n\n  if (match === false) {\n    output = format ? format(input) : input;\n    match = output === glob;\n  }\n\n  if (match === false || opts.capture === true) {\n    if (opts.matchBase === true || opts.basename === true) {\n      match = picomatch.matchBase(input, regex, options, posix);\n    } else {\n      match = regex.exec(output);\n    }\n  }\n\n  return { isMatch: Boolean(match), match, output };\n};\n\n/**\n * Match the basename of a filepath.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.matchBase(input, glob[, options]);\n * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe).\n * @return {Boolean}\n * @api public\n */\n\npicomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => {\n  const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options);\n  return regex.test(path.basename(input));\n};\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.isMatch(string, patterns[, options]);\n *\n * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String|Array} str The string to test.\n * @param {String|Array} patterns One or more glob patterns to use for matching.\n * @param {Object} [options] See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\npicomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const result = picomatch.parse(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as a regex source string.\n * @api public\n */\n\npicomatch.parse = (pattern, options) => {\n  if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options));\n  return parse(pattern, { ...options, fastpaths: false });\n};\n\n/**\n * Scan a glob pattern to separate the pattern into segments.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.scan(input[, options]);\n *\n * const result = picomatch.scan('!./foo/*.js');\n * console.log(result);\n * { prefix: '!./',\n *   input: '!./foo/*.js',\n *   start: 3,\n *   base: 'foo',\n *   glob: '*.js',\n *   isBrace: false,\n *   isBracket: false,\n *   isGlob: true,\n *   isExtglob: false,\n *   isGlobstar: false,\n *   negated: true }\n * ```\n * @param {String} `input` Glob pattern to scan.\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\npicomatch.scan = (input, options) => scan(input, options);\n\n/**\n * Compile a regular expression from the `state` object returned by the\n * [parse()](#parse) method.\n *\n * @param {Object} `state`\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser.\n * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging.\n * @return {RegExp}\n * @api public\n */\n\npicomatch.compileRe = (state, options, returnOutput = false, returnState = false) => {\n  if (returnOutput === true) {\n    return state.output;\n  }\n\n  const opts = options || {};\n  const prepend = opts.contains ? '' : '^';\n  const append = opts.contains ? '' : '$';\n\n  let source = `${prepend}(?:${state.output})${append}`;\n  if (state && state.negated === true) {\n    source = `^(?!${source}).*$`;\n  }\n\n  const regex = picomatch.toRegex(source, options);\n  if (returnState === true) {\n    regex.state = state;\n  }\n\n  return regex;\n};\n\n/**\n * Create a regular expression from a parsed glob pattern.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const state = picomatch.parse('*.js');\n * // picomatch.compileRe(state[, options]);\n *\n * console.log(picomatch.compileRe(state));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `state` The object returned from the `.parse` method.\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result.\n * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression.\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\npicomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => {\n  if (!input || typeof input !== 'string') {\n    throw new TypeError('Expected a non-empty string');\n  }\n\n  let parsed = { negated: false, fastpaths: true };\n\n  if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) {\n    parsed.output = parse.fastpaths(input, options);\n  }\n\n  if (!parsed.output) {\n    parsed = parse(input, options);\n  }\n\n  return picomatch.compileRe(parsed, options, returnOutput, returnState);\n};\n\n/**\n * Create a regular expression from the given regex source string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.toRegex(source[, options]);\n *\n * const { output } = picomatch.parse('*.js');\n * console.log(picomatch.toRegex(output));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `source` Regular expression source string.\n * @param {Object} `options`\n * @return {RegExp}\n * @api public\n */\n\npicomatch.toRegex = (source, options) => {\n  try {\n    const opts = options || {};\n    return new RegExp(source, opts.flags || (opts.nocase ? 'i' : ''));\n  } catch (err) {\n    if (options && options.debug === true) throw err;\n    return /$^/;\n  }\n};\n\n/**\n * Picomatch constants.\n * @return {Object}\n */\n\npicomatch.constants = constants;\n\n/**\n * Expose \"picomatch\"\n */\n\nmodule.exports = picomatch;\n", "'use strict';\n\nmodule.exports = require('./lib/picomatch');\n", "'use strict';\n\nconst util = require('util');\nconst braces = require('braces');\nconst picomatch = require('picomatch');\nconst utils = require('picomatch/lib/utils');\nconst isEmptyString = val => val === '' || val === './';\n\n/**\n * Returns an array of strings that match one or more glob patterns.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm(list, patterns[, options]);\n *\n * console.log(mm(['a.js', 'a.txt'], ['*.js']));\n * //=> [ 'a.js' ]\n * ```\n * @param {String|Array<string>} `list` List of strings to match.\n * @param {String|Array<string>} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options)\n * @return {Array} Returns an array of matches\n * @summary false\n * @api public\n */\n\nconst micromatch = (list, patterns, options) => {\n  patterns = [].concat(patterns);\n  list = [].concat(list);\n\n  let omit = new Set();\n  let keep = new Set();\n  let items = new Set();\n  let negatives = 0;\n\n  let onResult = state => {\n    items.add(state.output);\n    if (options && options.onResult) {\n      options.onResult(state);\n    }\n  };\n\n  for (let i = 0; i < patterns.length; i++) {\n    let isMatch = picomatch(String(patterns[i]), { ...options, onResult }, true);\n    let negated = isMatch.state.negated || isMatch.state.negatedExtglob;\n    if (negated) negatives++;\n\n    for (let item of list) {\n      let matched = isMatch(item, true);\n\n      let match = negated ? !matched.isMatch : matched.isMatch;\n      if (!match) continue;\n\n      if (negated) {\n        omit.add(matched.output);\n      } else {\n        omit.delete(matched.output);\n        keep.add(matched.output);\n      }\n    }\n  }\n\n  let result = negatives === patterns.length ? [...items] : [...keep];\n  let matches = result.filter(item => !omit.has(item));\n\n  if (options && matches.length === 0) {\n    if (options.failglob === true) {\n      throw new Error(`No matches found for \"${patterns.join(', ')}\"`);\n    }\n\n    if (options.nonull === true || options.nullglob === true) {\n      return options.unescape ? patterns.map(p => p.replace(/\\\\/g, '')) : patterns;\n    }\n  }\n\n  return matches;\n};\n\n/**\n * Backwards compatibility\n */\n\nmicromatch.match = micromatch;\n\n/**\n * Returns a matcher function from the given glob `pattern` and `options`.\n * The returned function takes a string to match as its only argument and returns\n * true if the string is a match.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.matcher(pattern[, options]);\n *\n * const isMatch = mm.matcher('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @param {String} `pattern` Glob pattern\n * @param {Object} `options`\n * @return {Function} Returns a matcher function.\n * @api public\n */\n\nmicromatch.matcher = (pattern, options) => picomatch(pattern, options);\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.isMatch(string, patterns[, options]);\n *\n * console.log(mm.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(mm.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String} `str` The string to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `[options]` See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nmicromatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Backwards compatibility\n */\n\nmicromatch.any = micromatch.isMatch;\n\n/**\n * Returns a list of strings that _**do not match any**_ of the given `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.not(list, patterns[, options]);\n *\n * console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a'));\n * //=> ['b.b', 'c.c']\n * ```\n * @param {Array} `list` Array of strings to match.\n * @param {String|Array} `patterns` One or more glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Array} Returns an array of strings that **do not match** the given patterns.\n * @api public\n */\n\nmicromatch.not = (list, patterns, options = {}) => {\n  patterns = [].concat(patterns).map(String);\n  let result = new Set();\n  let items = [];\n\n  let onResult = state => {\n    if (options.onResult) options.onResult(state);\n    items.push(state.output);\n  };\n\n  let matches = micromatch(list, patterns, { ...options, onResult });\n\n  for (let item of items) {\n    if (!matches.includes(item)) {\n      result.add(item);\n    }\n  }\n  return [...result];\n};\n\n/**\n * Returns true if the given `string` contains the given pattern. Similar\n * to [.isMatch](#isMatch) but the pattern can match any part of the string.\n *\n * ```js\n * var mm = require('micromatch');\n * // mm.contains(string, pattern[, options]);\n *\n * console.log(mm.contains('aa/bb/cc', '*b'));\n * //=> true\n * console.log(mm.contains('aa/bb/cc', '*d'));\n * //=> false\n * ```\n * @param {String} `str` The string to match.\n * @param {String|Array} `patterns` Glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any of the patterns matches any part of `str`.\n * @api public\n */\n\nmicromatch.contains = (str, pattern, options) => {\n  if (typeof str !== 'string') {\n    throw new TypeError(`Expected a string: \"${util.inspect(str)}\"`);\n  }\n\n  if (Array.isArray(pattern)) {\n    return pattern.some(p => micromatch.contains(str, p, options));\n  }\n\n  if (typeof pattern === 'string') {\n    if (isEmptyString(str) || isEmptyString(pattern)) {\n      return false;\n    }\n\n    if (str.includes(pattern) || (str.startsWith('./') && str.slice(2).includes(pattern))) {\n      return true;\n    }\n  }\n\n  return micromatch.isMatch(str, pattern, { ...options, contains: true });\n};\n\n/**\n * Filter the keys of the given object with the given `glob` pattern\n * and `options`. Does not attempt to match nested keys. If you need this feature,\n * use [glob-object][] instead.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.matchKeys(object, patterns[, options]);\n *\n * const obj = { aa: 'a', ab: 'b', ac: 'c' };\n * console.log(mm.matchKeys(obj, '*b'));\n * //=> { ab: 'b' }\n * ```\n * @param {Object} `object` The object with keys to filter.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Object} Returns an object with only keys that match the given patterns.\n * @api public\n */\n\nmicromatch.matchKeys = (obj, patterns, options) => {\n  if (!utils.isObject(obj)) {\n    throw new TypeError('Expected the first argument to be an object');\n  }\n  let keys = micromatch(Object.keys(obj), patterns, options);\n  let res = {};\n  for (let key of keys) res[key] = obj[key];\n  return res;\n};\n\n/**\n * Returns true if some of the strings in the given `list` match any of the given glob `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.some(list, patterns[, options]);\n *\n * console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js']));\n * // true\n * console.log(mm.some(['foo.js'], ['*.js', '!foo.js']));\n * // false\n * ```\n * @param {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any `patterns` matches any of the strings in `list`\n * @api public\n */\n\nmicromatch.some = (list, patterns, options) => {\n  let items = [].concat(list);\n\n  for (let pattern of [].concat(patterns)) {\n    let isMatch = picomatch(String(pattern), options);\n    if (items.some(item => isMatch(item))) {\n      return true;\n    }\n  }\n  return false;\n};\n\n/**\n * Returns true if every string in the given `list` matches\n * any of the given glob `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.every(list, patterns[, options]);\n *\n * console.log(mm.every('foo.js', ['foo.js']));\n * // true\n * console.log(mm.every(['foo.js', 'bar.js'], ['*.js']));\n * // true\n * console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js']));\n * // false\n * console.log(mm.every(['foo.js'], ['*.js', '!foo.js']));\n * // false\n * ```\n * @param {String|Array} `list` The string or array of strings to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if all `patterns` matches all of the strings in `list`\n * @api public\n */\n\nmicromatch.every = (list, patterns, options) => {\n  let items = [].concat(list);\n\n  for (let pattern of [].concat(patterns)) {\n    let isMatch = picomatch(String(pattern), options);\n    if (!items.every(item => isMatch(item))) {\n      return false;\n    }\n  }\n  return true;\n};\n\n/**\n * Returns true if **all** of the given `patterns` match\n * the specified string.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.all(string, patterns[, options]);\n *\n * console.log(mm.all('foo.js', ['foo.js']));\n * // true\n *\n * console.log(mm.all('foo.js', ['*.js', '!foo.js']));\n * // false\n *\n * console.log(mm.all('foo.js', ['*.js', 'foo.js']));\n * // true\n *\n * console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js']));\n * // true\n * ```\n * @param {String|Array} `str` The string to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nmicromatch.all = (str, patterns, options) => {\n  if (typeof str !== 'string') {\n    throw new TypeError(`Expected a string: \"${util.inspect(str)}\"`);\n  }\n\n  return [].concat(patterns).every(p => picomatch(p, options)(str));\n};\n\n/**\n * Returns an array of matches captured by `pattern` in `string, or `null` if the pattern did not match.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.capture(pattern, string[, options]);\n *\n * console.log(mm.capture('test/*.js', 'test/foo.js'));\n * //=> ['foo']\n * console.log(mm.capture('test/*.js', 'foo/bar.css'));\n * //=> null\n * ```\n * @param {String} `glob` Glob pattern to use for matching.\n * @param {String} `input` String to match\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Array|null} Returns an array of captures if the input matches the glob pattern, otherwise `null`.\n * @api public\n */\n\nmicromatch.capture = (glob, input, options) => {\n  let posix = utils.isWindows(options);\n  let regex = picomatch.makeRe(String(glob), { ...options, capture: true });\n  let match = regex.exec(posix ? utils.toPosixSlashes(input) : input);\n\n  if (match) {\n    return match.slice(1).map(v => v === void 0 ? '' : v);\n  }\n};\n\n/**\n * Create a regular expression from the given glob `pattern`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.makeRe(pattern[, options]);\n *\n * console.log(mm.makeRe('*.js'));\n * //=> /^(?:(\\.[\\\\\\/])?(?!\\.)(?=.)[^\\/]*?\\.js)$/\n * ```\n * @param {String} `pattern` A glob pattern to convert to regex.\n * @param {Object} `options`\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\nmicromatch.makeRe = (...args) => picomatch.makeRe(...args);\n\n/**\n * Scan a glob pattern to separate the pattern into segments. Used\n * by the [split](#split) method.\n *\n * ```js\n * const mm = require('micromatch');\n * const state = mm.scan(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\nmicromatch.scan = (...args) => picomatch.scan(...args);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const mm = require('micromatch');\n * const state = mm(pattern[, options]);\n * ```\n * @param {String} `glob`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as regex source string.\n * @api public\n */\n\nmicromatch.parse = (patterns, options) => {\n  let res = [];\n  for (let pattern of [].concat(patterns || [])) {\n    for (let str of braces(String(pattern), options)) {\n      res.push(picomatch.parse(str, options));\n    }\n  }\n  return res;\n};\n\n/**\n * Process the given brace `pattern`.\n *\n * ```js\n * const { braces } = require('micromatch');\n * console.log(braces('foo/{a,b,c}/bar'));\n * //=> [ 'foo/(a|b|c)/bar' ]\n *\n * console.log(braces('foo/{a,b,c}/bar', { expand: true }));\n * //=> [ 'foo/a/bar', 'foo/b/bar', 'foo/c/bar' ]\n * ```\n * @param {String} `pattern` String with brace pattern to process.\n * @param {Object} `options` Any [options](#options) to change how expansion is performed. See the [braces][] library for all available options.\n * @return {Array}\n * @api public\n */\n\nmicromatch.braces = (pattern, options) => {\n  if (typeof pattern !== 'string') throw new TypeError('Expected a string');\n  if ((options && options.nobrace === true) || !/\\{.*\\}/.test(pattern)) {\n    return [pattern];\n  }\n  return braces(pattern, options);\n};\n\n/**\n * Expand braces\n */\n\nmicromatch.braceExpand = (pattern, options) => {\n  if (typeof pattern !== 'string') throw new TypeError('Expected a string');\n  return micromatch.braces(pattern, { ...options, expand: true });\n};\n\n/**\n * Expose micromatch\n */\n\nmodule.exports = micromatch;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeDuplicateSlashes = exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.isPatternRelatedToParentDirectory = exports.getPatternsOutsideCurrentDirectory = exports.getPatternsInsideCurrentDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0;\nconst path = require(\"path\");\nconst globParent = require(\"glob-parent\");\nconst micromatch = require(\"micromatch\");\nconst GLOBSTAR = '**';\nconst ESCAPE_SYMBOL = '\\\\';\nconst COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/;\nconst REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\\[[^[]*]/;\nconst REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\\([^(]*\\|[^|]*\\)/;\nconst GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\\([^(]*\\)/;\nconst BRACE_EXPANSION_SEPARATORS_RE = /,|\\.\\./;\n/**\n * Matches a sequence of two or more consecutive slashes, excluding the first two slashes at the beginning of the string.\n * The latter is due to the presence of the device path at the beginning of the UNC path.\n */\nconst DOUBLE_SLASH_RE = /(?!^)\\/{2,}/g;\nfunction isStaticPattern(pattern, options = {}) {\n    return !isDynamicPattern(pattern, options);\n}\nexports.isStaticPattern = isStaticPattern;\nfunction isDynamicPattern(pattern, options = {}) {\n    /**\n     * A special case with an empty string is necessary for matching patterns that start with a forward slash.\n     * An empty string cannot be a dynamic pattern.\n     * For example, the pattern `/lib/*` will be spread into parts: '', 'lib', '*'.\n     */\n    if (pattern === '') {\n        return false;\n    }\n    /**\n     * When the `caseSensitiveMatch` option is disabled, all patterns must be marked as dynamic, because we cannot check\n     * filepath directly (without read directory).\n     */\n    if (options.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) {\n        return true;\n    }\n    if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) {\n        return true;\n    }\n    if (options.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) {\n        return true;\n    }\n    if (options.braceExpansion !== false && hasBraceExpansion(pattern)) {\n        return true;\n    }\n    return false;\n}\nexports.isDynamicPattern = isDynamicPattern;\nfunction hasBraceExpansion(pattern) {\n    const openingBraceIndex = pattern.indexOf('{');\n    if (openingBraceIndex === -1) {\n        return false;\n    }\n    const closingBraceIndex = pattern.indexOf('}', openingBraceIndex + 1);\n    if (closingBraceIndex === -1) {\n        return false;\n    }\n    const braceContent = pattern.slice(openingBraceIndex, closingBraceIndex);\n    return BRACE_EXPANSION_SEPARATORS_RE.test(braceContent);\n}\nfunction convertToPositivePattern(pattern) {\n    return isNegativePattern(pattern) ? pattern.slice(1) : pattern;\n}\nexports.convertToPositivePattern = convertToPositivePattern;\nfunction convertToNegativePattern(pattern) {\n    return '!' + pattern;\n}\nexports.convertToNegativePattern = convertToNegativePattern;\nfunction isNegativePattern(pattern) {\n    return pattern.startsWith('!') && pattern[1] !== '(';\n}\nexports.isNegativePattern = isNegativePattern;\nfunction isPositivePattern(pattern) {\n    return !isNegativePattern(pattern);\n}\nexports.isPositivePattern = isPositivePattern;\nfunction getNegativePatterns(patterns) {\n    return patterns.filter(isNegativePattern);\n}\nexports.getNegativePatterns = getNegativePatterns;\nfunction getPositivePatterns(patterns) {\n    return patterns.filter(isPositivePattern);\n}\nexports.getPositivePatterns = getPositivePatterns;\n/**\n * Returns patterns that can be applied inside the current directory.\n *\n * @example\n * // ['./*', '*', 'a/*']\n * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*'])\n */\nfunction getPatternsInsideCurrentDirectory(patterns) {\n    return patterns.filter((pattern) => !isPatternRelatedToParentDirectory(pattern));\n}\nexports.getPatternsInsideCurrentDirectory = getPatternsInsideCurrentDirectory;\n/**\n * Returns patterns to be expanded relative to (outside) the current directory.\n *\n * @example\n * // ['../*', './../*']\n * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*'])\n */\nfunction getPatternsOutsideCurrentDirectory(patterns) {\n    return patterns.filter(isPatternRelatedToParentDirectory);\n}\nexports.getPatternsOutsideCurrentDirectory = getPatternsOutsideCurrentDirectory;\nfunction isPatternRelatedToParentDirectory(pattern) {\n    return pattern.startsWith('..') || pattern.startsWith('./..');\n}\nexports.isPatternRelatedToParentDirectory = isPatternRelatedToParentDirectory;\nfunction getBaseDirectory(pattern) {\n    return globParent(pattern, { flipBackslashes: false });\n}\nexports.getBaseDirectory = getBaseDirectory;\nfunction hasGlobStar(pattern) {\n    return pattern.includes(GLOBSTAR);\n}\nexports.hasGlobStar = hasGlobStar;\nfunction endsWithSlashGlobStar(pattern) {\n    return pattern.endsWith('/' + GLOBSTAR);\n}\nexports.endsWithSlashGlobStar = endsWithSlashGlobStar;\nfunction isAffectDepthOfReadingPattern(pattern) {\n    const basename = path.basename(pattern);\n    return endsWithSlashGlobStar(pattern) || isStaticPattern(basename);\n}\nexports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern;\nfunction expandPatternsWithBraceExpansion(patterns) {\n    return patterns.reduce((collection, pattern) => {\n        return collection.concat(expandBraceExpansion(pattern));\n    }, []);\n}\nexports.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion;\nfunction expandBraceExpansion(pattern) {\n    const patterns = micromatch.braces(pattern, { expand: true, nodupes: true });\n    /**\n     * Sort the patterns by length so that the same depth patterns are processed side by side.\n     * `a/{b,}/{c,}/*` \u2013 `['a///*', 'a/b//*', 'a//c/*', 'a/b/c/*']`\n     */\n    patterns.sort((a, b) => a.length - b.length);\n    /**\n     * Micromatch can return an empty string in the case of patterns like `{a,}`.\n     */\n    return patterns.filter((pattern) => pattern !== '');\n}\nexports.expandBraceExpansion = expandBraceExpansion;\nfunction getPatternParts(pattern, options) {\n    let { parts } = micromatch.scan(pattern, Object.assign(Object.assign({}, options), { parts: true }));\n    /**\n     * The scan method returns an empty array in some cases.\n     * See micromatch/picomatch#58 for more details.\n     */\n    if (parts.length === 0) {\n        parts = [pattern];\n    }\n    /**\n     * The scan method does not return an empty part for the pattern with a forward slash.\n     * This is another part of micromatch/picomatch#58.\n     */\n    if (parts[0].startsWith('/')) {\n        parts[0] = parts[0].slice(1);\n        parts.unshift('');\n    }\n    return parts;\n}\nexports.getPatternParts = getPatternParts;\nfunction makeRe(pattern, options) {\n    return micromatch.makeRe(pattern, options);\n}\nexports.makeRe = makeRe;\nfunction convertPatternsToRe(patterns, options) {\n    return patterns.map((pattern) => makeRe(pattern, options));\n}\nexports.convertPatternsToRe = convertPatternsToRe;\nfunction matchAny(entry, patternsRe) {\n    return patternsRe.some((patternRe) => patternRe.test(entry));\n}\nexports.matchAny = matchAny;\n/**\n * This package only works with forward slashes as a path separator.\n * Because of this, we cannot use the standard `path.normalize` method, because on Windows platform it will use of backslashes.\n */\nfunction removeDuplicateSlashes(pattern) {\n    return pattern.replace(DOUBLE_SLASH_RE, '/');\n}\nexports.removeDuplicateSlashes = removeDuplicateSlashes;\n", "'use strict'\n/*\n * merge2\n * https://github.com/teambition/merge2\n *\n * Copyright (c) 2014-2020 Teambition\n * Licensed under the MIT license.\n */\nconst Stream = require('stream')\nconst PassThrough = Stream.PassThrough\nconst slice = Array.prototype.slice\n\nmodule.exports = merge2\n\nfunction merge2 () {\n  const streamsQueue = []\n  const args = slice.call(arguments)\n  let merging = false\n  let options = args[args.length - 1]\n\n  if (options && !Array.isArray(options) && options.pipe == null) {\n    args.pop()\n  } else {\n    options = {}\n  }\n\n  const doEnd = options.end !== false\n  const doPipeError = options.pipeError === true\n  if (options.objectMode == null) {\n    options.objectMode = true\n  }\n  if (options.highWaterMark == null) {\n    options.highWaterMark = 64 * 1024\n  }\n  const mergedStream = PassThrough(options)\n\n  function addStream () {\n    for (let i = 0, len = arguments.length; i < len; i++) {\n      streamsQueue.push(pauseStreams(arguments[i], options))\n    }\n    mergeStream()\n    return this\n  }\n\n  function mergeStream () {\n    if (merging) {\n      return\n    }\n    merging = true\n\n    let streams = streamsQueue.shift()\n    if (!streams) {\n      process.nextTick(endStream)\n      return\n    }\n    if (!Array.isArray(streams)) {\n      streams = [streams]\n    }\n\n    let pipesCount = streams.length + 1\n\n    function next () {\n      if (--pipesCount > 0) {\n        return\n      }\n      merging = false\n      mergeStream()\n    }\n\n    function pipe (stream) {\n      function onend () {\n        stream.removeListener('merge2UnpipeEnd', onend)\n        stream.removeListener('end', onend)\n        if (doPipeError) {\n          stream.removeListener('error', onerror)\n        }\n        next()\n      }\n      function onerror (err) {\n        mergedStream.emit('error', err)\n      }\n      // skip ended stream\n      if (stream._readableState.endEmitted) {\n        return next()\n      }\n\n      stream.on('merge2UnpipeEnd', onend)\n      stream.on('end', onend)\n\n      if (doPipeError) {\n        stream.on('error', onerror)\n      }\n\n      stream.pipe(mergedStream, { end: false })\n      // compatible for old stream\n      stream.resume()\n    }\n\n    for (let i = 0; i < streams.length; i++) {\n      pipe(streams[i])\n    }\n\n    next()\n  }\n\n  function endStream () {\n    merging = false\n    // emit 'queueDrain' when all streams merged.\n    mergedStream.emit('queueDrain')\n    if (doEnd) {\n      mergedStream.end()\n    }\n  }\n\n  mergedStream.setMaxListeners(0)\n  mergedStream.add = addStream\n  mergedStream.on('unpipe', function (stream) {\n    stream.emit('merge2UnpipeEnd')\n  })\n\n  if (args.length) {\n    addStream.apply(null, args)\n  }\n  return mergedStream\n}\n\n// check and pause streams for pipe.\nfunction pauseStreams (streams, options) {\n  if (!Array.isArray(streams)) {\n    // Backwards-compat with old-style streams\n    if (!streams._readableState && streams.pipe) {\n      streams = streams.pipe(PassThrough(options))\n    }\n    if (!streams._readableState || !streams.pause || !streams.pipe) {\n      throw new Error('Only readable stream can be merged.')\n    }\n    streams.pause()\n  } else {\n    for (let i = 0, len = streams.length; i < len; i++) {\n      streams[i] = pauseStreams(streams[i], options)\n    }\n  }\n  return streams\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.merge = void 0;\nconst merge2 = require(\"merge2\");\nfunction merge(streams) {\n    const mergedStream = merge2(streams);\n    streams.forEach((stream) => {\n        stream.once('error', (error) => mergedStream.emit('error', error));\n    });\n    mergedStream.once('close', () => propagateCloseEventToSources(streams));\n    mergedStream.once('end', () => propagateCloseEventToSources(streams));\n    return mergedStream;\n}\nexports.merge = merge;\nfunction propagateCloseEventToSources(streams) {\n    streams.forEach((stream) => stream.emit('close'));\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmpty = exports.isString = void 0;\nfunction isString(input) {\n    return typeof input === 'string';\n}\nexports.isString = isString;\nfunction isEmpty(input) {\n    return input === '';\n}\nexports.isEmpty = isEmpty;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0;\nconst array = require(\"./array\");\nexports.array = array;\nconst errno = require(\"./errno\");\nexports.errno = errno;\nconst fs = require(\"./fs\");\nexports.fs = fs;\nconst path = require(\"./path\");\nexports.path = path;\nconst pattern = require(\"./pattern\");\nexports.pattern = pattern;\nconst stream = require(\"./stream\");\nexports.stream = stream;\nconst string = require(\"./string\");\nexports.string = string;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0;\nconst utils = require(\"../utils\");\nfunction generate(input, settings) {\n    const patterns = processPatterns(input, settings);\n    const ignore = processPatterns(settings.ignore, settings);\n    const positivePatterns = getPositivePatterns(patterns);\n    const negativePatterns = getNegativePatternsAsPositive(patterns, ignore);\n    const staticPatterns = positivePatterns.filter((pattern) => utils.pattern.isStaticPattern(pattern, settings));\n    const dynamicPatterns = positivePatterns.filter((pattern) => utils.pattern.isDynamicPattern(pattern, settings));\n    const staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, /* dynamic */ false);\n    const dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, /* dynamic */ true);\n    return staticTasks.concat(dynamicTasks);\n}\nexports.generate = generate;\nfunction processPatterns(input, settings) {\n    let patterns = input;\n    /**\n     * The original pattern like `{,*,**,a/*}` can lead to problems checking the depth when matching entry\n     * and some problems with the micromatch package (see fast-glob issues: #365, #394).\n     *\n     * To solve this problem, we expand all patterns containing brace expansion. This can lead to a slight slowdown\n     * in matching in the case of a large set of patterns after expansion.\n     */\n    if (settings.braceExpansion) {\n        patterns = utils.pattern.expandPatternsWithBraceExpansion(patterns);\n    }\n    /**\n     * If the `baseNameMatch` option is enabled, we must add globstar to patterns, so that they can be used\n     * at any nesting level.\n     *\n     * We do this here, because otherwise we have to complicate the filtering logic. For example, we need to change\n     * the pattern in the filter before creating a regular expression. There is no need to change the patterns\n     * in the application. Only on the input.\n     */\n    if (settings.baseNameMatch) {\n        patterns = patterns.map((pattern) => pattern.includes('/') ? pattern : `**/${pattern}`);\n    }\n    /**\n     * This method also removes duplicate slashes that may have been in the pattern or formed as a result of expansion.\n     */\n    return patterns.map((pattern) => utils.pattern.removeDuplicateSlashes(pattern));\n}\n/**\n * Returns tasks grouped by basic pattern directories.\n *\n * Patterns that can be found inside (`./`) and outside (`../`) the current directory are handled separately.\n * This is necessary because directory traversal starts at the base directory and goes deeper.\n */\nfunction convertPatternsToTasks(positive, negative, dynamic) {\n    const tasks = [];\n    const patternsOutsideCurrentDirectory = utils.pattern.getPatternsOutsideCurrentDirectory(positive);\n    const patternsInsideCurrentDirectory = utils.pattern.getPatternsInsideCurrentDirectory(positive);\n    const outsideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsOutsideCurrentDirectory);\n    const insideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsInsideCurrentDirectory);\n    tasks.push(...convertPatternGroupsToTasks(outsideCurrentDirectoryGroup, negative, dynamic));\n    /*\n     * For the sake of reducing future accesses to the file system, we merge all tasks within the current directory\n     * into a global task, if at least one pattern refers to the root (`.`). In this case, the global task covers the rest.\n     */\n    if ('.' in insideCurrentDirectoryGroup) {\n        tasks.push(convertPatternGroupToTask('.', patternsInsideCurrentDirectory, negative, dynamic));\n    }\n    else {\n        tasks.push(...convertPatternGroupsToTasks(insideCurrentDirectoryGroup, negative, dynamic));\n    }\n    return tasks;\n}\nexports.convertPatternsToTasks = convertPatternsToTasks;\nfunction getPositivePatterns(patterns) {\n    return utils.pattern.getPositivePatterns(patterns);\n}\nexports.getPositivePatterns = getPositivePatterns;\nfunction getNegativePatternsAsPositive(patterns, ignore) {\n    const negative = utils.pattern.getNegativePatterns(patterns).concat(ignore);\n    const positive = negative.map(utils.pattern.convertToPositivePattern);\n    return positive;\n}\nexports.getNegativePatternsAsPositive = getNegativePatternsAsPositive;\nfunction groupPatternsByBaseDirectory(patterns) {\n    const group = {};\n    return patterns.reduce((collection, pattern) => {\n        const base = utils.pattern.getBaseDirectory(pattern);\n        if (base in collection) {\n            collection[base].push(pattern);\n        }\n        else {\n            collection[base] = [pattern];\n        }\n        return collection;\n    }, group);\n}\nexports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory;\nfunction convertPatternGroupsToTasks(positive, negative, dynamic) {\n    return Object.keys(positive).map((base) => {\n        return convertPatternGroupToTask(base, positive[base], negative, dynamic);\n    });\n}\nexports.convertPatternGroupsToTasks = convertPatternGroupsToTasks;\nfunction convertPatternGroupToTask(base, positive, negative, dynamic) {\n    return {\n        dynamic,\n        positive,\n        negative,\n        base,\n        patterns: [].concat(positive, negative.map(utils.pattern.convertToNegativePattern))\n    };\n}\nexports.convertPatternGroupToTask = convertPatternGroupToTask;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.read = void 0;\nfunction read(path, settings, callback) {\n    settings.fs.lstat(path, (lstatError, lstat) => {\n        if (lstatError !== null) {\n            callFailureCallback(callback, lstatError);\n            return;\n        }\n        if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {\n            callSuccessCallback(callback, lstat);\n            return;\n        }\n        settings.fs.stat(path, (statError, stat) => {\n            if (statError !== null) {\n                if (settings.throwErrorOnBrokenSymbolicLink) {\n                    callFailureCallback(callback, statError);\n                    return;\n                }\n                callSuccessCallback(callback, lstat);\n                return;\n            }\n            if (settings.markSymbolicLink) {\n                stat.isSymbolicLink = () => true;\n            }\n            callSuccessCallback(callback, stat);\n        });\n    });\n}\nexports.read = read;\nfunction callFailureCallback(callback, error) {\n    callback(error);\n}\nfunction callSuccessCallback(callback, result) {\n    callback(null, result);\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.read = void 0;\nfunction read(path, settings) {\n    const lstat = settings.fs.lstatSync(path);\n    if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {\n        return lstat;\n    }\n    try {\n        const stat = settings.fs.statSync(path);\n        if (settings.markSymbolicLink) {\n            stat.isSymbolicLink = () => true;\n        }\n        return stat;\n    }\n    catch (error) {\n        if (!settings.throwErrorOnBrokenSymbolicLink) {\n            return lstat;\n        }\n        throw error;\n    }\n}\nexports.read = read;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nexports.FILE_SYSTEM_ADAPTER = {\n    lstat: fs.lstat,\n    stat: fs.stat,\n    lstatSync: fs.lstatSync,\n    statSync: fs.statSync\n};\nfunction createFileSystemAdapter(fsMethods) {\n    if (fsMethods === undefined) {\n        return exports.FILE_SYSTEM_ADAPTER;\n    }\n    return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);\n}\nexports.createFileSystemAdapter = createFileSystemAdapter;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs = require(\"./adapters/fs\");\nclass Settings {\n    constructor(_options = {}) {\n        this._options = _options;\n        this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true);\n        this.fs = fs.createFileSystemAdapter(this._options.fs);\n        this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false);\n        this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);\n    }\n    _getValue(option, value) {\n        return option !== null && option !== void 0 ? option : value;\n    }\n}\nexports.default = Settings;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.statSync = exports.stat = exports.Settings = void 0;\nconst async = require(\"./providers/async\");\nconst sync = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction stat(path, optionsOrSettingsOrCallback, callback) {\n    if (typeof optionsOrSettingsOrCallback === 'function') {\n        async.read(path, getSettings(), optionsOrSettingsOrCallback);\n        return;\n    }\n    async.read(path, getSettings(optionsOrSettingsOrCallback), callback);\n}\nexports.stat = stat;\nfunction statSync(path, optionsOrSettings) {\n    const settings = getSettings(optionsOrSettings);\n    return sync.read(path, settings);\n}\nexports.statSync = statSync;\nfunction getSettings(settingsOrOptions = {}) {\n    if (settingsOrOptions instanceof settings_1.default) {\n        return settingsOrOptions;\n    }\n    return new settings_1.default(settingsOrOptions);\n}\n", "/*! queue-microtask. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\nlet promise\n\nmodule.exports = typeof queueMicrotask === 'function'\n  ? queueMicrotask.bind(typeof window !== 'undefined' ? window : global)\n  // reuse resolved promise, and allocate it lazily\n  : cb => (promise || (promise = Promise.resolve()))\n    .then(cb)\n    .catch(err => setTimeout(() => { throw err }, 0))\n", "/*! run-parallel. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\nmodule.exports = runParallel\n\nconst queueMicrotask = require('queue-microtask')\n\nfunction runParallel (tasks, cb) {\n  let results, pending, keys\n  let isSync = true\n\n  if (Array.isArray(tasks)) {\n    results = []\n    pending = tasks.length\n  } else {\n    keys = Object.keys(tasks)\n    results = {}\n    pending = keys.length\n  }\n\n  function done (err) {\n    function end () {\n      if (cb) cb(err, results)\n      cb = null\n    }\n    if (isSync) queueMicrotask(end)\n    else end()\n  }\n\n  function each (i, err, result) {\n    results[i] = result\n    if (--pending === 0 || err) {\n      done(err)\n    }\n  }\n\n  if (!pending) {\n    // empty\n    done(null)\n  } else if (keys) {\n    // object\n    keys.forEach(function (key) {\n      tasks[key](function (err, result) { each(key, err, result) })\n    })\n  } else {\n    // array\n    tasks.forEach(function (task, i) {\n      task(function (err, result) { each(i, err, result) })\n    })\n  }\n\n  isSync = false\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0;\nconst NODE_PROCESS_VERSION_PARTS = process.versions.node.split('.');\nif (NODE_PROCESS_VERSION_PARTS[0] === undefined || NODE_PROCESS_VERSION_PARTS[1] === undefined) {\n    throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);\n}\nconst MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10);\nconst MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10);\nconst SUPPORTED_MAJOR_VERSION = 10;\nconst SUPPORTED_MINOR_VERSION = 10;\nconst IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION;\nconst IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION;\n/**\n * IS `true` for Node.js 10.10 and greater.\n */\nexports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createDirentFromStats = void 0;\nclass DirentFromStats {\n    constructor(name, stats) {\n        this.name = name;\n        this.isBlockDevice = stats.isBlockDevice.bind(stats);\n        this.isCharacterDevice = stats.isCharacterDevice.bind(stats);\n        this.isDirectory = stats.isDirectory.bind(stats);\n        this.isFIFO = stats.isFIFO.bind(stats);\n        this.isFile = stats.isFile.bind(stats);\n        this.isSocket = stats.isSocket.bind(stats);\n        this.isSymbolicLink = stats.isSymbolicLink.bind(stats);\n    }\n}\nfunction createDirentFromStats(name, stats) {\n    return new DirentFromStats(name, stats);\n}\nexports.createDirentFromStats = createDirentFromStats;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fs = void 0;\nconst fs = require(\"./fs\");\nexports.fs = fs;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.joinPathSegments = void 0;\nfunction joinPathSegments(a, b, separator) {\n    /**\n     * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).\n     */\n    if (a.endsWith(separator)) {\n        return a + b;\n    }\n    return a + separator + b;\n}\nexports.joinPathSegments = joinPathSegments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readdir = exports.readdirWithFileTypes = exports.read = void 0;\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst rpl = require(\"run-parallel\");\nconst constants_1 = require(\"../constants\");\nconst utils = require(\"../utils\");\nconst common = require(\"./common\");\nfunction read(directory, settings, callback) {\n    if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {\n        readdirWithFileTypes(directory, settings, callback);\n        return;\n    }\n    readdir(directory, settings, callback);\n}\nexports.read = read;\nfunction readdirWithFileTypes(directory, settings, callback) {\n    settings.fs.readdir(directory, { withFileTypes: true }, (readdirError, dirents) => {\n        if (readdirError !== null) {\n            callFailureCallback(callback, readdirError);\n            return;\n        }\n        const entries = dirents.map((dirent) => ({\n            dirent,\n            name: dirent.name,\n            path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)\n        }));\n        if (!settings.followSymbolicLinks) {\n            callSuccessCallback(callback, entries);\n            return;\n        }\n        const tasks = entries.map((entry) => makeRplTaskEntry(entry, settings));\n        rpl(tasks, (rplError, rplEntries) => {\n            if (rplError !== null) {\n                callFailureCallback(callback, rplError);\n                return;\n            }\n            callSuccessCallback(callback, rplEntries);\n        });\n    });\n}\nexports.readdirWithFileTypes = readdirWithFileTypes;\nfunction makeRplTaskEntry(entry, settings) {\n    return (done) => {\n        if (!entry.dirent.isSymbolicLink()) {\n            done(null, entry);\n            return;\n        }\n        settings.fs.stat(entry.path, (statError, stats) => {\n            if (statError !== null) {\n                if (settings.throwErrorOnBrokenSymbolicLink) {\n                    done(statError);\n                    return;\n                }\n                done(null, entry);\n                return;\n            }\n            entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);\n            done(null, entry);\n        });\n    };\n}\nfunction readdir(directory, settings, callback) {\n    settings.fs.readdir(directory, (readdirError, names) => {\n        if (readdirError !== null) {\n            callFailureCallback(callback, readdirError);\n            return;\n        }\n        const tasks = names.map((name) => {\n            const path = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);\n            return (done) => {\n                fsStat.stat(path, settings.fsStatSettings, (error, stats) => {\n                    if (error !== null) {\n                        done(error);\n                        return;\n                    }\n                    const entry = {\n                        name,\n                        path,\n                        dirent: utils.fs.createDirentFromStats(name, stats)\n                    };\n                    if (settings.stats) {\n                        entry.stats = stats;\n                    }\n                    done(null, entry);\n                });\n            };\n        });\n        rpl(tasks, (rplError, entries) => {\n            if (rplError !== null) {\n                callFailureCallback(callback, rplError);\n                return;\n            }\n            callSuccessCallback(callback, entries);\n        });\n    });\n}\nexports.readdir = readdir;\nfunction callFailureCallback(callback, error) {\n    callback(error);\n}\nfunction callSuccessCallback(callback, result) {\n    callback(null, result);\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readdir = exports.readdirWithFileTypes = exports.read = void 0;\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst constants_1 = require(\"../constants\");\nconst utils = require(\"../utils\");\nconst common = require(\"./common\");\nfunction read(directory, settings) {\n    if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {\n        return readdirWithFileTypes(directory, settings);\n    }\n    return readdir(directory, settings);\n}\nexports.read = read;\nfunction readdirWithFileTypes(directory, settings) {\n    const dirents = settings.fs.readdirSync(directory, { withFileTypes: true });\n    return dirents.map((dirent) => {\n        const entry = {\n            dirent,\n            name: dirent.name,\n            path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)\n        };\n        if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) {\n            try {\n                const stats = settings.fs.statSync(entry.path);\n                entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);\n            }\n            catch (error) {\n                if (settings.throwErrorOnBrokenSymbolicLink) {\n                    throw error;\n                }\n            }\n        }\n        return entry;\n    });\n}\nexports.readdirWithFileTypes = readdirWithFileTypes;\nfunction readdir(directory, settings) {\n    const names = settings.fs.readdirSync(directory);\n    return names.map((name) => {\n        const entryPath = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);\n        const stats = fsStat.statSync(entryPath, settings.fsStatSettings);\n        const entry = {\n            name,\n            path: entryPath,\n            dirent: utils.fs.createDirentFromStats(name, stats)\n        };\n        if (settings.stats) {\n            entry.stats = stats;\n        }\n        return entry;\n    });\n}\nexports.readdir = readdir;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nexports.FILE_SYSTEM_ADAPTER = {\n    lstat: fs.lstat,\n    stat: fs.stat,\n    lstatSync: fs.lstatSync,\n    statSync: fs.statSync,\n    readdir: fs.readdir,\n    readdirSync: fs.readdirSync\n};\nfunction createFileSystemAdapter(fsMethods) {\n    if (fsMethods === undefined) {\n        return exports.FILE_SYSTEM_ADAPTER;\n    }\n    return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);\n}\nexports.createFileSystemAdapter = createFileSystemAdapter;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fs = require(\"./adapters/fs\");\nclass Settings {\n    constructor(_options = {}) {\n        this._options = _options;\n        this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false);\n        this.fs = fs.createFileSystemAdapter(this._options.fs);\n        this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);\n        this.stats = this._getValue(this._options.stats, false);\n        this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);\n        this.fsStatSettings = new fsStat.Settings({\n            followSymbolicLink: this.followSymbolicLinks,\n            fs: this.fs,\n            throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink\n        });\n    }\n    _getValue(option, value) {\n        return option !== null && option !== void 0 ? option : value;\n    }\n}\nexports.default = Settings;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Settings = exports.scandirSync = exports.scandir = void 0;\nconst async = require(\"./providers/async\");\nconst sync = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction scandir(path, optionsOrSettingsOrCallback, callback) {\n    if (typeof optionsOrSettingsOrCallback === 'function') {\n        async.read(path, getSettings(), optionsOrSettingsOrCallback);\n        return;\n    }\n    async.read(path, getSettings(optionsOrSettingsOrCallback), callback);\n}\nexports.scandir = scandir;\nfunction scandirSync(path, optionsOrSettings) {\n    const settings = getSettings(optionsOrSettings);\n    return sync.read(path, settings);\n}\nexports.scandirSync = scandirSync;\nfunction getSettings(settingsOrOptions = {}) {\n    if (settingsOrOptions instanceof settings_1.default) {\n        return settingsOrOptions;\n    }\n    return new settings_1.default(settingsOrOptions);\n}\n", "'use strict'\n\nfunction reusify (Constructor) {\n  var head = new Constructor()\n  var tail = head\n\n  function get () {\n    var current = head\n\n    if (current.next) {\n      head = current.next\n    } else {\n      head = new Constructor()\n      tail = head\n    }\n\n    current.next = null\n\n    return current\n  }\n\n  function release (obj) {\n    tail.next = obj\n    tail = obj\n  }\n\n  return {\n    get: get,\n    release: release\n  }\n}\n\nmodule.exports = reusify\n", "'use strict'\n\n/* eslint-disable no-var */\n\nvar reusify = require('reusify')\n\nfunction fastqueue (context, worker, concurrency) {\n  if (typeof context === 'function') {\n    concurrency = worker\n    worker = context\n    context = null\n  }\n\n  if (concurrency < 1) {\n    throw new Error('fastqueue concurrency must be greater than 1')\n  }\n\n  var cache = reusify(Task)\n  var queueHead = null\n  var queueTail = null\n  var _running = 0\n  var errorHandler = null\n\n  var self = {\n    push: push,\n    drain: noop,\n    saturated: noop,\n    pause: pause,\n    paused: false,\n    concurrency: concurrency,\n    running: running,\n    resume: resume,\n    idle: idle,\n    length: length,\n    getQueue: getQueue,\n    unshift: unshift,\n    empty: noop,\n    kill: kill,\n    killAndDrain: killAndDrain,\n    error: error\n  }\n\n  return self\n\n  function running () {\n    return _running\n  }\n\n  function pause () {\n    self.paused = true\n  }\n\n  function length () {\n    var current = queueHead\n    var counter = 0\n\n    while (current) {\n      current = current.next\n      counter++\n    }\n\n    return counter\n  }\n\n  function getQueue () {\n    var current = queueHead\n    var tasks = []\n\n    while (current) {\n      tasks.push(current.value)\n      current = current.next\n    }\n\n    return tasks\n  }\n\n  function resume () {\n    if (!self.paused) return\n    self.paused = false\n    for (var i = 0; i < self.concurrency; i++) {\n      _running++\n      release()\n    }\n  }\n\n  function idle () {\n    return _running === 0 && self.length() === 0\n  }\n\n  function push (value, done) {\n    var current = cache.get()\n\n    current.context = context\n    current.release = release\n    current.value = value\n    current.callback = done || noop\n    current.errorHandler = errorHandler\n\n    if (_running === self.concurrency || self.paused) {\n      if (queueTail) {\n        queueTail.next = current\n        queueTail = current\n      } else {\n        queueHead = current\n        queueTail = current\n        self.saturated()\n      }\n    } else {\n      _running++\n      worker.call(context, current.value, current.worked)\n    }\n  }\n\n  function unshift (value, done) {\n    var current = cache.get()\n\n    current.context = context\n    current.release = release\n    current.value = value\n    current.callback = done || noop\n\n    if (_running === self.concurrency || self.paused) {\n      if (queueHead) {\n        current.next = queueHead\n        queueHead = current\n      } else {\n        queueHead = current\n        queueTail = current\n        self.saturated()\n      }\n    } else {\n      _running++\n      worker.call(context, current.value, current.worked)\n    }\n  }\n\n  function release (holder) {\n    if (holder) {\n      cache.release(holder)\n    }\n    var next = queueHead\n    if (next) {\n      if (!self.paused) {\n        if (queueTail === queueHead) {\n          queueTail = null\n        }\n        queueHead = next.next\n        next.next = null\n        worker.call(context, next.value, next.worked)\n        if (queueTail === null) {\n          self.empty()\n        }\n      } else {\n        _running--\n      }\n    } else if (--_running === 0) {\n      self.drain()\n    }\n  }\n\n  function kill () {\n    queueHead = null\n    queueTail = null\n    self.drain = noop\n  }\n\n  function killAndDrain () {\n    queueHead = null\n    queueTail = null\n    self.drain()\n    self.drain = noop\n  }\n\n  function error (handler) {\n    errorHandler = handler\n  }\n}\n\nfunction noop () {}\n\nfunction Task () {\n  this.value = null\n  this.callback = noop\n  this.next = null\n  this.release = noop\n  this.context = null\n  this.errorHandler = null\n\n  var self = this\n\n  this.worked = function worked (err, result) {\n    var callback = self.callback\n    var errorHandler = self.errorHandler\n    var val = self.value\n    self.value = null\n    self.callback = noop\n    if (self.errorHandler) {\n      errorHandler(err, val)\n    }\n    callback.call(self.context, err, result)\n    self.release(self)\n  }\n}\n\nfunction queueAsPromised (context, worker, concurrency) {\n  if (typeof context === 'function') {\n    concurrency = worker\n    worker = context\n    context = null\n  }\n\n  function asyncWrapper (arg, cb) {\n    worker.call(this, arg)\n      .then(function (res) {\n        cb(null, res)\n      }, cb)\n  }\n\n  var queue = fastqueue(context, asyncWrapper, concurrency)\n\n  var pushCb = queue.push\n  var unshiftCb = queue.unshift\n\n  queue.push = push\n  queue.unshift = unshift\n  queue.drained = drained\n\n  return queue\n\n  function push (value) {\n    var p = new Promise(function (resolve, reject) {\n      pushCb(value, function (err, result) {\n        if (err) {\n          reject(err)\n          return\n        }\n        resolve(result)\n      })\n    })\n\n    // Let's fork the promise chain to\n    // make the error bubble up to the user but\n    // not lead to a unhandledRejection\n    p.catch(noop)\n\n    return p\n  }\n\n  function unshift (value) {\n    var p = new Promise(function (resolve, reject) {\n      unshiftCb(value, function (err, result) {\n        if (err) {\n          reject(err)\n          return\n        }\n        resolve(result)\n      })\n    })\n\n    // Let's fork the promise chain to\n    // make the error bubble up to the user but\n    // not lead to a unhandledRejection\n    p.catch(noop)\n\n    return p\n  }\n\n  function drained () {\n    var previousDrain = queue.drain\n\n    var p = new Promise(function (resolve) {\n      queue.drain = function () {\n        previousDrain()\n        resolve()\n      }\n    })\n\n    return p\n  }\n}\n\nmodule.exports = fastqueue\nmodule.exports.promise = queueAsPromised\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.joinPathSegments = exports.replacePathSegmentSeparator = exports.isAppliedFilter = exports.isFatalError = void 0;\nfunction isFatalError(settings, error) {\n    if (settings.errorFilter === null) {\n        return true;\n    }\n    return !settings.errorFilter(error);\n}\nexports.isFatalError = isFatalError;\nfunction isAppliedFilter(filter, value) {\n    return filter === null || filter(value);\n}\nexports.isAppliedFilter = isAppliedFilter;\nfunction replacePathSegmentSeparator(filepath, separator) {\n    return filepath.split(/[/\\\\]/).join(separator);\n}\nexports.replacePathSegmentSeparator = replacePathSegmentSeparator;\nfunction joinPathSegments(a, b, separator) {\n    if (a === '') {\n        return b;\n    }\n    /**\n     * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).\n     */\n    if (a.endsWith(separator)) {\n        return a + b;\n    }\n    return a + separator + b;\n}\nexports.joinPathSegments = joinPathSegments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst common = require(\"./common\");\nclass Reader {\n    constructor(_root, _settings) {\n        this._root = _root;\n        this._settings = _settings;\n        this._root = common.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator);\n    }\n}\nexports.default = Reader;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst events_1 = require(\"events\");\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nconst fastq = require(\"fastq\");\nconst common = require(\"./common\");\nconst reader_1 = require(\"./reader\");\nclass AsyncReader extends reader_1.default {\n    constructor(_root, _settings) {\n        super(_root, _settings);\n        this._settings = _settings;\n        this._scandir = fsScandir.scandir;\n        this._emitter = new events_1.EventEmitter();\n        this._queue = fastq(this._worker.bind(this), this._settings.concurrency);\n        this._isFatalError = false;\n        this._isDestroyed = false;\n        this._queue.drain = () => {\n            if (!this._isFatalError) {\n                this._emitter.emit('end');\n            }\n        };\n    }\n    read() {\n        this._isFatalError = false;\n        this._isDestroyed = false;\n        setImmediate(() => {\n            this._pushToQueue(this._root, this._settings.basePath);\n        });\n        return this._emitter;\n    }\n    get isDestroyed() {\n        return this._isDestroyed;\n    }\n    destroy() {\n        if (this._isDestroyed) {\n            throw new Error('The reader is already destroyed');\n        }\n        this._isDestroyed = true;\n        this._queue.killAndDrain();\n    }\n    onEntry(callback) {\n        this._emitter.on('entry', callback);\n    }\n    onError(callback) {\n        this._emitter.once('error', callback);\n    }\n    onEnd(callback) {\n        this._emitter.once('end', callback);\n    }\n    _pushToQueue(directory, base) {\n        const queueItem = { directory, base };\n        this._queue.push(queueItem, (error) => {\n            if (error !== null) {\n                this._handleError(error);\n            }\n        });\n    }\n    _worker(item, done) {\n        this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => {\n            if (error !== null) {\n                done(error, undefined);\n                return;\n            }\n            for (const entry of entries) {\n                this._handleEntry(entry, item.base);\n            }\n            done(null, undefined);\n        });\n    }\n    _handleError(error) {\n        if (this._isDestroyed || !common.isFatalError(this._settings, error)) {\n            return;\n        }\n        this._isFatalError = true;\n        this._isDestroyed = true;\n        this._emitter.emit('error', error);\n    }\n    _handleEntry(entry, base) {\n        if (this._isDestroyed || this._isFatalError) {\n            return;\n        }\n        const fullpath = entry.path;\n        if (base !== undefined) {\n            entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);\n        }\n        if (common.isAppliedFilter(this._settings.entryFilter, entry)) {\n            this._emitEntry(entry);\n        }\n        if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {\n            this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);\n        }\n    }\n    _emitEntry(entry) {\n        this._emitter.emit('entry', entry);\n    }\n}\nexports.default = AsyncReader;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst async_1 = require(\"../readers/async\");\nclass AsyncProvider {\n    constructor(_root, _settings) {\n        this._root = _root;\n        this._settings = _settings;\n        this._reader = new async_1.default(this._root, this._settings);\n        this._storage = [];\n    }\n    read(callback) {\n        this._reader.onError((error) => {\n            callFailureCallback(callback, error);\n        });\n        this._reader.onEntry((entry) => {\n            this._storage.push(entry);\n        });\n        this._reader.onEnd(() => {\n            callSuccessCallback(callback, this._storage);\n        });\n        this._reader.read();\n    }\n}\nexports.default = AsyncProvider;\nfunction callFailureCallback(callback, error) {\n    callback(error);\n}\nfunction callSuccessCallback(callback, entries) {\n    callback(null, entries);\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst async_1 = require(\"../readers/async\");\nclass StreamProvider {\n    constructor(_root, _settings) {\n        this._root = _root;\n        this._settings = _settings;\n        this._reader = new async_1.default(this._root, this._settings);\n        this._stream = new stream_1.Readable({\n            objectMode: true,\n            read: () => { },\n            destroy: () => {\n                if (!this._reader.isDestroyed) {\n                    this._reader.destroy();\n                }\n            }\n        });\n    }\n    read() {\n        this._reader.onError((error) => {\n            this._stream.emit('error', error);\n        });\n        this._reader.onEntry((entry) => {\n            this._stream.push(entry);\n        });\n        this._reader.onEnd(() => {\n            this._stream.push(null);\n        });\n        this._reader.read();\n        return this._stream;\n    }\n}\nexports.default = StreamProvider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nconst common = require(\"./common\");\nconst reader_1 = require(\"./reader\");\nclass SyncReader extends reader_1.default {\n    constructor() {\n        super(...arguments);\n        this._scandir = fsScandir.scandirSync;\n        this._storage = [];\n        this._queue = new Set();\n    }\n    read() {\n        this._pushToQueue(this._root, this._settings.basePath);\n        this._handleQueue();\n        return this._storage;\n    }\n    _pushToQueue(directory, base) {\n        this._queue.add({ directory, base });\n    }\n    _handleQueue() {\n        for (const item of this._queue.values()) {\n            this._handleDirectory(item.directory, item.base);\n        }\n    }\n    _handleDirectory(directory, base) {\n        try {\n            const entries = this._scandir(directory, this._settings.fsScandirSettings);\n            for (const entry of entries) {\n                this._handleEntry(entry, base);\n            }\n        }\n        catch (error) {\n            this._handleError(error);\n        }\n    }\n    _handleError(error) {\n        if (!common.isFatalError(this._settings, error)) {\n            return;\n        }\n        throw error;\n    }\n    _handleEntry(entry, base) {\n        const fullpath = entry.path;\n        if (base !== undefined) {\n            entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);\n        }\n        if (common.isAppliedFilter(this._settings.entryFilter, entry)) {\n            this._pushToStorage(entry);\n        }\n        if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {\n            this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);\n        }\n    }\n    _pushToStorage(entry) {\n        this._storage.push(entry);\n    }\n}\nexports.default = SyncReader;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst sync_1 = require(\"../readers/sync\");\nclass SyncProvider {\n    constructor(_root, _settings) {\n        this._root = _root;\n        this._settings = _settings;\n        this._reader = new sync_1.default(this._root, this._settings);\n    }\n    read() {\n        return this._reader.read();\n    }\n}\nexports.default = SyncProvider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nclass Settings {\n    constructor(_options = {}) {\n        this._options = _options;\n        this.basePath = this._getValue(this._options.basePath, undefined);\n        this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY);\n        this.deepFilter = this._getValue(this._options.deepFilter, null);\n        this.entryFilter = this._getValue(this._options.entryFilter, null);\n        this.errorFilter = this._getValue(this._options.errorFilter, null);\n        this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);\n        this.fsScandirSettings = new fsScandir.Settings({\n            followSymbolicLinks: this._options.followSymbolicLinks,\n            fs: this._options.fs,\n            pathSegmentSeparator: this._options.pathSegmentSeparator,\n            stats: this._options.stats,\n            throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink\n        });\n    }\n    _getValue(option, value) {\n        return option !== null && option !== void 0 ? option : value;\n    }\n}\nexports.default = Settings;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0;\nconst async_1 = require(\"./providers/async\");\nconst stream_1 = require(\"./providers/stream\");\nconst sync_1 = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction walk(directory, optionsOrSettingsOrCallback, callback) {\n    if (typeof optionsOrSettingsOrCallback === 'function') {\n        new async_1.default(directory, getSettings()).read(optionsOrSettingsOrCallback);\n        return;\n    }\n    new async_1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback);\n}\nexports.walk = walk;\nfunction walkSync(directory, optionsOrSettings) {\n    const settings = getSettings(optionsOrSettings);\n    const provider = new sync_1.default(directory, settings);\n    return provider.read();\n}\nexports.walkSync = walkSync;\nfunction walkStream(directory, optionsOrSettings) {\n    const settings = getSettings(optionsOrSettings);\n    const provider = new stream_1.default(directory, settings);\n    return provider.read();\n}\nexports.walkStream = walkStream;\nfunction getSettings(settingsOrOptions = {}) {\n    if (settingsOrOptions instanceof settings_1.default) {\n        return settingsOrOptions;\n    }\n    return new settings_1.default(settingsOrOptions);\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst utils = require(\"../utils\");\nclass Reader {\n    constructor(_settings) {\n        this._settings = _settings;\n        this._fsStatSettings = new fsStat.Settings({\n            followSymbolicLink: this._settings.followSymbolicLinks,\n            fs: this._settings.fs,\n            throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks\n        });\n    }\n    _getFullEntryPath(filepath) {\n        return path.resolve(this._settings.cwd, filepath);\n    }\n    _makeEntry(stats, pattern) {\n        const entry = {\n            name: pattern,\n            path: pattern,\n            dirent: utils.fs.createDirentFromStats(pattern, stats)\n        };\n        if (this._settings.stats) {\n            entry.stats = stats;\n        }\n        return entry;\n    }\n    _isFatalError(error) {\n        return !utils.errno.isEnoentCodeError(error) && !this._settings.suppressErrors;\n    }\n}\nexports.default = Reader;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fsWalk = require(\"@nodelib/fs.walk\");\nconst reader_1 = require(\"./reader\");\nclass ReaderStream extends reader_1.default {\n    constructor() {\n        super(...arguments);\n        this._walkStream = fsWalk.walkStream;\n        this._stat = fsStat.stat;\n    }\n    dynamic(root, options) {\n        return this._walkStream(root, options);\n    }\n    static(patterns, options) {\n        const filepaths = patterns.map(this._getFullEntryPath, this);\n        const stream = new stream_1.PassThrough({ objectMode: true });\n        stream._write = (index, _enc, done) => {\n            return this._getEntry(filepaths[index], patterns[index], options)\n                .then((entry) => {\n                if (entry !== null && options.entryFilter(entry)) {\n                    stream.push(entry);\n                }\n                if (index === filepaths.length - 1) {\n                    stream.end();\n                }\n                done();\n            })\n                .catch(done);\n        };\n        for (let i = 0; i < filepaths.length; i++) {\n            stream.write(i);\n        }\n        return stream;\n    }\n    _getEntry(filepath, pattern, options) {\n        return this._getStat(filepath)\n            .then((stats) => this._makeEntry(stats, pattern))\n            .catch((error) => {\n            if (options.errorFilter(error)) {\n                return null;\n            }\n            throw error;\n        });\n    }\n    _getStat(filepath) {\n        return new Promise((resolve, reject) => {\n            this._stat(filepath, this._fsStatSettings, (error, stats) => {\n                return error === null ? resolve(stats) : reject(error);\n            });\n        });\n    }\n}\nexports.default = ReaderStream;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fsWalk = require(\"@nodelib/fs.walk\");\nconst reader_1 = require(\"./reader\");\nconst stream_1 = require(\"./stream\");\nclass ReaderAsync extends reader_1.default {\n    constructor() {\n        super(...arguments);\n        this._walkAsync = fsWalk.walk;\n        this._readerStream = new stream_1.default(this._settings);\n    }\n    dynamic(root, options) {\n        return new Promise((resolve, reject) => {\n            this._walkAsync(root, options, (error, entries) => {\n                if (error === null) {\n                    resolve(entries);\n                }\n                else {\n                    reject(error);\n                }\n            });\n        });\n    }\n    async static(patterns, options) {\n        const entries = [];\n        const stream = this._readerStream.static(patterns, options);\n        // After #235, replace it with an asynchronous iterator.\n        return new Promise((resolve, reject) => {\n            stream.once('error', reject);\n            stream.on('data', (entry) => entries.push(entry));\n            stream.once('end', () => resolve(entries));\n        });\n    }\n}\nexports.default = ReaderAsync;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass Matcher {\n    constructor(_patterns, _settings, _micromatchOptions) {\n        this._patterns = _patterns;\n        this._settings = _settings;\n        this._micromatchOptions = _micromatchOptions;\n        this._storage = [];\n        this._fillStorage();\n    }\n    _fillStorage() {\n        for (const pattern of this._patterns) {\n            const segments = this._getPatternSegments(pattern);\n            const sections = this._splitSegmentsIntoSections(segments);\n            this._storage.push({\n                complete: sections.length <= 1,\n                pattern,\n                segments,\n                sections\n            });\n        }\n    }\n    _getPatternSegments(pattern) {\n        const parts = utils.pattern.getPatternParts(pattern, this._micromatchOptions);\n        return parts.map((part) => {\n            const dynamic = utils.pattern.isDynamicPattern(part, this._settings);\n            if (!dynamic) {\n                return {\n                    dynamic: false,\n                    pattern: part\n                };\n            }\n            return {\n                dynamic: true,\n                pattern: part,\n                patternRe: utils.pattern.makeRe(part, this._micromatchOptions)\n            };\n        });\n    }\n    _splitSegmentsIntoSections(segments) {\n        return utils.array.splitWhen(segments, (segment) => segment.dynamic && utils.pattern.hasGlobStar(segment.pattern));\n    }\n}\nexports.default = Matcher;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst matcher_1 = require(\"./matcher\");\nclass PartialMatcher extends matcher_1.default {\n    match(filepath) {\n        const parts = filepath.split('/');\n        const levels = parts.length;\n        const patterns = this._storage.filter((info) => !info.complete || info.segments.length > levels);\n        for (const pattern of patterns) {\n            const section = pattern.sections[0];\n            /**\n             * In this case, the pattern has a globstar and we must read all directories unconditionally,\n             * but only if the level has reached the end of the first group.\n             *\n             * fixtures/{a,b}/**\n             *  ^ true/false  ^ always true\n            */\n            if (!pattern.complete && levels > section.length) {\n                return true;\n            }\n            const match = parts.every((part, index) => {\n                const segment = pattern.segments[index];\n                if (segment.dynamic && segment.patternRe.test(part)) {\n                    return true;\n                }\n                if (!segment.dynamic && segment.pattern === part) {\n                    return true;\n                }\n                return false;\n            });\n            if (match) {\n                return true;\n            }\n        }\n        return false;\n    }\n}\nexports.default = PartialMatcher;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nconst partial_1 = require(\"../matchers/partial\");\nclass DeepFilter {\n    constructor(_settings, _micromatchOptions) {\n        this._settings = _settings;\n        this._micromatchOptions = _micromatchOptions;\n    }\n    getFilter(basePath, positive, negative) {\n        const matcher = this._getMatcher(positive);\n        const negativeRe = this._getNegativePatternsRe(negative);\n        return (entry) => this._filter(basePath, entry, matcher, negativeRe);\n    }\n    _getMatcher(patterns) {\n        return new partial_1.default(patterns, this._settings, this._micromatchOptions);\n    }\n    _getNegativePatternsRe(patterns) {\n        const affectDepthOfReadingPatterns = patterns.filter(utils.pattern.isAffectDepthOfReadingPattern);\n        return utils.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions);\n    }\n    _filter(basePath, entry, matcher, negativeRe) {\n        if (this._isSkippedByDeep(basePath, entry.path)) {\n            return false;\n        }\n        if (this._isSkippedSymbolicLink(entry)) {\n            return false;\n        }\n        const filepath = utils.path.removeLeadingDotSegment(entry.path);\n        if (this._isSkippedByPositivePatterns(filepath, matcher)) {\n            return false;\n        }\n        return this._isSkippedByNegativePatterns(filepath, negativeRe);\n    }\n    _isSkippedByDeep(basePath, entryPath) {\n        /**\n         * Avoid unnecessary depth calculations when it doesn't matter.\n         */\n        if (this._settings.deep === Infinity) {\n            return false;\n        }\n        return this._getEntryLevel(basePath, entryPath) >= this._settings.deep;\n    }\n    _getEntryLevel(basePath, entryPath) {\n        const entryPathDepth = entryPath.split('/').length;\n        if (basePath === '') {\n            return entryPathDepth;\n        }\n        const basePathDepth = basePath.split('/').length;\n        return entryPathDepth - basePathDepth;\n    }\n    _isSkippedSymbolicLink(entry) {\n        return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink();\n    }\n    _isSkippedByPositivePatterns(entryPath, matcher) {\n        return !this._settings.baseNameMatch && !matcher.match(entryPath);\n    }\n    _isSkippedByNegativePatterns(entryPath, patternsRe) {\n        return !utils.pattern.matchAny(entryPath, patternsRe);\n    }\n}\nexports.default = DeepFilter;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass EntryFilter {\n    constructor(_settings, _micromatchOptions) {\n        this._settings = _settings;\n        this._micromatchOptions = _micromatchOptions;\n        this.index = new Map();\n    }\n    getFilter(positive, negative) {\n        const positiveRe = utils.pattern.convertPatternsToRe(positive, this._micromatchOptions);\n        const negativeRe = utils.pattern.convertPatternsToRe(negative, Object.assign(Object.assign({}, this._micromatchOptions), { dot: true }));\n        return (entry) => this._filter(entry, positiveRe, negativeRe);\n    }\n    _filter(entry, positiveRe, negativeRe) {\n        const filepath = utils.path.removeLeadingDotSegment(entry.path);\n        if (this._settings.unique && this._isDuplicateEntry(filepath)) {\n            return false;\n        }\n        if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) {\n            return false;\n        }\n        if (this._isSkippedByAbsoluteNegativePatterns(filepath, negativeRe)) {\n            return false;\n        }\n        const isDirectory = entry.dirent.isDirectory();\n        const isMatched = this._isMatchToPatterns(filepath, positiveRe, isDirectory) && !this._isMatchToPatterns(filepath, negativeRe, isDirectory);\n        if (this._settings.unique && isMatched) {\n            this._createIndexRecord(filepath);\n        }\n        return isMatched;\n    }\n    _isDuplicateEntry(filepath) {\n        return this.index.has(filepath);\n    }\n    _createIndexRecord(filepath) {\n        this.index.set(filepath, undefined);\n    }\n    _onlyFileFilter(entry) {\n        return this._settings.onlyFiles && !entry.dirent.isFile();\n    }\n    _onlyDirectoryFilter(entry) {\n        return this._settings.onlyDirectories && !entry.dirent.isDirectory();\n    }\n    _isSkippedByAbsoluteNegativePatterns(entryPath, patternsRe) {\n        if (!this._settings.absolute) {\n            return false;\n        }\n        const fullpath = utils.path.makeAbsolute(this._settings.cwd, entryPath);\n        return utils.pattern.matchAny(fullpath, patternsRe);\n    }\n    _isMatchToPatterns(filepath, patternsRe, isDirectory) {\n        // Trying to match files and directories by patterns.\n        const isMatched = utils.pattern.matchAny(filepath, patternsRe);\n        // A pattern with a trailling slash can be used for directory matching.\n        // To apply such pattern, we need to add a tralling slash to the path.\n        if (!isMatched && isDirectory) {\n            return utils.pattern.matchAny(filepath + '/', patternsRe);\n        }\n        return isMatched;\n    }\n}\nexports.default = EntryFilter;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass ErrorFilter {\n    constructor(_settings) {\n        this._settings = _settings;\n    }\n    getFilter() {\n        return (error) => this._isNonFatalError(error);\n    }\n    _isNonFatalError(error) {\n        return utils.errno.isEnoentCodeError(error) || this._settings.suppressErrors;\n    }\n}\nexports.default = ErrorFilter;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass EntryTransformer {\n    constructor(_settings) {\n        this._settings = _settings;\n    }\n    getTransformer() {\n        return (entry) => this._transform(entry);\n    }\n    _transform(entry) {\n        let filepath = entry.path;\n        if (this._settings.absolute) {\n            filepath = utils.path.makeAbsolute(this._settings.cwd, filepath);\n            filepath = utils.path.unixify(filepath);\n        }\n        if (this._settings.markDirectories && entry.dirent.isDirectory()) {\n            filepath += '/';\n        }\n        if (!this._settings.objectMode) {\n            return filepath;\n        }\n        return Object.assign(Object.assign({}, entry), { path: filepath });\n    }\n}\nexports.default = EntryTransformer;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst deep_1 = require(\"./filters/deep\");\nconst entry_1 = require(\"./filters/entry\");\nconst error_1 = require(\"./filters/error\");\nconst entry_2 = require(\"./transformers/entry\");\nclass Provider {\n    constructor(_settings) {\n        this._settings = _settings;\n        this.errorFilter = new error_1.default(this._settings);\n        this.entryFilter = new entry_1.default(this._settings, this._getMicromatchOptions());\n        this.deepFilter = new deep_1.default(this._settings, this._getMicromatchOptions());\n        this.entryTransformer = new entry_2.default(this._settings);\n    }\n    _getRootDirectory(task) {\n        return path.resolve(this._settings.cwd, task.base);\n    }\n    _getReaderOptions(task) {\n        const basePath = task.base === '.' ? '' : task.base;\n        return {\n            basePath,\n            pathSegmentSeparator: '/',\n            concurrency: this._settings.concurrency,\n            deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative),\n            entryFilter: this.entryFilter.getFilter(task.positive, task.negative),\n            errorFilter: this.errorFilter.getFilter(),\n            followSymbolicLinks: this._settings.followSymbolicLinks,\n            fs: this._settings.fs,\n            stats: this._settings.stats,\n            throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink,\n            transform: this.entryTransformer.getTransformer()\n        };\n    }\n    _getMicromatchOptions() {\n        return {\n            dot: this._settings.dot,\n            matchBase: this._settings.baseNameMatch,\n            nobrace: !this._settings.braceExpansion,\n            nocase: !this._settings.caseSensitiveMatch,\n            noext: !this._settings.extglob,\n            noglobstar: !this._settings.globstar,\n            posix: true,\n            strictSlashes: false\n        };\n    }\n}\nexports.default = Provider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst async_1 = require(\"../readers/async\");\nconst provider_1 = require(\"./provider\");\nclass ProviderAsync extends provider_1.default {\n    constructor() {\n        super(...arguments);\n        this._reader = new async_1.default(this._settings);\n    }\n    async read(task) {\n        const root = this._getRootDirectory(task);\n        const options = this._getReaderOptions(task);\n        const entries = await this.api(root, task, options);\n        return entries.map((entry) => options.transform(entry));\n    }\n    api(root, task, options) {\n        if (task.dynamic) {\n            return this._reader.dynamic(root, options);\n        }\n        return this._reader.static(task.patterns, options);\n    }\n}\nexports.default = ProviderAsync;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst stream_2 = require(\"../readers/stream\");\nconst provider_1 = require(\"./provider\");\nclass ProviderStream extends provider_1.default {\n    constructor() {\n        super(...arguments);\n        this._reader = new stream_2.default(this._settings);\n    }\n    read(task) {\n        const root = this._getRootDirectory(task);\n        const options = this._getReaderOptions(task);\n        const source = this.api(root, task, options);\n        const destination = new stream_1.Readable({ objectMode: true, read: () => { } });\n        source\n            .once('error', (error) => destination.emit('error', error))\n            .on('data', (entry) => destination.emit('data', options.transform(entry)))\n            .once('end', () => destination.emit('end'));\n        destination\n            .once('close', () => source.destroy());\n        return destination;\n    }\n    api(root, task, options) {\n        if (task.dynamic) {\n            return this._reader.dynamic(root, options);\n        }\n        return this._reader.static(task.patterns, options);\n    }\n}\nexports.default = ProviderStream;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fsWalk = require(\"@nodelib/fs.walk\");\nconst reader_1 = require(\"./reader\");\nclass ReaderSync extends reader_1.default {\n    constructor() {\n        super(...arguments);\n        this._walkSync = fsWalk.walkSync;\n        this._statSync = fsStat.statSync;\n    }\n    dynamic(root, options) {\n        return this._walkSync(root, options);\n    }\n    static(patterns, options) {\n        const entries = [];\n        for (const pattern of patterns) {\n            const filepath = this._getFullEntryPath(pattern);\n            const entry = this._getEntry(filepath, pattern, options);\n            if (entry === null || !options.entryFilter(entry)) {\n                continue;\n            }\n            entries.push(entry);\n        }\n        return entries;\n    }\n    _getEntry(filepath, pattern, options) {\n        try {\n            const stats = this._getStat(filepath);\n            return this._makeEntry(stats, pattern);\n        }\n        catch (error) {\n            if (options.errorFilter(error)) {\n                return null;\n            }\n            throw error;\n        }\n    }\n    _getStat(filepath) {\n        return this._statSync(filepath, this._fsStatSettings);\n    }\n}\nexports.default = ReaderSync;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst sync_1 = require(\"../readers/sync\");\nconst provider_1 = require(\"./provider\");\nclass ProviderSync extends provider_1.default {\n    constructor() {\n        super(...arguments);\n        this._reader = new sync_1.default(this._settings);\n    }\n    read(task) {\n        const root = this._getRootDirectory(task);\n        const options = this._getReaderOptions(task);\n        const entries = this.api(root, task, options);\n        return entries.map(options.transform);\n    }\n    api(root, task, options) {\n        if (task.dynamic) {\n            return this._reader.dynamic(root, options);\n        }\n        return this._reader.static(task.patterns, options);\n    }\n}\nexports.default = ProviderSync;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nconst os = require(\"os\");\n/**\n * The `os.cpus` method can return zero. We expect the number of cores to be greater than zero.\n * https://github.com/nodejs/node/blob/7faeddf23a98c53896f8b574a6e66589e8fb1eb8/lib/os.js#L106-L107\n */\nconst CPU_COUNT = Math.max(os.cpus().length, 1);\nexports.DEFAULT_FILE_SYSTEM_ADAPTER = {\n    lstat: fs.lstat,\n    lstatSync: fs.lstatSync,\n    stat: fs.stat,\n    statSync: fs.statSync,\n    readdir: fs.readdir,\n    readdirSync: fs.readdirSync\n};\nclass Settings {\n    constructor(_options = {}) {\n        this._options = _options;\n        this.absolute = this._getValue(this._options.absolute, false);\n        this.baseNameMatch = this._getValue(this._options.baseNameMatch, false);\n        this.braceExpansion = this._getValue(this._options.braceExpansion, true);\n        this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true);\n        this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT);\n        this.cwd = this._getValue(this._options.cwd, process.cwd());\n        this.deep = this._getValue(this._options.deep, Infinity);\n        this.dot = this._getValue(this._options.dot, false);\n        this.extglob = this._getValue(this._options.extglob, true);\n        this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true);\n        this.fs = this._getFileSystemMethods(this._options.fs);\n        this.globstar = this._getValue(this._options.globstar, true);\n        this.ignore = this._getValue(this._options.ignore, []);\n        this.markDirectories = this._getValue(this._options.markDirectories, false);\n        this.objectMode = this._getValue(this._options.objectMode, false);\n        this.onlyDirectories = this._getValue(this._options.onlyDirectories, false);\n        this.onlyFiles = this._getValue(this._options.onlyFiles, true);\n        this.stats = this._getValue(this._options.stats, false);\n        this.suppressErrors = this._getValue(this._options.suppressErrors, false);\n        this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false);\n        this.unique = this._getValue(this._options.unique, true);\n        if (this.onlyDirectories) {\n            this.onlyFiles = false;\n        }\n        if (this.stats) {\n            this.objectMode = true;\n        }\n        // Remove the cast to the array in the next major (#404).\n        this.ignore = [].concat(this.ignore);\n    }\n    _getValue(option, value) {\n        return option === undefined ? value : option;\n    }\n    _getFileSystemMethods(methods = {}) {\n        return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods);\n    }\n}\nexports.default = Settings;\n", "\"use strict\";\nconst taskManager = require(\"./managers/tasks\");\nconst async_1 = require(\"./providers/async\");\nconst stream_1 = require(\"./providers/stream\");\nconst sync_1 = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nconst utils = require(\"./utils\");\nasync function FastGlob(source, options) {\n    assertPatternsInput(source);\n    const works = getWorks(source, async_1.default, options);\n    const result = await Promise.all(works);\n    return utils.array.flatten(result);\n}\n// https://github.com/typescript-eslint/typescript-eslint/issues/60\n// eslint-disable-next-line no-redeclare\n(function (FastGlob) {\n    FastGlob.glob = FastGlob;\n    FastGlob.globSync = sync;\n    FastGlob.globStream = stream;\n    FastGlob.async = FastGlob;\n    function sync(source, options) {\n        assertPatternsInput(source);\n        const works = getWorks(source, sync_1.default, options);\n        return utils.array.flatten(works);\n    }\n    FastGlob.sync = sync;\n    function stream(source, options) {\n        assertPatternsInput(source);\n        const works = getWorks(source, stream_1.default, options);\n        /**\n         * The stream returned by the provider cannot work with an asynchronous iterator.\n         * To support asynchronous iterators, regardless of the number of tasks, we always multiplex streams.\n         * This affects performance (+25%). I don't see best solution right now.\n         */\n        return utils.stream.merge(works);\n    }\n    FastGlob.stream = stream;\n    function generateTasks(source, options) {\n        assertPatternsInput(source);\n        const patterns = [].concat(source);\n        const settings = new settings_1.default(options);\n        return taskManager.generate(patterns, settings);\n    }\n    FastGlob.generateTasks = generateTasks;\n    function isDynamicPattern(source, options) {\n        assertPatternsInput(source);\n        const settings = new settings_1.default(options);\n        return utils.pattern.isDynamicPattern(source, settings);\n    }\n    FastGlob.isDynamicPattern = isDynamicPattern;\n    function escapePath(source) {\n        assertPatternsInput(source);\n        return utils.path.escape(source);\n    }\n    FastGlob.escapePath = escapePath;\n    function convertPathToPattern(source) {\n        assertPatternsInput(source);\n        return utils.path.convertPathToPattern(source);\n    }\n    FastGlob.convertPathToPattern = convertPathToPattern;\n    let posix;\n    (function (posix) {\n        function escapePath(source) {\n            assertPatternsInput(source);\n            return utils.path.escapePosixPath(source);\n        }\n        posix.escapePath = escapePath;\n        function convertPathToPattern(source) {\n            assertPatternsInput(source);\n            return utils.path.convertPosixPathToPattern(source);\n        }\n        posix.convertPathToPattern = convertPathToPattern;\n    })(posix = FastGlob.posix || (FastGlob.posix = {}));\n    let win32;\n    (function (win32) {\n        function escapePath(source) {\n            assertPatternsInput(source);\n            return utils.path.escapeWindowsPath(source);\n        }\n        win32.escapePath = escapePath;\n        function convertPathToPattern(source) {\n            assertPatternsInput(source);\n            return utils.path.convertWindowsPathToPattern(source);\n        }\n        win32.convertPathToPattern = convertPathToPattern;\n    })(win32 = FastGlob.win32 || (FastGlob.win32 = {}));\n})(FastGlob || (FastGlob = {}));\nfunction getWorks(source, _Provider, options) {\n    const patterns = [].concat(source);\n    const settings = new settings_1.default(options);\n    const tasks = taskManager.generate(patterns, settings);\n    const provider = new _Provider(settings);\n    return tasks.map(provider.read, provider);\n}\nfunction assertPatternsInput(input) {\n    const source = [].concat(input);\n    const isValidSource = source.every((item) => utils.string.isString(item) && !utils.string.isEmpty(item));\n    if (!isValidSource) {\n        throw new TypeError('Patterns must be a string (non empty) or an array of strings');\n    }\n}\nmodule.exports = FastGlob;\n", "\nvar DuckDB = (() => {\n  var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n  if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n  return (\nfunction(DuckDB) {\n  DuckDB = DuckDB || {};\n\nvar Module=typeof DuckDB!=\"undefined\"?DuckDB:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==\"object\";var ENVIRONMENT_IS_WORKER=typeof importScripts==\"function\";var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err(\"exiting due to exception: \"+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}requireNodeFS=(()=>{if(!nodePath){fs=require(\"fs\");nodePath=require(\"path\")}});read_=function shell_read(filename,binary){requireNodeFS();filename=nodePath[\"normalize\"](filename);return fs.readFileSync(filename,binary?undefined:\"utf8\")};readBinary=(filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret});readAsync=((filename,onload,onerror)=>{requireNodeFS();filename=nodePath[\"normalize\"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})});if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",function(reason){throw reason});quit_=((status,toThrow)=>{if(keepRuntimeAlive()){process[\"exitCode\"]=status;throw toThrow}logExceptionOnExit(toThrow);process[\"exit\"](status)});Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=(url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText});if(ENVIRONMENT_IS_WORKER){readBinary=(url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)})}readAsync=((url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=(()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()});xhr.onerror=onerror;xhr.send(null)})}setWindowTitle=(title=>document.title=title)}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var tempRet0=0;var setTempRet0=value=>{tempRet0=value};var getTempRet0=()=>tempRet0;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!=\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}function getCFunc(ident){var func=Module[\"_\"+ident];return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret}var UTF8Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){idx>>>=0;var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr>>>0]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx>>>0,endPtr>>>0))}else{var str=\"\";while(idx<endPtr){var u0=heap[idx++>>>0];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++>>>0]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++>>>0]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++>>>0]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){ptr>>>=0;return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){outIdx>>>=0;if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++>>>0]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++>>>0]=192|u>>6;heap[outIdx++>>>0]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++>>>0]=224|u>>12;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++>>>0]=240|u>>18;heap[outIdx++>>>0]=128|u>>12&63;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}}heap[outIdx>>>0]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer>>>0)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){{if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}}what=\"Aborted(\"+what+\")\";err(what);ABORT=true;EXITSTATUS=1;what+=\". Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}var wasmBinaryFile;wasmBinaryFile=\"./duckdb-mvp.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"bg\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"eg\"];addOnInit(Module[\"asm\"][\"cg\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==\"function\"&&!isDataURI(wasmBinaryFile)&&typeof fetch==\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func==\"number\"){if(callback.arg===undefined){getWasmTableEntry(func)()}else{getWasmTableEntry(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function handleException(e){if(e instanceof ExitStatus||e==\"unwind\"){return EXITSTATUS}quit_(1,e)}function ___cxa_allocate_exception(size){return _malloc(size+16)+16}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-16;this.set_type=function(type){HEAP32[this.ptr+4>>>2]=type};this.get_type=function(){return HEAP32[this.ptr+4>>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+8>>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+8>>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>>2];HEAP32[this.ptr>>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>>2];HEAP32[this.ptr>>>2]=prev-1;return prev===1}}function CatchInfo(ptr){this.free=function(){_free(this.ptr);this.ptr=0};this.set_base_ptr=function(basePtr){HEAP32[this.ptr>>>2]=basePtr};this.get_base_ptr=function(){return HEAP32[this.ptr>>>2]};this.set_adjusted_ptr=function(adjustedPtr){HEAP32[this.ptr+4>>>2]=adjustedPtr};this.get_adjusted_ptr_addr=function(){return this.ptr+4};this.get_adjusted_ptr=function(){return HEAP32[this.ptr+4>>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_exception_info().get_type());if(isPointer){return HEAP32[this.get_base_ptr()>>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.get_base_ptr()};this.get_exception_info=function(){return new ExceptionInfo(this.get_base_ptr())};if(ptr===undefined){this.ptr=_malloc(8);this.set_adjusted_ptr(0)}else{this.ptr=ptr}}var exceptionCaught=[];function exception_addRef(info){info.add_ref()}var uncaughtExceptionCount=0;function ___cxa_begin_catch(ptr){var catchInfo=new CatchInfo(ptr);var info=catchInfo.get_exception_info();if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--}info.set_rethrown(false);exceptionCaught.push(catchInfo);exception_addRef(info);return catchInfo.get_exception_ptr()}var exceptionLast=0;function ___cxa_free_exception(ptr){return _free(new ExceptionInfo(ptr).ptr)}function exception_decRef(info){if(info.release_ref()&&!info.get_rethrown()){var destructor=info.get_destructor();if(destructor){getWasmTableEntry(destructor)(info.excPtr)}___cxa_free_exception(info.excPtr)}}function ___cxa_end_catch(){_setThrew(0);var catchInfo=exceptionCaught.pop();exception_decRef(catchInfo.get_exception_info());catchInfo.free();exceptionLast=0}function ___resumeException(catchInfoPtr){var catchInfo=new CatchInfo(catchInfoPtr);var ptr=catchInfo.get_base_ptr();if(!exceptionLast){exceptionLast=ptr}catchInfo.free();throw ptr}function ___cxa_find_matching_catch_2(){var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0|0}var info=new ExceptionInfo(thrown);var thrownType=info.get_type();var catchInfo=new CatchInfo;catchInfo.set_base_ptr(thrown);catchInfo.set_adjusted_ptr(thrown);if(!thrownType){setTempRet0(0);return catchInfo.ptr|0}var typeArray=Array.prototype.slice.call(arguments);for(var i=0;i<typeArray.length;i++){var caughtType=typeArray[i];if(caughtType===0||caughtType===thrownType){break}if(___cxa_can_catch(caughtType,thrownType,catchInfo.get_adjusted_ptr_addr())){setTempRet0(caughtType);return catchInfo.ptr|0}}setTempRet0(thrownType);return catchInfo.ptr|0}function ___cxa_find_matching_catch_3(){var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0|0}var info=new ExceptionInfo(thrown);var thrownType=info.get_type();var catchInfo=new CatchInfo;catchInfo.set_base_ptr(thrown);catchInfo.set_adjusted_ptr(thrown);if(!thrownType){setTempRet0(0);return catchInfo.ptr|0}var typeArray=Array.prototype.slice.call(arguments);for(var i=0;i<typeArray.length;i++){var caughtType=typeArray[i];if(caughtType===0||caughtType===thrownType){break}if(___cxa_can_catch(caughtType,thrownType,catchInfo.get_adjusted_ptr_addr())){setTempRet0(caughtType);return catchInfo.ptr|0}}setTempRet0(thrownType);return catchInfo.ptr|0}function ___cxa_find_matching_catch_4(){var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0|0}var info=new ExceptionInfo(thrown);var thrownType=info.get_type();var catchInfo=new CatchInfo;catchInfo.set_base_ptr(thrown);catchInfo.set_adjusted_ptr(thrown);if(!thrownType){setTempRet0(0);return catchInfo.ptr|0}var typeArray=Array.prototype.slice.call(arguments);for(var i=0;i<typeArray.length;i++){var caughtType=typeArray[i];if(caughtType===0||caughtType===thrownType){break}if(___cxa_can_catch(caughtType,thrownType,catchInfo.get_adjusted_ptr_addr())){setTempRet0(caughtType);return catchInfo.ptr|0}}setTempRet0(thrownType);return catchInfo.ptr|0}function ___cxa_find_matching_catch_5(){var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0|0}var info=new ExceptionInfo(thrown);var thrownType=info.get_type();var catchInfo=new CatchInfo;catchInfo.set_base_ptr(thrown);catchInfo.set_adjusted_ptr(thrown);if(!thrownType){setTempRet0(0);return catchInfo.ptr|0}var typeArray=Array.prototype.slice.call(arguments);for(var i=0;i<typeArray.length;i++){var caughtType=typeArray[i];if(caughtType===0||caughtType===thrownType){break}if(___cxa_can_catch(caughtType,thrownType,catchInfo.get_adjusted_ptr_addr())){setTempRet0(caughtType);return catchInfo.ptr|0}}setTempRet0(thrownType);return catchInfo.ptr|0}function ___cxa_find_matching_catch_6(){var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0|0}var info=new ExceptionInfo(thrown);var thrownType=info.get_type();var catchInfo=new CatchInfo;catchInfo.set_base_ptr(thrown);catchInfo.set_adjusted_ptr(thrown);if(!thrownType){setTempRet0(0);return catchInfo.ptr|0}var typeArray=Array.prototype.slice.call(arguments);for(var i=0;i<typeArray.length;i++){var caughtType=typeArray[i];if(caughtType===0||caughtType===thrownType){break}if(___cxa_can_catch(caughtType,thrownType,catchInfo.get_adjusted_ptr_addr())){setTempRet0(caughtType);return catchInfo.ptr|0}}setTempRet0(thrownType);return catchInfo.ptr|0}function ___cxa_find_matching_catch_7(){var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0|0}var info=new ExceptionInfo(thrown);var thrownType=info.get_type();var catchInfo=new CatchInfo;catchInfo.set_base_ptr(thrown);catchInfo.set_adjusted_ptr(thrown);if(!thrownType){setTempRet0(0);return catchInfo.ptr|0}var typeArray=Array.prototype.slice.call(arguments);for(var i=0;i<typeArray.length;i++){var caughtType=typeArray[i];if(caughtType===0||caughtType===thrownType){break}if(___cxa_can_catch(caughtType,thrownType,catchInfo.get_adjusted_ptr_addr())){setTempRet0(caughtType);return catchInfo.ptr|0}}setTempRet0(thrownType);return catchInfo.ptr|0}function ___cxa_rethrow(){var catchInfo=exceptionCaught.pop();if(!catchInfo){abort(\"no exception to throw\")}var info=catchInfo.get_exception_info();var ptr=catchInfo.get_base_ptr();if(!info.get_rethrown()){exceptionCaught.push(catchInfo);info.set_rethrown(true);info.set_caught(false);uncaughtExceptionCount++}else{catchInfo.free()}exceptionLast=ptr;throw ptr}function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function ___cxa_uncaught_exceptions(){return uncaughtExceptionCount}var SYSCALLS={buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function ___syscall__newselect(nfds,readfds,writefds,exceptfds,timeout){}function SOCKFS(){err(\"missing function: $SOCKFS\");abort(-1)}function FS(){err(\"missing function: $FS\");abort(-1)}function getSocketFromFD(fd){var socket=SOCKFS.getSocket(fd);if(!socket)throw new FS.ErrnoError(8);return socket}function setErrNo(value){HEAP32[___errno_location()>>>2]=value;return value}function inetNtop4(addr){return(addr&255)+\".\"+(addr>>8&255)+\".\"+(addr>>16&255)+\".\"+(addr>>24&255)}function inetNtop6(ints){var str=\"\";var word=0;var longest=0;var lastzero=0;var zstart=0;var len=0;var i=0;var parts=[ints[0]&65535,ints[0]>>16,ints[1]&65535,ints[1]>>16,ints[2]&65535,ints[2]>>16,ints[3]&65535,ints[3]>>16];var hasipv4=true;var v4part=\"\";for(i=0;i<5;i++){if(parts[i]!==0){hasipv4=false;break}}if(hasipv4){v4part=inetNtop4(parts[6]|parts[7]<<16);if(parts[5]===-1){str=\"::ffff:\";str+=v4part;return str}if(parts[5]===0){str=\"::\";if(v4part===\"0.0.0.0\")v4part=\"\";if(v4part===\"0.0.0.1\")v4part=\"1\";str+=v4part;return str}}for(word=0;word<8;word++){if(parts[word]===0){if(word-lastzero>1){len=0}lastzero=word;len++}if(len>longest){longest=len;zstart=word-longest+1}}for(word=0;word<8;word++){if(longest>1){if(parts[word]===0&&word>=zstart&&word<zstart+longest){if(word===zstart){str+=\":\";if(zstart===0)str+=\":\"}continue}}str+=Number(_ntohs(parts[word]&65535)).toString(16);str+=word<7?\":\":\"\"}return str}function readSockaddr(sa,salen){var family=HEAP16[sa>>>1];var port=_ntohs(HEAPU16[sa+2>>>1]);var addr;switch(family){case 2:if(salen!==16){return{errno:28}}addr=HEAP32[sa+4>>>2];addr=inetNtop4(addr);break;case 10:if(salen!==28){return{errno:28}}addr=[HEAP32[sa+8>>>2],HEAP32[sa+12>>>2],HEAP32[sa+16>>>2],HEAP32[sa+20>>>2]];addr=inetNtop6(addr);break;default:return{errno:5}}return{family:family,addr:addr,port:port}}function inetPton4(str){var b=str.split(\".\");for(var i=0;i<4;i++){var tmp=Number(b[i]);if(isNaN(tmp))return null;b[i]=tmp}return(b[0]|b[1]<<8|b[2]<<16|b[3]<<24)>>>0}function jstoi_q(str){return parseInt(str)}function inetPton6(str){var words;var w,offset,z;var valid6regx=/^((?=.*::)(?!.*::.+::)(::)?([\\dA-F]{1,4}:(:|\\b)|){5}|([\\dA-F]{1,4}:){6})((([\\dA-F]{1,4}((?!\\3)::|:\\b|$))|(?!\\2\\3)){2}|(((2[0-4]|1\\d|[1-9])?\\d|25[0-5])\\.?\\b){4})$/i;var parts=[];if(!valid6regx.test(str)){return null}if(str===\"::\"){return[0,0,0,0,0,0,0,0]}if(str.startsWith(\"::\")){str=str.replace(\"::\",\"Z:\")}else{str=str.replace(\"::\",\":Z:\")}if(str.indexOf(\".\")>0){str=str.replace(new RegExp(\"[.]\",\"g\"),\":\");words=str.split(\":\");words[words.length-4]=jstoi_q(words[words.length-4])+jstoi_q(words[words.length-3])*256;words[words.length-3]=jstoi_q(words[words.length-2])+jstoi_q(words[words.length-1])*256;words=words.slice(0,words.length-2)}else{words=str.split(\":\")}offset=0;z=0;for(w=0;w<words.length;w++){if(typeof words[w]==\"string\"){if(words[w]===\"Z\"){for(z=0;z<8-words.length+1;z++){parts[w+z]=0}offset=z-1}else{parts[w+offset]=_htons(parseInt(words[w],16))}}else{parts[w+offset]=words[w]}}return[parts[1]<<16|parts[0],parts[3]<<16|parts[2],parts[5]<<16|parts[4],parts[7]<<16|parts[6]]}var DNS={address_map:{id:1,addrs:{},names:{}},lookup_name:function(name){var res=inetPton4(name);if(res!==null){return name}res=inetPton6(name);if(res!==null){return name}var addr;if(DNS.address_map.addrs[name]){addr=DNS.address_map.addrs[name]}else{var id=DNS.address_map.id++;assert(id<65535,\"exceeded max address mappings of 65535\");addr=\"172.29.\"+(id&255)+\".\"+(id&65280);DNS.address_map.names[addr]=name;DNS.address_map.addrs[name]=addr}return addr},lookup_addr:function(addr){if(DNS.address_map.names[addr]){return DNS.address_map.names[addr]}return null}};function getSocketAddress(addrp,addrlen,allowNull){if(allowNull&&addrp===0)return null;var info=readSockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}function ___syscall_bind(fd,addr,addrlen){var sock=getSocketFromFD(fd);var info=getSocketAddress(addr,addrlen);sock.sock_ops.bind(sock,info.addr,info.port);return 0}function ___syscall_connect(fd,addr,addrlen){var sock=getSocketFromFD(fd);var info=getSocketAddress(addr,addrlen);sock.sock_ops.connect(sock,info.addr,info.port);return 0}function ___syscall_faccessat(dirfd,path,amode,flags){path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);return SYSCALLS.doAccess(path,amode)}function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;return 0}function ___syscall_fstat64(fd,buf){}function ___syscall_fstatat64(dirfd,path,buf,flags){}function ___syscall_ftruncate64(fd,low,high){}function ___syscall_getdents64(fd,dirp,count){}function zeroMemory(address,size){HEAPU8.fill(0,address,address+size)}function writeSockaddr(sa,family,addr,port,addrlen){switch(family){case 2:addr=inetPton4(addr);zeroMemory(sa,16);if(addrlen){HEAP32[addrlen>>>2]=16}HEAP16[sa>>>1]=family;HEAP32[sa+4>>>2]=addr;HEAP16[sa+2>>>1]=_htons(port);break;case 10:addr=inetPton6(addr);zeroMemory(sa,28);if(addrlen){HEAP32[addrlen>>>2]=28}HEAP32[sa>>>2]=family;HEAP32[sa+8>>>2]=addr[0];HEAP32[sa+12>>>2]=addr[1];HEAP32[sa+16>>>2]=addr[2];HEAP32[sa+20>>>2]=addr[3];HEAP16[sa+2>>>1]=_htons(port);break;default:return 5}return 0}function ___syscall_getpeername(fd,addr,addrlen){var sock=getSocketFromFD(fd);if(!sock.daddr){return-53}var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(sock.daddr),sock.dport,addrlen);return 0}function ___syscall_getsockopt(fd,level,optname,optval,optlen){var sock=getSocketFromFD(fd);if(level===1){if(optname===4){HEAP32[optval>>>2]=sock.error;HEAP32[optlen>>>2]=4;sock.error=null;return 0}}return-50}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;return 0}function ___syscall_lstat64(path,buf){}function ___syscall_mkdir(path,mode){path=SYSCALLS.getStr(path);return SYSCALLS.doMkdir(path,mode)}function ___syscall_open(path,flags,varargs){SYSCALLS.varargs=varargs}function ___syscall_recvfrom(fd,buf,len,flags,addr,addrlen){var sock=getSocketFromFD(fd);var msg=sock.sock_ops.recvmsg(sock,len);if(!msg)return 0;if(addr){var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(msg.addr),msg.port,addrlen)}HEAPU8.set(msg.buffer,buf>>>0);return msg.buffer.byteLength}function ___syscall_rename(old_path,new_path){}function ___syscall_rmdir(path){}function ___syscall_sendto(fd,message,length,flags,addr,addr_len){}function ___syscall_socket(domain,type,protocol){}function ___syscall_stat64(path,buf){}function ___syscall_unlink(path){}function __dlopen_js(filename,flag){abort(\"To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking\")}function __dlsym_js(handle,symbol){abort(\"To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking\")}function __localtime_js(time,tmPtr){var date=new Date(HEAP32[time>>>2]*1e3);HEAP32[tmPtr>>>2]=date.getSeconds();HEAP32[tmPtr+4>>>2]=date.getMinutes();HEAP32[tmPtr+8>>>2]=date.getHours();HEAP32[tmPtr+12>>>2]=date.getDate();HEAP32[tmPtr+16>>>2]=date.getMonth();HEAP32[tmPtr+20>>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>>2]=yday;HEAP32[tmPtr+36>>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>>2]=dst}function __mmap_js(addr,len,prot,flags,fd,off,allocated,builtin){return-52}function __munmap_js(addr,len,prot,flags,fd,offset){addr>>>=0}function _tzset_impl(timezone,daylight,tzname){var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAP32[timezone>>>2]=stdTimezoneOffset*60;HEAP32[daylight>>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);return match?match[1]:\"GMT\"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summerOffset<winterOffset){HEAP32[tzname>>>2]=winterNamePtr;HEAP32[tzname+4>>>2]=summerNamePtr}else{HEAP32[tzname>>>2]=summerNamePtr;HEAP32[tzname+4>>>2]=winterNamePtr}}function __tzset_js(timezone,daylight,tzname){if(__tzset_js.called)return;__tzset_js.called=true;_tzset_impl(timezone,daylight,tzname)}function _abort(){abort(\"\")}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=(()=>{var t=process[\"hrtime\"]();return t[0]*1e3+t[1]/1e6})}else _emscripten_get_now=(()=>performance.now());var _emscripten_get_now_is_monotonic=true;function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>>2]=now/1e3|0;HEAP32[tp+4>>>2]=now%1e3*1e3*1e3|0;return 0}function _duckdb_web_fs_directory_create(path,pathLen){return globalThis.DUCKDB_RUNTIME.createDirectory(Module,path,pathLen)}function _duckdb_web_fs_directory_exists(path,pathLen){return globalThis.DUCKDB_RUNTIME.checkDirectory(Module,path,pathLen)}function _duckdb_web_fs_directory_list_files(path,pathLen){return globalThis.DUCKDB_RUNTIME.listDirectoryEntries(Module,path,pathLen)}function _duckdb_web_fs_directory_remove(path,pathLen){return globalThis.DUCKDB_RUNTIME.removeDirectory(Module,path,pathLen)}function _duckdb_web_fs_file_close(fileId){return globalThis.DUCKDB_RUNTIME.closeFile(Module,fileId)}function _duckdb_web_fs_file_exists(path,pathLen){return globalThis.DUCKDB_RUNTIME.checkFile(Module,path,pathLen)}function _duckdb_web_fs_file_get_last_modified_time(fileId){return globalThis.DUCKDB_RUNTIME.getLastFileModificationTime(Module,fileId)}function _duckdb_web_fs_file_move(from,fromLen,to,toLen){return globalThis.DUCKDB_RUNTIME.moveFile(Module,from,fromLen,to,toLen)}function _duckdb_web_fs_file_open(fileId,flags){return globalThis.DUCKDB_RUNTIME.openFile(Module,fileId,flags)}function _duckdb_web_fs_file_read(fileId,buf,size,location){return globalThis.DUCKDB_RUNTIME.readFile(Module,fileId,buf,size,location)}function _duckdb_web_fs_file_truncate(fileId,newSize){return globalThis.DUCKDB_RUNTIME.truncateFile(Module,fileId,newSize)}function _duckdb_web_fs_file_write(fileId,buf,size,location){return globalThis.DUCKDB_RUNTIME.writeFile(Module,fileId,buf,size,location)}function _duckdb_web_fs_get_default_data_protocol(Module){return globalThis.DUCKDB_RUNTIME.getDefaultDataProtocol(Module)}function _duckdb_web_fs_glob(path,pathLen){return globalThis.DUCKDB_RUNTIME.glob(Module,path,pathLen)}function _duckdb_web_test_platform_feature(feature){return globalThis.DUCKDB_RUNTIME.testPlatformFeature(Module,feature)}function _duckdb_web_udf_scalar_call(funcId,descPtr,descSize,ptrsPtr,ptrsSize,response){return globalThis.DUCKDB_RUNTIME.callScalarUDF(Module,funcId,descPtr,descSize,ptrsPtr,ptrsSize,response)}function _emscripten_get_heap_max(){return 4294901760}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest>>>0,src>>>0,src+num>>>0)}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=_emscripten_get_heap_max();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ENV={};function getExecutableName(){return thisProgram||\"./this.program\"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==\"object\"&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={\"USER\":\"web_user\",\"LOGNAME\":\"web_user\",\"PATH\":\"/\",\"PWD\":\"/\",\"HOME\":\"/home/web_user\",\"LANG\":lang,\"_\":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+\"=\"+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>>2]=bufSize;return 0}function _fd_close(fd){return 0}function _fd_fdstat_get(fd,pbuf){var type=fd==1||fd==2?2:abort();HEAP8[pbuf>>>0]=type;return 0}function _fd_pread(fd,iov,iovcnt,offset_low,offset_high,pnum){var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt,offset_low);HEAP32[pnum>>>2]=num;return 0}function _fd_pwrite(fd,iov,iovcnt,offset_low,offset_high,pnum){var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt,offset_low);HEAP32[pnum>>>2]=num;return 0}function _fd_read(fd,iov,iovcnt,pnum){var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>>2]=num;return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_sync(fd){var stream=SYSCALLS.getStreamFromFD(fd);if(stream.stream_ops&&stream.stream_ops.fsync){return-stream.stream_ops.fsync(stream)}return 0}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov>>>2];var len=HEAP32[iov+4>>>2];iov+=8;for(var j=0;j<len;j++){SYSCALLS.printChar(fd,HEAPU8[ptr+j>>>0])}num+=len}HEAP32[pnum>>>2]=num;return 0}function _getTempRet0(){return getTempRet0()}function _getaddrinfo(node,service,hint,out){var addr=0;var port=0;var flags=0;var family=0;var type=0;var proto=0;var ai;function allocaddrinfo(family,type,proto,canon,addr,port){var sa,salen,ai;var errno;salen=family===10?28:16;addr=family===10?inetNtop6(addr):inetNtop4(addr);sa=_malloc(salen);errno=writeSockaddr(sa,family,addr,port);assert(!errno);ai=_malloc(32);HEAP32[ai+4>>>2]=family;HEAP32[ai+8>>>2]=type;HEAP32[ai+12>>>2]=proto;HEAP32[ai+24>>>2]=canon;HEAP32[ai+20>>>2]=sa;if(family===10){HEAP32[ai+16>>>2]=28}else{HEAP32[ai+16>>>2]=16}HEAP32[ai+28>>>2]=0;return ai}if(hint){flags=HEAP32[hint>>>2];family=HEAP32[hint+4>>>2];type=HEAP32[hint+8>>>2];proto=HEAP32[hint+12>>>2]}if(type&&!proto){proto=type===2?17:6}if(!type&&proto){type=proto===17?2:1}if(proto===0){proto=6}if(type===0){type=1}if(!node&&!service){return-2}if(flags&~(1|2|4|1024|8|16|32)){return-1}if(hint!==0&&HEAP32[hint>>>2]&2&&!node){return-1}if(flags&32){return-2}if(type!==0&&type!==1&&type!==2){return-7}if(family!==0&&family!==2&&family!==10){return-6}if(service){service=UTF8ToString(service);port=parseInt(service,10);if(isNaN(port)){if(flags&1024){return-2}return-8}}if(!node){if(family===0){family=2}if((flags&1)===0){if(family===2){addr=_htonl(2130706433)}else{addr=[0,0,0,1]}}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAP32[out>>>2]=ai;return 0}node=UTF8ToString(node);addr=inetPton4(node);if(addr!==null){if(family===0||family===2){family=2}else if(family===10&&flags&8){addr=[0,0,_htonl(65535),addr];family=10}else{return-2}}else{addr=inetPton6(node);if(addr!==null){if(family===0||family===10){family=10}else{return-2}}}if(addr!=null){ai=allocaddrinfo(family,type,proto,node,addr,port);HEAP32[out>>>2]=ai;return 0}if(flags&4){return-2}node=DNS.lookup_name(node);addr=inetPton4(node);if(family===0){family=2}else if(family===10){addr=[0,0,_htonl(65535),addr]}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAP32[out>>>2]=ai;return 0}function getRandomDevice(){if(typeof crypto==\"object\"&&typeof crypto[\"getRandomValues\"]==\"function\"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require(\"crypto\");return function(){return crypto_module[\"randomBytes\"](1)[0]}}catch(e){}}return function(){abort(\"randomDevice\")}}function _getentropy(buffer,size){if(!_getentropy.randomDevice){_getentropy.randomDevice=getRandomDevice()}for(var i=0;i<size;i++){HEAP8[buffer+i>>>0]=_getentropy.randomDevice()}return 0}function _getnameinfo(sa,salen,node,nodelen,serv,servlen,flags){var info=readSockaddr(sa,salen);if(info.errno){return-6}var port=info.port;var addr=info.addr;var overflowed=false;if(node&&nodelen){var lookup;if(flags&1||!(lookup=DNS.lookup_addr(addr))){if(flags&8){return-2}}else{addr=lookup}var numBytesWrittenExclNull=stringToUTF8(addr,node,nodelen);if(numBytesWrittenExclNull+1>=nodelen){overflowed=true}}if(serv&&servlen){port=\"\"+port;var numBytesWrittenExclNull=stringToUTF8(port,serv,servlen);if(numBytesWrittenExclNull+1>=servlen){overflowed=true}}if(overflowed){return-12}return 0}function _gettimeofday(ptr){var now=Date.now();HEAP32[ptr>>>2]=now/1e3|0;HEAP32[ptr+4>>>2]=now%1e3*1e3|0;return 0}function _llvm_eh_typeid_for(type){return type}function _setTempRet0(val){setTempRet0(val)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>>2];var date={tm_sec:HEAP32[tm>>>2],tm_min:HEAP32[tm+4>>>2],tm_hour:HEAP32[tm+8>>>2],tm_mday:HEAP32[tm+12>>>2],tm_mon:HEAP32[tm+16>>>2],tm_year:HEAP32[tm+20>>>2],tm_wday:HEAP32[tm+24>>>2],tm_yday:HEAP32[tm+28>>>2],tm_isdst:HEAP32[tm+32>>>2],tm_gmtoff:HEAP32[tm+36>>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):\"\"};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={\"%c\":\"%a %b %d %H:%M:%S %Y\",\"%D\":\"%m/%d/%y\",\"%F\":\"%Y-%m-%d\",\"%h\":\"%b\",\"%r\":\"%I:%M:%S %p\",\"%R\":\"%H:%M\",\"%T\":\"%H:%M:%S\",\"%x\":\"%m/%d/%y\",\"%X\":\"%H:%M:%S\",\"%Ec\":\"%c\",\"%EC\":\"%C\",\"%Ex\":\"%m/%d/%y\",\"%EX\":\"%H:%M:%S\",\"%Ey\":\"%y\",\"%EY\":\"%Y\",\"%Od\":\"%d\",\"%Oe\":\"%e\",\"%OH\":\"%H\",\"%OI\":\"%I\",\"%Om\":\"%m\",\"%OM\":\"%M\",\"%OS\":\"%S\",\"%Ou\":\"%u\",\"%OU\":\"%U\",\"%OV\":\"%V\",\"%Ow\":\"%w\",\"%OW\":\"%W\",\"%Oy\":\"%y\"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,\"g\"),EXPANSION_RULES_1[rule])}var WEEKDAYS=[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"];var MONTHS=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];function leadingSomething(value,digits,character){var str=typeof value==\"number\"?value.toString():value||\"\";while(str.length<digits){str=character[0]+str}return str}function leadingNulls(value,digits){return leadingSomething(value,digits,\"0\")}function compareByDay(date1,date2){function sgn(value){return value<0?-1:value>0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={\"%a\":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},\"%A\":function(date){return WEEKDAYS[date.tm_wday]},\"%b\":function(date){return MONTHS[date.tm_mon].substring(0,3)},\"%B\":function(date){return MONTHS[date.tm_mon]},\"%C\":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},\"%d\":function(date){return leadingNulls(date.tm_mday,2)},\"%e\":function(date){return leadingSomething(date.tm_mday,2,\" \")},\"%g\":function(date){return getWeekBasedYear(date).toString().substring(2)},\"%G\":function(date){return getWeekBasedYear(date)},\"%H\":function(date){return leadingNulls(date.tm_hour,2)},\"%I\":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},\"%j\":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},\"%m\":function(date){return leadingNulls(date.tm_mon+1,2)},\"%M\":function(date){return leadingNulls(date.tm_min,2)},\"%n\":function(){return\"\\n\"},\"%p\":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return\"AM\"}else{return\"PM\"}},\"%S\":function(date){return leadingNulls(date.tm_sec,2)},\"%t\":function(){return\"\\t\"},\"%u\":function(date){return date.tm_wday||7},\"%U\":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?\"01\":\"00\"},\"%V\":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return\"53\"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return\"01\"}var daysDifference;if(firstWeekStartThisYear.getFullYear()<date.tm_year+1900){daysDifference=date.tm_yday+32-firstWeekStartThisYear.getDate()}else{daysDifference=date.tm_yday+1-firstWeekStartThisYear.getDate()}return leadingNulls(Math.ceil(daysDifference/7),2)},\"%w\":function(date){return date.tm_wday},\"%W\":function(date){var janFirst=new Date(date.tm_year,0,1);var firstMonday=janFirst.getDay()===1?janFirst:__addDays(janFirst,janFirst.getDay()===0?1:7-janFirst.getDay()+1);var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstMonday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstMondayUntilEndJanuary=31-firstMonday.getDate();var days=firstMondayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstMonday,janFirst)===0?\"01\":\"00\"},\"%y\":function(date){return(date.tm_year+1900).toString().substring(2)},\"%Y\":function(date){return date.tm_year+1900},\"%z\":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?\"+\":\"-\")+String(\"0000\"+off).slice(-4)},\"%Z\":function(date){return date.tm_zone},\"%%\":function(){return\"%\"}};pattern=pattern.replace(/%%/g,\"\\0\\0\");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,\"g\"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\\0\\0/g,\"%\");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={\"k\":___cxa_allocate_exception,\"y\":___cxa_begin_catch,\"H\":___cxa_end_catch,\"b\":___cxa_find_matching_catch_2,\"n\":___cxa_find_matching_catch_3,\"D\":___cxa_find_matching_catch_4,\"Q\":___cxa_find_matching_catch_5,\"Y\":___cxa_find_matching_catch_6,\"Ma\":___cxa_find_matching_catch_7,\"i\":___cxa_free_exception,\"Ca\":___cxa_rethrow,\"w\":___cxa_throw,\"I\":___cxa_uncaught_exceptions,\"d\":___resumeException,\"cb\":___syscall__newselect,\"eb\":___syscall_bind,\"db\":___syscall_connect,\"Wa\":___syscall_faccessat,\"X\":___syscall_fcntl64,\"Va\":___syscall_fstat64,\"Ta\":___syscall_fstatat64,\"Ra\":___syscall_ftruncate64,\"Pa\":___syscall_getdents64,\"_a\":___syscall_getpeername,\"bb\":___syscall_getsockopt,\"za\":___syscall_ioctl,\"Sa\":___syscall_lstat64,\"Qa\":___syscall_mkdir,\"Aa\":___syscall_open,\"$a\":___syscall_recvfrom,\"$f\":___syscall_rename,\"Na\":___syscall_rmdir,\"ab\":___syscall_sendto,\"sa\":___syscall_socket,\"Ua\":___syscall_stat64,\"Oa\":___syscall_unlink,\"xa\":__dlopen_js,\"ib\":__dlsym_js,\"Gf\":__localtime_js,\"Vf\":__mmap_js,\"Wf\":__munmap_js,\"Hf\":__tzset_js,\"G\":_abort,\"wa\":_clock_gettime,\"Of\":_duckdb_web_fs_directory_create,\"Pf\":_duckdb_web_fs_directory_exists,\"Mf\":_duckdb_web_fs_directory_list_files,\"Nf\":_duckdb_web_fs_directory_remove,\"Ka\":_duckdb_web_fs_file_close,\"Kf\":_duckdb_web_fs_file_exists,\"Rf\":_duckdb_web_fs_file_get_last_modified_time,\"Lf\":_duckdb_web_fs_file_move,\"Sf\":_duckdb_web_fs_file_open,\"ka\":_duckdb_web_fs_file_read,\"Qf\":_duckdb_web_fs_file_truncate,\"La\":_duckdb_web_fs_file_write,\"Tf\":_duckdb_web_fs_get_default_data_protocol,\"Jf\":_duckdb_web_fs_glob,\"Ja\":_duckdb_web_test_platform_feature,\"Uf\":_duckdb_web_udf_scalar_call,\"kb\":_emscripten_get_heap_max,\"Mc\":_emscripten_memcpy_big,\"Fe\":_emscripten_resize_heap,\"gc\":_environ_get,\"rc\":_environ_sizes_get,\"da\":_fd_close,\"jb\":_fd_fdstat_get,\"Tb\":_fd_pread,\"Sb\":_fd_pwrite,\"ya\":_fd_read,\"pf\":_fd_seek,\"ag\":_fd_sync,\"ma\":_fd_write,\"a\":_getTempRet0,\"fb\":_getaddrinfo,\"_f\":_getentropy,\"Za\":_getnameinfo,\"If\":_gettimeofday,\"N\":invoke_d,\"ea\":invoke_dd,\"R\":invoke_di,\"Bf\":invoke_didd,\"la\":invoke_dii,\"Ia\":invoke_diidddi,\"_\":invoke_diii,\"Ea\":invoke_diiidiiiid,\"Ef\":invoke_diiiii,\"V\":invoke_diiiiid,\"oc\":invoke_diijii,\"$b\":invoke_diijjjj,\"ob\":invoke_dij,\"Z\":invoke_fi,\"Da\":invoke_fiii,\"pc\":invoke_fiijii,\"ac\":invoke_fiijjjj,\"r\":invoke_i,\"fa\":invoke_id,\"Yf\":invoke_idd,\"ia\":invoke_idiii,\"Ff\":invoke_idiiiii,\"va\":invoke_if,\"Zf\":invoke_iff,\"e\":invoke_ii,\"U\":invoke_iid,\"O\":invoke_iidii,\"na\":invoke_iidiii,\"ga\":invoke_iidiiii,\"c\":invoke_iii,\"ba\":invoke_iiid,\"qa\":invoke_iiidiii,\"Bc\":invoke_iiidj,\"h\":invoke_iiii,\"Ya\":invoke_iiiid,\"pa\":invoke_iiiiddiii,\"oa\":invoke_iiiidii,\"xc\":invoke_iiiidjj,\"l\":invoke_iiiii,\"Ba\":invoke_iiiiid,\"Df\":invoke_iiiiidi,\"ca\":invoke_iiiiidii,\"o\":invoke_iiiiii,\"Xa\":invoke_iiiiiid,\"t\":invoke_iiiiiii,\"x\":invoke_iiiiiiii,\"M\":invoke_iiiiiiiii,\"T\":invoke_iiiiiiiiii,\"W\":invoke_iiiiiiiiiii,\"s\":invoke_iiiiiiiiiiii,\"C\":invoke_iiiiiiiiiiiii,\"ta\":invoke_iiiiiiiiiiiiiiii,\"J\":invoke_iiiiiiiiiiiiiiiii,\"v\":invoke_iiiiiiiiiiiiiiiiii,\"tc\":invoke_iiiiiiiiiiiij,\"Jc\":invoke_iiiiiiiiiiji,\"Ac\":invoke_iiiiiiiiijiiiiiii,\"Se\":invoke_iiiiiiiij,\"wc\":invoke_iiiiiiiiji,\"Wd\":invoke_iiiiiiij,\"Cc\":invoke_iiiiiiiji,\"Ye\":invoke_iiiiiiijii,\"Vd\":invoke_iiiiiiijj,\"xb\":invoke_iiiiiiijji,\"Te\":invoke_iiiiiij,\"Zd\":invoke_iiiiiiji,\"rb\":invoke_iiiiiijii,\"td\":invoke_iiiiiijjiijjji,\"rf\":invoke_iiiiij,\"Rd\":invoke_iiiiiji,\"Ze\":invoke_iiiiijii,\"Oc\":invoke_iiiiijiii,\"Pc\":invoke_iiiiijij,\"qf\":invoke_iiiiijj,\"ub\":invoke_iiiiijjj,\"sb\":invoke_iiiiijjji,\"Qe\":invoke_iiiij,\"Sd\":invoke_iiiiji,\"Xd\":invoke_iiiijii,\"Yd\":invoke_iiiijiii,\"ce\":invoke_iiiijj,\"ud\":invoke_iiiijji,\"vd\":invoke_iiiijjii,\"Ue\":invoke_iiiijjiii,\"Vc\":invoke_iiiijjj,\"wf\":invoke_iiij,\"$e\":invoke_iiiji,\"Xe\":invoke_iiijii,\"Od\":invoke_iiijiii,\"vc\":invoke_iiijiiiij,\"Hb\":invoke_iiijiiiijj,\"uc\":invoke_iiijiiij,\"Cb\":invoke_iiijiiijj,\"Uc\":invoke_iiijiij,\"Rb\":invoke_iiijiiji,\"Gb\":invoke_iiijiijj,\"De\":invoke_iiijij,\"xf\":invoke_iiijj,\"be\":invoke_iiijji,\"sd\":invoke_iiijjii,\"hc\":invoke_iiijjiii,\"yc\":invoke_iiijjiij,\"zc\":invoke_iiijjiiji,\"wd\":invoke_iiijjijjiii,\"Kd\":invoke_iiijjj,\"Bb\":invoke_iiijjji,\"od\":invoke_iiijjjj,\"ff\":invoke_iij,\"df\":invoke_iiji,\"Dc\":invoke_iijii,\"Ob\":invoke_iijiii,\"lc\":invoke_iijiiii,\"Db\":invoke_iijiiijj,\"Qb\":invoke_iijiij,\"Eb\":invoke_iijiijj,\"Jd\":invoke_iijiji,\"Qd\":invoke_iijj,\"fc\":invoke_iijji,\"jc\":invoke_iijjii,\"ic\":invoke_iijjiii,\"qb\":invoke_iijjij,\"Vb\":invoke_iijjijj,\"ze\":invoke_iijjj,\"tb\":invoke_iijjjii,\"Hd\":invoke_ij,\"ue\":invoke_iji,\"cd\":invoke_ijii,\"Zc\":invoke_ijji,\"We\":invoke_ijjiii,\"cc\":invoke_ijjji,\"Ve\":invoke_j,\"$d\":invoke_jd,\"_d\":invoke_jf,\"uf\":invoke_ji,\"tf\":invoke_jii,\"Pe\":invoke_jiii,\"Af\":invoke_jiiii,\"Ud\":invoke_jiiiii,\"Nc\":invoke_jiiiiii,\"Fc\":invoke_jiiiiiii,\"Ge\":invoke_jiiiiijiiii,\"Xc\":invoke_jiiiij,\"xe\":invoke_jiiiiji,\"Le\":invoke_jiiiijii,\"Lc\":invoke_jiiiijiiii,\"rd\":invoke_jiiij,\"Cd\":invoke_jiiiji,\"Ke\":invoke_jiiijii,\"He\":invoke_jiiijiii,\"ke\":invoke_jiiijiijiii,\"dd\":invoke_jiiijj,\"Ic\":invoke_jiiijjj,\"af\":invoke_jiij,\"zd\":invoke_jiiji,\"Je\":invoke_jiijii,\"Ie\":invoke_jiijiii,\"Ec\":invoke_jiijj,\"Kc\":invoke_jiijjjii,\"Pd\":invoke_jij,\"mb\":invoke_jiji,\"jd\":invoke_jijiii,\"vb\":invoke_jijiiii,\"gd\":invoke_jijij,\"ed\":invoke_jijj,\"Yc\":invoke_jijji,\"lb\":invoke_jijjiii,\"id\":invoke_jijjij,\"Qc\":invoke_jijjjjii,\"nb\":invoke_jijjjjjd,\"de\":invoke_jj,\"Yb\":invoke_jji,\"fd\":invoke_jjiji,\"$c\":invoke_jjj,\"Zb\":invoke_jjjii,\"_b\":invoke_jjjji,\"_c\":invoke_jjjjjjd,\"u\":invoke_v,\"gb\":invoke_vdii,\"Ha\":invoke_vdiiiii,\"Ga\":invoke_vdiiiiii,\"hb\":invoke_vfii,\"j\":invoke_vi,\"B\":invoke_vid,\"ra\":invoke_viddddi,\"$\":invoke_vidi,\"Fa\":invoke_vidiiii,\"L\":invoke_vif,\"f\":invoke_vii,\"S\":invoke_viid,\"aa\":invoke_viidii,\"g\":invoke_viii,\"Cf\":invoke_viiidi,\"m\":invoke_viiii,\"Xf\":invoke_viiiidiiii,\"q\":invoke_viiiii,\"p\":invoke_viiiiii,\"ua\":invoke_viiiiiidiii,\"A\":invoke_viiiiiii,\"E\":invoke_viiiiiiii,\"K\":invoke_viiiiiiiii,\"P\":invoke_viiiiiiiiii,\"ha\":invoke_viiiiiiiiiii,\"ja\":invoke_viiiiiiiiiiiiiii,\"jf\":invoke_viiiiiiijjjji,\"mf\":invoke_viiiiiij,\"Tc\":invoke_viiiiiiji,\"kf\":invoke_viiiiiijii,\"fe\":invoke_viiiiij,\"xd\":invoke_viiiiiji,\"dc\":invoke_viiiiijii,\"ad\":invoke_viiiiijiii,\"Ee\":invoke_viiiiijiiii,\"Pb\":invoke_viiiiijj,\"lf\":invoke_viiiiijjii,\"Kb\":invoke_viiiiijjji,\"hf\":invoke_viiiij,\"Me\":invoke_viiiiji,\"Rc\":invoke_viiiijii,\"Sc\":invoke_viiiijiii,\"Wb\":invoke_viiiijiiii,\"Xb\":invoke_viiiijiiiii,\"Id\":invoke_viiiijiiiiiiii,\"ie\":invoke_viiiijijji,\"nf\":invoke_viiiijj,\"sc\":invoke_viiiijji,\"he\":invoke_viiiijjij,\"ef\":invoke_viiij,\"Ae\":invoke_viiiji,\"_e\":invoke_viiijii,\"Wc\":invoke_viiijiii,\"ge\":invoke_viiijiiii,\"ne\":invoke_viiijiiiijjj,\"ee\":invoke_viiijiiijii,\"Ld\":invoke_viiijij,\"wb\":invoke_viiijiji,\"Md\":invoke_viiijijij,\"Hc\":invoke_viiijijj,\"Fb\":invoke_viiijijjj,\"vf\":invoke_viiijj,\"Nd\":invoke_viiijji,\"Td\":invoke_viiijjii,\"pd\":invoke_viiijjiii,\"le\":invoke_viiijjiij,\"re\":invoke_viiijjij,\"ve\":invoke_viiijjj,\"nd\":invoke_viiijjjj,\"Ab\":invoke_viiijjjji,\"yf\":invoke_viij,\"Ce\":invoke_viiji,\"sf\":invoke_viijii,\"qe\":invoke_viijiii,\"kc\":invoke_viijiiii,\"Ne\":invoke_viijiiiii,\"bc\":invoke_viijiiiiii,\"oe\":invoke_viijiiiij,\"ld\":invoke_viijiiij,\"hd\":invoke_viijiij,\"yd\":invoke_viijiiji,\"Jb\":invoke_viijiijj,\"Oe\":invoke_viijij,\"zb\":invoke_viijiji,\"je\":invoke_viijijiiii,\"me\":invoke_viijijiiiijjj,\"Lb\":invoke_viijijj,\"zf\":invoke_viijj,\"Be\":invoke_viijji,\"Gc\":invoke_viijjii,\"ye\":invoke_viijjj,\"te\":invoke_viijjji,\"of\":invoke_vij,\"gf\":invoke_viji,\"qd\":invoke_vijii,\"cf\":invoke_vijiii,\"mc\":invoke_vijiiii,\"ec\":invoke_vijiiiii,\"nc\":invoke_vijiiiiii,\"kd\":invoke_vijiiiji,\"Ib\":invoke_vijiij,\"Fd\":invoke_vijiji,\"ae\":invoke_vijijiiiijjj,\"we\":invoke_vijijj,\"pe\":invoke_vijijjiij,\"Mb\":invoke_vijijjji,\"se\":invoke_vijj,\"bf\":invoke_vijji,\"pb\":invoke_vijjii,\"yb\":invoke_vijjiii,\"Ed\":invoke_vijjij,\"md\":invoke_vijjj,\"Bd\":invoke_vijjji,\"Ub\":invoke_vj,\"bd\":invoke_vjii,\"Re\":invoke_vjiii,\"Gd\":invoke_vjiiii,\"qc\":invoke_vjiiiji,\"Dd\":invoke_vjjii,\"Ad\":invoke_vjjijij,\"z\":_llvm_eh_typeid_for,\"F\":_setTempRet0,\"Nb\":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"cg\"]).apply(null,arguments)};var _main=Module[\"_main\"]=function(){return(_main=Module[\"_main\"]=Module[\"asm\"][\"dg\"]).apply(null,arguments)};var _duckdb_web_fs_glob_add_path=Module[\"_duckdb_web_fs_glob_add_path\"]=function(){return(_duckdb_web_fs_glob_add_path=Module[\"_duckdb_web_fs_glob_add_path\"]=Module[\"asm\"][\"fg\"]).apply(null,arguments)};var _duckdb_web_clear_response=Module[\"_duckdb_web_clear_response\"]=function(){return(_duckdb_web_clear_response=Module[\"_duckdb_web_clear_response\"]=Module[\"asm\"][\"gg\"]).apply(null,arguments)};var _duckdb_web_fail_with=Module[\"_duckdb_web_fail_with\"]=function(){return(_duckdb_web_fail_with=Module[\"_duckdb_web_fail_with\"]=Module[\"asm\"][\"hg\"]).apply(null,arguments)};var _duckdb_web_reset=Module[\"_duckdb_web_reset\"]=function(){return(_duckdb_web_reset=Module[\"_duckdb_web_reset\"]=Module[\"asm\"][\"ig\"]).apply(null,arguments)};var _duckdb_web_connect=Module[\"_duckdb_web_connect\"]=function(){return(_duckdb_web_connect=Module[\"_duckdb_web_connect\"]=Module[\"asm\"][\"jg\"]).apply(null,arguments)};var _duckdb_web_disconnect=Module[\"_duckdb_web_disconnect\"]=function(){return(_duckdb_web_disconnect=Module[\"_duckdb_web_disconnect\"]=Module[\"asm\"][\"kg\"]).apply(null,arguments)};var _duckdb_web_flush_files=Module[\"_duckdb_web_flush_files\"]=function(){return(_duckdb_web_flush_files=Module[\"_duckdb_web_flush_files\"]=Module[\"asm\"][\"lg\"]).apply(null,arguments)};var _duckdb_web_flush_file=Module[\"_duckdb_web_flush_file\"]=function(){return(_duckdb_web_flush_file=Module[\"_duckdb_web_flush_file\"]=Module[\"asm\"][\"mg\"]).apply(null,arguments)};var _duckdb_web_open=Module[\"_duckdb_web_open\"]=function(){return(_duckdb_web_open=Module[\"_duckdb_web_open\"]=Module[\"asm\"][\"ng\"]).apply(null,arguments)};var _duckdb_web_get_global_file_info=Module[\"_duckdb_web_get_global_file_info\"]=function(){return(_duckdb_web_get_global_file_info=Module[\"_duckdb_web_get_global_file_info\"]=Module[\"asm\"][\"og\"]).apply(null,arguments)};var _duckdb_web_collect_file_stats=Module[\"_duckdb_web_collect_file_stats\"]=function(){return(_duckdb_web_collect_file_stats=Module[\"_duckdb_web_collect_file_stats\"]=Module[\"asm\"][\"pg\"]).apply(null,arguments)};var _duckdb_web_export_file_stats=Module[\"_duckdb_web_export_file_stats\"]=function(){return(_duckdb_web_export_file_stats=Module[\"_duckdb_web_export_file_stats\"]=Module[\"asm\"][\"qg\"]).apply(null,arguments)};var _duckdb_web_fs_drop_file=Module[\"_duckdb_web_fs_drop_file\"]=function(){return(_duckdb_web_fs_drop_file=Module[\"_duckdb_web_fs_drop_file\"]=Module[\"asm\"][\"rg\"]).apply(null,arguments)};var _duckdb_web_fs_drop_files=Module[\"_duckdb_web_fs_drop_files\"]=function(){return(_duckdb_web_fs_drop_files=Module[\"_duckdb_web_fs_drop_files\"]=Module[\"asm\"][\"sg\"]).apply(null,arguments)};var _duckdb_web_fs_glob_file_infos=Module[\"_duckdb_web_fs_glob_file_infos\"]=function(){return(_duckdb_web_fs_glob_file_infos=Module[\"_duckdb_web_fs_glob_file_infos\"]=Module[\"asm\"][\"tg\"]).apply(null,arguments)};var _duckdb_web_fs_get_file_info_by_id=Module[\"_duckdb_web_fs_get_file_info_by_id\"]=function(){return(_duckdb_web_fs_get_file_info_by_id=Module[\"_duckdb_web_fs_get_file_info_by_id\"]=Module[\"asm\"][\"ug\"]).apply(null,arguments)};var _duckdb_web_fs_get_file_info_by_name=Module[\"_duckdb_web_fs_get_file_info_by_name\"]=function(){return(_duckdb_web_fs_get_file_info_by_name=Module[\"_duckdb_web_fs_get_file_info_by_name\"]=Module[\"asm\"][\"vg\"]).apply(null,arguments)};var _duckdb_web_fs_register_file_url=Module[\"_duckdb_web_fs_register_file_url\"]=function(){return(_duckdb_web_fs_register_file_url=Module[\"_duckdb_web_fs_register_file_url\"]=Module[\"asm\"][\"wg\"]).apply(null,arguments)};var _duckdb_web_fs_register_file_buffer=Module[\"_duckdb_web_fs_register_file_buffer\"]=function(){return(_duckdb_web_fs_register_file_buffer=Module[\"_duckdb_web_fs_register_file_buffer\"]=Module[\"asm\"][\"xg\"]).apply(null,arguments)};var _duckdb_web_copy_file_to_buffer=Module[\"_duckdb_web_copy_file_to_buffer\"]=function(){return(_duckdb_web_copy_file_to_buffer=Module[\"_duckdb_web_copy_file_to_buffer\"]=Module[\"asm\"][\"yg\"]).apply(null,arguments)};var _duckdb_web_copy_file_to_path=Module[\"_duckdb_web_copy_file_to_path\"]=function(){return(_duckdb_web_copy_file_to_path=Module[\"_duckdb_web_copy_file_to_path\"]=Module[\"asm\"][\"zg\"]).apply(null,arguments)};var _duckdb_web_get_version=Module[\"_duckdb_web_get_version\"]=function(){return(_duckdb_web_get_version=Module[\"_duckdb_web_get_version\"]=Module[\"asm\"][\"Ag\"]).apply(null,arguments)};var _duckdb_web_get_feature_flags=Module[\"_duckdb_web_get_feature_flags\"]=function(){return(_duckdb_web_get_feature_flags=Module[\"_duckdb_web_get_feature_flags\"]=Module[\"asm\"][\"Bg\"]).apply(null,arguments)};var _duckdb_web_tokenize=Module[\"_duckdb_web_tokenize\"]=function(){return(_duckdb_web_tokenize=Module[\"_duckdb_web_tokenize\"]=Module[\"asm\"][\"Cg\"]).apply(null,arguments)};var _duckdb_web_udf_scalar_create=Module[\"_duckdb_web_udf_scalar_create\"]=function(){return(_duckdb_web_udf_scalar_create=Module[\"_duckdb_web_udf_scalar_create\"]=Module[\"asm\"][\"Dg\"]).apply(null,arguments)};var _duckdb_web_prepared_create=Module[\"_duckdb_web_prepared_create\"]=function(){return(_duckdb_web_prepared_create=Module[\"_duckdb_web_prepared_create\"]=Module[\"asm\"][\"Eg\"]).apply(null,arguments)};var _duckdb_web_prepared_close=Module[\"_duckdb_web_prepared_close\"]=function(){return(_duckdb_web_prepared_close=Module[\"_duckdb_web_prepared_close\"]=Module[\"asm\"][\"Fg\"]).apply(null,arguments)};var _duckdb_web_prepared_run=Module[\"_duckdb_web_prepared_run\"]=function(){return(_duckdb_web_prepared_run=Module[\"_duckdb_web_prepared_run\"]=Module[\"asm\"][\"Gg\"]).apply(null,arguments)};var _duckdb_web_prepared_send=Module[\"_duckdb_web_prepared_send\"]=function(){return(_duckdb_web_prepared_send=Module[\"_duckdb_web_prepared_send\"]=Module[\"asm\"][\"Hg\"]).apply(null,arguments)};var _duckdb_web_query_run=Module[\"_duckdb_web_query_run\"]=function(){return(_duckdb_web_query_run=Module[\"_duckdb_web_query_run\"]=Module[\"asm\"][\"Ig\"]).apply(null,arguments)};var _duckdb_web_pending_query_start=Module[\"_duckdb_web_pending_query_start\"]=function(){return(_duckdb_web_pending_query_start=Module[\"_duckdb_web_pending_query_start\"]=Module[\"asm\"][\"Jg\"]).apply(null,arguments)};var _duckdb_web_pending_query_poll=Module[\"_duckdb_web_pending_query_poll\"]=function(){return(_duckdb_web_pending_query_poll=Module[\"_duckdb_web_pending_query_poll\"]=Module[\"asm\"][\"Kg\"]).apply(null,arguments)};var _duckdb_web_pending_query_cancel=Module[\"_duckdb_web_pending_query_cancel\"]=function(){return(_duckdb_web_pending_query_cancel=Module[\"_duckdb_web_pending_query_cancel\"]=Module[\"asm\"][\"Lg\"]).apply(null,arguments)};var _duckdb_web_query_fetch_results=Module[\"_duckdb_web_query_fetch_results\"]=function(){return(_duckdb_web_query_fetch_results=Module[\"_duckdb_web_query_fetch_results\"]=Module[\"asm\"][\"Mg\"]).apply(null,arguments)};var _duckdb_web_get_tablenames=Module[\"_duckdb_web_get_tablenames\"]=function(){return(_duckdb_web_get_tablenames=Module[\"_duckdb_web_get_tablenames\"]=Module[\"asm\"][\"Ng\"]).apply(null,arguments)};var _duckdb_web_insert_arrow_from_ipc_stream=Module[\"_duckdb_web_insert_arrow_from_ipc_stream\"]=function(){return(_duckdb_web_insert_arrow_from_ipc_stream=Module[\"_duckdb_web_insert_arrow_from_ipc_stream\"]=Module[\"asm\"][\"Og\"]).apply(null,arguments)};var _duckdb_web_insert_csv_from_path=Module[\"_duckdb_web_insert_csv_from_path\"]=function(){return(_duckdb_web_insert_csv_from_path=Module[\"_duckdb_web_insert_csv_from_path\"]=Module[\"asm\"][\"Pg\"]).apply(null,arguments)};var _duckdb_web_insert_json_from_path=Module[\"_duckdb_web_insert_json_from_path\"]=function(){return(_duckdb_web_insert_json_from_path=Module[\"_duckdb_web_insert_json_from_path\"]=Module[\"asm\"][\"Qg\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"Rg\"]).apply(null,arguments)};var _htonl=Module[\"_htonl\"]=function(){return(_htonl=Module[\"_htonl\"]=Module[\"asm\"][\"Sg\"]).apply(null,arguments)};var _htons=Module[\"_htons\"]=function(){return(_htons=Module[\"_htons\"]=Module[\"asm\"][\"Tg\"]).apply(null,arguments)};var _ntohs=Module[\"_ntohs\"]=function(){return(_ntohs=Module[\"_ntohs\"]=Module[\"asm\"][\"Ug\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Vg\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Wg\"]).apply(null,arguments)};var _setThrew=Module[\"_setThrew\"]=function(){return(_setThrew=Module[\"_setThrew\"]=Module[\"asm\"][\"Xg\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"Yg\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"Zg\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"_g\"]).apply(null,arguments)};var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=function(){return(___cxa_can_catch=Module[\"___cxa_can_catch\"]=Module[\"asm\"][\"$g\"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=function(){return(___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=Module[\"asm\"][\"ah\"]).apply(null,arguments)};var dynCall_jiiii=Module[\"dynCall_jiiii\"]=function(){return(dynCall_jiiii=Module[\"dynCall_jiiii\"]=Module[\"asm\"][\"bh\"]).apply(null,arguments)};var dynCall_iiiiij=Module[\"dynCall_iiiiij\"]=function(){return(dynCall_iiiiij=Module[\"dynCall_iiiiij\"]=Module[\"asm\"][\"ch\"]).apply(null,arguments)};var dynCall_iiiiijj=Module[\"dynCall_iiiiijj\"]=function(){return(dynCall_iiiiijj=Module[\"dynCall_iiiiijj\"]=Module[\"asm\"][\"dh\"]).apply(null,arguments)};var dynCall_jiji=Module[\"dynCall_jiji\"]=function(){return(dynCall_jiji=Module[\"dynCall_jiji\"]=Module[\"asm\"][\"eh\"]).apply(null,arguments)};var dynCall_viijii=Module[\"dynCall_viijii\"]=function(){return(dynCall_viijii=Module[\"dynCall_viijii\"]=Module[\"asm\"][\"fh\"]).apply(null,arguments)};var dynCall_viiiij=Module[\"dynCall_viiiij\"]=function(){return(dynCall_viiiij=Module[\"dynCall_viiiij\"]=Module[\"asm\"][\"gh\"]).apply(null,arguments)};var dynCall_iij=Module[\"dynCall_iij\"]=function(){return(dynCall_iij=Module[\"dynCall_iij\"]=Module[\"asm\"][\"hh\"]).apply(null,arguments)};var dynCall_iiji=Module[\"dynCall_iiji\"]=function(){return(dynCall_iiji=Module[\"dynCall_iiji\"]=Module[\"asm\"][\"ih\"]).apply(null,arguments)};var dynCall_vijji=Module[\"dynCall_vijji\"]=function(){return(dynCall_vijji=Module[\"dynCall_vijji\"]=Module[\"asm\"][\"jh\"]).apply(null,arguments)};var dynCall_ji=Module[\"dynCall_ji\"]=function(){return(dynCall_ji=Module[\"dynCall_ji\"]=Module[\"asm\"][\"kh\"]).apply(null,arguments)};var dynCall_viji=Module[\"dynCall_viji\"]=function(){return(dynCall_viji=Module[\"dynCall_viji\"]=Module[\"asm\"][\"lh\"]).apply(null,arguments)};var dynCall_iiiji=Module[\"dynCall_iiiji\"]=function(){return(dynCall_iiiji=Module[\"dynCall_iiiji\"]=Module[\"asm\"][\"mh\"]).apply(null,arguments)};var dynCall_viiij=Module[\"dynCall_viiij\"]=function(){return(dynCall_viiij=Module[\"dynCall_viiij\"]=Module[\"asm\"][\"nh\"]).apply(null,arguments)};var dynCall_iiiij=Module[\"dynCall_iiiij\"]=function(){return(dynCall_iiiij=Module[\"dynCall_iiiij\"]=Module[\"asm\"][\"oh\"]).apply(null,arguments)};var dynCall_iiijj=Module[\"dynCall_iiijj\"]=function(){return(dynCall_iiijj=Module[\"dynCall_iiijj\"]=Module[\"asm\"][\"ph\"]).apply(null,arguments)};var dynCall_iiij=Module[\"dynCall_iiij\"]=function(){return(dynCall_iiij=Module[\"dynCall_iiij\"]=Module[\"asm\"][\"qh\"]).apply(null,arguments)};var dynCall_viijiiiii=Module[\"dynCall_viijiiiii\"]=function(){return(dynCall_viijiiiii=Module[\"dynCall_viijiiiii\"]=Module[\"asm\"][\"rh\"]).apply(null,arguments)};var dynCall_viij=Module[\"dynCall_viij\"]=function(){return(dynCall_viij=Module[\"dynCall_viij\"]=Module[\"asm\"][\"sh\"]).apply(null,arguments)};var dynCall_vij=Module[\"dynCall_vij\"]=function(){return(dynCall_vij=Module[\"dynCall_vij\"]=Module[\"asm\"][\"th\"]).apply(null,arguments)};var dynCall_jiiijii=Module[\"dynCall_jiiijii\"]=function(){return(dynCall_jiiijii=Module[\"dynCall_jiiijii\"]=Module[\"asm\"][\"uh\"]).apply(null,arguments)};var dynCall_jiijiii=Module[\"dynCall_jiijiii\"]=function(){return(dynCall_jiijiii=Module[\"dynCall_jiijiii\"]=Module[\"asm\"][\"vh\"]).apply(null,arguments)};var dynCall_jiijii=Module[\"dynCall_jiijii\"]=function(){return(dynCall_jiijii=Module[\"dynCall_jiijii\"]=Module[\"asm\"][\"wh\"]).apply(null,arguments)};var dynCall_j=Module[\"dynCall_j\"]=function(){return(dynCall_j=Module[\"dynCall_j\"]=Module[\"asm\"][\"xh\"]).apply(null,arguments)};var dynCall_viiiiji=Module[\"dynCall_viiiiji\"]=function(){return(dynCall_viiiiji=Module[\"dynCall_viiiiji\"]=Module[\"asm\"][\"yh\"]).apply(null,arguments)};var dynCall_jiiiijii=Module[\"dynCall_jiiiijii\"]=function(){return(dynCall_jiiiijii=Module[\"dynCall_jiiiijii\"]=Module[\"asm\"][\"zh\"]).apply(null,arguments)};var dynCall_jiiijiii=Module[\"dynCall_jiiijiii\"]=function(){return(dynCall_jiiijiii=Module[\"dynCall_jiiijiii\"]=Module[\"asm\"][\"Ah\"]).apply(null,arguments)};var dynCall_jiiiiijiiii=Module[\"dynCall_jiiiiijiiii\"]=function(){return(dynCall_jiiiiijiiii=Module[\"dynCall_jiiiiijiiii\"]=Module[\"asm\"][\"Bh\"]).apply(null,arguments)};var dynCall_viiiiijiiii=Module[\"dynCall_viiiiijiiii\"]=function(){return(dynCall_viiiiijiiii=Module[\"dynCall_viiiiijiiii\"]=Module[\"asm\"][\"Ch\"]).apply(null,arguments)};var dynCall_iiijij=Module[\"dynCall_iiijij\"]=function(){return(dynCall_iiijij=Module[\"dynCall_iiijij\"]=Module[\"asm\"][\"Dh\"]).apply(null,arguments)};var dynCall_viiji=Module[\"dynCall_viiji\"]=function(){return(dynCall_viiji=Module[\"dynCall_viiji\"]=Module[\"asm\"][\"Eh\"]).apply(null,arguments)};var dynCall_viiiji=Module[\"dynCall_viiiji\"]=function(){return(dynCall_viiiji=Module[\"dynCall_viiiji\"]=Module[\"asm\"][\"Fh\"]).apply(null,arguments)};var dynCall_viijji=Module[\"dynCall_viijji\"]=function(){return(dynCall_viijji=Module[\"dynCall_viijji\"]=Module[\"asm\"][\"Gh\"]).apply(null,arguments)};var dynCall_vijijj=Module[\"dynCall_vijijj\"]=function(){return(dynCall_vijijj=Module[\"dynCall_vijijj\"]=Module[\"asm\"][\"Hh\"]).apply(null,arguments)};var dynCall_viiijjj=Module[\"dynCall_viiijjj\"]=function(){return(dynCall_viiijjj=Module[\"dynCall_viiijjj\"]=Module[\"asm\"][\"Ih\"]).apply(null,arguments)};var dynCall_iji=Module[\"dynCall_iji\"]=function(){return(dynCall_iji=Module[\"dynCall_iji\"]=Module[\"asm\"][\"Jh\"]).apply(null,arguments)};var dynCall_viijjji=Module[\"dynCall_viijjji\"]=function(){return(dynCall_viijjji=Module[\"dynCall_viijjji\"]=Module[\"asm\"][\"Kh\"]).apply(null,arguments)};var dynCall_viijj=Module[\"dynCall_viijj\"]=function(){return(dynCall_viijj=Module[\"dynCall_viijj\"]=Module[\"asm\"][\"Lh\"]).apply(null,arguments)};var dynCall_viiijj=Module[\"dynCall_viiijj\"]=function(){return(dynCall_viiijj=Module[\"dynCall_viiijj\"]=Module[\"asm\"][\"Mh\"]).apply(null,arguments)};var dynCall_viijjj=Module[\"dynCall_viijjj\"]=function(){return(dynCall_viijjj=Module[\"dynCall_viijjj\"]=Module[\"asm\"][\"Nh\"]).apply(null,arguments)};var dynCall_vijj=Module[\"dynCall_vijj\"]=function(){return(dynCall_vijj=Module[\"dynCall_vijj\"]=Module[\"asm\"][\"Oh\"]).apply(null,arguments)};var dynCall_viiijjij=Module[\"dynCall_viiijjij\"]=function(){return(dynCall_viiijjij=Module[\"dynCall_viiijjij\"]=Module[\"asm\"][\"Ph\"]).apply(null,arguments)};var dynCall_viijiii=Module[\"dynCall_viijiii\"]=function(){return(dynCall_viijiii=Module[\"dynCall_viijiii\"]=Module[\"asm\"][\"Qh\"]).apply(null,arguments)};var dynCall_vijijjiij=Module[\"dynCall_vijijjiij\"]=function(){return(dynCall_vijijjiij=Module[\"dynCall_vijijjiij\"]=Module[\"asm\"][\"Rh\"]).apply(null,arguments)};var dynCall_viiijjiij=Module[\"dynCall_viiijjiij\"]=function(){return(dynCall_viiijjiij=Module[\"dynCall_viiijjiij\"]=Module[\"asm\"][\"Sh\"]).apply(null,arguments)};var dynCall_jiiijiijiii=Module[\"dynCall_jiiijiijiii\"]=function(){return(dynCall_jiiijiijiii=Module[\"dynCall_jiiijiijiii\"]=Module[\"asm\"][\"Th\"]).apply(null,arguments)};var dynCall_viijiiiij=Module[\"dynCall_viijiiiij\"]=function(){return(dynCall_viijiiiij=Module[\"dynCall_viijiiiij\"]=Module[\"asm\"][\"Uh\"]).apply(null,arguments)};var dynCall_viiijiiiijjj=Module[\"dynCall_viiijiiiijjj\"]=function(){return(dynCall_viiijiiiijjj=Module[\"dynCall_viiijiiiijjj\"]=Module[\"asm\"][\"Vh\"]).apply(null,arguments)};var dynCall_viijijiiiijjj=Module[\"dynCall_viijijiiiijjj\"]=function(){return(dynCall_viijijiiiijjj=Module[\"dynCall_viijijiiiijjj\"]=Module[\"asm\"][\"Wh\"]).apply(null,arguments)};var dynCall_viiiijjij=Module[\"dynCall_viiiijjij\"]=function(){return(dynCall_viiiijjij=Module[\"dynCall_viiiijjij\"]=Module[\"asm\"][\"Xh\"]).apply(null,arguments)};var dynCall_viiijiiii=Module[\"dynCall_viiijiiii\"]=function(){return(dynCall_viiijiiii=Module[\"dynCall_viiijiiii\"]=Module[\"asm\"][\"Yh\"]).apply(null,arguments)};var dynCall_jiiiiji=Module[\"dynCall_jiiiiji\"]=function(){return(dynCall_jiiiiji=Module[\"dynCall_jiiiiji\"]=Module[\"asm\"][\"Zh\"]).apply(null,arguments)};var dynCall_viiiijijji=Module[\"dynCall_viiiijijji\"]=function(){return(dynCall_viiiijijji=Module[\"dynCall_viiiijijji\"]=Module[\"asm\"][\"_h\"]).apply(null,arguments)};var dynCall_viiijiiijii=Module[\"dynCall_viiijiiijii\"]=function(){return(dynCall_viiijiiijii=Module[\"dynCall_viiijiiijii\"]=Module[\"asm\"][\"$h\"]).apply(null,arguments)};var dynCall_viijijiiii=Module[\"dynCall_viijijiiii\"]=function(){return(dynCall_viijijiiii=Module[\"dynCall_viijijiiii\"]=Module[\"asm\"][\"ai\"]).apply(null,arguments)};var dynCall_jj=Module[\"dynCall_jj\"]=function(){return(dynCall_jj=Module[\"dynCall_jj\"]=Module[\"asm\"][\"bi\"]).apply(null,arguments)};var dynCall_jd=Module[\"dynCall_jd\"]=function(){return(dynCall_jd=Module[\"dynCall_jd\"]=Module[\"asm\"][\"ci\"]).apply(null,arguments)};var dynCall_jf=Module[\"dynCall_jf\"]=function(){return(dynCall_jf=Module[\"dynCall_jf\"]=Module[\"asm\"][\"di\"]).apply(null,arguments)};var dynCall_iijjj=Module[\"dynCall_iijjj\"]=function(){return(dynCall_iijjj=Module[\"dynCall_iijjj\"]=Module[\"asm\"][\"ei\"]).apply(null,arguments)};var dynCall_iiiijj=Module[\"dynCall_iiiijj\"]=function(){return(dynCall_iiiijj=Module[\"dynCall_iiiijj\"]=Module[\"asm\"][\"fi\"]).apply(null,arguments)};var dynCall_iiijji=Module[\"dynCall_iiijji\"]=function(){return(dynCall_iiijji=Module[\"dynCall_iiijji\"]=Module[\"asm\"][\"gi\"]).apply(null,arguments)};var dynCall_vijijiiiijjj=Module[\"dynCall_vijijiiiijjj\"]=function(){return(dynCall_vijijiiiijjj=Module[\"dynCall_vijijiiiijjj\"]=Module[\"asm\"][\"hi\"]).apply(null,arguments)};var dynCall_viiiiiij=Module[\"dynCall_viiiiiij\"]=function(){return(dynCall_viiiiiij=Module[\"dynCall_viiiiiij\"]=Module[\"asm\"][\"ii\"]).apply(null,arguments)};var dynCall_jii=Module[\"dynCall_jii\"]=function(){return(dynCall_jii=Module[\"dynCall_jii\"]=Module[\"asm\"][\"ji\"]).apply(null,arguments)};var dynCall_iiiijjiii=Module[\"dynCall_iiiijjiii\"]=function(){return(dynCall_iiiijjiii=Module[\"dynCall_iiiijjiii\"]=Module[\"asm\"][\"ki\"]).apply(null,arguments)};var dynCall_iiiiiij=Module[\"dynCall_iiiiiij\"]=function(){return(dynCall_iiiiiij=Module[\"dynCall_iiiiiij\"]=Module[\"asm\"][\"li\"]).apply(null,arguments)};var dynCall_iiiiiiiij=Module[\"dynCall_iiiiiiiij\"]=function(){return(dynCall_iiiiiiiij=Module[\"dynCall_iiiiiiiij\"]=Module[\"asm\"][\"mi\"]).apply(null,arguments)};var dynCall_jiii=Module[\"dynCall_jiii\"]=function(){return(dynCall_jiii=Module[\"dynCall_jiii\"]=Module[\"asm\"][\"ni\"]).apply(null,arguments)};var dynCall_iiiiiiij=Module[\"dynCall_iiiiiiij\"]=function(){return(dynCall_iiiiiiij=Module[\"dynCall_iiiiiiij\"]=Module[\"asm\"][\"oi\"]).apply(null,arguments)};var dynCall_iiiiiiji=Module[\"dynCall_iiiiiiji\"]=function(){return(dynCall_iiiiiiji=Module[\"dynCall_iiiiiiji\"]=Module[\"asm\"][\"pi\"]).apply(null,arguments)};var dynCall_iiiijiii=Module[\"dynCall_iiiijiii\"]=function(){return(dynCall_iiiijiii=Module[\"dynCall_iiiijiii\"]=Module[\"asm\"][\"qi\"]).apply(null,arguments)};var dynCall_iiiijii=Module[\"dynCall_iiiijii\"]=function(){return(dynCall_iiiijii=Module[\"dynCall_iiiijii\"]=Module[\"asm\"][\"ri\"]).apply(null,arguments)};var dynCall_jiiiii=Module[\"dynCall_jiiiii\"]=function(){return(dynCall_jiiiii=Module[\"dynCall_jiiiii\"]=Module[\"asm\"][\"si\"]).apply(null,arguments)};var dynCall_iiiiji=Module[\"dynCall_iiiiji\"]=function(){return(dynCall_iiiiji=Module[\"dynCall_iiiiji\"]=Module[\"asm\"][\"ti\"]).apply(null,arguments)};var dynCall_iiiiiji=Module[\"dynCall_iiiiiji\"]=function(){return(dynCall_iiiiiji=Module[\"dynCall_iiiiiji\"]=Module[\"asm\"][\"ui\"]).apply(null,arguments)};var dynCall_iiijii=Module[\"dynCall_iiijii\"]=function(){return(dynCall_iiijii=Module[\"dynCall_iiijii\"]=Module[\"asm\"][\"vi\"]).apply(null,arguments)};var dynCall_iijj=Module[\"dynCall_iijj\"]=function(){return(dynCall_iijj=Module[\"dynCall_iijj\"]=Module[\"asm\"][\"wi\"]).apply(null,arguments)};var dynCall_iiijjj=Module[\"dynCall_iiijjj\"]=function(){return(dynCall_iiijjj=Module[\"dynCall_iiijjj\"]=Module[\"asm\"][\"xi\"]).apply(null,arguments)};var dynCall_viiiiij=Module[\"dynCall_viiiiij\"]=function(){return(dynCall_viiiiij=Module[\"dynCall_viiiiij\"]=Module[\"asm\"][\"yi\"]).apply(null,arguments)};var dynCall_iijiji=Module[\"dynCall_iijiji\"]=function(){return(dynCall_iijiji=Module[\"dynCall_iijiji\"]=Module[\"asm\"][\"zi\"]).apply(null,arguments)};var dynCall_viiiijiiiiiiii=Module[\"dynCall_viiiijiiiiiiii\"]=function(){return(dynCall_viiiijiiiiiiii=Module[\"dynCall_viiiijiiiiiiii\"]=Module[\"asm\"][\"Ai\"]).apply(null,arguments)};var dynCall_jiij=Module[\"dynCall_jiij\"]=function(){return(dynCall_jiij=Module[\"dynCall_jiij\"]=Module[\"asm\"][\"Bi\"]).apply(null,arguments)};var dynCall_jiiiji=Module[\"dynCall_jiiiji\"]=function(){return(dynCall_jiiiji=Module[\"dynCall_jiiiji\"]=Module[\"asm\"][\"Ci\"]).apply(null,arguments)};var dynCall_viijiiji=Module[\"dynCall_viijiiji\"]=function(){return(dynCall_viijiiji=Module[\"dynCall_viijiiji\"]=Module[\"asm\"][\"Di\"]).apply(null,arguments)};var dynCall_iiiiiijjiijjji=Module[\"dynCall_iiiiiijjiijjji\"]=function(){return(dynCall_iiiiiijjiijjji=Module[\"dynCall_iiiiiijjiijjji\"]=Module[\"asm\"][\"Ei\"]).apply(null,arguments)};var dynCall_iiijjijjiii=Module[\"dynCall_iiijjijjiii\"]=function(){return(dynCall_iiijjijjiii=Module[\"dynCall_iiijjijjiii\"]=Module[\"asm\"][\"Fi\"]).apply(null,arguments)};var dynCall_iiiijjii=Module[\"dynCall_iiiijjii\"]=function(){return(dynCall_iiiijjii=Module[\"dynCall_iiiijjii\"]=Module[\"asm\"][\"Gi\"]).apply(null,arguments)};var dynCall_iiiijji=Module[\"dynCall_iiiijji\"]=function(){return(dynCall_iiiijji=Module[\"dynCall_iiiijji\"]=Module[\"asm\"][\"Hi\"]).apply(null,arguments)};var dynCall_iiijjii=Module[\"dynCall_iiijjii\"]=function(){return(dynCall_iiijjii=Module[\"dynCall_iiijjii\"]=Module[\"asm\"][\"Ii\"]).apply(null,arguments)};var dynCall_vijii=Module[\"dynCall_vijii\"]=function(){return(dynCall_vijii=Module[\"dynCall_vijii\"]=Module[\"asm\"][\"Ji\"]).apply(null,arguments)};var dynCall_vjjijij=Module[\"dynCall_vjjijij\"]=function(){return(dynCall_vjjijij=Module[\"dynCall_vjjijij\"]=Module[\"asm\"][\"Ki\"]).apply(null,arguments)};var dynCall_vijjji=Module[\"dynCall_vijjji\"]=function(){return(dynCall_vijjji=Module[\"dynCall_vijjji\"]=Module[\"asm\"][\"Li\"]).apply(null,arguments)};var dynCall_vjjii=Module[\"dynCall_vjjii\"]=function(){return(dynCall_vjjii=Module[\"dynCall_vjjii\"]=Module[\"asm\"][\"Mi\"]).apply(null,arguments)};var dynCall_viiiiiji=Module[\"dynCall_viiiiiji\"]=function(){return(dynCall_viiiiiji=Module[\"dynCall_viiiiiji\"]=Module[\"asm\"][\"Ni\"]).apply(null,arguments)};var dynCall_viiijjiii=Module[\"dynCall_viiijjiii\"]=function(){return(dynCall_viiijjiii=Module[\"dynCall_viiijjiii\"]=Module[\"asm\"][\"Oi\"]).apply(null,arguments)};var dynCall_iiijjjj=Module[\"dynCall_iiijjjj\"]=function(){return(dynCall_iiijjjj=Module[\"dynCall_iiijjjj\"]=Module[\"asm\"][\"Pi\"]).apply(null,arguments)};var dynCall_viiijjjj=Module[\"dynCall_viiijjjj\"]=function(){return(dynCall_viiijjjj=Module[\"dynCall_viiijjjj\"]=Module[\"asm\"][\"Qi\"]).apply(null,arguments)};var dynCall_vijjj=Module[\"dynCall_vijjj\"]=function(){return(dynCall_vijjj=Module[\"dynCall_vijjj\"]=Module[\"asm\"][\"Ri\"]).apply(null,arguments)};var dynCall_jijij=Module[\"dynCall_jijij\"]=function(){return(dynCall_jijij=Module[\"dynCall_jijij\"]=Module[\"asm\"][\"Si\"]).apply(null,arguments)};var dynCall_jiiij=Module[\"dynCall_jiiij\"]=function(){return(dynCall_jiiij=Module[\"dynCall_jiiij\"]=Module[\"asm\"][\"Ti\"]).apply(null,arguments)};var dynCall_jijjij=Module[\"dynCall_jijjij\"]=function(){return(dynCall_jijjij=Module[\"dynCall_jijjij\"]=Module[\"asm\"][\"Ui\"]).apply(null,arguments)};var dynCall_jij=Module[\"dynCall_jij\"]=function(){return(dynCall_jij=Module[\"dynCall_jij\"]=Module[\"asm\"][\"Vi\"]).apply(null,arguments)};var dynCall_jijiii=Module[\"dynCall_jijiii\"]=function(){return(dynCall_jijiii=Module[\"dynCall_jijiii\"]=Module[\"asm\"][\"Wi\"]).apply(null,arguments)};var dynCall_viijiiij=Module[\"dynCall_viijiiij\"]=function(){return(dynCall_viijiiij=Module[\"dynCall_viijiiij\"]=Module[\"asm\"][\"Xi\"]).apply(null,arguments)};var dynCall_vijiiiji=Module[\"dynCall_vijiiiji\"]=function(){return(dynCall_vijiiiji=Module[\"dynCall_vijiiiji\"]=Module[\"asm\"][\"Yi\"]).apply(null,arguments)};var dynCall_jiiji=Module[\"dynCall_jiiji\"]=function(){return(dynCall_jiiji=Module[\"dynCall_jiiji\"]=Module[\"asm\"][\"Zi\"]).apply(null,arguments)};var dynCall_viiijij=Module[\"dynCall_viiijij\"]=function(){return(dynCall_viiijij=Module[\"dynCall_viiijij\"]=Module[\"asm\"][\"_i\"]).apply(null,arguments)};var dynCall_viijiij=Module[\"dynCall_viijiij\"]=function(){return(dynCall_viijiij=Module[\"dynCall_viijiij\"]=Module[\"asm\"][\"$i\"]).apply(null,arguments)};var dynCall_viiiiijj=Module[\"dynCall_viiiiijj\"]=function(){return(dynCall_viiiiijj=Module[\"dynCall_viiiiijj\"]=Module[\"asm\"][\"aj\"]).apply(null,arguments)};var dynCall_viiijji=Module[\"dynCall_viiijji\"]=function(){return(dynCall_viiijji=Module[\"dynCall_viiijji\"]=Module[\"asm\"][\"bj\"]).apply(null,arguments)};var dynCall_vijjij=Module[\"dynCall_vijjij\"]=function(){return(dynCall_vijjij=Module[\"dynCall_vijjij\"]=Module[\"asm\"][\"cj\"]).apply(null,arguments)};var dynCall_vijiji=Module[\"dynCall_vijiji\"]=function(){return(dynCall_vijiji=Module[\"dynCall_vijiji\"]=Module[\"asm\"][\"dj\"]).apply(null,arguments)};var dynCall_jiiiij=Module[\"dynCall_jiiiij\"]=function(){return(dynCall_jiiiij=Module[\"dynCall_jiiiij\"]=Module[\"asm\"][\"ej\"]).apply(null,arguments)};var dynCall_ij=Module[\"dynCall_ij\"]=function(){return(dynCall_ij=Module[\"dynCall_ij\"]=Module[\"asm\"][\"fj\"]).apply(null,arguments)};var dynCall_jjj=Module[\"dynCall_jjj\"]=function(){return(dynCall_jjj=Module[\"dynCall_jjj\"]=Module[\"asm\"][\"gj\"]).apply(null,arguments)};var dynCall_jjiji=Module[\"dynCall_jjiji\"]=function(){return(dynCall_jjiji=Module[\"dynCall_jjiji\"]=Module[\"asm\"][\"hj\"]).apply(null,arguments)};var dynCall_jijj=Module[\"dynCall_jijj\"]=function(){return(dynCall_jijj=Module[\"dynCall_jijj\"]=Module[\"asm\"][\"ij\"]).apply(null,arguments)};var dynCall_jiiijj=Module[\"dynCall_jiiijj\"]=function(){return(dynCall_jiiijj=Module[\"dynCall_jiiijj\"]=Module[\"asm\"][\"jj\"]).apply(null,arguments)};var dynCall_jjjjjjd=Module[\"dynCall_jjjjjjd\"]=function(){return(dynCall_jjjjjjd=Module[\"dynCall_jjjjjjd\"]=Module[\"asm\"][\"kj\"]).apply(null,arguments)};var dynCall_ijii=Module[\"dynCall_ijii\"]=function(){return(dynCall_ijii=Module[\"dynCall_ijii\"]=Module[\"asm\"][\"lj\"]).apply(null,arguments)};var dynCall_vjii=Module[\"dynCall_vjii\"]=function(){return(dynCall_vjii=Module[\"dynCall_vjii\"]=Module[\"asm\"][\"mj\"]).apply(null,arguments)};var dynCall_vjiiii=Module[\"dynCall_vjiiii\"]=function(){return(dynCall_vjiiii=Module[\"dynCall_vjiiii\"]=Module[\"asm\"][\"nj\"]).apply(null,arguments)};var dynCall_viiiiijiii=Module[\"dynCall_viiiiijiii\"]=function(){return(dynCall_viiiiijiii=Module[\"dynCall_viiiiijiii\"]=Module[\"asm\"][\"oj\"]).apply(null,arguments)};var dynCall_ijji=Module[\"dynCall_ijji\"]=function(){return(dynCall_ijji=Module[\"dynCall_ijji\"]=Module[\"asm\"][\"pj\"]).apply(null,arguments)};var dynCall_iiiiijii=Module[\"dynCall_iiiiijii\"]=function(){return(dynCall_iiiiijii=Module[\"dynCall_iiiiijii\"]=Module[\"asm\"][\"qj\"]).apply(null,arguments)};var dynCall_viiijiii=Module[\"dynCall_viiijiii\"]=function(){return(dynCall_viiijiii=Module[\"dynCall_viiijiii\"]=Module[\"asm\"][\"rj\"]).apply(null,arguments)};var dynCall_viijij=Module[\"dynCall_viijij\"]=function(){return(dynCall_viijij=Module[\"dynCall_viijij\"]=Module[\"asm\"][\"sj\"]).apply(null,arguments)};var dynCall_viiiiiiji=Module[\"dynCall_viiiiiiji\"]=function(){return(dynCall_viiiiiiji=Module[\"dynCall_viiiiiiji\"]=Module[\"asm\"][\"tj\"]).apply(null,arguments)};var dynCall_viiijii=Module[\"dynCall_viiijii\"]=function(){return(dynCall_viiijii=Module[\"dynCall_viiijii\"]=Module[\"asm\"][\"uj\"]).apply(null,arguments)};var dynCall_viiiijiii=Module[\"dynCall_viiiijiii\"]=function(){return(dynCall_viiiijiii=Module[\"dynCall_viiiijiii\"]=Module[\"asm\"][\"vj\"]).apply(null,arguments)};var dynCall_viiiijii=Module[\"dynCall_viiiijii\"]=function(){return(dynCall_viiiijii=Module[\"dynCall_viiiijii\"]=Module[\"asm\"][\"wj\"]).apply(null,arguments)};var dynCall_iiijiij=Module[\"dynCall_iiijiij\"]=function(){return(dynCall_iiijiij=Module[\"dynCall_iiijiij\"]=Module[\"asm\"][\"xj\"]).apply(null,arguments)};var dynCall_iiiijjj=Module[\"dynCall_iiiijjj\"]=function(){return(dynCall_iiiijjj=Module[\"dynCall_iiiijjj\"]=Module[\"asm\"][\"yj\"]).apply(null,arguments)};var dynCall_jijji=Module[\"dynCall_jijji\"]=function(){return(dynCall_jijji=Module[\"dynCall_jijji\"]=Module[\"asm\"][\"zj\"]).apply(null,arguments)};var dynCall_viiijijij=Module[\"dynCall_viiijijij\"]=function(){return(dynCall_viiijijij=Module[\"dynCall_viiijijij\"]=Module[\"asm\"][\"Aj\"]).apply(null,arguments)};var dynCall_jijjjjii=Module[\"dynCall_jijjjjii\"]=function(){return(dynCall_jijjjjii=Module[\"dynCall_jijjjjii\"]=Module[\"asm\"][\"Bj\"]).apply(null,arguments)};var dynCall_iiiiijij=Module[\"dynCall_iiiiijij\"]=function(){return(dynCall_iiiiijij=Module[\"dynCall_iiiiijij\"]=Module[\"asm\"][\"Cj\"]).apply(null,arguments)};var dynCall_iiiiijiii=Module[\"dynCall_iiiiijiii\"]=function(){return(dynCall_iiiiijiii=Module[\"dynCall_iiiiijiii\"]=Module[\"asm\"][\"Dj\"]).apply(null,arguments)};var dynCall_viijjii=Module[\"dynCall_viijjii\"]=function(){return(dynCall_viijjii=Module[\"dynCall_viijjii\"]=Module[\"asm\"][\"Ej\"]).apply(null,arguments)};var dynCall_iiiiiiiiiiji=Module[\"dynCall_iiiiiiiiiiji\"]=function(){return(dynCall_iiiiiiiiiiji=Module[\"dynCall_iiiiiiiiiiji\"]=Module[\"asm\"][\"Fj\"]).apply(null,arguments)};var dynCall_iiiiiiijj=Module[\"dynCall_iiiiiiijj\"]=function(){return(dynCall_iiiiiiijj=Module[\"dynCall_iiiiiiijj\"]=Module[\"asm\"][\"Gj\"]).apply(null,arguments)};var dynCall_viiijjii=Module[\"dynCall_viiijjii\"]=function(){return(dynCall_viiijjii=Module[\"dynCall_viiijjii\"]=Module[\"asm\"][\"Hj\"]).apply(null,arguments)};var dynCall_jiiijjj=Module[\"dynCall_jiiijjj\"]=function(){return(dynCall_jiiijjj=Module[\"dynCall_jiiijjj\"]=Module[\"asm\"][\"Ij\"]).apply(null,arguments)};var dynCall_viiijijj=Module[\"dynCall_viiijijj\"]=function(){return(dynCall_viiijijj=Module[\"dynCall_viiijijj\"]=Module[\"asm\"][\"Jj\"]).apply(null,arguments)};var dynCall_jiiiiiii=Module[\"dynCall_jiiiiiii\"]=function(){return(dynCall_jiiiiiii=Module[\"dynCall_jiiiiiii\"]=Module[\"asm\"][\"Kj\"]).apply(null,arguments)};var dynCall_jiijj=Module[\"dynCall_jiijj\"]=function(){return(dynCall_jiijj=Module[\"dynCall_jiijj\"]=Module[\"asm\"][\"Lj\"]).apply(null,arguments)};var dynCall_iijii=Module[\"dynCall_iijii\"]=function(){return(dynCall_iijii=Module[\"dynCall_iijii\"]=Module[\"asm\"][\"Mj\"]).apply(null,arguments)};var dynCall_iiidj=Module[\"dynCall_iiidj\"]=function(){return(dynCall_iiidj=Module[\"dynCall_iiidj\"]=Module[\"asm\"][\"Nj\"]).apply(null,arguments)};var dynCall_iiiiiiiji=Module[\"dynCall_iiiiiiiji\"]=function(){return(dynCall_iiiiiiiji=Module[\"dynCall_iiiiiiiji\"]=Module[\"asm\"][\"Oj\"]).apply(null,arguments)};var dynCall_iiiiiiiiijiiiiiii=Module[\"dynCall_iiiiiiiiijiiiiiii\"]=function(){return(dynCall_iiiiiiiiijiiiiiii=Module[\"dynCall_iiiiiiiiijiiiiiii\"]=Module[\"asm\"][\"Pj\"]).apply(null,arguments)};var dynCall_iiijjiiji=Module[\"dynCall_iiijjiiji\"]=function(){return(dynCall_iiijjiiji=Module[\"dynCall_iiijjiiji\"]=Module[\"asm\"][\"Qj\"]).apply(null,arguments)};var dynCall_iiijjiij=Module[\"dynCall_iiijjiij\"]=function(){return(dynCall_iiijjiij=Module[\"dynCall_iiijjiij\"]=Module[\"asm\"][\"Rj\"]).apply(null,arguments)};var dynCall_iiiidjj=Module[\"dynCall_iiiidjj\"]=function(){return(dynCall_iiiidjj=Module[\"dynCall_iiiidjj\"]=Module[\"asm\"][\"Sj\"]).apply(null,arguments)};var dynCall_iiiiiiiiji=Module[\"dynCall_iiiiiiiiji\"]=function(){return(dynCall_iiiiiiiiji=Module[\"dynCall_iiiiiiiiji\"]=Module[\"asm\"][\"Tj\"]).apply(null,arguments)};var dynCall_iiijiiiij=Module[\"dynCall_iiijiiiij\"]=function(){return(dynCall_iiijiiiij=Module[\"dynCall_iiijiiiij\"]=Module[\"asm\"][\"Uj\"]).apply(null,arguments)};var dynCall_iiijiiij=Module[\"dynCall_iiijiiij\"]=function(){return(dynCall_iiijiiij=Module[\"dynCall_iiijiiij\"]=Module[\"asm\"][\"Vj\"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiij=Module[\"dynCall_iiiiiiiiiiiij\"]=function(){return(dynCall_iiiiiiiiiiiij=Module[\"dynCall_iiiiiiiiiiiij\"]=Module[\"asm\"][\"Wj\"]).apply(null,arguments)};var dynCall_viiiijji=Module[\"dynCall_viiiijji\"]=function(){return(dynCall_viiiijji=Module[\"dynCall_viiiijji\"]=Module[\"asm\"][\"Xj\"]).apply(null,arguments)};var dynCall_jiiiiii=Module[\"dynCall_jiiiiii\"]=function(){return(dynCall_jiiiiii=Module[\"dynCall_jiiiiii\"]=Module[\"asm\"][\"Yj\"]).apply(null,arguments)};var dynCall_jiiiijiiii=Module[\"dynCall_jiiiijiiii\"]=function(){return(dynCall_jiiiijiiii=Module[\"dynCall_jiiiijiiii\"]=Module[\"asm\"][\"Zj\"]).apply(null,arguments)};var dynCall_jiijjjii=Module[\"dynCall_jiijjjii\"]=function(){return(dynCall_jiijjjii=Module[\"dynCall_jiijjjii\"]=Module[\"asm\"][\"_j\"]).apply(null,arguments)};var dynCall_vjiiiji=Module[\"dynCall_vjiiiji\"]=function(){return(dynCall_vjiiiji=Module[\"dynCall_vjiiiji\"]=Module[\"asm\"][\"$j\"]).apply(null,arguments)};var dynCall_fiijii=Module[\"dynCall_fiijii\"]=function(){return(dynCall_fiijii=Module[\"dynCall_fiijii\"]=Module[\"asm\"][\"ak\"]).apply(null,arguments)};var dynCall_diijii=Module[\"dynCall_diijii\"]=function(){return(dynCall_diijii=Module[\"dynCall_diijii\"]=Module[\"asm\"][\"bk\"]).apply(null,arguments)};var dynCall_iiiiiiijii=Module[\"dynCall_iiiiiiijii\"]=function(){return(dynCall_iiiiiiijii=Module[\"dynCall_iiiiiiijii\"]=Module[\"asm\"][\"ck\"]).apply(null,arguments)};var dynCall_iiijiii=Module[\"dynCall_iiijiii\"]=function(){return(dynCall_iiijiii=Module[\"dynCall_iiijiii\"]=Module[\"asm\"][\"dk\"]).apply(null,arguments)};var dynCall_viijiiii=Module[\"dynCall_viijiiii\"]=function(){return(dynCall_viijiiii=Module[\"dynCall_viijiiii\"]=Module[\"asm\"][\"ek\"]).apply(null,arguments)};var dynCall_vijiii=Module[\"dynCall_vijiii\"]=function(){return(dynCall_vijiii=Module[\"dynCall_vijiii\"]=Module[\"asm\"][\"fk\"]).apply(null,arguments)};var dynCall_iijjii=Module[\"dynCall_iijjii\"]=function(){return(dynCall_iijjii=Module[\"dynCall_iijjii\"]=Module[\"asm\"][\"gk\"]).apply(null,arguments)};var dynCall_iijjiii=Module[\"dynCall_iijjiii\"]=function(){return(dynCall_iijjiii=Module[\"dynCall_iijjiii\"]=Module[\"asm\"][\"hk\"]).apply(null,arguments)};var dynCall_iiijjiii=Module[\"dynCall_iiijjiii\"]=function(){return(dynCall_iiijjiii=Module[\"dynCall_iiijjiii\"]=Module[\"asm\"][\"ik\"]).apply(null,arguments)};var dynCall_iijji=Module[\"dynCall_iijji\"]=function(){return(dynCall_iijji=Module[\"dynCall_iijji\"]=Module[\"asm\"][\"jk\"]).apply(null,arguments)};var dynCall_vijiiiiii=Module[\"dynCall_vijiiiiii\"]=function(){return(dynCall_vijiiiiii=Module[\"dynCall_vijiiiiii\"]=Module[\"asm\"][\"kk\"]).apply(null,arguments)};var dynCall_vijiiii=Module[\"dynCall_vijiiii\"]=function(){return(dynCall_vijiiii=Module[\"dynCall_vijiiii\"]=Module[\"asm\"][\"lk\"]).apply(null,arguments)};var dynCall_iijiiii=Module[\"dynCall_iijiiii\"]=function(){return(dynCall_iijiiii=Module[\"dynCall_iijiiii\"]=Module[\"asm\"][\"mk\"]).apply(null,arguments)};var dynCall_vijiiiii=Module[\"dynCall_vijiiiii\"]=function(){return(dynCall_vijiiiii=Module[\"dynCall_vijiiiii\"]=Module[\"asm\"][\"nk\"]).apply(null,arguments)};var dynCall_viiiiijii=Module[\"dynCall_viiiiijii\"]=function(){return(dynCall_viiiiijii=Module[\"dynCall_viiiiijii\"]=Module[\"asm\"][\"ok\"]).apply(null,arguments)};var dynCall_ijjji=Module[\"dynCall_ijjji\"]=function(){return(dynCall_ijjji=Module[\"dynCall_ijjji\"]=Module[\"asm\"][\"pk\"]).apply(null,arguments)};var dynCall_viijiiiiii=Module[\"dynCall_viijiiiiii\"]=function(){return(dynCall_viijiiiiii=Module[\"dynCall_viijiiiiii\"]=Module[\"asm\"][\"qk\"]).apply(null,arguments)};var dynCall_fiijjjj=Module[\"dynCall_fiijjjj\"]=function(){return(dynCall_fiijjjj=Module[\"dynCall_fiijjjj\"]=Module[\"asm\"][\"rk\"]).apply(null,arguments)};var dynCall_diijjjj=Module[\"dynCall_diijjjj\"]=function(){return(dynCall_diijjjj=Module[\"dynCall_diijjjj\"]=Module[\"asm\"][\"sk\"]).apply(null,arguments)};var dynCall_jjjji=Module[\"dynCall_jjjji\"]=function(){return(dynCall_jjjji=Module[\"dynCall_jjjji\"]=Module[\"asm\"][\"tk\"]).apply(null,arguments)};var dynCall_jjjii=Module[\"dynCall_jjjii\"]=function(){return(dynCall_jjjii=Module[\"dynCall_jjjii\"]=Module[\"asm\"][\"uk\"]).apply(null,arguments)};var dynCall_jji=Module[\"dynCall_jji\"]=function(){return(dynCall_jji=Module[\"dynCall_jji\"]=Module[\"asm\"][\"vk\"]).apply(null,arguments)};var dynCall_viiiijiiiii=Module[\"dynCall_viiiijiiiii\"]=function(){return(dynCall_viiiijiiiii=Module[\"dynCall_viiiijiiiii\"]=Module[\"asm\"][\"wk\"]).apply(null,arguments)};var dynCall_viiiijiiii=Module[\"dynCall_viiiijiiii\"]=function(){return(dynCall_viiiijiiii=Module[\"dynCall_viiiijiiii\"]=Module[\"asm\"][\"xk\"]).apply(null,arguments)};var dynCall_iijjijj=Module[\"dynCall_iijjijj\"]=function(){return(dynCall_iijjijj=Module[\"dynCall_iijjijj\"]=Module[\"asm\"][\"yk\"]).apply(null,arguments)};var dynCall_vj=Module[\"dynCall_vj\"]=function(){return(dynCall_vj=Module[\"dynCall_vj\"]=Module[\"asm\"][\"zk\"]).apply(null,arguments)};var dynCall_viiiijj=Module[\"dynCall_viiiijj\"]=function(){return(dynCall_viiiijj=Module[\"dynCall_viiiijj\"]=Module[\"asm\"][\"Ak\"]).apply(null,arguments)};var dynCall_viiiiijjii=Module[\"dynCall_viiiiijjii\"]=function(){return(dynCall_viiiiijjii=Module[\"dynCall_viiiiijjii\"]=Module[\"asm\"][\"Bk\"]).apply(null,arguments)};var dynCall_viiiiiijii=Module[\"dynCall_viiiiiijii\"]=function(){return(dynCall_viiiiiijii=Module[\"dynCall_viiiiiijii\"]=Module[\"asm\"][\"Ck\"]).apply(null,arguments)};var dynCall_viiiiiiijjjji=Module[\"dynCall_viiiiiiijjjji\"]=function(){return(dynCall_viiiiiiijjjji=Module[\"dynCall_viiiiiiijjjji\"]=Module[\"asm\"][\"Dk\"]).apply(null,arguments)};var dynCall_vjiii=Module[\"dynCall_vjiii\"]=function(){return(dynCall_vjiii=Module[\"dynCall_vjiii\"]=Module[\"asm\"][\"Ek\"]).apply(null,arguments)};var dynCall_ijjiii=Module[\"dynCall_ijjiii\"]=function(){return(dynCall_ijjiii=Module[\"dynCall_ijjiii\"]=Module[\"asm\"][\"Fk\"]).apply(null,arguments)};var dynCall_iiijiiji=Module[\"dynCall_iiijiiji\"]=function(){return(dynCall_iiijiiji=Module[\"dynCall_iiijiiji\"]=Module[\"asm\"][\"Gk\"]).apply(null,arguments)};var dynCall_iijiij=Module[\"dynCall_iijiij\"]=function(){return(dynCall_iijiij=Module[\"dynCall_iijiij\"]=Module[\"asm\"][\"Hk\"]).apply(null,arguments)};var dynCall_iijiii=Module[\"dynCall_iijiii\"]=function(){return(dynCall_iijiii=Module[\"dynCall_iijiii\"]=Module[\"asm\"][\"Ik\"]).apply(null,arguments)};var dynCall_vijijjji=Module[\"dynCall_vijijjji\"]=function(){return(dynCall_vijijjji=Module[\"dynCall_vijijjji\"]=Module[\"asm\"][\"Jk\"]).apply(null,arguments)};var dynCall_viijiijj=Module[\"dynCall_viijiijj\"]=function(){return(dynCall_viijiijj=Module[\"dynCall_viijiijj\"]=Module[\"asm\"][\"Kk\"]).apply(null,arguments)};var dynCall_viijijj=Module[\"dynCall_viijijj\"]=function(){return(dynCall_viijijj=Module[\"dynCall_viijijj\"]=Module[\"asm\"][\"Lk\"]).apply(null,arguments)};var dynCall_vijiij=Module[\"dynCall_vijiij\"]=function(){return(dynCall_vijiij=Module[\"dynCall_vijiij\"]=Module[\"asm\"][\"Mk\"]).apply(null,arguments)};var dynCall_viiiiijjji=Module[\"dynCall_viiiiijjji\"]=function(){return(dynCall_viiiiijjji=Module[\"dynCall_viiiiijjji\"]=Module[\"asm\"][\"Nk\"]).apply(null,arguments)};var dynCall_iiijiijj=Module[\"dynCall_iiijiijj\"]=function(){return(dynCall_iiijiijj=Module[\"dynCall_iiijiijj\"]=Module[\"asm\"][\"Ok\"]).apply(null,arguments)};var dynCall_viiijijjj=Module[\"dynCall_viiijijjj\"]=function(){return(dynCall_viiijijjj=Module[\"dynCall_viiijijjj\"]=Module[\"asm\"][\"Pk\"]).apply(null,arguments)};var dynCall_iijiijj=Module[\"dynCall_iijiijj\"]=function(){return(dynCall_iijiijj=Module[\"dynCall_iijiijj\"]=Module[\"asm\"][\"Qk\"]).apply(null,arguments)};var dynCall_iijiiijj=Module[\"dynCall_iijiiijj\"]=function(){return(dynCall_iijiiijj=Module[\"dynCall_iijiiijj\"]=Module[\"asm\"][\"Rk\"]).apply(null,arguments)};var dynCall_iiijiiijj=Module[\"dynCall_iiijiiijj\"]=function(){return(dynCall_iiijiiijj=Module[\"dynCall_iiijiiijj\"]=Module[\"asm\"][\"Sk\"]).apply(null,arguments)};var dynCall_iiijiiiijj=Module[\"dynCall_iiijiiiijj\"]=function(){return(dynCall_iiijiiiijj=Module[\"dynCall_iiijiiiijj\"]=Module[\"asm\"][\"Tk\"]).apply(null,arguments)};var dynCall_viiijjjji=Module[\"dynCall_viiijjjji\"]=function(){return(dynCall_viiijjjji=Module[\"dynCall_viiijjjji\"]=Module[\"asm\"][\"Uk\"]).apply(null,arguments)};var dynCall_vijjiii=Module[\"dynCall_vijjiii\"]=function(){return(dynCall_vijjiii=Module[\"dynCall_vijjiii\"]=Module[\"asm\"][\"Vk\"]).apply(null,arguments)};var dynCall_iiijjji=Module[\"dynCall_iiijjji\"]=function(){return(dynCall_iiijjji=Module[\"dynCall_iiijjji\"]=Module[\"asm\"][\"Wk\"]).apply(null,arguments)};var dynCall_iiiiiiijji=Module[\"dynCall_iiiiiiijji\"]=function(){return(dynCall_iiiiiiijji=Module[\"dynCall_iiiiiiijji\"]=Module[\"asm\"][\"Xk\"]).apply(null,arguments)};var dynCall_iijjjii=Module[\"dynCall_iijjjii\"]=function(){return(dynCall_iijjjii=Module[\"dynCall_iijjjii\"]=Module[\"asm\"][\"Yk\"]).apply(null,arguments)};var dynCall_iiiiijjji=Module[\"dynCall_iiiiijjji\"]=function(){return(dynCall_iiiiijjji=Module[\"dynCall_iiiiijjji\"]=Module[\"asm\"][\"Zk\"]).apply(null,arguments)};var dynCall_iiiiijjj=Module[\"dynCall_iiiiijjj\"]=function(){return(dynCall_iiiiijjj=Module[\"dynCall_iiiiijjj\"]=Module[\"asm\"][\"_k\"]).apply(null,arguments)};var dynCall_viiijiji=Module[\"dynCall_viiijiji\"]=function(){return(dynCall_viiijiji=Module[\"dynCall_viiijiji\"]=Module[\"asm\"][\"$k\"]).apply(null,arguments)};var dynCall_jijiiii=Module[\"dynCall_jijiiii\"]=function(){return(dynCall_jijiiii=Module[\"dynCall_jijiiii\"]=Module[\"asm\"][\"al\"]).apply(null,arguments)};var dynCall_viijiji=Module[\"dynCall_viijiji\"]=function(){return(dynCall_viijiji=Module[\"dynCall_viijiji\"]=Module[\"asm\"][\"bl\"]).apply(null,arguments)};var dynCall_iiiiiijii=Module[\"dynCall_iiiiiijii\"]=function(){return(dynCall_iiiiiijii=Module[\"dynCall_iiiiiijii\"]=Module[\"asm\"][\"cl\"]).apply(null,arguments)};var dynCall_iijjij=Module[\"dynCall_iijjij\"]=function(){return(dynCall_iijjij=Module[\"dynCall_iijjij\"]=Module[\"asm\"][\"dl\"]).apply(null,arguments)};var dynCall_vijjii=Module[\"dynCall_vijjii\"]=function(){return(dynCall_vijjii=Module[\"dynCall_vijjii\"]=Module[\"asm\"][\"el\"]).apply(null,arguments)};var dynCall_dij=Module[\"dynCall_dij\"]=function(){return(dynCall_dij=Module[\"dynCall_dij\"]=Module[\"asm\"][\"fl\"]).apply(null,arguments)};var dynCall_jijjjjjd=Module[\"dynCall_jijjjjjd\"]=function(){return(dynCall_jijjjjjd=Module[\"dynCall_jijjjjjd\"]=Module[\"asm\"][\"gl\"]).apply(null,arguments)};var dynCall_jijjiii=Module[\"dynCall_jijjiii\"]=function(){return(dynCall_jijjiii=Module[\"dynCall_jijjiii\"]=Module[\"asm\"][\"hl\"]).apply(null,arguments)};function invoke_v(index){var sp=stackSave();try{getWasmTableEntry(index)()}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_fiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_diii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viid(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return getWasmTableEntry(index)()}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiid(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_idiii(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vid(index,a1,a2){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_if(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_id(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iid(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiidiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vfii(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vdii(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_di(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_fi(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiid(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iidii(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viidii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vif(index,a1,a2){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viddddi(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_diiiiid(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiid(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiid(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_dii(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iff(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_idd(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiidiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_diidddi(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_d(index){var sp=stackSave();try{return getWasmTableEntry(index)()}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_dd(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vdiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vdiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iidiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vidiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_idiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vidi(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_diiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiidi(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiidi(index,a1,a2,a3,a4,a5){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiidiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiidii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_diiidiiiid(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiddiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiidii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_didd(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iidiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijj(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viijj(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viij(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viij(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijj(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiijj(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiij(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiij(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijj(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiijj(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return dynCall_ji(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jii(index,a1,a2){var sp=stackSave();try{return dynCall_jii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viijii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiij(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiij(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiijj(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiijj(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vij(index,a1,a2,a3){var sp=stackSave();try{dynCall_vij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiijj(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiijj(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiij(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiiiij(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiijjii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viiiiijjii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiijjjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16){var sp=stackSave();try{dynCall_viiiiiiijjjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiij(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiij(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viji(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viji(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iij(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiij(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiij(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiji(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiji(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vijiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_vijiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vijji(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_vijji(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiij(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiij(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiji(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiji(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiijii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiijii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ijjiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_ijjiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_j(index){var sp=stackSave();try{return dynCall_j(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiijjiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiijjiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiij(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiij(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiiiiiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vjiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_vjiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiij(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiij(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_jiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijij(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viijij(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viijiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiji(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiji(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_jiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiijii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_jiiijii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiijii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_jiijii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiijiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_jiijiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_jiiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiiiijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_jiiiiijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viiiiijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijij(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiijij(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiji(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiji(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijji(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viijji(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiji(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiji(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iijjj(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iijjj(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijjj(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viijjj(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiiiji(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_jiiiiji(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vijijj(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_vijijj(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iji(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iji(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viijjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vijj(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_vijj(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijjij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiijjij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viijiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vijijjiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{dynCall_vijijjiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijiiiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viijiiiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijiiiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{dynCall_viiijiiiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijijiiiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17){var sp=stackSave();try{dynCall_viijijiiiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijjiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viiijjiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiijiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{return dynCall_jiiijiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viijijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiijijji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{dynCall_viiiijijji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiijjij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viiiijjij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiij(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiij(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{dynCall_viiijiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jj(index,a1,a2){var sp=stackSave();try{return dynCall_jj(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiijj(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiijj(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijji(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiijji(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vijijiiiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16){var sp=stackSave();try{dynCall_vijijiiiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jd(index,a1){var sp=stackSave();try{return dynCall_jd(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jf(index,a1){var sp=stackSave();try{return dynCall_jf(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiijii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiijii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiij(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiiiij(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiiiiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_jiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijjii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiijjii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiji(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiji(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiji(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiji(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iijj(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iijj(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jij(index,a1,a2,a3){var sp=stackSave();try{return dynCall_jij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiijiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijji(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiijji(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijijij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viiijijij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijij(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiijij(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iijiji(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iijiji(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiijiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14){var sp=stackSave();try{dynCall_viiiijiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ij(index,a1,a2){var sp=stackSave();try{return dynCall_ij(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vjiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_vjiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vijiji(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_vijiji(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vijjij(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_vijjij(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vjjii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_vjjii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiiji(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_jiiiji(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vijjji(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_vijjji(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vjjijij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_vjjijij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiji(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_jiiji(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viijiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijjijjiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14){var sp=stackSave();try{return dynCall_iiijjijjiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiijjii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiijjii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiijji(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiijji(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiijjiijjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18){var sp=stackSave();try{return dynCall_iiiiiijjiijjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijjii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiijjii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiij(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_jiiij(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vijii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_vijii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijjiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiijjiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijjjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiijjjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijjjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viiijjjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vijjj(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_vijjj(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijiiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viijiiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vijiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_vijiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jijiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_jijiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jijjij(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_jijjij(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijiij(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viijiij(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jijij(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_jijij(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jjiji(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_jjiji(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jijj(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_jijj(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiijj(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_jiiijj(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ijii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_ijii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vjii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_vjii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiiiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jjj(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jjj(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jjjjjjd(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_jjjjjjd(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ijji(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_ijji(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jijji(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_jijji(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiiij(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_jiiiij(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijiij(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiijiij(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiiiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jijjjjii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_jijjjjii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiijij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiiijij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiiijiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_jiiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiiijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_jiiiijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiijjjii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_jiijjjii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{return dynCall_iiiiiiiiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_jiiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiijijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijjii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viijjii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_jiiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiijj(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_jiijj(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iijii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iijii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiiiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiidj(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiidj(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiijiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17){var sp=stackSave();try{return dynCall_iiiiiiiiijiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijjiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiijjiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijjiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiijjiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiidjj(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiidjj(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiiiiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijiiiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiijiiiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijiiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiijiiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13){var sp=stackSave();try{return dynCall_iiiiiiiiiiiij(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiijji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiiijji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vjiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_vjiiiji(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_fiijii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_fiijii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_diijii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_diijii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vijiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_vijiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vijiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_vijiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iijiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iijiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iijjii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iijjii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iijjiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iijjiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijjiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiijjiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iijji(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iijji(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vijiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_vijiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ijjji(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_ijjji(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viijiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_fiijjjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_fiijjjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_diijjjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_diijjjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jjjji(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_jjjji(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jjjii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_jjjii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jji(index,a1,a2,a3){var sp=stackSave();try{return dynCall_jji(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiijiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viiiijiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiiijiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iijjijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iijjijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vj(index,a1,a2){var sp=stackSave();try{dynCall_vj(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiijiiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iijiij(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iijiij(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiiiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iijiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iijiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vijijjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_vijijjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viijijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiijjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{dynCall_viiiiijjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viijiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vijiij(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_vijiij(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijiiiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{return dynCall_iiijiiiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiijiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{dynCall_viiijijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iijiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iijiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iijiiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iijiiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijiiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiijiiijj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiijjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiijjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijjjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{dynCall_viiijjjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viijiji(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viijiji(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vijjiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_vijjiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiijji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiiiiiijji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiijiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiijiji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jijiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_jijiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiiijjj(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iijjjii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iijjjii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiijjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiiiijjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iijjij(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iijjij(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vijjii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_vijjii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_dij(index,a1,a2,a3){var sp=stackSave();try{return dynCall_dij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jijjjjjd(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{return dynCall_jijjjjjd(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiji(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiji(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jijjiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_jijjiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}Module[\"ccall\"]=ccall;Module[\"stackSave\"]=stackSave;Module[\"stackRestore\"]=stackRestore;Module[\"stackAlloc\"]=stackAlloc;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"_main\"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module[\"onExit\"])Module[\"onExit\"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;run();\n\n\n  return DuckDB.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n  module.exports = DuckDB;\nelse if (typeof define === 'function' && define['amd'])\n  define([], function() { return DuckDB; });\nelse if (typeof exports === 'object')\n  exports[\"DuckDB\"] = DuckDB;\n", "\nvar DuckDB = (() => {\n  var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n  if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n  return (\nfunction(DuckDB) {\n  DuckDB = DuckDB || {};\n\nvar Module=typeof DuckDB!=\"undefined\"?DuckDB:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==\"object\";var ENVIRONMENT_IS_WORKER=typeof importScripts==\"function\";var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err(\"exiting due to exception: \"+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}requireNodeFS=(()=>{if(!nodePath){fs=require(\"fs\");nodePath=require(\"path\")}});read_=function shell_read(filename,binary){requireNodeFS();filename=nodePath[\"normalize\"](filename);return fs.readFileSync(filename,binary?undefined:\"utf8\")};readBinary=(filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret});readAsync=((filename,onload,onerror)=>{requireNodeFS();filename=nodePath[\"normalize\"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})});if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",function(reason){throw reason});quit_=((status,toThrow)=>{if(keepRuntimeAlive()){process[\"exitCode\"]=status;throw toThrow}logExceptionOnExit(toThrow);process[\"exit\"](status)});Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=(url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText});if(ENVIRONMENT_IS_WORKER){readBinary=(url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)})}readAsync=((url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=(()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()});xhr.onerror=onerror;xhr.send(null)})}setWindowTitle=(title=>document.title=title)}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!=\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}function getCFunc(ident){var func=Module[\"_\"+ident];return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret}var UTF8Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){idx>>>=0;var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr>>>0]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx>>>0,endPtr>>>0))}else{var str=\"\";while(idx<endPtr){var u0=heap[idx++>>>0];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++>>>0]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++>>>0]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++>>>0]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){ptr>>>=0;return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){outIdx>>>=0;if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++>>>0]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++>>>0]=192|u>>6;heap[outIdx++>>>0]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++>>>0]=224|u>>12;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++>>>0]=240|u>>18;heap[outIdx++>>>0]=128|u>>12&63;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}}heap[outIdx>>>0]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer>>>0)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){{if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}}what=\"Aborted(\"+what+\")\";err(what);ABORT=true;EXITSTATUS=1;what+=\". Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}var wasmBinaryFile;wasmBinaryFile=\"./duckdb-eh.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"ka\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"na\"];addOnInit(Module[\"asm\"][\"la\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==\"function\"&&!isDataURI(wasmBinaryFile)&&typeof fetch==\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func==\"number\"){if(callback.arg===undefined){getWasmTableEntry(func)()}else{getWasmTableEntry(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function handleException(e){if(e instanceof ExitStatus||e==\"unwind\"){return EXITSTATUS}quit_(1,e)}var SYSCALLS={buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function ___syscall__newselect(nfds,readfds,writefds,exceptfds,timeout){}function SOCKFS(){err(\"missing function: $SOCKFS\");abort(-1)}function FS(){err(\"missing function: $FS\");abort(-1)}function getSocketFromFD(fd){var socket=SOCKFS.getSocket(fd);if(!socket)throw new FS.ErrnoError(8);return socket}function setErrNo(value){HEAP32[___errno_location()>>>2]=value;return value}function inetNtop4(addr){return(addr&255)+\".\"+(addr>>8&255)+\".\"+(addr>>16&255)+\".\"+(addr>>24&255)}function inetNtop6(ints){var str=\"\";var word=0;var longest=0;var lastzero=0;var zstart=0;var len=0;var i=0;var parts=[ints[0]&65535,ints[0]>>16,ints[1]&65535,ints[1]>>16,ints[2]&65535,ints[2]>>16,ints[3]&65535,ints[3]>>16];var hasipv4=true;var v4part=\"\";for(i=0;i<5;i++){if(parts[i]!==0){hasipv4=false;break}}if(hasipv4){v4part=inetNtop4(parts[6]|parts[7]<<16);if(parts[5]===-1){str=\"::ffff:\";str+=v4part;return str}if(parts[5]===0){str=\"::\";if(v4part===\"0.0.0.0\")v4part=\"\";if(v4part===\"0.0.0.1\")v4part=\"1\";str+=v4part;return str}}for(word=0;word<8;word++){if(parts[word]===0){if(word-lastzero>1){len=0}lastzero=word;len++}if(len>longest){longest=len;zstart=word-longest+1}}for(word=0;word<8;word++){if(longest>1){if(parts[word]===0&&word>=zstart&&word<zstart+longest){if(word===zstart){str+=\":\";if(zstart===0)str+=\":\"}continue}}str+=Number(_ntohs(parts[word]&65535)).toString(16);str+=word<7?\":\":\"\"}return str}function readSockaddr(sa,salen){var family=HEAP16[sa>>>1];var port=_ntohs(HEAPU16[sa+2>>>1]);var addr;switch(family){case 2:if(salen!==16){return{errno:28}}addr=HEAP32[sa+4>>>2];addr=inetNtop4(addr);break;case 10:if(salen!==28){return{errno:28}}addr=[HEAP32[sa+8>>>2],HEAP32[sa+12>>>2],HEAP32[sa+16>>>2],HEAP32[sa+20>>>2]];addr=inetNtop6(addr);break;default:return{errno:5}}return{family:family,addr:addr,port:port}}function inetPton4(str){var b=str.split(\".\");for(var i=0;i<4;i++){var tmp=Number(b[i]);if(isNaN(tmp))return null;b[i]=tmp}return(b[0]|b[1]<<8|b[2]<<16|b[3]<<24)>>>0}function jstoi_q(str){return parseInt(str)}function inetPton6(str){var words;var w,offset,z;var valid6regx=/^((?=.*::)(?!.*::.+::)(::)?([\\dA-F]{1,4}:(:|\\b)|){5}|([\\dA-F]{1,4}:){6})((([\\dA-F]{1,4}((?!\\3)::|:\\b|$))|(?!\\2\\3)){2}|(((2[0-4]|1\\d|[1-9])?\\d|25[0-5])\\.?\\b){4})$/i;var parts=[];if(!valid6regx.test(str)){return null}if(str===\"::\"){return[0,0,0,0,0,0,0,0]}if(str.startsWith(\"::\")){str=str.replace(\"::\",\"Z:\")}else{str=str.replace(\"::\",\":Z:\")}if(str.indexOf(\".\")>0){str=str.replace(new RegExp(\"[.]\",\"g\"),\":\");words=str.split(\":\");words[words.length-4]=jstoi_q(words[words.length-4])+jstoi_q(words[words.length-3])*256;words[words.length-3]=jstoi_q(words[words.length-2])+jstoi_q(words[words.length-1])*256;words=words.slice(0,words.length-2)}else{words=str.split(\":\")}offset=0;z=0;for(w=0;w<words.length;w++){if(typeof words[w]==\"string\"){if(words[w]===\"Z\"){for(z=0;z<8-words.length+1;z++){parts[w+z]=0}offset=z-1}else{parts[w+offset]=_htons(parseInt(words[w],16))}}else{parts[w+offset]=words[w]}}return[parts[1]<<16|parts[0],parts[3]<<16|parts[2],parts[5]<<16|parts[4],parts[7]<<16|parts[6]]}var DNS={address_map:{id:1,addrs:{},names:{}},lookup_name:function(name){var res=inetPton4(name);if(res!==null){return name}res=inetPton6(name);if(res!==null){return name}var addr;if(DNS.address_map.addrs[name]){addr=DNS.address_map.addrs[name]}else{var id=DNS.address_map.id++;assert(id<65535,\"exceeded max address mappings of 65535\");addr=\"172.29.\"+(id&255)+\".\"+(id&65280);DNS.address_map.names[addr]=name;DNS.address_map.addrs[name]=addr}return addr},lookup_addr:function(addr){if(DNS.address_map.names[addr]){return DNS.address_map.names[addr]}return null}};function getSocketAddress(addrp,addrlen,allowNull){if(allowNull&&addrp===0)return null;var info=readSockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}function ___syscall_bind(fd,addr,addrlen){var sock=getSocketFromFD(fd);var info=getSocketAddress(addr,addrlen);sock.sock_ops.bind(sock,info.addr,info.port);return 0}function ___syscall_connect(fd,addr,addrlen){var sock=getSocketFromFD(fd);var info=getSocketAddress(addr,addrlen);sock.sock_ops.connect(sock,info.addr,info.port);return 0}function ___syscall_faccessat(dirfd,path,amode,flags){path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);return SYSCALLS.doAccess(path,amode)}function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;return 0}function ___syscall_fstat64(fd,buf){}function ___syscall_fstatat64(dirfd,path,buf,flags){}function ___syscall_ftruncate64(fd,low,high){}function ___syscall_getdents64(fd,dirp,count){}function zeroMemory(address,size){HEAPU8.fill(0,address,address+size)}function writeSockaddr(sa,family,addr,port,addrlen){switch(family){case 2:addr=inetPton4(addr);zeroMemory(sa,16);if(addrlen){HEAP32[addrlen>>>2]=16}HEAP16[sa>>>1]=family;HEAP32[sa+4>>>2]=addr;HEAP16[sa+2>>>1]=_htons(port);break;case 10:addr=inetPton6(addr);zeroMemory(sa,28);if(addrlen){HEAP32[addrlen>>>2]=28}HEAP32[sa>>>2]=family;HEAP32[sa+8>>>2]=addr[0];HEAP32[sa+12>>>2]=addr[1];HEAP32[sa+16>>>2]=addr[2];HEAP32[sa+20>>>2]=addr[3];HEAP16[sa+2>>>1]=_htons(port);break;default:return 5}return 0}function ___syscall_getpeername(fd,addr,addrlen){var sock=getSocketFromFD(fd);if(!sock.daddr){return-53}var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(sock.daddr),sock.dport,addrlen);return 0}function ___syscall_getsockopt(fd,level,optname,optval,optlen){var sock=getSocketFromFD(fd);if(level===1){if(optname===4){HEAP32[optval>>>2]=sock.error;HEAP32[optlen>>>2]=4;sock.error=null;return 0}}return-50}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;return 0}function ___syscall_lstat64(path,buf){}function ___syscall_mkdir(path,mode){path=SYSCALLS.getStr(path);return SYSCALLS.doMkdir(path,mode)}function ___syscall_open(path,flags,varargs){SYSCALLS.varargs=varargs}function ___syscall_recvfrom(fd,buf,len,flags,addr,addrlen){var sock=getSocketFromFD(fd);var msg=sock.sock_ops.recvmsg(sock,len);if(!msg)return 0;if(addr){var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(msg.addr),msg.port,addrlen)}HEAPU8.set(msg.buffer,buf>>>0);return msg.buffer.byteLength}function ___syscall_rename(old_path,new_path){}function ___syscall_rmdir(path){}function ___syscall_sendto(fd,message,length,flags,addr,addr_len){}function ___syscall_socket(domain,type,protocol){}function ___syscall_stat64(path,buf){}function ___syscall_unlink(path){}function __dlopen_js(filename,flag){abort(\"To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking\")}function __dlsym_js(handle,symbol){abort(\"To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking\")}function __localtime_js(time,tmPtr){var date=new Date(HEAP32[time>>>2]*1e3);HEAP32[tmPtr>>>2]=date.getSeconds();HEAP32[tmPtr+4>>>2]=date.getMinutes();HEAP32[tmPtr+8>>>2]=date.getHours();HEAP32[tmPtr+12>>>2]=date.getDate();HEAP32[tmPtr+16>>>2]=date.getMonth();HEAP32[tmPtr+20>>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>>2]=yday;HEAP32[tmPtr+36>>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>>2]=dst}function __mmap_js(addr,len,prot,flags,fd,off,allocated,builtin){return-52}function __munmap_js(addr,len,prot,flags,fd,offset){addr>>>=0}function _tzset_impl(timezone,daylight,tzname){var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAP32[timezone>>>2]=stdTimezoneOffset*60;HEAP32[daylight>>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);return match?match[1]:\"GMT\"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summerOffset<winterOffset){HEAP32[tzname>>>2]=winterNamePtr;HEAP32[tzname+4>>>2]=summerNamePtr}else{HEAP32[tzname>>>2]=summerNamePtr;HEAP32[tzname+4>>>2]=winterNamePtr}}function __tzset_js(timezone,daylight,tzname){if(__tzset_js.called)return;__tzset_js.called=true;_tzset_impl(timezone,daylight,tzname)}function _abort(){abort(\"\")}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=(()=>{var t=process[\"hrtime\"]();return t[0]*1e3+t[1]/1e6})}else _emscripten_get_now=(()=>performance.now());var _emscripten_get_now_is_monotonic=true;function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>>2]=now/1e3|0;HEAP32[tp+4>>>2]=now%1e3*1e3*1e3|0;return 0}function _duckdb_web_fs_directory_create(path,pathLen){return globalThis.DUCKDB_RUNTIME.createDirectory(Module,path,pathLen)}function _duckdb_web_fs_directory_exists(path,pathLen){return globalThis.DUCKDB_RUNTIME.checkDirectory(Module,path,pathLen)}function _duckdb_web_fs_directory_list_files(path,pathLen){return globalThis.DUCKDB_RUNTIME.listDirectoryEntries(Module,path,pathLen)}function _duckdb_web_fs_directory_remove(path,pathLen){return globalThis.DUCKDB_RUNTIME.removeDirectory(Module,path,pathLen)}function _duckdb_web_fs_file_close(fileId){return globalThis.DUCKDB_RUNTIME.closeFile(Module,fileId)}function _duckdb_web_fs_file_exists(path,pathLen){return globalThis.DUCKDB_RUNTIME.checkFile(Module,path,pathLen)}function _duckdb_web_fs_file_get_last_modified_time(fileId){return globalThis.DUCKDB_RUNTIME.getLastFileModificationTime(Module,fileId)}function _duckdb_web_fs_file_move(from,fromLen,to,toLen){return globalThis.DUCKDB_RUNTIME.moveFile(Module,from,fromLen,to,toLen)}function _duckdb_web_fs_file_open(fileId,flags){return globalThis.DUCKDB_RUNTIME.openFile(Module,fileId,flags)}function _duckdb_web_fs_file_read(fileId,buf,size,location){return globalThis.DUCKDB_RUNTIME.readFile(Module,fileId,buf,size,location)}function _duckdb_web_fs_file_truncate(fileId,newSize){return globalThis.DUCKDB_RUNTIME.truncateFile(Module,fileId,newSize)}function _duckdb_web_fs_file_write(fileId,buf,size,location){return globalThis.DUCKDB_RUNTIME.writeFile(Module,fileId,buf,size,location)}function _duckdb_web_fs_get_default_data_protocol(Module){return globalThis.DUCKDB_RUNTIME.getDefaultDataProtocol(Module)}function _duckdb_web_fs_glob(path,pathLen){return globalThis.DUCKDB_RUNTIME.glob(Module,path,pathLen)}function _duckdb_web_test_platform_feature(feature){return globalThis.DUCKDB_RUNTIME.testPlatformFeature(Module,feature)}function _duckdb_web_udf_scalar_call(funcId,descPtr,descSize,ptrsPtr,ptrsSize,response){return globalThis.DUCKDB_RUNTIME.callScalarUDF(Module,funcId,descPtr,descSize,ptrsPtr,ptrsSize,response)}function _emscripten_get_heap_max(){return 4294901760}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest>>>0,src>>>0,src+num>>>0)}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=_emscripten_get_heap_max();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ENV={};function getExecutableName(){return thisProgram||\"./this.program\"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==\"object\"&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={\"USER\":\"web_user\",\"LOGNAME\":\"web_user\",\"PATH\":\"/\",\"PWD\":\"/\",\"HOME\":\"/home/web_user\",\"LANG\":lang,\"_\":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+\"=\"+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>>2]=bufSize;return 0}function _fd_close(fd){return 0}function _fd_fdstat_get(fd,pbuf){var type=fd==1||fd==2?2:abort();HEAP8[pbuf>>>0]=type;return 0}function _fd_pread(fd,iov,iovcnt,offset_low,offset_high,pnum){var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt,offset_low);HEAP32[pnum>>>2]=num;return 0}function _fd_pwrite(fd,iov,iovcnt,offset_low,offset_high,pnum){var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt,offset_low);HEAP32[pnum>>>2]=num;return 0}function _fd_read(fd,iov,iovcnt,pnum){var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>>2]=num;return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_sync(fd){var stream=SYSCALLS.getStreamFromFD(fd);if(stream.stream_ops&&stream.stream_ops.fsync){return-stream.stream_ops.fsync(stream)}return 0}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov>>>2];var len=HEAP32[iov+4>>>2];iov+=8;for(var j=0;j<len;j++){SYSCALLS.printChar(fd,HEAPU8[ptr+j>>>0])}num+=len}HEAP32[pnum>>>2]=num;return 0}function _getaddrinfo(node,service,hint,out){var addr=0;var port=0;var flags=0;var family=0;var type=0;var proto=0;var ai;function allocaddrinfo(family,type,proto,canon,addr,port){var sa,salen,ai;var errno;salen=family===10?28:16;addr=family===10?inetNtop6(addr):inetNtop4(addr);sa=_malloc(salen);errno=writeSockaddr(sa,family,addr,port);assert(!errno);ai=_malloc(32);HEAP32[ai+4>>>2]=family;HEAP32[ai+8>>>2]=type;HEAP32[ai+12>>>2]=proto;HEAP32[ai+24>>>2]=canon;HEAP32[ai+20>>>2]=sa;if(family===10){HEAP32[ai+16>>>2]=28}else{HEAP32[ai+16>>>2]=16}HEAP32[ai+28>>>2]=0;return ai}if(hint){flags=HEAP32[hint>>>2];family=HEAP32[hint+4>>>2];type=HEAP32[hint+8>>>2];proto=HEAP32[hint+12>>>2]}if(type&&!proto){proto=type===2?17:6}if(!type&&proto){type=proto===17?2:1}if(proto===0){proto=6}if(type===0){type=1}if(!node&&!service){return-2}if(flags&~(1|2|4|1024|8|16|32)){return-1}if(hint!==0&&HEAP32[hint>>>2]&2&&!node){return-1}if(flags&32){return-2}if(type!==0&&type!==1&&type!==2){return-7}if(family!==0&&family!==2&&family!==10){return-6}if(service){service=UTF8ToString(service);port=parseInt(service,10);if(isNaN(port)){if(flags&1024){return-2}return-8}}if(!node){if(family===0){family=2}if((flags&1)===0){if(family===2){addr=_htonl(2130706433)}else{addr=[0,0,0,1]}}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAP32[out>>>2]=ai;return 0}node=UTF8ToString(node);addr=inetPton4(node);if(addr!==null){if(family===0||family===2){family=2}else if(family===10&&flags&8){addr=[0,0,_htonl(65535),addr];family=10}else{return-2}}else{addr=inetPton6(node);if(addr!==null){if(family===0||family===10){family=10}else{return-2}}}if(addr!=null){ai=allocaddrinfo(family,type,proto,node,addr,port);HEAP32[out>>>2]=ai;return 0}if(flags&4){return-2}node=DNS.lookup_name(node);addr=inetPton4(node);if(family===0){family=2}else if(family===10){addr=[0,0,_htonl(65535),addr]}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAP32[out>>>2]=ai;return 0}function getRandomDevice(){if(typeof crypto==\"object\"&&typeof crypto[\"getRandomValues\"]==\"function\"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require(\"crypto\");return function(){return crypto_module[\"randomBytes\"](1)[0]}}catch(e){}}return function(){abort(\"randomDevice\")}}function _getentropy(buffer,size){if(!_getentropy.randomDevice){_getentropy.randomDevice=getRandomDevice()}for(var i=0;i<size;i++){HEAP8[buffer+i>>>0]=_getentropy.randomDevice()}return 0}function _getnameinfo(sa,salen,node,nodelen,serv,servlen,flags){var info=readSockaddr(sa,salen);if(info.errno){return-6}var port=info.port;var addr=info.addr;var overflowed=false;if(node&&nodelen){var lookup;if(flags&1||!(lookup=DNS.lookup_addr(addr))){if(flags&8){return-2}}else{addr=lookup}var numBytesWrittenExclNull=stringToUTF8(addr,node,nodelen);if(numBytesWrittenExclNull+1>=nodelen){overflowed=true}}if(serv&&servlen){port=\"\"+port;var numBytesWrittenExclNull=stringToUTF8(port,serv,servlen);if(numBytesWrittenExclNull+1>=servlen){overflowed=true}}if(overflowed){return-12}return 0}function _gettimeofday(ptr){var now=Date.now();HEAP32[ptr>>>2]=now/1e3|0;HEAP32[ptr+4>>>2]=now%1e3*1e3|0;return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>>2];var date={tm_sec:HEAP32[tm>>>2],tm_min:HEAP32[tm+4>>>2],tm_hour:HEAP32[tm+8>>>2],tm_mday:HEAP32[tm+12>>>2],tm_mon:HEAP32[tm+16>>>2],tm_year:HEAP32[tm+20>>>2],tm_wday:HEAP32[tm+24>>>2],tm_yday:HEAP32[tm+28>>>2],tm_isdst:HEAP32[tm+32>>>2],tm_gmtoff:HEAP32[tm+36>>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):\"\"};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={\"%c\":\"%a %b %d %H:%M:%S %Y\",\"%D\":\"%m/%d/%y\",\"%F\":\"%Y-%m-%d\",\"%h\":\"%b\",\"%r\":\"%I:%M:%S %p\",\"%R\":\"%H:%M\",\"%T\":\"%H:%M:%S\",\"%x\":\"%m/%d/%y\",\"%X\":\"%H:%M:%S\",\"%Ec\":\"%c\",\"%EC\":\"%C\",\"%Ex\":\"%m/%d/%y\",\"%EX\":\"%H:%M:%S\",\"%Ey\":\"%y\",\"%EY\":\"%Y\",\"%Od\":\"%d\",\"%Oe\":\"%e\",\"%OH\":\"%H\",\"%OI\":\"%I\",\"%Om\":\"%m\",\"%OM\":\"%M\",\"%OS\":\"%S\",\"%Ou\":\"%u\",\"%OU\":\"%U\",\"%OV\":\"%V\",\"%Ow\":\"%w\",\"%OW\":\"%W\",\"%Oy\":\"%y\"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,\"g\"),EXPANSION_RULES_1[rule])}var WEEKDAYS=[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"];var MONTHS=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];function leadingSomething(value,digits,character){var str=typeof value==\"number\"?value.toString():value||\"\";while(str.length<digits){str=character[0]+str}return str}function leadingNulls(value,digits){return leadingSomething(value,digits,\"0\")}function compareByDay(date1,date2){function sgn(value){return value<0?-1:value>0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={\"%a\":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},\"%A\":function(date){return WEEKDAYS[date.tm_wday]},\"%b\":function(date){return MONTHS[date.tm_mon].substring(0,3)},\"%B\":function(date){return MONTHS[date.tm_mon]},\"%C\":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},\"%d\":function(date){return leadingNulls(date.tm_mday,2)},\"%e\":function(date){return leadingSomething(date.tm_mday,2,\" \")},\"%g\":function(date){return getWeekBasedYear(date).toString().substring(2)},\"%G\":function(date){return getWeekBasedYear(date)},\"%H\":function(date){return leadingNulls(date.tm_hour,2)},\"%I\":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},\"%j\":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},\"%m\":function(date){return leadingNulls(date.tm_mon+1,2)},\"%M\":function(date){return leadingNulls(date.tm_min,2)},\"%n\":function(){return\"\\n\"},\"%p\":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return\"AM\"}else{return\"PM\"}},\"%S\":function(date){return leadingNulls(date.tm_sec,2)},\"%t\":function(){return\"\\t\"},\"%u\":function(date){return date.tm_wday||7},\"%U\":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?\"01\":\"00\"},\"%V\":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return\"53\"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return\"01\"}var daysDifference;if(firstWeekStartThisYear.getFullYear()<date.tm_year+1900){daysDifference=date.tm_yday+32-firstWeekStartThisYear.getDate()}else{daysDifference=date.tm_yday+1-firstWeekStartThisYear.getDate()}return leadingNulls(Math.ceil(daysDifference/7),2)},\"%w\":function(date){return date.tm_wday},\"%W\":function(date){var janFirst=new Date(date.tm_year,0,1);var firstMonday=janFirst.getDay()===1?janFirst:__addDays(janFirst,janFirst.getDay()===0?1:7-janFirst.getDay()+1);var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstMonday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstMondayUntilEndJanuary=31-firstMonday.getDate();var days=firstMondayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstMonday,janFirst)===0?\"01\":\"00\"},\"%y\":function(date){return(date.tm_year+1900).toString().substring(2)},\"%Y\":function(date){return date.tm_year+1900},\"%z\":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?\"+\":\"-\")+String(\"0000\"+off).slice(-4)},\"%Z\":function(date){return date.tm_zone},\"%%\":function(){return\"%\"}};pattern=pattern.replace(/%%/g,\"\\0\\0\");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,\"g\"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\\0\\0/g,\"%\");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={\"da\":___syscall__newselect,\"fa\":___syscall_bind,\"ea\":___syscall_connect,\"Z\":___syscall_faccessat,\"b\":___syscall_fcntl64,\"Y\":___syscall_fstat64,\"V\":___syscall_fstatat64,\"T\":___syscall_ftruncate64,\"R\":___syscall_getdents64,\"$\":___syscall_getpeername,\"ca\":___syscall_getsockopt,\"f\":___syscall_ioctl,\"U\":___syscall_lstat64,\"S\":___syscall_mkdir,\"g\":___syscall_open,\"aa\":___syscall_recvfrom,\"P\":___syscall_rename,\"k\":___syscall_rmdir,\"ba\":___syscall_sendto,\"m\":___syscall_socket,\"X\":___syscall_stat64,\"l\":___syscall_unlink,\"p\":__dlopen_js,\"ga\":__dlsym_js,\"u\":__localtime_js,\"L\":__mmap_js,\"M\":__munmap_js,\"w\":__tzset_js,\"a\":_abort,\"o\":_clock_gettime,\"D\":_duckdb_web_fs_directory_create,\"E\":_duckdb_web_fs_directory_exists,\"B\":_duckdb_web_fs_directory_list_files,\"C\":_duckdb_web_fs_directory_remove,\"i\":_duckdb_web_fs_file_close,\"z\":_duckdb_web_fs_file_exists,\"H\":_duckdb_web_fs_file_get_last_modified_time,\"A\":_duckdb_web_fs_file_move,\"I\":_duckdb_web_fs_file_open,\"d\":_duckdb_web_fs_file_read,\"G\":_duckdb_web_fs_file_truncate,\"j\":_duckdb_web_fs_file_write,\"J\":_duckdb_web_fs_get_default_data_protocol,\"y\":_duckdb_web_fs_glob,\"h\":_duckdb_web_test_platform_feature,\"K\":_duckdb_web_udf_scalar_call,\"v\":_emscripten_get_heap_max,\"ia\":_emscripten_memcpy_big,\"ja\":_emscripten_resize_heap,\"N\":_environ_get,\"W\":_environ_sizes_get,\"c\":_fd_close,\"ha\":_fd_fdstat_get,\"s\":_fd_pread,\"r\":_fd_pwrite,\"q\":_fd_read,\"t\":_fd_seek,\"Q\":_fd_sync,\"e\":_fd_write,\"n\":_getaddrinfo,\"O\":_getentropy,\"_\":_getnameinfo,\"x\":_gettimeofday,\"F\":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _main=Module[\"_main\"]=function(){return(_main=Module[\"_main\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _duckdb_web_fs_glob_add_path=Module[\"_duckdb_web_fs_glob_add_path\"]=function(){return(_duckdb_web_fs_glob_add_path=Module[\"_duckdb_web_fs_glob_add_path\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _duckdb_web_clear_response=Module[\"_duckdb_web_clear_response\"]=function(){return(_duckdb_web_clear_response=Module[\"_duckdb_web_clear_response\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _duckdb_web_fail_with=Module[\"_duckdb_web_fail_with\"]=function(){return(_duckdb_web_fail_with=Module[\"_duckdb_web_fail_with\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _duckdb_web_reset=Module[\"_duckdb_web_reset\"]=function(){return(_duckdb_web_reset=Module[\"_duckdb_web_reset\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _duckdb_web_connect=Module[\"_duckdb_web_connect\"]=function(){return(_duckdb_web_connect=Module[\"_duckdb_web_connect\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _duckdb_web_disconnect=Module[\"_duckdb_web_disconnect\"]=function(){return(_duckdb_web_disconnect=Module[\"_duckdb_web_disconnect\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _duckdb_web_flush_files=Module[\"_duckdb_web_flush_files\"]=function(){return(_duckdb_web_flush_files=Module[\"_duckdb_web_flush_files\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _duckdb_web_flush_file=Module[\"_duckdb_web_flush_file\"]=function(){return(_duckdb_web_flush_file=Module[\"_duckdb_web_flush_file\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _duckdb_web_open=Module[\"_duckdb_web_open\"]=function(){return(_duckdb_web_open=Module[\"_duckdb_web_open\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _duckdb_web_get_global_file_info=Module[\"_duckdb_web_get_global_file_info\"]=function(){return(_duckdb_web_get_global_file_info=Module[\"_duckdb_web_get_global_file_info\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _duckdb_web_collect_file_stats=Module[\"_duckdb_web_collect_file_stats\"]=function(){return(_duckdb_web_collect_file_stats=Module[\"_duckdb_web_collect_file_stats\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _duckdb_web_export_file_stats=Module[\"_duckdb_web_export_file_stats\"]=function(){return(_duckdb_web_export_file_stats=Module[\"_duckdb_web_export_file_stats\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _duckdb_web_fs_drop_file=Module[\"_duckdb_web_fs_drop_file\"]=function(){return(_duckdb_web_fs_drop_file=Module[\"_duckdb_web_fs_drop_file\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _duckdb_web_fs_drop_files=Module[\"_duckdb_web_fs_drop_files\"]=function(){return(_duckdb_web_fs_drop_files=Module[\"_duckdb_web_fs_drop_files\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _duckdb_web_fs_glob_file_infos=Module[\"_duckdb_web_fs_glob_file_infos\"]=function(){return(_duckdb_web_fs_glob_file_infos=Module[\"_duckdb_web_fs_glob_file_infos\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _duckdb_web_fs_get_file_info_by_id=Module[\"_duckdb_web_fs_get_file_info_by_id\"]=function(){return(_duckdb_web_fs_get_file_info_by_id=Module[\"_duckdb_web_fs_get_file_info_by_id\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _duckdb_web_fs_get_file_info_by_name=Module[\"_duckdb_web_fs_get_file_info_by_name\"]=function(){return(_duckdb_web_fs_get_file_info_by_name=Module[\"_duckdb_web_fs_get_file_info_by_name\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _duckdb_web_fs_register_file_url=Module[\"_duckdb_web_fs_register_file_url\"]=function(){return(_duckdb_web_fs_register_file_url=Module[\"_duckdb_web_fs_register_file_url\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _duckdb_web_fs_register_file_buffer=Module[\"_duckdb_web_fs_register_file_buffer\"]=function(){return(_duckdb_web_fs_register_file_buffer=Module[\"_duckdb_web_fs_register_file_buffer\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _duckdb_web_copy_file_to_buffer=Module[\"_duckdb_web_copy_file_to_buffer\"]=function(){return(_duckdb_web_copy_file_to_buffer=Module[\"_duckdb_web_copy_file_to_buffer\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _duckdb_web_copy_file_to_path=Module[\"_duckdb_web_copy_file_to_path\"]=function(){return(_duckdb_web_copy_file_to_path=Module[\"_duckdb_web_copy_file_to_path\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _duckdb_web_get_version=Module[\"_duckdb_web_get_version\"]=function(){return(_duckdb_web_get_version=Module[\"_duckdb_web_get_version\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _duckdb_web_get_feature_flags=Module[\"_duckdb_web_get_feature_flags\"]=function(){return(_duckdb_web_get_feature_flags=Module[\"_duckdb_web_get_feature_flags\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _duckdb_web_tokenize=Module[\"_duckdb_web_tokenize\"]=function(){return(_duckdb_web_tokenize=Module[\"_duckdb_web_tokenize\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _duckdb_web_udf_scalar_create=Module[\"_duckdb_web_udf_scalar_create\"]=function(){return(_duckdb_web_udf_scalar_create=Module[\"_duckdb_web_udf_scalar_create\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _duckdb_web_prepared_create=Module[\"_duckdb_web_prepared_create\"]=function(){return(_duckdb_web_prepared_create=Module[\"_duckdb_web_prepared_create\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _duckdb_web_prepared_close=Module[\"_duckdb_web_prepared_close\"]=function(){return(_duckdb_web_prepared_close=Module[\"_duckdb_web_prepared_close\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _duckdb_web_prepared_run=Module[\"_duckdb_web_prepared_run\"]=function(){return(_duckdb_web_prepared_run=Module[\"_duckdb_web_prepared_run\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _duckdb_web_prepared_send=Module[\"_duckdb_web_prepared_send\"]=function(){return(_duckdb_web_prepared_send=Module[\"_duckdb_web_prepared_send\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _duckdb_web_query_run=Module[\"_duckdb_web_query_run\"]=function(){return(_duckdb_web_query_run=Module[\"_duckdb_web_query_run\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _duckdb_web_pending_query_start=Module[\"_duckdb_web_pending_query_start\"]=function(){return(_duckdb_web_pending_query_start=Module[\"_duckdb_web_pending_query_start\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _duckdb_web_pending_query_poll=Module[\"_duckdb_web_pending_query_poll\"]=function(){return(_duckdb_web_pending_query_poll=Module[\"_duckdb_web_pending_query_poll\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _duckdb_web_pending_query_cancel=Module[\"_duckdb_web_pending_query_cancel\"]=function(){return(_duckdb_web_pending_query_cancel=Module[\"_duckdb_web_pending_query_cancel\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _duckdb_web_query_fetch_results=Module[\"_duckdb_web_query_fetch_results\"]=function(){return(_duckdb_web_query_fetch_results=Module[\"_duckdb_web_query_fetch_results\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _duckdb_web_get_tablenames=Module[\"_duckdb_web_get_tablenames\"]=function(){return(_duckdb_web_get_tablenames=Module[\"_duckdb_web_get_tablenames\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _duckdb_web_insert_arrow_from_ipc_stream=Module[\"_duckdb_web_insert_arrow_from_ipc_stream\"]=function(){return(_duckdb_web_insert_arrow_from_ipc_stream=Module[\"_duckdb_web_insert_arrow_from_ipc_stream\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _duckdb_web_insert_csv_from_path=Module[\"_duckdb_web_insert_csv_from_path\"]=function(){return(_duckdb_web_insert_csv_from_path=Module[\"_duckdb_web_insert_csv_from_path\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var _duckdb_web_insert_json_from_path=Module[\"_duckdb_web_insert_json_from_path\"]=function(){return(_duckdb_web_insert_json_from_path=Module[\"_duckdb_web_insert_json_from_path\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _htonl=Module[\"_htonl\"]=function(){return(_htonl=Module[\"_htonl\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var _htons=Module[\"_htons\"]=function(){return(_htons=Module[\"_htons\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _ntohs=Module[\"_ntohs\"]=function(){return(_ntohs=Module[\"_ntohs\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};Module[\"ccall\"]=ccall;Module[\"stackSave\"]=stackSave;Module[\"stackRestore\"]=stackRestore;Module[\"stackAlloc\"]=stackAlloc;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"_main\"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module[\"onExit\"])Module[\"onExit\"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;run();\n\n\n  return DuckDB.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n  module.exports = DuckDB;\nelse if (typeof define === 'function' && define['amd'])\n  define([], function() { return DuckDB; });\nelse if (typeof exports === 'object')\n  exports[\"DuckDB\"] = DuckDB;\n", "import * as arrow from 'apache-arrow';\nimport { DuckDBBindings } from './bindings_interface';\nimport { CSVInsertOptions, JSONInsertOptions, ArrowInsertOptions } from './insert_options';\n\n/** A thin helper to bind the connection id and talk record batches */\nexport class DuckDBConnection {\n    /** The bindings */\n    protected _bindings: DuckDBBindings;\n    /** The connection handle */\n    protected _conn: number;\n\n    /** Constructor */\n    constructor(bindings: DuckDBBindings, conn: number) {\n        this._bindings = bindings;\n        this._conn = conn;\n    }\n\n    /** Close a connection */\n    public close(): void {\n        this._bindings.disconnect(this._conn);\n    }\n\n    /** Brave souls may use this function to consume the underlying connection id */\n    public useUnsafe<R>(callback: (bindings: DuckDBBindings, conn: number) => R) {\n        return callback(this._bindings, this._conn);\n    }\n\n    /** Run a query */\n    public query<T extends { [key: string]: arrow.DataType } = any>(text: string): arrow.Table<T> {\n        const buffer = this._bindings.runQuery(this._conn, text);\n        const reader = arrow.RecordBatchReader.from<T>(buffer);\n        console.assert(reader.isSync());\n        console.assert(reader.isFile());\n        return new arrow.Table(reader);\n    }\n\n    /** Send a query */\n    public async send<T extends { [key: string]: arrow.DataType } = any>(\n        text: string,\n    ): Promise<arrow.RecordBatchStreamReader<T>> {\n        let header = this._bindings.startPendingQuery(this._conn, text);\n        while (header == null) {\n            header = await new Promise((resolve, reject) => {\n                try {\n                    resolve(this._bindings.pollPendingQuery(this._conn));\n                } catch (e: any) {\n                    console.log(e);\n                    reject(e);\n                }\n            });\n        }\n        const iter = new ResultStreamIterator(this._bindings, this._conn, header);\n        const reader = arrow.RecordBatchReader.from<T>(iter);\n        console.assert(reader.isSync());\n        console.assert(reader.isStream());\n        return reader;\n    }\n\n    /** Cancel a query that was sent earlier */\n    public cancelSent(): boolean {\n        return this._bindings.cancelPendingQuery(this._conn);\n    }\n\n    /** Get table names */\n    public getTableNames(query: string): string[] {\n        return this._bindings.getTableNames(this._conn, query);\n    }\n\n    /** Create a prepared statement */\n    public prepare<T extends { [key: string]: arrow.DataType } = any>(text: string): PreparedStatement {\n        const stmt = this._bindings.createPrepared(this._conn, text);\n        return new PreparedStatement<T>(this._bindings, this._conn, stmt);\n    }\n\n    /** Create a scalar function */\n    public createScalarFunction(name: string, returns: arrow.DataType, func: (...args: any[]) => void): void {\n        this._bindings.createScalarFunction(this._conn, name, returns, func);\n    }\n\n    /** Insert an arrow table */\n    public insertArrowTable(table: arrow.Table, options: ArrowInsertOptions): void {\n\tconst buffer = arrow.tableToIPC(table, 'stream');\n        this.insertArrowFromIPCStream(buffer, options);\n    }\n    /** Insert an arrow table from an ipc stream */\n    public insertArrowFromIPCStream(buffer: Uint8Array, options: ArrowInsertOptions): void {\n        this._bindings.insertArrowFromIPCStream(this._conn, buffer, options);\n    }\n\n    /** Inesrt csv file from path */\n    public insertCSVFromPath(path: string, options: CSVInsertOptions): void {\n        this._bindings.insertCSVFromPath(this._conn, path, options);\n    }\n    /** Insert json file from path */\n    public insertJSONFromPath(path: string, options: JSONInsertOptions): void {\n        this._bindings.insertJSONFromPath(this._conn, path, options);\n    }\n}\n\n/** A result stream iterator */\nexport class ResultStreamIterator implements Iterable<Uint8Array> {\n    /** First chunk? */\n    _first: boolean;\n    /** Reached end of stream? */\n    _depleted: boolean;\n\n    constructor(protected bindings: DuckDBBindings, protected conn: number, protected header: Uint8Array) {\n        this._first = true;\n        this._depleted = false;\n    }\n\n    next(): IteratorResult<Uint8Array> {\n        if (this._first) {\n            this._first = false;\n            return { done: false, value: this.header };\n        }\n        if (this._depleted) {\n            return { done: true, value: null };\n        }\n        const bufferI8 = this.bindings.fetchQueryResults(this.conn);\n        this._depleted = bufferI8.length == 0;\n        return {\n            done: this._depleted,\n            value: bufferI8,\n        };\n    }\n\n    [Symbol.iterator]() {\n        return this;\n    }\n}\n\n/** A thin helper to bind the prepared statement id*/\nexport class PreparedStatement<T extends { [key: string]: arrow.DataType } = any> {\n    /** The bindings */\n    protected readonly bindings: DuckDBBindings;\n    /** The connection id */\n    protected readonly connectionId: number;\n    /** The statement id */\n    protected readonly statementId: number;\n\n    /** Constructor */\n    constructor(bindings: DuckDBBindings, connectionId: number, statementId: number) {\n        this.bindings = bindings;\n        this.connectionId = connectionId;\n        this.statementId = statementId;\n    }\n\n    /** Close a prepared statement */\n    public close() {\n        this.bindings.closePrepared(this.connectionId, this.statementId);\n    }\n\n    /** Run a prepared statement */\n    public query(...params: any[]): arrow.Table<T> {\n        const buffer = this.bindings.runPrepared(this.connectionId, this.statementId, params);\n        const reader = arrow.RecordBatchReader.from<T>(buffer);\n        console.assert(reader.isSync());\n        console.assert(reader.isFile());\n        return new arrow.Table(reader as arrow.RecordBatchFileReader);\n    }\n\n    /** Send a prepared statement */\n    public send(...params: any[]): arrow.RecordBatchStreamReader<T> {\n        const header = this.bindings.sendPrepared(this.connectionId, this.statementId, params);\n        const iter = new ResultStreamIterator(this.bindings, this.connectionId, header);\n        const reader = arrow.RecordBatchReader.from<T>(iter);\n        console.assert(reader.isSync());\n        console.assert(reader.isStream());\n        return reader as arrow.RecordBatchStreamReader;\n    }\n}\n", "import { DuckDBRuntime } from './runtime';\nimport { DuckDBModule } from './duckdb_module';\n\nconst TEXT_ENCODER = new TextEncoder();\nconst TEXT_DECODER = new TextDecoder('utf-8');\n\nfunction storeError(mod: DuckDBModule, response: number, message: string) {\n    const msgBuffer = TEXT_ENCODER.encode(message);\n    const heapAddr = mod._malloc(msgBuffer.byteLength);\n    const heapArray = mod.HEAPU8.subarray(heapAddr, heapAddr + msgBuffer.byteLength);\n    heapArray.set(msgBuffer);\n    mod.HEAPF64[(response >> 3) + 0] = 1;\n    mod.HEAPF64[(response >> 3) + 1] = heapAddr;\n    mod.HEAPF64[(response >> 3) + 2] = heapArray.byteLength;\n}\n\nfunction getTypeSize(ptype: string) {\n    switch (ptype) {\n        case 'UINT8':\n        case 'INT8':\n            return 1;\n        case 'INT32':\n        case 'FLOAT':\n            return 4;\n        case 'INT64':\n        case 'UINT64':\n        case 'DOUBLE':\n        case 'VARCHAR':\n            return 8;\n        default:\n            return 0;\n    }\n}\n\nfunction ptrToArray(mod: DuckDBModule, ptr: number, ptype: string, n: number) {\n    const heap = mod.HEAPU8.subarray(ptr, ptr + n * getTypeSize(ptype));\n    switch (ptype) {\n        case 'UINT8':\n            return new Uint8Array(heap.buffer, heap.byteOffset, n);\n        case 'INT8':\n            return new Int8Array(heap.buffer, heap.byteOffset, n);\n        case 'INT32':\n            return new Int32Array(heap.buffer, heap.byteOffset, n);\n        case 'FLOAT':\n            return new Float32Array(heap.buffer, heap.byteOffset, n);\n        case 'DOUBLE':\n            return new Float64Array(heap.buffer, heap.byteOffset, n);\n        case 'VARCHAR':\n            return new Float64Array(heap.buffer, heap.byteOffset, n);\n        default:\n            return new Array<string | undefined | null>(0); // cough\n    }\n}\n\nfunction ptrToUint8Array(mod: DuckDBModule, ptr: number, n: number) {\n    const heap = mod.HEAPU8.subarray(ptr, ptr + n);\n    return new Uint8Array(heap.buffer, heap.byteOffset, n);\n}\nfunction ptrToFloat64Array(mod: DuckDBModule, ptr: number, n: number) {\n    const heap = mod.HEAPU8.subarray(ptr, ptr + n * 8);\n    return new Float64Array(heap.buffer, heap.byteOffset, n);\n}\n\ninterface ArgumentTypeDescription {\n    name?: string;\n    sqlType: string;\n    physicalType: string;\n    validityBuffer?: number;\n    dataBuffer?: number;\n    lengthBuffer?: number;\n    children?: ArgumentTypeDescription[];\n}\n\ninterface ReturnTypeDescription {\n    sqlType: string;\n    physicalType: string;\n}\n\ninterface SchemaDescription {\n    rows: number;\n    args: ArgumentTypeDescription[];\n    ret: ReturnTypeDescription;\n}\n\ntype ArgumentResolver = (row: number) => any | null;\n\n// this is called from webdb.cc/CallScalarUDFFunction, changes here need to be matched there\nexport function callScalarUDF(\n    runtime: DuckDBRuntime,\n    mod: DuckDBModule,\n    response: number,\n    funcId: number,\n    descPtr: number,\n    descSize: number,\n    ptrsPtr: number,\n    ptrsSize: number,\n) {\n    try {\n        const udf = runtime._udfFunctions.get(funcId);\n        if (!udf) {\n            storeError(mod, response, 'Unknown UDF with id: ' + funcId);\n            return;\n        }\n        const rawDesc = TEXT_DECODER.decode(mod.HEAPU8.subarray(descPtr, descPtr + descSize));\n        const desc = JSON.parse(rawDesc) as SchemaDescription;\n        const ptrs = ptrToFloat64Array(mod, ptrsPtr, ptrsSize / 8);\n\n        const buildResolver = (arg: ArgumentTypeDescription): ArgumentResolver => {\n            let validity: Uint8Array | null = null;\n            if (arg.validityBuffer !== undefined) {\n                validity = ptrToUint8Array(mod, ptrs[arg.validityBuffer] as number, desc.rows);\n            }\n            switch (arg.physicalType) {\n                case 'VARCHAR': {\n                    if (arg.dataBuffer === null || arg.dataBuffer === undefined) {\n                        throw new Error('malformed data view, expected data buffer for VARCHAR argument');\n                    }\n                    if (arg.lengthBuffer === null || arg.lengthBuffer === undefined) {\n                        throw new Error('malformed data view, expected data length buffer for VARCHAR argument');\n                    }\n                    const raw = ptrToArray(mod, ptrs[arg.dataBuffer] as number, arg.physicalType, desc.rows);\n                    const strings: (string | null)[] = [];\n                    const stringLengths = ptrToFloat64Array(mod, ptrs[arg.lengthBuffer] as number, desc.rows);\n                    for (let j = 0; j < desc.rows; ++j) {\n                        if (validity != null && !validity[j]) {\n                            strings.push(null);\n                            continue;\n                        }\n                        const subarray = mod.HEAPU8.subarray(\n                            raw[j] as number,\n                            (raw[j] as number) + (stringLengths[j] as number),\n                        );\n                        const str = TEXT_DECODER.decode(subarray);\n                        strings.push(str);\n                    }\n                    return (row: number) => strings[row];\n                }\n                case 'STRUCT': {\n                    const tmp: any = {};\n                    const children: ArgumentResolver[] = [];\n                    for (let j = 0; j < (arg.children?.length || 0); ++j) {\n                        const attr = arg.children![j];\n                        const child = buildResolver(attr);\n                        children.push((row: number) => {\n                            tmp[attr.name!] = child(row);\n                        });\n                    }\n                    if (validity != null) {\n                        return (row: number) => {\n                            if (!validity![row]) {\n                                return null;\n                            }\n                            for (const resolver of children) {\n                                resolver(row);\n                            }\n                            return tmp;\n                        };\n                    } else {\n                        return (row: number) => {\n                            for (const resolver of children) {\n                                resolver(row);\n                            }\n                            return tmp;\n                        };\n                    }\n                }\n                default: {\n                    if (arg.dataBuffer === undefined) {\n                        throw new Error(\n                            'malformed data view, expected data buffer for argument of type: ' + arg.physicalType,\n                        );\n                    }\n                    const data = ptrToArray(mod, ptrs[arg.dataBuffer] as number, arg.physicalType, desc.rows);\n                    if (validity != null) {\n                        return (row: number) => (!validity![row] ? null : data[row]);\n                    } else {\n                        return (row: number) => data[row];\n                    }\n                }\n            }\n        };\n\n        // Translate argument data\n        const argResolvers = [];\n        for (let i = 0; i < desc.args.length; ++i) {\n            argResolvers.push(buildResolver(desc.args[i]));\n        }\n\n        // Prepare result buffers\n        // TODO: we probably do not want to recreate those every time\n        const resultDataLen = desc.rows * getTypeSize(desc.ret.physicalType);\n        const resultDataPtr = mod._malloc(resultDataLen);\n        const resultData = ptrToArray(mod, resultDataPtr, desc.ret.physicalType, desc.rows);\n        const resultValidityPtr = mod._malloc(desc.rows);\n        const resultValidity = ptrToUint8Array(mod, resultValidityPtr, desc.rows);\n        if (resultData.length == 0 || resultValidity.length == 0) {\n            storeError(mod, response, \"Can't create physical arrays for result\");\n            return;\n        }\n        let rawResultData = resultData;\n        if (desc.ret.physicalType == 'VARCHAR') {\n            rawResultData = new Array<string | undefined | null>(desc.rows);\n        }\n\n        // Call the function\n        const args = [];\n        for (let i = 0; i < desc.args.length; ++i) {\n            args.push(null);\n        }\n        for (let i = 0; i < desc.rows; ++i) {\n            for (let j = 0; j < desc.args.length; ++j) {\n                args[j] = argResolvers[j](i);\n            }\n            const res = udf.func(...args);\n            rawResultData[i] = res;\n            resultValidity[i] = res === undefined || res === null ? 0 : 1;\n        }\n\n        // Encode return values\n        let resultLengthsPtr = 0;\n        switch (desc.ret.physicalType) {\n            case 'VARCHAR': {\n                // Allocate result buffers\n                const resultDataUTF8 = new Array<Uint8Array>(0); // cough\n                resultLengthsPtr = mod._malloc(desc.rows * getTypeSize('DOUBLE'));\n                const resultLengths = ptrToFloat64Array(mod, resultLengthsPtr, desc.rows);\n\n                // TODO: We need two loops to figure out the total length but maybe we can avoid the double allocation\n                let totalLength = 0;\n                for (let row = 0; row < desc.rows; ++row) {\n                    const utf8 = TEXT_ENCODER.encode((rawResultData as (string | null | undefined)[])[row] || '');\n                    resultDataUTF8.push(utf8);\n                    resultLengths[row] = utf8.length;\n                    totalLength += utf8.length;\n                }\n\n                // We malloc a buffer for the strings to live in for now\n                const resultStringPtr = mod._malloc(totalLength);\n                const resultStringBuf = mod.HEAPU8.subarray(resultStringPtr, resultStringPtr + totalLength);\n\n                // Now copy all the strings to the new buffer back to back\n                let writerOffset = 0;\n                for (let row = 0; row < desc.rows; ++row) {\n                    resultData[row] = writerOffset;\n                    const resultUTF8 = resultDataUTF8[row];\n                    const writer = resultStringBuf.subarray(writerOffset, writerOffset + resultUTF8.length);\n                    writer.set(resultUTF8);\n                    writerOffset += resultUTF8.length;\n                }\n            }\n        }\n\n        // Need to store three pointers, data, validity and length\n        const retLen = 3 * 8;\n        const retPtr = mod._malloc(retLen);\n        const retBuffer = ptrToFloat64Array(mod, retPtr, 3);\n        retBuffer[0] = resultDataPtr;\n        retBuffer[1] = resultValidityPtr;\n        retBuffer[2] = resultLengthsPtr;\n\n        // Pack response\n        mod.HEAPF64[(response >> 3) + 0] = 0;\n        mod.HEAPF64[(response >> 3) + 1] = retPtr;\n        mod.HEAPF64[(response >> 3) + 2] = 0;\n    } catch (e: any) {\n        storeError(mod, response, e.toString());\n    }\n}\n", "import { DuckDBModule } from './duckdb_module';\nimport { UDFFunction } from './udf_function';\nimport * as udf_rt from './udf_runtime';\n\n/** Wrapper for TextDecoder to support shared array buffers */\nfunction TextDecoderWrapper(): (input?: BufferSource) => string {\n    const decoder = new TextDecoder();\n    return (data: any) => {\n        if (typeof SharedArrayBuffer !== 'undefined' && data.buffer instanceof SharedArrayBuffer) {\n            data = new Uint8Array(data);\n        }\n        return decoder.decode(data);\n    };\n}\n/** Helper to decode text */\nexport const decodeText = TextDecoderWrapper();\n\n/** Copy a buffer */\nexport function failWith(mod: DuckDBModule, msg: string): void {\n    console.error(`FAIL WITH: ${msg}`);\n    mod.ccall('duckdb_web_fail_with', null, ['string'], [msg]);\n}\n\n/** Copy a buffer */\nexport function copyBuffer(mod: DuckDBModule, begin: number, length: number): Uint8Array {\n    const buffer = mod.HEAPU8.subarray(begin, begin + length);\n    const copy = new Uint8Array(new ArrayBuffer(buffer.byteLength));\n    copy.set(buffer);\n    return copy;\n}\n\n/** Decode a string */\nexport function readString(mod: DuckDBModule, begin: number, length: number): string {\n    return decodeText(mod.HEAPU8.subarray(begin, begin + length));\n}\n\n/** The data protocol */\nexport enum DuckDBDataProtocol {\n    BUFFER = 0,\n    NODE_FS = 1,\n    BROWSER_FILEREADER = 2,\n    BROWSER_FSACCESS = 3,\n    HTTP = 4,\n    S3 = 5,\n}\n\n/** File flags for opening files*/\nexport enum FileFlags {\n    //! Open file with read access\n    FILE_FLAGS_READ = 1 << 0,\n    //! Open file with write access\n    FILE_FLAGS_WRITE = 1 << 1,\n    //! Use direct IO when reading/writing to the file\n    FILE_FLAGS_DIRECT_IO = 1 << 2,\n    //! Create file if not exists, can only be used together with WRITE\n    FILE_FLAGS_FILE_CREATE = 1 << 3,\n    //! Always create a new file. If a file exists, the file is truncated. Cannot be used together with CREATE.\n    FILE_FLAGS_FILE_CREATE_NEW = 1 << 4,\n    //! Open file in append mode\n    FILE_FLAGS_APPEND = 1 << 5,\n}\n\n/** Configuration for the AWS S3 Filesystem */\nexport interface S3Config {\n    region?: string;\n    endpoint?: string;\n    accessKeyId?: string;\n    secretAccessKey?: string;\n    sessionToken?: string;\n}\n\n/** An info for a file registered with DuckDB */\nexport interface DuckDBFileInfo {\n    cacheEpoch: number;\n    fileId: number;\n    fileName: string;\n    dataProtocol: DuckDBDataProtocol;\n    dataUrl: string | null;\n    allowFullHttpReads?: boolean;\n    s3Config?: S3Config;\n}\n\n/** Global info for all files registered with DuckDB */\nexport interface DuckDBGlobalFileInfo {\n    cacheEpoch: number;\n    allowFullHttpReads?: boolean;\n    s3Config?: S3Config;\n}\n\n/** Call a function with packed response buffer */\nexport function callSRet(\n    mod: DuckDBModule,\n    funcName: string,\n    argTypes: Array<Emscripten.JSType>,\n    args: Array<any>,\n): [number, number, number] {\n    const stackPointer = mod.stackSave();\n\n    // Allocate the packed response buffer\n    const response = mod.stackAlloc(3 * 8);\n    argTypes.unshift('number');\n    args.unshift(response);\n\n    // Do the call\n    mod.ccall(funcName, null, argTypes, args);\n\n    // Read the response\n    const status = mod.HEAPF64[(response >> 3) + 0];\n    const data = mod.HEAPF64[(response >> 3) + 1];\n    const dataSize = mod.HEAPF64[(response >> 3) + 2];\n\n    // Restore the stack\n    mod.stackRestore(stackPointer);\n    return [status, data, dataSize];\n}\n\n/** Drop response buffers */\nexport function dropResponseBuffers(mod: DuckDBModule): void {\n    mod.ccall('duckdb_web_clear_response', null, [], []);\n}\n\n/** The duckdb runtime */\nexport interface DuckDBRuntime {\n    _files?: Map<string, any>;\n    _udfFunctions: Map<number, UDFFunction>;\n\n    // Test a platform feature\n    testPlatformFeature(mod: DuckDBModule, feature: number): boolean;\n\n    // File APIs with dedicated file identifier\n    getDefaultDataProtocol(mod: DuckDBModule): number;\n    openFile(mod: DuckDBModule, fileId: number, flags: FileFlags): void;\n    syncFile(mod: DuckDBModule, fileId: number): void;\n    closeFile(mod: DuckDBModule, fileId: number): void;\n    getLastFileModificationTime(mod: DuckDBModule, fileId: number): number;\n    truncateFile(mod: DuckDBModule, fileId: number, newSize: number): void;\n    readFile(mod: DuckDBModule, fileId: number, buffer: number, bytes: number, location: number): number;\n    writeFile(mod: DuckDBModule, fileId: number, buffer: number, bytes: number, location: number): number;\n\n    // File APIs with path parameter\n    removeDirectory(mod: DuckDBModule, pathPtr: number, pathLen: number): void;\n    checkDirectory(mod: DuckDBModule, pathPtr: number, pathLen: number): boolean;\n    createDirectory(mod: DuckDBModule, pathPtr: number, pathLen: number): void;\n    listDirectoryEntries(mod: DuckDBModule, pathPtr: number, pathLen: number): boolean;\n    glob(mod: DuckDBModule, pathPtr: number, pathLen: number): void;\n    moveFile(mod: DuckDBModule, fromPtr: number, fromLen: number, toPtr: number, toLen: number): void;\n    checkFile(mod: DuckDBModule, pathPtr: number, pathLen: number): boolean;\n    removeFile(mod: DuckDBModule, pathPtr: number, pathLen: number): void;\n\n    // Call a scalar UDF function\n    callScalarUDF(\n        mod: DuckDBModule,\n        response: number,\n        funcId: number,\n        descPtr: number,\n        descSize: number,\n        ptrsPtr: number,\n        ptrsSize: number,\n    ): void;\n}\n\nexport const DEFAULT_RUNTIME: DuckDBRuntime = {\n    _udfFunctions: new Map(),\n\n    testPlatformFeature: (_mod: DuckDBModule, _feature: number): boolean => false,\n    getDefaultDataProtocol: (_mod: DuckDBModule): number => DuckDBDataProtocol.BUFFER,\n    openFile: (_mod: DuckDBModule, _fileId: number, flags: FileFlags): void => {},\n    syncFile: (_mod: DuckDBModule, _fileId: number): void => {},\n    closeFile: (_mod: DuckDBModule, _fileId: number): void => {},\n    getLastFileModificationTime: (_mod: DuckDBModule, _fileId: number): number => {\n        return 0;\n    },\n    truncateFile: (_mod: DuckDBModule, _fileId: number, _newSize: number): void => {},\n    readFile: (_mod: DuckDBModule, _fileId: number, _buffer: number, _bytes: number, _location: number): number => {\n        return 0;\n    },\n    writeFile: (_mod: DuckDBModule, _fileId: number, _buffer: number, _bytes: number, _location: number): number => {\n        return 0;\n    },\n\n    removeDirectory: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number): void => {},\n    checkDirectory: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number): boolean => {\n        return false;\n    },\n    createDirectory: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number): void => {},\n    listDirectoryEntries: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number): boolean => {\n        return false;\n    },\n    glob: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number): void => {},\n    moveFile: (_mod: DuckDBModule, _fromPtr: number, _fromLen: number, _toPtr: number, _toLen: number): void => {},\n    checkFile: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number): boolean => {\n        return false;\n    },\n    removeFile: (_mod: DuckDBModule, _pathPtr: number, _pathLen: number): void => {},\n    callScalarUDF: (\n        mod: DuckDBModule,\n        response: number,\n        funcId: number,\n        descPtr: number,\n        descSize: number,\n        ptrsPtr: number,\n        ptrsSize: number,\n    ): void => {\n        udf_rt.callScalarUDF(DEFAULT_RUNTIME, mod, response, funcId, descPtr, descSize, ptrsPtr, ptrsSize);\n    },\n};\n", "export interface FileBlockStatistics {\n    /** The file reads cold */\n    file_reads_cold: number;\n    /** The file reads aheads */\n    file_reads_ahead: number;\n    /** The file reads cached */\n    file_reads_cached: number;\n    /** The file writes */\n    file_writes: number;\n    /** The page accesses */\n    page_accesses: number;\n    /** The page loads */\n    page_loads: number;\n}\n\n/** The file block statistics */\nexport class FileStatistics {\n    /** The cold file reads */\n    public totalFileReadsCold: number;\n    /** The file readaheads */\n    public totalFileReadsAhead: number;\n    /** The cached file reads */\n    public totalFileReadsCached: number;\n    /** The file writes */\n    public totalFileWrites: number;\n    /** The page accesses */\n    public totalPageAccesses: number;\n    /** The page loads */\n    public totalPageLoads: number;\n    /** The blocks */\n    public blockSize: number;\n    /** The blocks */\n    public blockStats: Uint8Array;\n\n    constructor(u8array: Uint8Array) {\n        const f64 = new Float64Array(u8array.buffer, u8array.byteOffset, u8array.byteLength / 8);\n        const blocks = new Uint8Array(new ArrayBuffer(u8array.byteLength));\n        blocks.set(u8array.subarray(7 * 8));\n        this.totalFileReadsCold = f64[0];\n        this.totalFileReadsAhead = f64[1];\n        this.totalFileReadsCached = f64[2];\n        this.totalFileWrites = f64[3];\n        this.totalPageAccesses = f64[4];\n        this.totalPageLoads = f64[5];\n        this.blockSize = f64[6];\n        this.blockStats = blocks;\n    }\n\n    /** The block stats */\n    public getBlockStats(index: number, out?: FileBlockStatistics): FileBlockStatistics {\n        out = out || {\n            file_reads_cold: 0,\n            file_reads_ahead: 0,\n            file_reads_cached: 0,\n            file_writes: 0,\n            page_accesses: 0,\n            page_loads: 0,\n        };\n        out.file_writes = this.blockStats[index * 3 + 0] & 0b1111;\n        out.file_reads_cold = this.blockStats[index * 3 + 0] >> 4;\n        out.file_reads_ahead = this.blockStats[index * 3 + 1] & 0b1111;\n        out.file_reads_cached = this.blockStats[index * 3 + 1] >> 4;\n        out.page_accesses = this.blockStats[index * 3 + 1] & 0b1111;\n        out.page_loads = this.blockStats[index * 3 + 1] >> 4;\n        return out;\n    }\n}\n", "import * as arrow from 'apache-arrow';\n\nexport interface SQLType {\n    /// The sql type\n    sqlType: string;\n    /// Is nullable?\n    nullable?: boolean;\n    /// Decimal precision\n    precision?: number;\n    /// Decimal scaling\n    scale?: number;\n    /// Timezone\n    timezone?: string;\n    /// Byte width (FixedSizeBinary)\n    byteWidth?: number;\n    /// Key type\n    keyType?: SQLType;\n    /// Value type\n    valueType?: SQLType;\n    /// Fields\n    fields?: SQLField[];\n}\n\nexport function arrowToSQLType(type: arrow.DataType): SQLType {\n    switch (type.typeId) {\n        case arrow.Type.Binary:\n            return { sqlType: 'binary' };\n        case arrow.Type.Bool:\n            return { sqlType: 'bool' };\n        case arrow.Type.Date:\n            return { sqlType: 'date' };\n        case arrow.Type.DateDay:\n            return { sqlType: 'date32[d]' };\n        case arrow.Type.DateMillisecond:\n            return { sqlType: 'date64[ms]' };\n        case arrow.Type.Decimal: {\n            const dec = type as arrow.Decimal;\n            return { sqlType: 'decimal', precision: dec.precision, scale: dec.scale };\n        }\n        case arrow.Type.Float:\n            return { sqlType: 'float' };\n        case arrow.Type.Float16:\n            return { sqlType: 'float16' };\n        case arrow.Type.Float32:\n            return { sqlType: 'float32' };\n        case arrow.Type.Float64:\n            return { sqlType: 'float64' };\n        case arrow.Type.Int:\n            return { sqlType: 'int32' };\n        case arrow.Type.Int16:\n            return { sqlType: 'int16' };\n        case arrow.Type.Int32:\n            return { sqlType: 'int32' };\n        case arrow.Type.Int64:\n            return { sqlType: 'int64' };\n        case arrow.Type.Uint16:\n            return { sqlType: 'uint16' };\n        case arrow.Type.Uint32:\n            return { sqlType: 'uint32' };\n        case arrow.Type.Uint64:\n            return { sqlType: 'uint64' };\n        case arrow.Type.Uint8:\n            return { sqlType: 'uint8' };\n        case arrow.Type.IntervalDayTime:\n            return { sqlType: 'interval[dt]' };\n        case arrow.Type.IntervalYearMonth:\n            return { sqlType: 'interval[m]' };\n        case arrow.Type.List: {\n            const list = type as arrow.List;\n            return {\n                sqlType: 'list',\n                valueType: arrowToSQLType(list.valueType),\n            };\n        }\n        case arrow.Type.FixedSizeBinary: {\n            const bin = type as arrow.FixedSizeBinary;\n            return { sqlType: 'fixedsizebinary', byteWidth: bin.byteWidth };\n        }\n        case arrow.Type.Null:\n            return { sqlType: 'null' };\n        case arrow.Type.Utf8:\n            return { sqlType: 'utf8' };\n        case arrow.Type.Struct: {\n            const struct_ = type as arrow.Struct;\n            return {\n                sqlType: 'struct',\n                fields: struct_.children.map(c => arrowToSQLField(c.name, c.type)),\n            };\n        }\n        case arrow.Type.Map: {\n            const map_ = type as arrow.Map_;\n            return {\n                sqlType: 'map',\n                keyType: arrowToSQLType(map_.keyType),\n                valueType: arrowToSQLType(map_.valueType),\n            };\n        }\n        case arrow.Type.Time:\n            return { sqlType: 'time[s]' };\n        case arrow.Type.TimeMicrosecond:\n            return { sqlType: 'time[us]' };\n        case arrow.Type.TimeMillisecond:\n            return { sqlType: 'time[ms]' };\n        case arrow.Type.TimeNanosecond:\n            return { sqlType: 'time[ns]' };\n        case arrow.Type.TimeSecond:\n            return { sqlType: 'time[s]' };\n        case arrow.Type.Timestamp: {\n            const ts = type as arrow.Timestamp;\n            return { sqlType: 'timestamp', timezone: ts.timezone || undefined };\n        }\n        case arrow.Type.TimestampSecond: {\n            const ts = type as arrow.TimestampSecond;\n            return { sqlType: 'timestamp[s]', timezone: ts.timezone || undefined };\n        }\n        case arrow.Type.TimestampMicrosecond: {\n            const ts = type as arrow.TimestampMicrosecond;\n            return { sqlType: 'timestamp[us]', timezone: ts.timezone || undefined };\n        }\n        case arrow.Type.TimestampNanosecond: {\n            const ts = type as arrow.TimestampNanosecond;\n            return { sqlType: 'timestamp[ns]', timezone: ts.timezone || undefined };\n        }\n        case arrow.Type.TimestampMillisecond: {\n            const ts = type as arrow.TimestampMillisecond;\n            return { sqlType: 'timestamp[ms]', timezone: ts.timezone || undefined };\n        }\n    }\n    throw new Error(`unsupported arrow type: ${type.toString()}`);\n}\n\nexport type SQLField = SQLType & { name: string };\n\nexport function arrowToSQLField(name: string, type: arrow.DataType): SQLField {\n    const t = arrowToSQLType(type) as SQLField;\n    t.name = name;\n    return t;\n}\n", "import { DuckDBModule, PThread } from './duckdb_module';\nimport { DuckDBConfig } from './config';\nimport { Logger } from '../log';\nimport { InstantiationProgress } from './progress';\nimport { DuckDBBindings } from './bindings_interface';\nimport { DuckDBConnection } from './connection';\nimport { StatusCode } from '../status';\nimport { dropResponseBuffers, DuckDBRuntime, readString, callSRet, copyBuffer, DuckDBDataProtocol } from './runtime';\nimport { CSVInsertOptions, JSONInsertOptions, ArrowInsertOptions } from './insert_options';\nimport { ScriptTokens } from './tokens';\nimport { FileStatistics } from './file_stats';\nimport { arrowToSQLField, arrowToSQLType } from '../json_typedef';\nimport { WebFile } from './web_file';\nimport { UDFFunction, UDFFunctionDeclaration } from './udf_function';\nimport * as arrow from 'apache-arrow';\n\nconst TEXT_ENCODER = new TextEncoder();\n\ndeclare global {\n    // eslint-disable-next-line no-var\n    var DUCKDB_RUNTIME: any;\n}\n\n/** A DuckDB Feature */\nexport enum DuckDBFeature {\n    WASM_EXCEPTIONS = 1 << 0,\n    WASM_THREADS = 1 << 1,\n    WASM_SIMD = 1 << 2,\n    WASM_BULK_MEMORY = 1 << 3,\n    EMIT_BIGINT = 1 << 4,\n}\n\n/** The proxy for either the browser- order node-based DuckDB API */\nexport abstract class DuckDBBindingsBase implements DuckDBBindings {\n    /** The logger */\n    protected readonly _logger: Logger;\n    /** Backend-dependent native-glue code for DuckDB */\n    protected readonly _runtime: DuckDBRuntime;\n    /** The instance */\n    protected _instance: DuckDBModule | null = null;\n    /** The loading promise */\n    protected _initPromise: Promise<void> | null = null;\n    /** The resolver for the open promise (called by onRuntimeInitialized) */\n    protected _initPromiseResolver: () => void = () => {};\n    /** The next UDF id */\n    protected _nextUDFId: number;\n\n    constructor(logger: Logger, runtime: DuckDBRuntime) {\n        this._logger = logger;\n        this._runtime = runtime;\n        this._nextUDFId = 1;\n    }\n\n    /** Get the logger */\n    public get logger(): Logger {\n        return this._logger;\n    }\n    /** Get the instance */\n    public get mod(): DuckDBModule {\n        return this._instance!;\n    }\n    /** Get the instance */\n    public get pthread(): PThread | null {\n        return this.mod.PThread || null;\n    }\n\n    /** Instantiate the module */\n    protected abstract instantiateImpl(moduleOverrides: Partial<DuckDBModule>): Promise<DuckDBModule>;\n    /** Instantiate the module */\n    protected onInstantiationProgress: ((p: InstantiationProgress) => void)[] = [];\n    /** Instantiate the database */\n    public async instantiate(onProgress: (progress: InstantiationProgress) => void = _ => {}): Promise<this> {\n        // Already opened?\n        if (this._instance != null) {\n            return this;\n        }\n        // Open in progress?\n        if (this._initPromise != null) {\n            this.onInstantiationProgress.push(onProgress);\n            await this._initPromise;\n        }\n        // Create a promise that we can await\n        this._initPromise = new Promise(resolve => {\n            this._initPromiseResolver = resolve;\n        });\n        // Register progress handler\n        this.onInstantiationProgress = [onProgress];\n        // Initialize duckdb\n        this._instance = await this.instantiateImpl({\n            print: console.log.bind(console),\n            printErr: console.log.bind(console),\n            onRuntimeInitialized: this._initPromiseResolver,\n        });\n        // Wait for onRuntimeInitialized\n        await this._initPromise;\n        this._initPromise = null;\n        // Remove own progress callback\n        this.onInstantiationProgress = this.onInstantiationProgress.filter(x => x != onProgress);\n        (globalThis as any).DUCKDB_BINDINGS = this;\n        return this;\n    }\n    /** Open a database with a config */\n    public open(config: DuckDBConfig): void {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_open', ['string'], [JSON.stringify(config)]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        dropResponseBuffers(this.mod);\n    }\n\n    /** Reset the database */\n    public reset(): void {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_reset', [], []);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        dropResponseBuffers(this.mod);\n    }\n\n    /** Get the version */\n    public getVersion(): string {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_get_version', [], []);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        const version = readString(this.mod, d, n);\n        dropResponseBuffers(this.mod);\n        return version;\n    }\n    /** Get the feature flags */\n    public getFeatureFlags(): number {\n        return this.mod.ccall('duckdb_web_get_feature_flags', 'number', [], []);\n    }\n\n    /** Tokenize a script */\n    public tokenize(text: string): ScriptTokens {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_tokenize', ['string'], [text]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        const res = readString(this.mod, d, n);\n        dropResponseBuffers(this.mod);\n        return JSON.parse(res) as ScriptTokens;\n    }\n\n    /** Connect to database */\n    public connect(): DuckDBConnection {\n        const conn = this.mod.ccall('duckdb_web_connect', 'number', [], []);\n        return new DuckDBConnection(this, conn);\n    }\n    /** Disconnect from database */\n    public disconnect(conn: number): void {\n        this.mod.ccall('duckdb_web_disconnect', null, ['number'], [conn]);\n        if (this.pthread) {\n            for (const worker of [...this.pthread.runningWorkers, ...this.pthread.unusedWorkers]) {\n                worker.postMessage({\n                    cmd: 'dropUDFFunctions',\n                    connectionId: conn,\n                });\n            }\n        }\n    }\n\n    /** Send a query and return the full result */\n    public runQuery(conn: number, text: string): Uint8Array {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_query_run', ['number', 'string'], [conn, text]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        const res = copyBuffer(this.mod, d, n);\n        dropResponseBuffers(this.mod);\n        return res;\n    }\n    /**\n     *  Start a pending query asynchronously.\n     *  This method returns either the arrow ipc schema or null.\n     *  On null, the query has to be executed using `pollPendingQuery` until that returns != null.\n     *  Results can then be fetched using `fetchQueryResults`\n     */\n    public startPendingQuery(conn: number, text: string): Uint8Array | null {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_pending_query_start', ['number', 'string'], [conn, text]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        if (d == 0) {\n            return null;\n        }\n        const res = copyBuffer(this.mod, d, n);\n        dropResponseBuffers(this.mod);\n        return res;\n    }\n    /** Poll a pending query */\n    public pollPendingQuery(conn: number): Uint8Array | null {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_pending_query_poll', ['number'], [conn]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        if (d == 0) {\n            return null;\n        }\n        const res = copyBuffer(this.mod, d, n);\n        dropResponseBuffers(this.mod);\n        return res;\n    }\n    /** Cancel a pending query */\n    public cancelPendingQuery(conn: number): boolean {\n        return this.mod.ccall('duckdb_web_pending_query_cancel', 'boolean', ['number'], [conn]);\n    }\n    /** Fetch query results */\n    public fetchQueryResults(conn: number): Uint8Array {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_query_fetch_results', ['number'], [conn]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        const res = copyBuffer(this.mod, d, n);\n        dropResponseBuffers(this.mod);\n        return res;\n    }\n    /** Get table names */\n    public getTableNames(conn: number, text: string): string[] {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_get_tablenames', ['number', 'string'], [conn, text]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        const res = readString(this.mod, d, n);\n        dropResponseBuffers(this.mod);\n        return JSON.parse(res) as string[];\n    }\n\n    /** Create a scalar function */\n    public createScalarFunction(\n        conn: number,\n        name: string,\n        returns: arrow.DataType,\n        func: (...args: any[]) => void,\n    ): void {\n        const decl: UDFFunctionDeclaration = {\n            functionId: this._nextUDFId,\n            name: name,\n            returnType: arrowToSQLType(returns),\n        };\n        const def: UDFFunction = {\n            functionId: decl.functionId,\n            connectionId: conn,\n            name: name,\n            returnType: returns,\n            func,\n        };\n        this._nextUDFId += 1;\n        const [s, d, n] = callSRet(\n            this.mod,\n            'duckdb_web_udf_scalar_create',\n            ['number', 'string'],\n            [conn, JSON.stringify(decl)],\n        );\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        dropResponseBuffers(this.mod);\n        globalThis.DUCKDB_RUNTIME._udfFunctions = (globalThis.DUCKDB_RUNTIME._udfFunctions || new Map()).set(\n            def.functionId,\n            def,\n        );\n        if (this.pthread) {\n            for (const worker of [...this.pthread.runningWorkers, ...this.pthread.unusedWorkers]) {\n                worker.postMessage({\n                    cmd: 'registerUDFFunction',\n                    udf: def,\n                });\n            }\n        }\n    }\n\n    /** Prepare a statement and return its identifier */\n    public createPrepared(conn: number, text: string): number {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_prepared_create', ['number', 'string'], [conn, text]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        dropResponseBuffers(this.mod);\n        return d;\n    }\n\n    /** Close a prepared statement */\n    public closePrepared(conn: number, statement: number): void {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_prepared_close', ['number', 'number'], [conn, statement]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        dropResponseBuffers(this.mod);\n    }\n\n    /** Execute a prepared statement and return the full result */\n    public runPrepared(conn: number, statement: number, params: any[]): Uint8Array {\n        const [s, d, n] = callSRet(\n            this.mod,\n            'duckdb_web_prepared_run',\n            ['number', 'number', 'string'],\n            [conn, statement, JSON.stringify(params)],\n        );\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        const res = copyBuffer(this.mod, d, n);\n        dropResponseBuffers(this.mod);\n        return res;\n    }\n\n    /** Execute a prepared statement and stream the result */\n    public sendPrepared(conn: number, statement: number, params: any[]): Uint8Array {\n        const [s, d, n] = callSRet(\n            this.mod,\n            'duckdb_web_prepared_send',\n            ['number', 'number', 'string'],\n            [conn, statement, JSON.stringify(params)],\n        );\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        const res = copyBuffer(this.mod, d, n);\n        dropResponseBuffers(this.mod);\n        return res;\n    }\n\n    /** Insert record batches from an arrow ipc stream */\n    public insertArrowFromIPCStream(conn: number, buffer: Uint8Array, options?: ArrowInsertOptions): void {\n        if (buffer.length == 0) return;\n        // Store buffer\n        const bufferPtr = this.mod._malloc(buffer.length);\n        const bufferOfs = this.mod.HEAPU8.subarray(bufferPtr, bufferPtr + buffer.length);\n        bufferOfs.set(buffer);\n        const optJSON = options ? JSON.stringify(options) : '';\n\n        // Call wasm function\n        const [s, d, n] = callSRet(\n            this.mod,\n            'duckdb_web_insert_arrow_from_ipc_stream',\n            ['number', 'number', 'number', 'string'],\n            [conn, bufferPtr, buffer.length, optJSON],\n        );\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n    }\n\n    /** Insert csv from path */\n    public insertCSVFromPath(conn: number, path: string, options: CSVInsertOptions): void {\n        // Stringify options\n        if (options.columns !== undefined) {\n            options.columnsFlat = [];\n            for (const k in options.columns) {\n                options.columnsFlat.push(arrowToSQLField(k, options.columns[k]));\n            }\n        }\n        const opt = { ...options } as any;\n        opt.columns = opt.columnsFlat;\n        delete opt.columnsFlat;\n        const optJSON = JSON.stringify(opt);\n\n        // Call wasm function\n        const [s, d, n] = callSRet(\n            this.mod,\n            'duckdb_web_insert_csv_from_path',\n            ['number', 'string', 'string'],\n            [conn, path, optJSON],\n        );\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n    }\n    /** Insert json from path */\n    public insertJSONFromPath(conn: number, path: string, options: JSONInsertOptions): void {\n        // Stringify options\n        if (options.columns !== undefined) {\n            options.columnsFlat = [];\n            for (const k in options.columns) {\n                options.columnsFlat.push(arrowToSQLField(k, options.columns[k]));\n            }\n        }\n        const opt = { ...options } as any;\n        opt.columns = opt.columnsFlat;\n        delete opt.columnsFlat;\n        const optJSON = JSON.stringify(opt);\n\n        // Call wasm function\n        const [s, d, n] = callSRet(\n            this.mod,\n            'duckdb_web_insert_json_from_path',\n            ['number', 'string', 'string'],\n            [conn, path, optJSON],\n        );\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n    }\n    /** Glob file infos */\n    public globFiles(path: string): WebFile[] {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_fs_glob_file_infos', ['string'], [path]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        const infoStr = readString(this.mod, d, n);\n        dropResponseBuffers(this.mod);\n        const info = JSON.parse(infoStr) as WebFile[];\n        if (info == null) {\n            return [];\n        }\n        return info;\n    }\n    /** Register a file object URL */\n    public registerFileURL(name: string, url: string, proto: DuckDBDataProtocol, directIO = false): void {\n        if (url === undefined) {\n            url = name;\n        }\n        const [s, d, n] = callSRet(\n            this.mod,\n            'duckdb_web_fs_register_file_url',\n            ['string', 'string'],\n            [name, url, proto, directIO],\n        );\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        dropResponseBuffers(this.mod);\n    }\n    /** Register file text */\n    public registerFileText(name: string, text: string): void {\n        const buffer = TEXT_ENCODER.encode(text);\n        this.registerFileBuffer(name, buffer);\n    }\n    /** Register a file buffer */\n    public registerFileBuffer(name: string, buffer: Uint8Array): void {\n        const ptr = this.mod._malloc(buffer.length);\n        const dst = this.mod.HEAPU8.subarray(ptr, ptr + buffer.length);\n        dst.set(buffer);\n        const [s, d, n] = callSRet(\n            this.mod,\n            'duckdb_web_fs_register_file_buffer',\n            ['string', 'number', 'number'],\n            [name, ptr, buffer.length],\n        );\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        dropResponseBuffers(this.mod);\n    }\n    /** Register a file object URL */\n    public registerFileHandle<HandleType>(\n        name: string,\n        handle: HandleType,\n        protocol: DuckDBDataProtocol,\n        directIO: boolean,\n    ): void {\n        const [s, d, n] = callSRet(\n            this.mod,\n            'duckdb_web_fs_register_file_url',\n            ['string', 'string', 'number', 'boolean'],\n            [name, name, protocol, directIO],\n        );\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        dropResponseBuffers(this.mod);\n        globalThis.DUCKDB_RUNTIME._files = (globalThis.DUCKDB_RUNTIME._files || new Map()).set(name, handle);\n        if (this.pthread) {\n            for (const worker of this.pthread.runningWorkers) {\n                worker.postMessage({\n                    cmd: 'registerFileHandle',\n                    fileName: name,\n                    fileHandle: handle,\n                });\n            }\n            for (const worker of this.pthread.unusedWorkers) {\n                worker.postMessage({\n                    cmd: 'dropFileHandle',\n                    fileName: name,\n                });\n            }\n        }\n    }\n    /** Drop file */\n    public dropFile(name: string): void {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_fs_drop_file', ['string'], [name]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        dropResponseBuffers(this.mod);\n    }\n    /** Drop files */\n    public dropFiles(): void {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_fs_drop_files', [], []);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        dropResponseBuffers(this.mod);\n    }\n    /** Flush all files */\n    public flushFiles(): void {\n        this.mod.ccall('duckdb_web_flush_files', null, [], []);\n    }\n    /** Write a file to a path */\n    public copyFileToPath(name: string, path: string): void {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_copy_file_to_path', ['string', 'string'], [name, path]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        dropResponseBuffers(this.mod);\n    }\n    /** Write a file to a buffer */\n    public copyFileToBuffer(name: string): Uint8Array {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_copy_file_to_buffer', ['string'], [name]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        const buffer = this.mod.HEAPU8.subarray(d, d + n);\n        const copy = new Uint8Array(buffer.length);\n        copy.set(buffer);\n        dropResponseBuffers(this.mod);\n        return copy;\n    }\n\n    /** Enable tracking of file statistics */\n    public collectFileStatistics(file: string, enable: boolean): void {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_collect_file_stats', ['string', 'boolean'], [file, enable]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n    }\n    /** Export file statistics */\n    public exportFileStatistics(file: string): FileStatistics {\n        const [s, d, n] = callSRet(this.mod, 'duckdb_web_export_file_stats', ['string'], [file]);\n        if (s !== StatusCode.SUCCESS) {\n            throw new Error(readString(this.mod, d, n));\n        }\n        return new FileStatistics(this.mod.HEAPU8.subarray(d, d + n));\n    }\n}\n", "export enum LogLevel {\n    NONE = 0,\n    DEBUG = 1,\n    INFO = 2,\n    WARNING = 3,\n    ERROR = 4,\n}\n\nexport enum LogTopic {\n    NONE = 0,\n    CONNECT = 1,\n    DISCONNECT = 2,\n    OPEN = 3,\n    QUERY = 4,\n    INSTANTIATE = 5,\n}\n\nexport enum LogEvent {\n    NONE = 0,\n    OK = 1,\n    ERROR = 2,\n    START = 3,\n    RUN = 4,\n    CAPTURE = 5,\n}\n\nexport enum LogOrigin {\n    NONE = 0,\n    WEB_WORKER = 1,\n    NODE_WORKER = 2,\n    BINDINGS = 3,\n    ASYNC_DUCKDB = 4,\n}\n\nexport type LogEntry<O, T, E, V> = {\n    readonly timestamp: Date;\n    readonly level: LogLevel;\n    readonly origin: O;\n    readonly topic: T;\n    readonly event: E;\n    readonly value: V;\n};\n\nexport type LogEntryVariant =\n    | LogEntry<LogOrigin.BINDINGS, LogTopic.INSTANTIATE, LogEvent.ERROR, string>\n    | LogEntry<LogOrigin.BINDINGS, LogTopic.QUERY, LogEvent.START, void>\n    | LogEntry<LogOrigin.BINDINGS, LogTopic.QUERY, LogEvent.OK, void>\n    | LogEntry<LogOrigin.BINDINGS, LogTopic.QUERY, LogEvent.ERROR, void>\n    | LogEntry<LogOrigin.BINDINGS, LogTopic.CONNECT, LogEvent.OK, void>\n    | LogEntry<LogOrigin.BINDINGS, LogTopic.CONNECT, LogEvent.ERROR, void>\n    | LogEntry<LogOrigin.BINDINGS, LogTopic.DISCONNECT, LogEvent.OK, void>\n    | LogEntry<LogOrigin.BINDINGS, LogTopic.DISCONNECT, LogEvent.ERROR, void>\n    | LogEntry<LogOrigin.BINDINGS, LogTopic.OPEN, LogEvent.START, void>\n    | LogEntry<LogOrigin.BINDINGS, LogTopic.OPEN, LogEvent.OK, void>\n    | LogEntry<LogOrigin.BINDINGS, LogTopic.OPEN, LogEvent.ERROR, void>\n    | LogEntry<LogOrigin.ASYNC_DUCKDB, LogTopic.QUERY, LogEvent.RUN, string>;\n\nexport interface Logger {\n    log(entry: LogEntryVariant): void;\n}\n\nexport class VoidLogger implements Logger {\n    public log(_entry: LogEntryVariant): void {}\n}\n\nexport class ConsoleLogger implements Logger {\n    constructor(protected level: LogLevel = LogLevel.INFO) {}\n    public log(entry: LogEntryVariant): void {\n        if (entry.level >= this.level) {\n            console.log(entry);\n        }\n    }\n}\n\nexport function getLogLevelLabel(level: LogLevel): string {\n    switch (level) {\n        case LogLevel.NONE:\n            return 'NONE';\n        case LogLevel.DEBUG:\n            return 'DEBUG';\n        case LogLevel.INFO:\n            return 'INFO';\n        case LogLevel.WARNING:\n            return 'WARNING';\n        case LogLevel.ERROR:\n            return 'ERROR';\n        default:\n            return '?';\n    }\n}\n\nexport function getLogEventLabel(event: LogEvent): string {\n    switch (event) {\n        case LogEvent.NONE:\n            return 'NONE';\n        case LogEvent.OK:\n            return 'OK';\n        case LogEvent.ERROR:\n            return 'ERROR';\n        case LogEvent.START:\n            return 'START';\n        case LogEvent.RUN:\n            return 'RUN';\n        case LogEvent.CAPTURE:\n            return 'CAPTURE';\n        default:\n            return '?';\n    }\n}\n\nexport function getLogTopicLabel(topic: LogTopic): string {\n    switch (topic) {\n        case LogTopic.CONNECT:\n            return 'CONNECT';\n        case LogTopic.DISCONNECT:\n            return 'DISCONNECT';\n        case LogTopic.INSTANTIATE:\n            return 'INSTANTIATE';\n        case LogTopic.OPEN:\n            return 'OPEN';\n        case LogTopic.QUERY:\n            return 'QUERY';\n        default:\n            return '?';\n    }\n}\n\nexport function getLogOriginLabel(origin: LogOrigin): string {\n    switch (origin) {\n        case LogOrigin.NONE:\n            return 'NONE';\n        case LogOrigin.WEB_WORKER:\n            return 'WEB WORKER';\n        case LogOrigin.NODE_WORKER:\n            return 'NODE WORKER';\n        case LogOrigin.BINDINGS:\n            return 'DUCKDB BINDINGS';\n        case LogOrigin.ASYNC_DUCKDB:\n            return 'DUCKDB';\n        default:\n            return '?';\n    }\n}\n", "export const bigInt=()=>(async e=>{try{return(await WebAssembly.instantiate(e)).instance.exports.b(BigInt(0))===BigInt(0)}catch(e){return!1}})(new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,1,126,1,126,3,2,1,0,7,5,1,1,98,0,0,10,6,1,4,0,32,0,11])),bulkMemory=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,3,1,0,1,10,14,1,12,0,65,0,65,0,65,0,252,10,0,0,11])),exceptions=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,6,64,25,11,11])),extendedConst=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,5,3,1,0,1,11,9,1,0,65,1,65,2,106,11,0])),gc=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,10,2,95,1,125,0,96,0,1,107,0,3,2,1,1,10,12,1,10,0,67,0,0,0,0,251,7,0,11])),memory64=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,5,3,1,4,1])),multiValue=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,0,2,127,127,3,2,1,0,10,8,1,6,0,65,0,65,0,11])),mutableGlobals=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,2,8,1,1,97,1,98,3,127,1,6,6,1,127,1,65,0,11,7,5,1,1,97,3,1])),referenceTypes=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,7,1,5,0,208,112,26,11])),relaxedSimd=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,15,1,13,0,65,1,253,15,65,2,253,15,253,128,2,11])),saturatedFloatToInt=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,12,1,10,0,67,0,0,0,0,252,0,26,11])),signExtensions=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,65,0,192,26,11])),simd=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11])),streamingCompilation=()=>(async()=>\"compileStreaming\"in WebAssembly)(),tailCall=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,6,1,4,0,18,0,11])),threads=()=>(async e=>{try{return\"undefined\"!=typeof MessageChannel&&(new MessageChannel).port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(e)}catch(e){return!1}})(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]));\n", "import * as check from 'wasm-feature-detect';\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\n\n// Platform check taken from here:\n// https://github.com/xtermjs/xterm.js/blob/master/src/common/Platform.ts#L21\n\ninterface INavigator {\n    userAgent: string;\n    language: string;\n    platform: string;\n}\n\n// We're declaring a navigator global here as we expect it in all runtimes (node and browser), but\n// we want this module to live in common.\ndeclare const navigator: INavigator;\n\nexport const isNode = () => (typeof navigator === 'undefined' ? true : false);\nconst userAgent = () => (isNode() ? 'node' : navigator.userAgent);\nexport const isFirefox = () => userAgent().includes('Firefox');\nexport const isSafari = () => /^((?!chrome|android).)*safari/i.test(userAgent());\n\nexport interface DuckDBBundles {\n    mvp: {\n        mainModule: string;\n        mainWorker: string;\n    };\n    eh?: {\n        mainModule: string;\n        mainWorker: string;\n    };\n    coi?: {\n        mainModule: string;\n        mainWorker: string;\n        pthreadWorker: string;\n    };\n}\n\nexport function getJsDelivrBundles(): DuckDBBundles {\n    const jsdelivr_dist_url = `https://cdn.jsdelivr.net/npm/${PACKAGE_NAME}@${PACKAGE_VERSION}/dist/`;\n    return {\n        mvp: {\n            mainModule: `${jsdelivr_dist_url}duckdb-mvp.wasm`,\n            mainWorker: `${jsdelivr_dist_url}duckdb-browser-mvp.worker.js`,\n        },\n        eh: {\n            mainModule: `${jsdelivr_dist_url}duckdb-eh.wasm`,\n            mainWorker: `${jsdelivr_dist_url}duckdb-browser-eh.worker.js`,\n        },\n        // COI is still experimental, let the user opt in explicitly\n    };\n}\n\nexport interface DuckDBBundle {\n    mainModule: string;\n    mainWorker: string | null;\n    pthreadWorker: string | null;\n}\n\nexport interface PlatformFeatures {\n    bigInt64Array: boolean;\n    crossOriginIsolated: boolean;\n    wasmExceptions: boolean;\n    wasmSIMD: boolean;\n    wasmBulkMemory: boolean;\n    wasmThreads: boolean;\n}\n\nlet bigInt64Array: boolean | null = null;\nlet wasmExceptions: boolean | null = null;\nlet wasmThreads: boolean | null = null;\nlet wasmSIMD: boolean | null = null;\nlet wasmBulkMemory: boolean | null = null;\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\ndeclare namespace globalThis {\n    let crossOriginIsolated: boolean;\n}\n\nexport async function getPlatformFeatures(): Promise<PlatformFeatures> {\n    if (bigInt64Array == null) {\n        bigInt64Array = typeof BigInt64Array != 'undefined';\n    }\n    if (wasmExceptions == null) {\n        wasmExceptions = await check.exceptions();\n    }\n    if (wasmThreads == null) {\n        wasmThreads = await check.threads();\n    }\n    if (wasmSIMD == null) {\n        wasmSIMD = await check.simd();\n    }\n    if (wasmBulkMemory == null) {\n        wasmBulkMemory = await check.bulkMemory();\n    }\n    return {\n        bigInt64Array: bigInt64Array!,\n        crossOriginIsolated: isNode() || globalThis.crossOriginIsolated || false,\n        wasmExceptions: wasmExceptions!,\n        wasmSIMD: wasmSIMD!,\n        wasmThreads: wasmThreads!,\n        wasmBulkMemory: wasmBulkMemory!,\n    };\n}\n\nexport async function selectBundle(bundles: DuckDBBundles): Promise<DuckDBBundle> {\n    const platform = await getPlatformFeatures();\n    if (platform.wasmExceptions) {\n        if (platform.wasmSIMD && platform.wasmThreads && platform.crossOriginIsolated && bundles.coi) {\n            return {\n                mainModule: bundles.coi.mainModule,\n                mainWorker: bundles.coi.mainWorker,\n                pthreadWorker: bundles.coi.pthreadWorker,\n            };\n        }\n        if (bundles.eh) {\n            return {\n                mainModule: bundles.eh.mainModule,\n                mainWorker: bundles.eh.mainWorker,\n                pthreadWorker: null,\n            };\n        }\n    }\n    return {\n        mainModule: bundles.mvp.mainModule,\n        mainWorker: bundles.mvp.mainWorker,\n        pthreadWorker: null,\n    };\n}\n", "import fs from 'fs';\nimport {\n    DuckDBRuntime,\n    DuckDBFileInfo,\n    callSRet,\n    dropResponseBuffers,\n    failWith,\n    readString,\n    decodeText,\n    DuckDBDataProtocol,\n    FileFlags,\n} from './runtime';\nimport { StatusCode } from '../status';\nimport { DuckDBModule } from './duckdb_module';\nimport * as fg from 'fast-glob';\nimport * as udf from './udf_runtime';\n\nexport const NODE_RUNTIME: DuckDBRuntime & {\n    _filesById: Map<number, any>;\n    _fileInfoCache: Map<number, DuckDBFileInfo>;\n\n    resolveFileInfo(mod: DuckDBModule, fileId: number): DuckDBFileInfo | null;\n} = {\n    _files: new Map<string, any>(),\n    _filesById: new Map<number, any>(),\n    _fileInfoCache: new Map<number, DuckDBFileInfo>(),\n    _udfFunctions: new Map(),\n\n    resolveFileInfo(mod: DuckDBModule, fileId: number): DuckDBFileInfo | null {\n        try {\n            const cached = NODE_RUNTIME._fileInfoCache.get(fileId);\n            const [s, d, n] = callSRet(\n                mod,\n                'duckdb_web_fs_get_file_info_by_id',\n                ['number', 'number'],\n                [fileId, cached?.cacheEpoch || 0],\n            );\n            if (s !== StatusCode.SUCCESS) {\n                failWith(mod, readString(mod, d, n));\n                return null;\n            } else if (n === 0) {\n                // Epoch is up to date with WASM\n                dropResponseBuffers(mod);\n                return cached!;\n            }\n            const infoStr = readString(mod, d, n);\n            dropResponseBuffers(mod);\n            const info = JSON.parse(infoStr) as DuckDBFileInfo;\n            if (info == null) return null;\n            NODE_RUNTIME._fileInfoCache.set(fileId, info);\n            return info as DuckDBFileInfo;\n        } catch (e: any) {\n            console.log(e);\n            failWith(mod, e.toString());\n            return null;\n        }\n    },\n    testPlatformFeature: (_mod: DuckDBModule, feature: number): boolean => {\n        switch (feature) {\n            case 1:\n                return typeof BigInt64Array !== 'undefined';\n            default:\n                console.warn(`test for unknown feature: ${feature}`);\n                return false;\n        }\n    },\n    getDefaultDataProtocol(mod: DuckDBModule): number {\n        return DuckDBDataProtocol.NODE_FS;\n    },\n    openFile(mod: DuckDBModule, fileId: number, flags: FileFlags): number {\n        try {\n            NODE_RUNTIME._fileInfoCache.delete(fileId);\n            const file = NODE_RUNTIME.resolveFileInfo(mod, fileId);\n            switch (file?.dataProtocol) {\n                // Native file\n                case DuckDBDataProtocol.NODE_FS: {\n                    let fd = NODE_RUNTIME._files?.get(file.dataUrl!);\n                    if (fd === null || fd === undefined) {\n                        fd = fs.openSync(\n                            file.dataUrl!,\n                            fs.constants.O_CREAT | fs.constants.O_RDWR,\n                            fs.constants.S_IRUSR | fs.constants.S_IWUSR,\n                        );\n                        NODE_RUNTIME._filesById?.set(file.fileId!, fd);\n                    }\n                    const fileSize = fs.fstatSync(fd).size;\n                    const result = mod._malloc(2 * 8);\n                    mod.HEAPF64[(result >> 3) + 0] = +fileSize;\n                    mod.HEAPF64[(result >> 3) + 1] = 0;\n                    return result;\n                }\n                case DuckDBDataProtocol.BROWSER_FILEREADER:\n                case DuckDBDataProtocol.BROWSER_FSACCESS:\n                case DuckDBDataProtocol.HTTP:\n                case DuckDBDataProtocol.S3:\n                    failWith(mod, 'Unsupported data protocol');\n            }\n        } catch (e: any) {\n            console.log(e);\n            failWith(mod, e.toString());\n        }\n        return 0;\n    },\n    syncFile: (_mod: DuckDBModule, _fileId: number) => {},\n    closeFile: (mod: DuckDBModule, fileId: number) => {\n        try {\n            const fileInfo = NODE_RUNTIME._fileInfoCache.get(fileId);\n            NODE_RUNTIME._fileInfoCache.delete(fileId);\n            switch (fileInfo?.dataProtocol) {\n                case DuckDBDataProtocol.NODE_FS: {\n                    const fileHandle = NODE_RUNTIME._filesById.get(fileId);\n                    NODE_RUNTIME._filesById.delete(fileId);\n                    if (fileHandle !== null && fileHandle !== undefined) {\n                        fs.closeSync(fileHandle);\n                    }\n                    break;\n                }\n                case DuckDBDataProtocol.BROWSER_FILEREADER:\n                case DuckDBDataProtocol.BROWSER_FSACCESS:\n                case DuckDBDataProtocol.HTTP:\n                case DuckDBDataProtocol.S3:\n                    break;\n            }\n        } catch (e: any) {\n            console.log(e);\n            failWith(mod, e.toString());\n        }\n        return 0;\n    },\n    truncateFile: (mod: DuckDBModule, fileId: number, newSize: number) => {\n        try {\n            const file = NODE_RUNTIME.resolveFileInfo(mod, fileId);\n            switch (file?.dataProtocol) {\n                case DuckDBDataProtocol.NODE_FS: {\n                    fs.truncateSync(file.dataUrl!, newSize);\n                    break;\n                }\n                case DuckDBDataProtocol.BROWSER_FILEREADER:\n                case DuckDBDataProtocol.BROWSER_FSACCESS:\n                case DuckDBDataProtocol.HTTP:\n                case DuckDBDataProtocol.S3:\n                    failWith(mod, 'Unsupported data protocol');\n            }\n        } catch (e: any) {\n            console.log(e);\n            failWith(mod, e.toString());\n        }\n        return 0;\n    },\n    readFile: (mod: DuckDBModule, fileId: number, buf: number, bytes: number, location: number) => {\n        try {\n            const file = NODE_RUNTIME.resolveFileInfo(mod, fileId);\n            switch (file?.dataProtocol) {\n                case DuckDBDataProtocol.NODE_FS: {\n                    const fileHandle = NODE_RUNTIME._filesById.get(fileId);\n                    if (fileHandle === null || fileHandle === undefined) {\n                        failWith(mod, `File ${fileId} is missing a file descriptor`);\n                        return 0;\n                    }\n                    return fs.readSync(fileHandle, mod.HEAPU8, buf, bytes, location);\n                }\n                case DuckDBDataProtocol.BROWSER_FILEREADER:\n                case DuckDBDataProtocol.BROWSER_FSACCESS:\n                case DuckDBDataProtocol.HTTP:\n                case DuckDBDataProtocol.S3:\n                    failWith(mod, 'Unsupported data protocol');\n            }\n        } catch (e: any) {\n            console.log(e);\n            failWith(mod, e.toString());\n        }\n        return 0;\n    },\n    writeFile: (mod: DuckDBModule, fileId: number, buf: number, bytes: number, location: number) => {\n        try {\n            const file = NODE_RUNTIME.resolveFileInfo(mod, fileId);\n            switch (file?.dataProtocol) {\n                case DuckDBDataProtocol.NODE_FS: {\n                    const fileHandle = NODE_RUNTIME._filesById.get(fileId);\n                    if (fileHandle === null || fileHandle === undefined) {\n                        failWith(mod, `File ${fileId} is missing a file descriptor`);\n                        return 0;\n                    }\n                    const src = mod.HEAPU8.subarray(buf, buf + bytes);\n                    return fs.writeSync(fileHandle, src, 0, src.length, location);\n                }\n                case DuckDBDataProtocol.BROWSER_FILEREADER:\n                case DuckDBDataProtocol.BROWSER_FSACCESS:\n                case DuckDBDataProtocol.HTTP:\n                case DuckDBDataProtocol.S3:\n                    failWith(mod, 'Unsupported data protocol');\n            }\n        } catch (e: any) {\n            console.log(e);\n            failWith(mod, e.toString());\n        }\n        return 0;\n    },\n    getLastFileModificationTime: (mod: DuckDBModule, fileId: number) => {\n        try {\n            const file = NODE_RUNTIME.resolveFileInfo(mod, fileId);\n            switch (file?.dataProtocol) {\n                case DuckDBDataProtocol.NODE_FS: {\n                    const fileHandle = NODE_RUNTIME._filesById.get(fileId);\n                    if (fileHandle === null || fileHandle === undefined) {\n                        failWith(mod, `File ${fileId} is missing a file descriptor`);\n                        return 0;\n                    }\n                    return fs.fstatSync(fileHandle!).mtime.getTime();\n                }\n                case DuckDBDataProtocol.BROWSER_FILEREADER:\n                case DuckDBDataProtocol.BROWSER_FSACCESS:\n                case DuckDBDataProtocol.HTTP:\n                case DuckDBDataProtocol.S3:\n                    failWith(mod, 'Unsupported data protocol');\n            }\n        } catch (e: any) {\n            console.log(e);\n            failWith(mod, e.toString());\n        }\n        return 0;\n    },\n\n    checkDirectory: (mod: DuckDBModule, pathPtr: number, pathLen: number) => {\n        try {\n            const path = decodeText(mod.HEAPU8.subarray(pathPtr, pathPtr + pathLen));\n            return fs.existsSync(path);\n        } catch (e: any) {\n            console.log(e);\n            failWith(mod, e.toString());\n            return false;\n        }\n    },\n    createDirectory: (mod: DuckDBModule, pathPtr: number, pathLen: number) => {\n        try {\n            const path = decodeText(mod.HEAPU8.subarray(pathPtr, pathPtr + pathLen));\n            return fs.mkdirSync(path);\n        } catch (e: any) {\n            console.log(e);\n            failWith(mod, e.toString());\n            return 0;\n        }\n    },\n    removeDirectory: (mod: DuckDBModule, pathPtr: number, pathLen: number) => {\n        try {\n            const path = decodeText(mod.HEAPU8.subarray(pathPtr, pathPtr + pathLen));\n            return fs.rmdirSync(path);\n        } catch (e: any) {\n            console.log(e);\n            failWith(mod, e.toString());\n            return 0;\n        }\n    },\n    listDirectoryEntries: (mod: DuckDBModule, _pathPtr: number, _pathLen: number) => {\n        failWith(mod, 'Not Implemented');\n        return false;\n    },\n    glob: (mod: DuckDBModule, pathPtr: number, pathLen: number) => {\n        try {\n            const path = readString(mod, pathPtr, pathLen);\n            const entries = fg.sync([path], { dot: true });\n            for (const entry of entries) {\n                mod.ccall('duckdb_web_fs_glob_add_path', null, ['string'], [entry]);\n            }\n        } catch (e: any) {\n            console.log(e);\n            failWith(mod, e.toString());\n            return 0;\n        }\n    },\n    moveFile: (mod: DuckDBModule, fromPtr: number, fromLen: number, toPtr: number, toLen: number) => {\n        const from = readString(mod, fromPtr, fromLen);\n        const to = readString(mod, toPtr, toLen);\n        const handle = NODE_RUNTIME._files?.get(from);\n        if (handle !== undefined) {\n            NODE_RUNTIME._files!.delete(handle);\n            NODE_RUNTIME._files!.set(to, handle);\n        }\n        for (const [key, value] of NODE_RUNTIME._fileInfoCache?.entries() || []) {\n            if (value.dataUrl == from) {\n                NODE_RUNTIME._fileInfoCache.delete(key);\n                break;\n            }\n        }\n        return true;\n    },\n    checkFile: (mod: DuckDBModule, pathPtr: number, pathLen: number) => {\n        try {\n            const path = decodeText(mod.HEAPU8.subarray(pathPtr, pathPtr + pathLen));\n            return fs.existsSync(path);\n        } catch (e: any) {\n            console.log(e);\n            failWith(mod, e.toString());\n            return false;\n        }\n    },\n    removeFile: (mod: DuckDBModule, pathPtr: number, pathLen: number) => {\n        try {\n            const path = decodeText(mod.HEAPU8.subarray(pathPtr, pathPtr + pathLen));\n            return fs.rmSync(path);\n        } catch (e: any) {\n            console.log(e);\n            failWith(mod, e.toString());\n            return 0;\n        }\n    },\n    callScalarUDF: (\n        mod: DuckDBModule,\n        response: number,\n        funcId: number,\n        descPtr: number,\n        descSize: number,\n        ptrsPtr: number,\n        ptrsSize: number,\n    ): void => {\n        udf.callScalarUDF(NODE_RUNTIME, mod, response, funcId, descPtr, descSize, ptrsPtr, ptrsSize);\n    },\n};\n\nexport default NODE_RUNTIME;\n", "import DuckDBWasm from './duckdb-mvp.js';\nimport { DuckDBNodeBindings } from './bindings_node_base.js';\nimport { Logger } from '../log.js';\nimport { DuckDBModule } from './duckdb_module';\nimport { DuckDBRuntime } from './runtime';\n\n/** DuckDB bindings for node.js */\nexport class DuckDB extends DuckDBNodeBindings {\n    /** Constructor */\n    public constructor(\n        logger: Logger,\n        runtime: DuckDBRuntime,\n        mainModulePath: string,\n        pthreadWorkerPath: string | null = null,\n    ) {\n        super(logger, runtime, mainModulePath, pthreadWorkerPath);\n    }\n\n    /** Instantiate the bindings */\n    protected instantiateImpl(moduleOverrides: Partial<DuckDBModule>): Promise<DuckDBModule> {\n        return DuckDBWasm({\n            ...moduleOverrides,\n            instantiateWasm: this.instantiateWasm.bind(this),\n            locateFile: this.locateFile.bind(this),\n        });\n    }\n}\n\nexport default DuckDB;\n", "import DuckDBWasm from './duckdb-mvp.js';\nimport { DuckDBModule } from './duckdb_module';\nimport { DuckDBBindingsBase } from './bindings_base';\nimport { DuckDBRuntime } from './runtime';\nimport { Logger } from '../log';\nimport fs from 'fs';\n\ndeclare global {\n    // eslint-disable-next-line no-var\n    var DUCKDB_RUNTIME: any;\n}\n\n/** DuckDB bindings for node.js */\nexport class DuckDBNodeBindings extends DuckDBBindingsBase {\n    /** The path of the wasm module */\n    protected readonly mainModulePath: string;\n    /** The path of the pthread worker script */\n    protected readonly pthreadWorkerPath: string | null;\n\n    /** Constructor */\n    public constructor(\n        logger: Logger,\n        runtime: DuckDBRuntime,\n        mainModulePath: string,\n        pthreadWorkerPath: string | null,\n    ) {\n        super(logger, runtime);\n        this.mainModulePath = mainModulePath;\n        this.pthreadWorkerPath = pthreadWorkerPath;\n    }\n\n    /** Locate a file */\n    protected locateFile(path: string, prefix: string): string {\n        if (path.endsWith('.wasm')) {\n            return this.mainModulePath;\n        }\n        if (path.endsWith('.worker.js')) {\n            if (!this.pthreadWorkerPath) {\n                throw new Error('Missing DuckDB worker path!');\n            }\n            return this.pthreadWorkerPath!;\n        }\n        throw new Error(`WASM instantiation requested unexpected file: prefix=${prefix} path=${path}`);\n    }\n\n    /** Instantiate the wasm module */\n    protected instantiateWasm(\n        // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n        imports: any,\n        success: (instance: WebAssembly.Instance, module: WebAssembly.Module) => void,\n    ): Emscripten.WebAssemblyExports {\n        globalThis.DUCKDB_RUNTIME = {};\n        for (const func of Object.getOwnPropertyNames(this._runtime)) {\n            if (func == 'constructor') continue;\n            globalThis.DUCKDB_RUNTIME[func] = Object.getOwnPropertyDescriptor(this._runtime, func)!.value;\n        }\n        const buf = fs.readFileSync(this.mainModulePath);\n        WebAssembly.instantiate(buf, imports).then(output => {\n            success(output.instance, output.module);\n        });\n        return [];\n    }\n\n    /** Instantiate the bindings */\n    protected instantiateImpl(moduleOverrides: Partial<DuckDBModule>): Promise<DuckDBModule> {\n        return DuckDBWasm({\n            ...moduleOverrides,\n            instantiateWasm: this.instantiateWasm.bind(this),\n        });\n    }\n}\n", "import DuckDBWasm from './duckdb-eh.js';\nimport { DuckDBModule } from './duckdb_module';\nimport { DuckDBNodeBindings } from './bindings_node_base.js';\nimport { DuckDBRuntime } from './runtime';\nimport { Logger } from '../log';\n\n/** DuckDB bindings for node.js */\nexport class DuckDB extends DuckDBNodeBindings {\n    /** Constructor */\n    public constructor(\n        logger: Logger,\n        runtime: DuckDBRuntime,\n        mainModulePath: string,\n        pthreadWorkerPath: string | null = null,\n    ) {\n        super(logger, runtime, mainModulePath, pthreadWorkerPath);\n    }\n\n    /** Instantiate the bindings */\n    protected instantiateImpl(moduleOverrides: Partial<DuckDBModule>): Promise<DuckDBModule> {\n        return DuckDBWasm({\n            ...moduleOverrides,\n            instantiateWasm: this.instantiateWasm.bind(this),\n            locateFile: this.locateFile.bind(this),\n        });\n    }\n}\n\nexport default DuckDB;\n", "export * from '../bindings';\nexport * from '../log';\nexport * from '../platform';\nexport * from '../status';\nexport * from '../version';\nexport { DuckDBDataProtocol } from '../bindings/runtime';\nexport { DEFAULT_RUNTIME } from '../bindings/runtime';\nexport { NODE_RUNTIME } from '../bindings/runtime_node';\n\nimport { Logger } from '../log';\nimport { DuckDBRuntime } from '../bindings';\nimport { DuckDBNodeBindings } from '../bindings/bindings_node_base';\nimport { DuckDBBundles, getPlatformFeatures } from '../platform';\nimport { DuckDB as DuckDBMVP } from '../bindings/bindings_node_mvp';\nimport { DuckDB as DuckDBNext } from '../bindings/bindings_node_eh';\n\nexport async function createDuckDB(\n    bundles: DuckDBBundles,\n    logger: Logger,\n    runtime: DuckDBRuntime,\n): Promise<DuckDBNodeBindings> {\n    const platform = await getPlatformFeatures();\n    if (platform.wasmExceptions) {\n        if (bundles.eh) {\n            return new DuckDBNext(logger, runtime, bundles.eh!.mainModule);\n        }\n    }\n    return new DuckDBMVP(logger, runtime, bundles.mvp.mainModule);\n}\n", "import * as arrow from 'apache-arrow';\nimport { AsyncDuckDB } from './async_bindings';\nimport { LogLevel, LogTopic, LogOrigin, LogEvent } from '../log';\nimport { ArrowInsertOptions, CSVInsertOptions, JSONInsertOptions } from '../bindings/insert_options';\n\n/** A thin helper to memoize the connection id */\nexport class AsyncDuckDBConnection {\n    /** The async duckdb */\n    protected readonly _bindings: AsyncDuckDB;\n    /** The conn handle */\n    protected readonly _conn: number;\n\n    constructor(bindings: AsyncDuckDB, conn: number) {\n        this._bindings = bindings;\n        this._conn = conn;\n    }\n\n    /** Access the database bindings */\n    public get bindings(): AsyncDuckDB {\n        return this._bindings;\n    }\n\n    /** Disconnect from the database */\n    public async close(): Promise<void> {\n        return this._bindings.disconnect(this._conn);\n    }\n\n    /** Brave souls may use this function to consume the underlying connection id */\n    public useUnsafe<R>(callback: (bindings: AsyncDuckDB, conn: number) => R) {\n        return callback(this._bindings, this._conn);\n    }\n\n    /** Run a query */\n    public async query<T extends { [key: string]: arrow.DataType } = any>(text: string): Promise<arrow.Table<T>> {\n        this._bindings.logger.log({\n            timestamp: new Date(),\n            level: LogLevel.INFO,\n            origin: LogOrigin.ASYNC_DUCKDB,\n            topic: LogTopic.QUERY,\n            event: LogEvent.RUN,\n            value: text,\n        });\n        const buffer = await this._bindings.runQuery(this._conn, text);\n        const reader = arrow.RecordBatchReader.from<T>(buffer);\n        console.assert(reader.isSync(), \"Reader is not sync\");\n        console.assert(reader.isFile(), \"Reader is not file\");\n        return new arrow.Table(reader as arrow.RecordBatchFileReader);\n    }\n\n    /** Send a query */\n    public async send<T extends { [key: string]: arrow.DataType } = any>(\n        text: string,\n    ): Promise<arrow.AsyncRecordBatchStreamReader<T>> {\n        this._bindings.logger.log({\n            timestamp: new Date(),\n            level: LogLevel.INFO,\n            origin: LogOrigin.ASYNC_DUCKDB,\n            topic: LogTopic.QUERY,\n            event: LogEvent.RUN,\n            value: text,\n        });\n        let header = await this._bindings.startPendingQuery(this._conn, text);\n        while (header == null) {\n            header = await this._bindings.pollPendingQuery(this._conn);\n        }\n        const iter = new AsyncResultStreamIterator(this._bindings, this._conn, header);\n        const reader = await arrow.RecordBatchReader.from<T>(iter);\n        console.assert(reader.isAsync());\n        console.assert(reader.isStream());\n        return reader as unknown as arrow.AsyncRecordBatchStreamReader<T>; // XXX\n    }\n\n    /** Cancel a query that was sent earlier */\n    public async cancelSent(): Promise<boolean> {\n        return await this._bindings.cancelPendingQuery(this._conn);\n    }\n\n    /** Get table names */\n    public async getTableNames(query: string): Promise<string[]> {\n        return await this._bindings.getTableNames(this._conn, query);\n    }\n\n    /** Create a prepared statement */\n    public async prepare<T extends { [key: string]: arrow.DataType } = any>(\n        text: string,\n    ): Promise<AsyncPreparedStatement> {\n        const stmt = await this._bindings.createPrepared(this._conn, text);\n        return new AsyncPreparedStatement<T>(this._bindings, this._conn, stmt);\n    }\n\n    /** Insert an arrow table */\n    public async insertArrowTable(table: arrow.Table, options: ArrowInsertOptions): Promise<void> {\n        const buffer = arrow.tableToIPC(table, 'stream');\n        await this.insertArrowFromIPCStream(buffer, options);\n    }\n    /** Insert an arrow table from an ipc stream */\n    public async insertArrowFromIPCStream(buffer: Uint8Array, options: ArrowInsertOptions): Promise<void> {\n        await this._bindings.insertArrowFromIPCStream(this._conn, buffer, options);\n    }\n    /** Insert csv file from path */\n    public async insertCSVFromPath(text: string, options: CSVInsertOptions): Promise<void> {\n        await this._bindings.insertCSVFromPath(this._conn, text, options);\n    }\n    /** Insert json file from path */\n    public async insertJSONFromPath(text: string, options: JSONInsertOptions): Promise<void> {\n        await this._bindings.insertJSONFromPath(this._conn, text, options);\n    }\n}\n\n/** An async result stream iterator */\nexport class AsyncResultStreamIterator implements AsyncIterable<Uint8Array> {\n    /** First chunk? */\n    protected _first: boolean;\n    /** Reached end of stream? */\n    protected _depleted: boolean;\n    /** In-flight */\n    protected _inFlight: Promise<Uint8Array> | null;\n\n    constructor(\n        protected readonly db: AsyncDuckDB,\n        protected readonly conn: number,\n        protected readonly header: Uint8Array,\n    ) {\n        this._first = true;\n        this._depleted = false;\n        this._inFlight = null;\n    }\n\n    async next(): Promise<IteratorResult<Uint8Array>> {\n        if (this._first) {\n            this._first = false;\n            return { done: false, value: this.header };\n        }\n        if (this._depleted) {\n            return { done: true, value: null };\n        }\n        let buffer: Uint8Array;\n        if (this._inFlight != null) {\n            buffer = await this._inFlight;\n            this._inFlight = null;\n        } else {\n            buffer = await this.db.fetchQueryResults(this.conn);\n        }\n        this._depleted = buffer.length == 0;\n        if (!this._depleted) {\n            this._inFlight = this.db.fetchQueryResults(this.conn);\n        }\n        return {\n            done: this._depleted,\n            value: buffer,\n        };\n    }\n\n    [Symbol.asyncIterator]() {\n        return this;\n    }\n}\n\n/** A thin helper to bind the prepared statement id */\nexport class AsyncPreparedStatement<T extends { [key: string]: arrow.DataType } = any> {\n    /** The bindings */\n    protected readonly bindings: AsyncDuckDB;\n    /** The connection id */\n    protected readonly connectionId: number;\n    /** The statement id */\n    protected readonly statementId: number;\n\n    /** Constructor */\n    constructor(bindings: AsyncDuckDB, connectionId: number, statementId: number) {\n        this.bindings = bindings;\n        this.connectionId = connectionId;\n        this.statementId = statementId;\n    }\n\n    /** Close a prepared statement */\n    public async close() {\n        await this.bindings.closePrepared(this.connectionId, this.statementId);\n    }\n\n    /** Run a prepared statement */\n    public async query(...params: any[]): Promise<arrow.Table<T>> {\n        const buffer = await this.bindings.runPrepared(this.connectionId, this.statementId, params);\n        const reader = arrow.RecordBatchReader.from<T>(buffer);\n        console.assert(reader.isSync());\n        console.assert(reader.isFile());\n        return new arrow.Table(reader as arrow.RecordBatchFileReader);\n    }\n\n    /** Send a prepared statement */\n    public async send(...params: any[]): Promise<arrow.AsyncRecordBatchStreamReader<T>> {\n        const header = await this.bindings.sendPrepared(this.connectionId, this.statementId, params);\n        const iter = new AsyncResultStreamIterator(this.bindings, this.connectionId, header);\n        const reader = await arrow.RecordBatchReader.from<T>(iter);\n        console.assert(reader.isAsync());\n        console.assert(reader.isStream());\n        return reader as unknown as arrow.AsyncRecordBatchStreamReader<T>; // XXX\n    }\n}\n", "import { CSVInsertOptions, JSONInsertOptions, ArrowInsertOptions } from '../bindings/insert_options';\nimport { LogEntryVariant } from '../log';\nimport { ScriptTokens } from '../bindings/tokens';\nimport { FileStatistics } from '../bindings/file_stats';\nimport { DuckDBConfig } from '../bindings/config';\nimport { WebFile } from '../bindings/web_file';\nimport { InstantiationProgress } from '../bindings/progress';\nimport { DuckDBDataProtocol } from '../bindings';\n\nexport type ConnectionID = number;\nexport type StatementID = number;\n\nexport enum WorkerRequestType {\n    CANCEL_PENDING_QUERY = 'CANCEL_PENDING_QUERY',\n    CLOSE_PREPARED = 'CLOSE_PREPARED',\n    COLLECT_FILE_STATISTICS = 'COLLECT_FILE_STATISTICS',\n    CONNECT = 'CONNECT',\n    COPY_FILE_TO_BUFFER = 'COPY_FILE_TO_BUFFER',\n    COPY_FILE_TO_PATH = 'COPY_FILE_TO_PATH',\n    CREATE_PREPARED = 'CREATE_PREPARED',\n    DISCONNECT = 'DISCONNECT',\n    DROP_FILE = 'DROP_FILE',\n    DROP_FILES = 'DROP_FILES',\n    EXPORT_FILE_STATISTICS = 'EXPORT_FILE_STATISTICS',\n    FETCH_QUERY_RESULTS = 'FETCH_QUERY_RESULTS',\n    FLUSH_FILES = 'FLUSH_FILES',\n    GET_FEATURE_FLAGS = 'GET_FEATURE_FLAGS',\n    GET_TABLE_NAMES = 'GET_TABLE_NAMES',\n    GET_VERSION = 'GET_VERSION',\n    GLOB_FILE_INFOS = 'GLOB_FILE_INFOS',\n    INSERT_ARROW_FROM_IPC_STREAM = 'INSERT_ARROW_FROM_IPC_STREAM',\n    INSERT_CSV_FROM_PATH = 'IMPORT_CSV_FROM_PATH',\n    INSERT_JSON_FROM_PATH = 'IMPORT_JSON_FROM_PATH',\n    INSTANTIATE = 'INSTANTIATE',\n    OPEN = 'OPEN',\n    PING = 'PING',\n    POLL_PENDING_QUERY = 'POLL_PENDING_QUERY',\n    REGISTER_FILE_BUFFER = 'REGISTER_FILE_BUFFER',\n    REGISTER_FILE_HANDLE = 'REGISTER_FILE_HANDLE',\n    REGISTER_FILE_URL = 'REGISTER_FILE_URL',\n    RESET = 'RESET',\n    RUN_PREPARED = 'RUN_PREPARED',\n    RUN_QUERY = 'RUN_QUERY',\n    SEND_PREPARED = 'SEND_PREPARED',\n    START_PENDING_QUERY = 'START_PENDING_QUERY',\n    TOKENIZE = 'TOKENIZE',\n}\n\nexport enum WorkerResponseType {\n    CONNECTION_INFO = 'CONNECTION_INFO',\n    ERROR = 'ERROR',\n    FEATURE_FLAGS = 'FEATURE_FLAGS',\n    FILE_BUFFER = 'FILE_BUFFER',\n    FILE_INFOS = 'FILE_INFOS',\n    FILE_SIZE = 'FILE_SIZE',\n    FILE_STATISTICS = 'FILE_STATISTICS',\n    INSTANTIATE_PROGRESS = 'INSTANTIATE_PROGRESS',\n    LOG = 'LOG',\n    OK = 'OK',\n    PREPARED_STATEMENT_ID = 'PREPARED_STATEMENT_ID',\n    QUERY_PLAN = 'QUERY_PLAN',\n    QUERY_RESULT = 'QUERY_RESULT',\n    QUERY_RESULT_CHUNK = 'QUERY_RESULT_CHUNK',\n    QUERY_RESULT_HEADER = 'QUERY_RESULT_HEADER',\n    QUERY_RESULT_HEADER_OR_NULL = 'QUERY_RESULT_HEADER_OR_NULL',\n    REGISTERED_FILE = 'REGISTERED_FILE',\n    SCRIPT_TOKENS = 'SCRIPT_TOKENS',\n    SUCCESS = 'SUCCESS',\n    TABLE_NAMES = 'TABLE_NAMES',\n    VERSION_STRING = 'VERSION_STRING',\n}\n\nexport type WorkerRequest<T, P> = {\n    readonly messageId: number;\n    readonly type: T;\n    readonly data: P;\n};\n\nexport type WorkerResponse<T, P> = {\n    readonly messageId: number;\n    readonly requestId: number;\n    readonly type: T;\n    readonly data: P;\n};\n\nexport type WorkerTaskReturnType<T extends WorkerTaskVariant> = T extends WorkerTask<any, any, infer P> ? P : never;\n\nexport class WorkerTask<T, D, P> {\n    readonly type: T;\n    readonly data: D;\n    promise: Promise<P>;\n    promiseResolver: (value: P | PromiseLike<P>) => void = () => {};\n    promiseRejecter: (value: any) => void = () => {};\n\n    constructor(type: T, data: D) {\n        this.type = type;\n        this.data = data;\n        this.promise = new Promise<P>(\n            (resolve: (value: P | PromiseLike<P>) => void, reject: (reason?: void) => void) => {\n                this.promiseResolver = resolve;\n                this.promiseRejecter = reject;\n            },\n        );\n    }\n}\n\nexport type WorkerRequestVariant =\n    | WorkerRequest<WorkerRequestType.CLOSE_PREPARED, [ConnectionID, StatementID]>\n    | WorkerRequest<WorkerRequestType.CANCEL_PENDING_QUERY, number>\n    | WorkerRequest<WorkerRequestType.COLLECT_FILE_STATISTICS, [string, boolean]>\n    | WorkerRequest<WorkerRequestType.CONNECT, null>\n    | WorkerRequest<WorkerRequestType.COPY_FILE_TO_BUFFER, string>\n    | WorkerRequest<WorkerRequestType.COPY_FILE_TO_PATH, [string, string]>\n    | WorkerRequest<WorkerRequestType.CREATE_PREPARED, [ConnectionID, string]>\n    | WorkerRequest<WorkerRequestType.DISCONNECT, number>\n    | WorkerRequest<WorkerRequestType.DROP_FILE, string>\n    | WorkerRequest<WorkerRequestType.DROP_FILES, null>\n    | WorkerRequest<WorkerRequestType.EXPORT_FILE_STATISTICS, string>\n    | WorkerRequest<WorkerRequestType.FETCH_QUERY_RESULTS, number>\n    | WorkerRequest<WorkerRequestType.FLUSH_FILES, null>\n    | WorkerRequest<WorkerRequestType.GET_FEATURE_FLAGS, null>\n    | WorkerRequest<WorkerRequestType.GET_TABLE_NAMES, [number, string]>\n    | WorkerRequest<WorkerRequestType.GET_VERSION, null>\n    | WorkerRequest<WorkerRequestType.GLOB_FILE_INFOS, string>\n    | WorkerRequest<\n          WorkerRequestType.INSERT_ARROW_FROM_IPC_STREAM,\n          [number, Uint8Array, ArrowInsertOptions | undefined]\n      >\n    | WorkerRequest<WorkerRequestType.INSERT_CSV_FROM_PATH, [number, string, CSVInsertOptions]>\n    | WorkerRequest<WorkerRequestType.INSERT_JSON_FROM_PATH, [number, string, JSONInsertOptions]>\n    | WorkerRequest<WorkerRequestType.INSTANTIATE, [string, string | null]>\n    | WorkerRequest<WorkerRequestType.OPEN, DuckDBConfig>\n    | WorkerRequest<WorkerRequestType.PING, null>\n    | WorkerRequest<WorkerRequestType.POLL_PENDING_QUERY, number>\n    | WorkerRequest<WorkerRequestType.REGISTER_FILE_BUFFER, [string, Uint8Array]>\n    | WorkerRequest<WorkerRequestType.REGISTER_FILE_HANDLE, [string, any, DuckDBDataProtocol, boolean]>\n    | WorkerRequest<WorkerRequestType.REGISTER_FILE_URL, [string, string, DuckDBDataProtocol, boolean]>\n    | WorkerRequest<WorkerRequestType.RESET, null>\n    | WorkerRequest<WorkerRequestType.RUN_PREPARED, [number, number, any[]]>\n    | WorkerRequest<WorkerRequestType.RUN_QUERY, [number, string]>\n    | WorkerRequest<WorkerRequestType.SEND_PREPARED, [number, number, any[]]>\n    | WorkerRequest<WorkerRequestType.START_PENDING_QUERY, [number, string]>\n    | WorkerRequest<WorkerRequestType.TOKENIZE, string>;\n\nexport type WorkerResponseVariant =\n    | WorkerResponse<WorkerResponseType.CONNECTION_INFO, number>\n    | WorkerResponse<WorkerResponseType.ERROR, any>\n    | WorkerResponse<WorkerResponseType.FEATURE_FLAGS, number>\n    | WorkerResponse<WorkerResponseType.FILE_BUFFER, Uint8Array>\n    | WorkerResponse<WorkerResponseType.FILE_INFOS, WebFile[]>\n    | WorkerResponse<WorkerResponseType.FILE_SIZE, number>\n    | WorkerResponse<WorkerResponseType.FILE_STATISTICS, FileStatistics>\n    | WorkerResponse<WorkerResponseType.INSTANTIATE_PROGRESS, InstantiationProgress>\n    | WorkerResponse<WorkerResponseType.LOG, LogEntryVariant>\n    | WorkerResponse<WorkerResponseType.OK, null>\n    | WorkerResponse<WorkerResponseType.PREPARED_STATEMENT_ID, number>\n    | WorkerResponse<WorkerResponseType.QUERY_PLAN, Uint8Array>\n    | WorkerResponse<WorkerResponseType.QUERY_RESULT, Uint8Array>\n    | WorkerResponse<WorkerResponseType.QUERY_RESULT_CHUNK, Uint8Array>\n    | WorkerResponse<WorkerResponseType.QUERY_RESULT_HEADER, Uint8Array>\n    | WorkerResponse<WorkerResponseType.QUERY_RESULT_HEADER_OR_NULL, Uint8Array | null>\n    | WorkerResponse<WorkerResponseType.SCRIPT_TOKENS, ScriptTokens>\n    | WorkerResponse<WorkerResponseType.SUCCESS, boolean>\n    | WorkerResponse<WorkerResponseType.TABLE_NAMES, string[]>\n    | WorkerResponse<WorkerResponseType.VERSION_STRING, string>;\n\nexport type WorkerTaskVariant =\n    | WorkerTask<WorkerRequestType.COLLECT_FILE_STATISTICS, [string, boolean], null>\n    | WorkerTask<WorkerRequestType.CLOSE_PREPARED, [number, number], null>\n    | WorkerTask<WorkerRequestType.CONNECT, null, ConnectionID>\n    | WorkerTask<WorkerRequestType.COPY_FILE_TO_BUFFER, string, Uint8Array>\n    | WorkerTask<WorkerRequestType.COPY_FILE_TO_PATH, [string, string], null>\n    | WorkerTask<WorkerRequestType.CREATE_PREPARED, [number, string], number>\n    | WorkerTask<WorkerRequestType.DISCONNECT, ConnectionID, null>\n    | WorkerTask<WorkerRequestType.DROP_FILE, string, null>\n    | WorkerTask<WorkerRequestType.DROP_FILES, null, null>\n    | WorkerTask<WorkerRequestType.EXPORT_FILE_STATISTICS, string, FileStatistics>\n    | WorkerTask<WorkerRequestType.FETCH_QUERY_RESULTS, ConnectionID, Uint8Array>\n    | WorkerTask<WorkerRequestType.FLUSH_FILES, null, null>\n    | WorkerTask<WorkerRequestType.GET_FEATURE_FLAGS, null, number>\n    | WorkerTask<WorkerRequestType.GET_TABLE_NAMES, [number, string], string[]>\n    | WorkerTask<WorkerRequestType.GET_VERSION, null, string>\n    | WorkerTask<\n          WorkerRequestType.INSERT_ARROW_FROM_IPC_STREAM,\n          [number, Uint8Array, ArrowInsertOptions | undefined],\n          null\n      >\n    | WorkerTask<WorkerRequestType.INSERT_CSV_FROM_PATH, [number, string, CSVInsertOptions], null>\n    | WorkerTask<WorkerRequestType.INSERT_JSON_FROM_PATH, [number, string, JSONInsertOptions], null>\n    | WorkerTask<WorkerRequestType.INSTANTIATE, [string, string | null], null>\n    | WorkerTask<WorkerRequestType.OPEN, DuckDBConfig, null>\n    | WorkerTask<WorkerRequestType.PING, null, null>\n    | WorkerTask<WorkerRequestType.REGISTER_FILE_BUFFER, [string, Uint8Array], null>\n    | WorkerTask<WorkerRequestType.REGISTER_FILE_HANDLE, [string, any, DuckDBDataProtocol, boolean], null>\n    | WorkerTask<WorkerRequestType.REGISTER_FILE_URL, [string, string, DuckDBDataProtocol, boolean], null>\n    | WorkerTask<WorkerRequestType.GLOB_FILE_INFOS, string, WebFile[]>\n    | WorkerTask<WorkerRequestType.RESET, null, null>\n    | WorkerTask<WorkerRequestType.RUN_PREPARED, [number, number, any[]], Uint8Array>\n    | WorkerTask<WorkerRequestType.RUN_QUERY, [ConnectionID, string], Uint8Array>\n    | WorkerTask<WorkerRequestType.SEND_PREPARED, [number, number, any[]], Uint8Array>\n    | WorkerTask<WorkerRequestType.START_PENDING_QUERY, [ConnectionID, string], Uint8Array | null>\n    | WorkerTask<WorkerRequestType.POLL_PENDING_QUERY, ConnectionID, Uint8Array | null>\n    | WorkerTask<WorkerRequestType.CANCEL_PENDING_QUERY, ConnectionID, boolean>\n    | WorkerTask<WorkerRequestType.TOKENIZE, string, ScriptTokens>;\n", "import {\n    WorkerRequestType,\n    WorkerResponseType,\n    WorkerResponseVariant,\n    WorkerTaskVariant,\n    WorkerTask,\n    ConnectionID,\n    WorkerTaskReturnType,\n} from './worker_request';\nimport { AsyncDuckDBBindings } from './async_bindings_interface';\nimport { Logger } from '../log';\nimport { AsyncDuckDBConnection } from './async_connection';\nimport { CSVInsertOptions, JSONInsertOptions, ArrowInsertOptions } from '../bindings/insert_options';\nimport { ScriptTokens } from '../bindings/tokens';\nimport { FileStatistics } from '../bindings/file_stats';\nimport { DuckDBConfig } from '../bindings/config';\nimport { InstantiationProgress } from '../bindings/progress';\nimport { arrowToSQLField } from '../json_typedef';\nimport { WebFile } from '../bindings/web_file';\nimport { DuckDBDataProtocol } from '../bindings';\n\nconst TEXT_ENCODER = new TextEncoder();\n\nexport class AsyncDuckDB implements AsyncDuckDBBindings {\n    /** The message handler */\n    protected readonly _onMessageHandler: (event: MessageEvent) => void;\n    /** The error handler */\n    protected readonly _onErrorHandler: (event: ErrorEvent) => void;\n    /** The close handler */\n    protected readonly _onCloseHandler: () => void;\n\n    /** Instantiate the module */\n    protected _onInstantiationProgress: ((p: InstantiationProgress) => void)[] = [];\n\n    /** The logger */\n    protected readonly _logger: Logger;\n    /** The worker */\n    protected _worker: Worker | null = null;\n    /** The promise for the worker shutdown */\n    protected _workerShutdownPromise: Promise<null> | null = null;\n    /** Make the worker as terminated */\n    protected _workerShutdownResolver: (value: PromiseLike<null> | null) => void = () => {};\n\n    /** The next message id */\n    protected _nextMessageId = 0;\n    /** The pending requests */\n    protected _pendingRequests: Map<number, WorkerTaskVariant> = new Map();\n\n    constructor(logger: Logger, worker: Worker | null = null) {\n        this._logger = logger;\n        this._onMessageHandler = this.onMessage.bind(this);\n        this._onErrorHandler = this.onError.bind(this);\n        this._onCloseHandler = this.onClose.bind(this);\n        if (worker != null) this.attach(worker);\n    }\n\n    /** Get the logger */\n    public get logger(): Logger {\n        return this._logger;\n    }\n\n    /** Attach to worker */\n    protected attach(worker: Worker): void {\n        this._worker = worker;\n        this._worker.addEventListener('message', this._onMessageHandler);\n        this._worker.addEventListener('error', this._onErrorHandler);\n        this._worker.addEventListener('close', this._onCloseHandler);\n        this._workerShutdownPromise = new Promise<null>(\n            (resolve: (value: PromiseLike<null> | null) => void, _reject: (reason?: void) => void) => {\n                this._workerShutdownResolver = resolve;\n            },\n        );\n    }\n\n    /** Detach from worker */\n    public detach(): void {\n        if (!this._worker) return;\n        this._worker.removeEventListener('message', this._onMessageHandler);\n        this._worker.removeEventListener('error', this._onErrorHandler);\n        this._worker.removeEventListener('close', this._onCloseHandler);\n        this._worker = null;\n        this._workerShutdownResolver(null);\n        this._workerShutdownPromise = null;\n        this._workerShutdownResolver = () => {};\n    }\n\n    /** Kill the worker */\n    public async terminate(): Promise<void> {\n        if (!this._worker) return;\n        this._worker.terminate();\n        //await this._workerShutdownPromise; TODO deadlocking in karma?\n        this._worker = null;\n        this._workerShutdownPromise = null;\n        this._workerShutdownResolver = () => {};\n    }\n\n    /** Post a task */\n    protected async postTask<W extends WorkerTaskVariant>(\n        task: W,\n        transfer: ArrayBuffer[] = [],\n    ): Promise<WorkerTaskReturnType<W>> {\n        if (!this._worker) {\n            console.error('cannot send a message since the worker is not set!');\n            return undefined as any;\n        }\n        const mid = this._nextMessageId++;\n        this._pendingRequests.set(mid, task);\n        this._worker.postMessage(\n            {\n                messageId: mid,\n                type: task.type,\n                data: task.data,\n            },\n            transfer,\n        );\n        return (await task.promise) as WorkerTaskReturnType<W>;\n    }\n\n    /** Received a message */\n    protected onMessage(event: MessageEvent): void {\n        // Unassociated responses?\n        const response = event.data as WorkerResponseVariant;\n        switch (response.type) {\n            // Request failed?\n            case WorkerResponseType.LOG: {\n                this._logger.log(response.data);\n                return;\n            }\n            // Call progress callback\n            case WorkerResponseType.INSTANTIATE_PROGRESS: {\n                for (const p of this._onInstantiationProgress) {\n                    p(response.data);\n                }\n                return;\n            }\n        }\n\n        // Get associated task\n        const task = this._pendingRequests.get(response.requestId);\n        if (!task) {\n            console.warn(`unassociated response: [${response.requestId}, ${response.type.toString()}]`);\n            return;\n        }\n        this._pendingRequests.delete(response.requestId);\n\n        // Request failed?\n        if (response.type == WorkerResponseType.ERROR) {\n            // Workaround for Firefox not being able to perform structured-clone on Native Errors\n            // https://bugzilla.mozilla.org/show_bug.cgi?id=1556604\n            const e = new Error(response.data.message);\n            e.name = response.data.name;\n            if (Object.getOwnPropertyDescriptor(e, 'stack')?.writable) {\n                e.stack = response.data.stack;\n            }\n            task.promiseRejecter(e);\n            return;\n        }\n\n        // Otherwise differentiate between the tasks first\n        switch (task.type) {\n            case WorkerRequestType.CLOSE_PREPARED:\n            case WorkerRequestType.COLLECT_FILE_STATISTICS:\n            case WorkerRequestType.COPY_FILE_TO_PATH:\n            case WorkerRequestType.DISCONNECT:\n            case WorkerRequestType.DROP_FILE:\n            case WorkerRequestType.DROP_FILES:\n            case WorkerRequestType.FLUSH_FILES:\n            case WorkerRequestType.INSERT_ARROW_FROM_IPC_STREAM:\n            case WorkerRequestType.INSERT_CSV_FROM_PATH:\n            case WorkerRequestType.INSERT_JSON_FROM_PATH:\n            case WorkerRequestType.OPEN:\n            case WorkerRequestType.PING:\n            case WorkerRequestType.REGISTER_FILE_BUFFER:\n            case WorkerRequestType.REGISTER_FILE_HANDLE:\n            case WorkerRequestType.REGISTER_FILE_URL:\n            case WorkerRequestType.RESET:\n                if (response.type == WorkerResponseType.OK) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.INSTANTIATE:\n                this._onInstantiationProgress = [];\n                if (response.type == WorkerResponseType.OK) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.GLOB_FILE_INFOS:\n                if (response.type == WorkerResponseType.FILE_INFOS) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.GET_VERSION:\n                if (response.type == WorkerResponseType.VERSION_STRING) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.GET_FEATURE_FLAGS:\n                if (response.type == WorkerResponseType.FEATURE_FLAGS) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.GET_TABLE_NAMES:\n                if (response.type == WorkerResponseType.TABLE_NAMES) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.TOKENIZE:\n                if (response.type == WorkerResponseType.SCRIPT_TOKENS) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.COPY_FILE_TO_BUFFER:\n                if (response.type == WorkerResponseType.FILE_BUFFER) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.EXPORT_FILE_STATISTICS:\n                if (response.type == WorkerResponseType.FILE_STATISTICS) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.CONNECT:\n                if (response.type == WorkerResponseType.CONNECTION_INFO) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.RUN_PREPARED:\n            case WorkerRequestType.RUN_QUERY:\n                if (response.type == WorkerResponseType.QUERY_RESULT) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.SEND_PREPARED:\n                if (response.type == WorkerResponseType.QUERY_RESULT_HEADER) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.START_PENDING_QUERY:\n                if (response.type == WorkerResponseType.QUERY_RESULT_HEADER_OR_NULL) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.POLL_PENDING_QUERY:\n                if (response.type == WorkerResponseType.QUERY_RESULT_HEADER_OR_NULL) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.CANCEL_PENDING_QUERY:\n                this._onInstantiationProgress = [];\n                if (response.type == WorkerResponseType.SUCCESS) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.FETCH_QUERY_RESULTS:\n                if (response.type == WorkerResponseType.QUERY_RESULT_CHUNK) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n            case WorkerRequestType.CREATE_PREPARED:\n                if (response.type == WorkerResponseType.PREPARED_STATEMENT_ID) {\n                    task.promiseResolver(response.data);\n                    return;\n                }\n                break;\n        }\n        task.promiseRejecter(new Error(`unexpected response type: ${response.type.toString()}`));\n    }\n\n    /** Received an error */\n    protected onError(event: ErrorEvent): void {\n        console.error(event);\n        console.error(`error in duckdb worker: ${event.message}`);\n        this._pendingRequests.clear();\n    }\n\n    /** The worker was closed */\n    protected onClose(): void {\n        this._workerShutdownResolver(null);\n        if (this._pendingRequests.size != 0) {\n            console.warn(`worker terminated with ${this._pendingRequests.size} pending requests`);\n            return;\n        }\n        this._pendingRequests.clear();\n    }\n\n    /** Reset the duckdb */\n    public async reset(): Promise<null> {\n        const task = new WorkerTask<WorkerRequestType.RESET, null, null>(WorkerRequestType.RESET, null);\n        return await this.postTask(task);\n    }\n\n    /** Ping the worker thread */\n    public async ping(): Promise<any> {\n        const task = new WorkerTask<WorkerRequestType.PING, null, null>(WorkerRequestType.PING, null);\n        await this.postTask(task);\n    }\n    /** Try to drop a file */\n    public async dropFile(name: string): Promise<null> {\n        const task = new WorkerTask<WorkerRequestType.DROP_FILE, string, null>(WorkerRequestType.DROP_FILE, name);\n        return await this.postTask(task);\n    }\n    /** Try to drop files */\n    public async dropFiles(): Promise<null> {\n        const task = new WorkerTask<WorkerRequestType.DROP_FILES, null, null>(WorkerRequestType.DROP_FILES, null);\n        return await this.postTask(task);\n    }\n    /** Flush all files */\n    public async flushFiles(): Promise<null> {\n        const task = new WorkerTask<WorkerRequestType.FLUSH_FILES, null, null>(WorkerRequestType.FLUSH_FILES, null);\n        return await this.postTask(task);\n    }\n\n    /** Open the database */\n    public async instantiate(\n        mainModuleURL: string,\n        pthreadWorkerURL: string | null = null,\n        progress: (progress: InstantiationProgress) => void = _p => {},\n    ): Promise<null> {\n        this._onInstantiationProgress.push(progress);\n        const task = new WorkerTask<WorkerRequestType.INSTANTIATE, [string, string | null], null>(\n            WorkerRequestType.INSTANTIATE,\n            [mainModuleURL, pthreadWorkerURL],\n        );\n        return await this.postTask(task);\n    }\n\n    /** Get the version */\n    public async getVersion(): Promise<string> {\n        const task = new WorkerTask<WorkerRequestType.GET_VERSION, null, string>(WorkerRequestType.GET_VERSION, null);\n        const version = await this.postTask(task);\n        return version;\n    }\n\n    /** Get the feature flags */\n    public async getFeatureFlags(): Promise<number> {\n        const task = new WorkerTask<WorkerRequestType.GET_FEATURE_FLAGS, null, number>(\n            WorkerRequestType.GET_FEATURE_FLAGS,\n            null,\n        );\n        const feature = await this.postTask(task);\n        return feature;\n    }\n\n    /** Open a new database */\n    public async open(config: DuckDBConfig): Promise<void> {\n        const task = new WorkerTask<WorkerRequestType.OPEN, DuckDBConfig, null>(WorkerRequestType.OPEN, config);\n        await this.postTask(task);\n    }\n\n    /** Tokenize a script text */\n    public async tokenize(text: string): Promise<ScriptTokens> {\n        const task = new WorkerTask<WorkerRequestType.TOKENIZE, string, ScriptTokens>(WorkerRequestType.TOKENIZE, text);\n        const tokens = await this.postTask(task);\n        return tokens;\n    }\n\n    /** Connect to the database */\n    public async connectInternal(): Promise<number> {\n        const task = new WorkerTask<WorkerRequestType.CONNECT, null, ConnectionID>(WorkerRequestType.CONNECT, null);\n        return await this.postTask(task);\n    }\n\n    /** Connect to the database */\n    public async connect(): Promise<AsyncDuckDBConnection> {\n        const cid = await this.connectInternal();\n        return new AsyncDuckDBConnection(this, cid);\n    }\n\n    /** Disconnect from the database */\n    public async disconnect(conn: ConnectionID): Promise<void> {\n        const task = new WorkerTask<WorkerRequestType.DISCONNECT, ConnectionID, null>(\n            WorkerRequestType.DISCONNECT,\n            conn,\n        );\n        await this.postTask(task);\n    }\n\n    /** Run a query */\n    public async runQuery(conn: ConnectionID, text: string): Promise<Uint8Array> {\n        const task = new WorkerTask<WorkerRequestType.RUN_QUERY, [ConnectionID, string], Uint8Array>(\n            WorkerRequestType.RUN_QUERY,\n            [conn, text],\n        );\n        return await this.postTask(task);\n    }\n\n    /** Start a pending query */\n    public async startPendingQuery(conn: ConnectionID, text: string): Promise<Uint8Array | null> {\n        const task = new WorkerTask<WorkerRequestType.START_PENDING_QUERY, [ConnectionID, string], Uint8Array | null>(\n            WorkerRequestType.START_PENDING_QUERY,\n            [conn, text],\n        );\n        return await this.postTask(task);\n    }\n    /** Poll a pending query */\n    public async pollPendingQuery(conn: ConnectionID): Promise<Uint8Array | null> {\n        const task = new WorkerTask<WorkerRequestType.POLL_PENDING_QUERY, ConnectionID, Uint8Array | null>(\n            WorkerRequestType.POLL_PENDING_QUERY,\n            conn,\n        );\n        return await this.postTask(task);\n    }\n    /** Cancel a pending query */\n    public async cancelPendingQuery(conn: ConnectionID): Promise<boolean> {\n        const task = new WorkerTask<WorkerRequestType.CANCEL_PENDING_QUERY, ConnectionID, boolean>(\n            WorkerRequestType.CANCEL_PENDING_QUERY,\n            conn,\n        );\n        return await this.postTask(task);\n    }\n\n    /** Fetch query results */\n    public async fetchQueryResults(conn: ConnectionID): Promise<Uint8Array> {\n        const task = new WorkerTask<WorkerRequestType.FETCH_QUERY_RESULTS, ConnectionID, Uint8Array>(\n            WorkerRequestType.FETCH_QUERY_RESULTS,\n            conn,\n        );\n        return await this.postTask(task);\n    }\n\n    /** Get table names */\n    public async getTableNames(conn: number, text: string): Promise<string[]> {\n        const task = new WorkerTask<WorkerRequestType.GET_TABLE_NAMES, [number, string], string[]>(\n            WorkerRequestType.GET_TABLE_NAMES,\n            [conn, text],\n        );\n        return await this.postTask(task);\n    }\n\n    /** Prepare a statement and return its identifier */\n    public async createPrepared(conn: number, text: string): Promise<number> {\n        const task = new WorkerTask<WorkerRequestType.CREATE_PREPARED, [number, string], number>(\n            WorkerRequestType.CREATE_PREPARED,\n            [conn, text],\n        );\n        return await this.postTask(task);\n    }\n    /** Close a prepared statement */\n    public async closePrepared(conn: number, statement: number): Promise<void> {\n        const task = new WorkerTask<WorkerRequestType.CLOSE_PREPARED, [number, number], null>(\n            WorkerRequestType.CLOSE_PREPARED,\n            [conn, statement],\n        );\n        await this.postTask(task);\n    }\n    /** Execute a prepared statement and return the full result */\n    public async runPrepared(conn: number, statement: number, params: any[]): Promise<Uint8Array> {\n        const task = new WorkerTask<WorkerRequestType.RUN_PREPARED, [ConnectionID, number, any[]], Uint8Array>(\n            WorkerRequestType.RUN_PREPARED,\n            [conn, statement, params],\n        );\n        return await this.postTask(task);\n    }\n    /** Execute a prepared statement and stream the result */\n    public async sendPrepared(conn: number, statement: number, params: any[]): Promise<Uint8Array> {\n        const task = new WorkerTask<WorkerRequestType.SEND_PREPARED, [ConnectionID, number, any[]], Uint8Array>(\n            WorkerRequestType.SEND_PREPARED,\n            [conn, statement, params],\n        );\n        return await this.postTask(task);\n    }\n    /** Glob file infos */\n    public async globFiles(path: string): Promise<WebFile[]> {\n        const task = new WorkerTask<WorkerRequestType.GLOB_FILE_INFOS, string, WebFile[]>(\n            WorkerRequestType.GLOB_FILE_INFOS,\n            path,\n        );\n        return await this.postTask(task);\n    }\n    /** Register file text */\n    public async registerFileText(name: string, text: string): Promise<void> {\n        const buffer = TEXT_ENCODER.encode(text);\n        await this.registerFileBuffer(name, buffer);\n    }\n    /** Register a file path. */\n    public async registerFileURL(\n        name: string,\n        url: string,\n        proto: DuckDBDataProtocol,\n        directIO: boolean,\n    ): Promise<void> {\n        if (url === undefined) {\n            url = name;\n        }\n        const task = new WorkerTask<\n            WorkerRequestType.REGISTER_FILE_URL,\n            [string, string, DuckDBDataProtocol, boolean],\n            null\n        >(WorkerRequestType.REGISTER_FILE_URL, [name, url, proto, directIO]);\n        await this.postTask(task);\n    }\n\n    /** Register an empty file buffer. */\n    public async registerEmptyFileBuffer(name: string): Promise<void> {\n        const task = new WorkerTask<WorkerRequestType.REGISTER_FILE_BUFFER, [string, Uint8Array], null>(\n            WorkerRequestType.REGISTER_FILE_BUFFER,\n            [name, new Uint8Array()],\n        );\n        await this.postTask(task);\n    }\n\n    /** Register a file buffer. */\n    public async registerFileBuffer(name: string, buffer: Uint8Array): Promise<void> {\n        const task = new WorkerTask<WorkerRequestType.REGISTER_FILE_BUFFER, [string, Uint8Array], null>(\n            WorkerRequestType.REGISTER_FILE_BUFFER,\n            [name, buffer],\n        );\n        await this.postTask(task, [buffer.buffer]);\n    }\n\n    /** Register a file handle. */\n    public async registerFileHandle<HandleType>(\n        name: string,\n        handle: HandleType,\n        protocol: DuckDBDataProtocol,\n        directIO: boolean,\n    ): Promise<void> {\n        const task = new WorkerTask<\n            WorkerRequestType.REGISTER_FILE_HANDLE,\n            [string, any, DuckDBDataProtocol, boolean],\n            null\n        >(WorkerRequestType.REGISTER_FILE_HANDLE, [name, handle, protocol, directIO]);\n        await this.postTask(task, []);\n    }\n\n    /** Enable file statistics */\n    public async collectFileStatistics(name: string, enable: boolean): Promise<void> {\n        const task = new WorkerTask<WorkerRequestType.COLLECT_FILE_STATISTICS, [string, boolean], null>(\n            WorkerRequestType.COLLECT_FILE_STATISTICS,\n            [name, enable],\n        );\n        await this.postTask(task, []);\n    }\n\n    /** Export file statistics */\n    public async exportFileStatistics(name: string): Promise<FileStatistics> {\n        const task = new WorkerTask<WorkerRequestType.EXPORT_FILE_STATISTICS, string, FileStatistics>(\n            WorkerRequestType.EXPORT_FILE_STATISTICS,\n            name,\n        );\n        return await this.postTask(task, []);\n    }\n\n    /** Copy a file to a buffer. */\n    public async copyFileToBuffer(name: string): Promise<Uint8Array> {\n        const task = new WorkerTask<WorkerRequestType.COPY_FILE_TO_BUFFER, string, Uint8Array>(\n            WorkerRequestType.COPY_FILE_TO_BUFFER,\n            name,\n        );\n        return await this.postTask(task);\n    }\n\n    /** Copy a file to a path. */\n    public async copyFileToPath(name: string, path: string): Promise<void> {\n        const task = new WorkerTask<WorkerRequestType.COPY_FILE_TO_PATH, [string, string], null>(\n            WorkerRequestType.COPY_FILE_TO_PATH,\n            [name, path],\n        );\n        await this.postTask(task);\n    }\n\n    /** Insert arrow from an ipc stream */\n    public async insertArrowFromIPCStream(\n        conn: ConnectionID,\n        buffer: Uint8Array,\n        options?: ArrowInsertOptions,\n    ): Promise<void> {\n        if (buffer.length == 0) return;\n        // Pass to the worker\n        const task = new WorkerTask<\n            WorkerRequestType.INSERT_ARROW_FROM_IPC_STREAM,\n            [number, Uint8Array, ArrowInsertOptions | undefined],\n            null\n        >(WorkerRequestType.INSERT_ARROW_FROM_IPC_STREAM, [conn, buffer, options]);\n        await this.postTask(task, [buffer.buffer]);\n    }\n    /** Insert a csv file */\n    public async insertCSVFromPath(conn: ConnectionID, path: string, options: CSVInsertOptions): Promise<void> {\n        // Flatten the table options\n        if (options.columns !== undefined) {\n            const out = [];\n            for (const k in options.columns) {\n                const type = options.columns[k];\n                out.push(arrowToSQLField(k, type));\n            }\n            options.columnsFlat = out;\n            delete options.columns;\n        }\n\n        // Pass to the worker\n        const task = new WorkerTask<WorkerRequestType.INSERT_CSV_FROM_PATH, [number, string, CSVInsertOptions], null>(\n            WorkerRequestType.INSERT_CSV_FROM_PATH,\n            [conn, path, options],\n        );\n        await this.postTask(task);\n    }\n    /** Insert a json file */\n    public async insertJSONFromPath(conn: ConnectionID, path: string, options: JSONInsertOptions): Promise<void> {\n        // Flatten the table options\n        if (options.columns !== undefined) {\n            const out = [];\n            for (const k in options.columns) {\n                const type = options.columns[k];\n                out.push(arrowToSQLField(k, type));\n            }\n            options.columnsFlat = out;\n            delete options.columns;\n        }\n\n        // Pass to the worker\n        const task = new WorkerTask<WorkerRequestType.INSERT_JSON_FROM_PATH, [number, string, JSONInsertOptions], null>(\n            WorkerRequestType.INSERT_JSON_FROM_PATH,\n            [conn, path, options],\n        );\n        await this.postTask(task);\n    }\n}\n", "import * as duckdb_blocking from '../src/targets/duckdb-node-blocking';\nimport * as duckdb from '../src/targets/duckdb';\nimport path from 'path';\nimport Worker from 'web-worker';\nimport fs from 'fs';\n\n// Loading debug symbols, especially for WASM take insanely long so we just disable the test timeout\njasmine.DEFAULT_TIMEOUT_INTERVAL = 60000;\n\n// Resolve a buffer by fetching from disk\nconst dataDir = path.resolve(__dirname, '../../../data');\nconst resolveBuffer = (url: string) => {\n    const p = path.join(dataDir, url);\n    if (!fs.existsSync(p)) return null;\n    return new Uint8Array(fs.readFileSync(p));\n};\n\n// Resolve test data\nconst resolveData = async (url: string) => {\n    switch (url) {\n        case '/uni/all.zip':\n            return await resolveBuffer('/uni/all.zip');\n        case '/uni/assistenten.parquet':\n            return await resolveBuffer('/uni/assistenten.parquet');\n        case '/uni/studenten.parquet':\n            return await resolveBuffer('/uni/studenten.parquet');\n        case '/uni/hoeren.parquet':\n            return await resolveBuffer('/uni/hoeren.parquet');\n        case '/uni/vorlesungen.parquet':\n            return await resolveBuffer('/uni/vorlesungen.parquet');\n        default:\n            return null;\n    }\n};\n\n// Test environment\nlet db: duckdb_blocking.DuckDBBindings | null = null;\nlet adb: duckdb.AsyncDuckDB | null = null;\nlet worker: Worker | null = null;\n\nbeforeAll(async () => {\n    // Configure the worker\n    const DUCKDB_BUNDLES = {\n        mvp: {\n            mainModule: path.resolve(__dirname, './duckdb-mvp.wasm'),\n            mainWorker: path.resolve(__dirname, './duckdb-node-mvp.worker.cjs'),\n        },\n        eh: {\n            mainModule: path.resolve(__dirname, './duckdb-eh.wasm'),\n            mainWorker: path.resolve(__dirname, './duckdb-node-eh.worker.cjs'),\n        },\n    };\n    const DUCKDB_CONFIG = await duckdb.selectBundle(DUCKDB_BUNDLES);\n\n    const logger = new duckdb_blocking.VoidLogger();\n    db = await duckdb_blocking.createDuckDB(DUCKDB_BUNDLES, logger, duckdb_blocking.NODE_RUNTIME);\n    await db.instantiate(_ => {});\n\n    worker = new Worker(DUCKDB_CONFIG.mainWorker);\n    adb = new duckdb.AsyncDuckDB(logger, worker);\n    await adb.instantiate(DUCKDB_CONFIG.mainModule, DUCKDB_CONFIG.pthreadWorker);\n});\n\nafterAll(async () => {\n    if (worker) worker.terminate();\n});\n\nimport { testAllTypes, testAllTypesAsync } from './all_types.test';\nimport { testBindings, testAsyncBindings } from './bindings.test';\nimport { testBatchStream } from './batch_stream.test';\nimport { testFilesystem } from './filesystem.test';\nimport { testAsyncBatchStream } from './batch_stream_async.test';\nimport { testArrowInsert, testArrowInsertAsync } from './insert_arrow.test';\nimport { testJSONInsert, testJSONInsertAsync } from './insert_json.test';\nimport { testCSVInsert, testCSVInsertAsync } from './insert_csv.test';\nimport { testTokenization, testTokenizationAsync } from './tokenizer.test';\nimport { testTableNames, testTableNamesAsync } from './tablenames.test';\nimport { testUDF } from './udf.test';\nimport { testRegressionAsync } from './regression';\nimport { testFTS } from './fts.test';\nimport { testICU } from './icu_test';\n\ntestUDF(() => db!);\ntestTableNames(() => db!);\ntestTableNamesAsync(() => adb!);\ntestRegressionAsync(() => adb!);\ntestAllTypes(() => db!);\ntestAllTypesAsync(() => adb!);\ntestBindings(() => db!, dataDir);\ntestAsyncBindings(() => adb!, dataDir, duckdb.DuckDBDataProtocol.NODE_FS);\ntestBatchStream(() => db!);\ntestAsyncBatchStream(() => adb!);\ntestFilesystem(() => adb!, resolveData, dataDir, duckdb.DuckDBDataProtocol.NODE_FS);\ntestArrowInsert(() => db!);\ntestArrowInsertAsync(() => adb!);\ntestJSONInsert(() => db!);\ntestJSONInsertAsync(() => adb!);\ntestCSVInsert(() => db!);\ntestCSVInsertAsync(() => adb!);\ntestTokenization(() => db!);\ntestTokenizationAsync(() => adb!);\ntestFTS(() => db!);\ntestICU(() => db!);\n", "import * as duckdb from '../src/';\nimport { Vector } from 'apache-arrow';\nimport { DuckDBQueryConfig } from '../src/';\n\n// The max interval in microsec from DuckDB is 83 years 3 months 999 days 00:16:39.999999, with months as 30 days.\n// Note that due to Arrow JS not supporting the duration type, the castDurationToInterval option is used for intervals.\n// This has a side-effect that while the value is in microseconds, it only has millisecond accuracy. This is\n// because DuckDB emits intervals in milliseconds and the Arrow Time64 type does not support milliseconds as unit.\n//const MAX_INTERVAL_US = (((83 * (12 * 30) + 3 * 30 + 999) * 24 * 60 + 16) * 60 + 39) * 1000000 + 999000;\n\n// JS Date at +/-8640000000000000ms\nconst MINIMUM_DATE_STR = '-271821-04-20';\nconst MINIMUM_DATE = new Date(Date.UTC(-271821, 3, 20));\nconst MAXIMUM_DATE_STR = '275760-09-13';\nconst MAXIMUM_DATE = new Date(Date.UTC(275760, 8, 13));\n\n// All columns contain 3 values: [min_value, max_value, null]\ntype AnswerObjectType = {\n    [key: string]: any[];\n};\n\ninterface AllTypesTest {\n    name: string;\n    query: string;\n    skip: string[];\n    answerMap: AnswerObjectType;\n    answerCount: number;\n    queryConfig: DuckDBQueryConfig | null;\n}\n\n// These types currently do not work in DuckDB-WASM\n// timestamp_xx and date_tz types will soon be fully supported by duckdb and should be added then.\n// hugeint, dec_18_3, dec38_10 and uuid require JS BigInts for full support, which is currently not supported by ArrowJS\nconst NOT_IMPLEMENTED_TYPES = [\n    'timestamp_s',\n    'timestamp_ms',\n    'timestamp_ns',\n    'time_tz',\n    'timestamp_tz',\n    'hugeint',\n    'dec_18_6',\n    'dec38_10',\n    'uuid',\n    'map',\n    'json',\n    'date_array',\n    'timestamp_array',\n    'timestamptz_array',\n];\n\n// These types are supported, but not the full range returned from the test_all_types() table function, here we define\n// the limits we do expect to be supported.\nconst PARTIALLY_IMPLEMENTED_TYPES = ['date', 'timestamp'];\nconst PARTIALLY_IMPLEMENTED_ANSWER_MAP: AnswerObjectType = {\n    date: [MINIMUM_DATE.valueOf(), MAXIMUM_DATE.valueOf(), null],\n    timestamp: [MINIMUM_DATE.valueOf(), MAXIMUM_DATE.valueOf(), null],\n};\n\n// Subqueries that return the limits of the subset of the full range that is implemented\nconst PARTIALLY_IMPLEMENTED_TYPES_SUBSTITUTIONS = [\n    `(SELECT array_extract(['${MINIMUM_DATE_STR}'::Date,'${MAXIMUM_DATE_STR}'::Date,null],i + 1)) as date`,\n    `(SELECT array_extract(['${MINIMUM_DATE_STR}'::Timestamp,'${MAXIMUM_DATE_STR}'::Timestamp,null],i + 1)) as timestamp`,\n];\n\n// These types do not work with default configuration, but have\nconst TYPES_REQUIRING_CUSTOM_CONFIG = ['dec_4_1', 'dec_9_4'];\n\n// Types that are fully supported.\nconst FULLY_IMPLEMENTED_ANSWER_MAP: AnswerObjectType = {\n    bool: [false, true, null],\n    tinyint: [-128, 127, null],\n    smallint: [-32768, 32767, null],\n    int: [-2147483648, 2147483647, null],\n    utinyint: [0, 255, null],\n    usmallint: [0, 65535, null],\n    uint: [0, 4294967295, null],\n    ubigint: [BigInt(0), BigInt('18446744073709551615'), null],\n    bigint: [BigInt('-9223372036854775808'), BigInt('9223372036854775807'), null],\n\n    // Note that we multiply by thousand (and add 999 for the max) because the value returned by DuckDB is in microseconds,\n    // whereas the Date object is in milliseconds.\n    time: [BigInt(0), BigInt(new Date('1970-01-01T23:59:59.999+00:00').valueOf()) * BigInt(1000) + BigInt(999), null],\n    interval: [new Int32Array([0,0]),  new Int32Array([0,0]), null],\n\n    float: [-3.4028234663852886e38, 3.4028234663852886e38, null],\n    double: [-1.7976931348623157e308, 1.7976931348623157e308, null],\n    varchar: ['\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86', 'goo\\x00se', null],\n    small_enum: ['DUCK_DUCK_ENUM', 'GOOSE', null],\n    medium_enum: ['enum_0', 'enum_299', null],\n    large_enum: ['enum_0', 'enum_69999', null],\n\n    int_array: [[], [42, 999, null, null, -42], null],\n    double_array: [[], [42.0, NaN, Infinity, -Infinity, null, -42.0], null],\n    varchar_array: [[], ['\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86', 'goose', null, ''], null],\n    nested_int_array: [[], [[], [42, 999, null, null, -42], null, [], [42, 999, null, null, -42]], null],\n\n    struct: ['{\"a\":null,\"b\":null}', '{\"a\":42,\"b\":\"\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\"}', null],\n    struct_of_arrays: [\n        '{\"a\":null,\"b\":null}',\n        '{\"a\":[42,999,null,null,-42],\"b\":[\"\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\",\"goose\",null,\"\"]}',\n        null,\n    ],\n    array_of_structs: [[], ['{\"a\":null,\"b\":null}', '{\"a\":42,\"b\":\"\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\"}', null], null],\n\n    // XXX sometimes throws\n    // map: ['{}', '{\"key1\":\"\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86\",\"key2\":\"goose\"}', null],\n    blob: [\n        Uint8Array.from([\n            116, 104, 105, 115, 105, 115, 97, 108, 111, 110, 103, 98, 108, 111, 98, 0, 119, 105, 116, 104, 110, 117,\n            108, 108, 98, 121, 116, 101, 115,\n        ]),\n        Uint8Array.from([0, 0, 0, 97]),\n        null,\n    ],\n};\n\n// Replacements for the values we knowingly don't support from the test_all_types query\nconst REPLACE_COLUMNS = PARTIALLY_IMPLEMENTED_TYPES.concat(NOT_IMPLEMENTED_TYPES).concat(TYPES_REQUIRING_CUSTOM_CONFIG);\n\nfunction unpack(v: any): any {\n    if (v === null) return null;\n\n    if (v instanceof Vector) {\n        const ret = Array.from(v.toArray());\n        for (let i = 0; i < ret.length; i++) {\n            if (!v.isValid(i)) {\n                ret[i] = null;\n            }\n        }\n        return unpack(ret);\n    } else if (v instanceof Array) {\n        const ret: any = [];\n        for (let i = 0; i < v.length; i++) {\n            ret[i] = unpack(v[i]);\n        }\n        return ret;\n    } else if (v instanceof Uint8Array) {\n        return v;\n    } else if (v.toJSON instanceof Function) {\n        return JSON.stringify(v.toJSON());\n    }\n\n    return v;\n}\n\nfunction getValue(x: any): any {\n    if (typeof x?.valueOf === 'function') {\n        return x.valueOf();\n    } else {\n        return x;\n    }\n}\n\nconst ALL_TYPES_TEST: AllTypesTest[] = [\n    {\n        name: 'fully supported types',\n        query: `SELECT * REPLACE('not_implemented' as map) FROM test_all_types()`,\n        skip: REPLACE_COLUMNS,\n        answerMap: FULLY_IMPLEMENTED_ANSWER_MAP,\n        answerCount: REPLACE_COLUMNS.length + Object.keys(FULLY_IMPLEMENTED_ANSWER_MAP).length,\n        queryConfig: null,\n    },\n    {\n        name: 'partially supported types',\n        query: `SELECT ${PARTIALLY_IMPLEMENTED_TYPES_SUBSTITUTIONS.join(', ')}\n                FROM range(0, 3) tbl(i)`,\n        skip: [],\n        answerMap: PARTIALLY_IMPLEMENTED_ANSWER_MAP,\n        answerCount: PARTIALLY_IMPLEMENTED_TYPES.length,\n        queryConfig: null,\n    },\n    {\n        name: 'types with custom config',\n        query: `SELECT ${TYPES_REQUIRING_CUSTOM_CONFIG.join(',')} FROM test_all_types()`,\n        skip: [],\n        answerMap: {\n            dec_4_1: [-999.9000000000001, 999.9000000000001, null],\n            dec_9_4: [-99999.99990000001, 99999.99990000001, null],\n        },\n        answerCount: TYPES_REQUIRING_CUSTOM_CONFIG.length,\n        queryConfig: {\n            castDecimalToDouble: true,\n        },\n    },\n];\n\nexport function testAllTypes(db: () => duckdb.DuckDBBindings): void {\n    let conn: duckdb.DuckDBConnection | null;\n\n    beforeEach(() => {\n        db().flushFiles();\n    });\n\n    afterEach(() => {\n        if (conn) {\n            conn.close();\n            conn = null;\n        }\n        db().flushFiles();\n        db().dropFiles();\n    });\n    describe('Test All Types', () => {\n        for (const test of ALL_TYPES_TEST) {\n            it(test.name, () => {\n                if (test.queryConfig) db().open({ query: test.queryConfig });\n\n                conn = db().connect();\n\n                const results = conn.query(test.query);\n                expect(results.numCols).toEqual(test.answerCount);\n\n                const skip = new Map();\n                for (const s of test.skip) {\n                    skip.set(s, true);\n                }\n                for (let i = 0; i < results.numCols; i++) {\n                    const name = results.schema.fields[i].name;\n                    if (name == \"bit\")\n                        continue;\n                    const col = results.getChildAt(i);\n                    if (skip.get(name)) continue;\n                    expect(col).not.toBeNull();\n                    expect(col?.length).not.toEqual(0);\n\n                    expect(unpack(getValue(col!.get(0))))\n                       .withContext(name)\n                       .toEqual(test.answerMap[name][0]); // Min\n                    expect(unpack(getValue(col!.get(1))))\n                       .withContext(name)\n                       .toEqual(test.answerMap[name][1]); // Max\n                    expect(col!.get(2))\n                       .withContext(name)\n                       .toEqual(test.answerMap[name][2]); // Null\n                }\n            });\n        }\n    });\n}\n\nexport function testAllTypesAsync(db: () => duckdb.AsyncDuckDB): void {\n    let conn: duckdb.AsyncDuckDBConnection | null = null;\n\n    beforeEach(async () => {\n        await db().flushFiles();\n    });\n    afterEach(async () => {\n        if (conn) {\n            await conn.close();\n            conn = null;\n        }\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n\n    describe('Test All Types Async', () => {\n        for (const test of ALL_TYPES_TEST) {\n            it(test.name, async () => {\n                if (test.queryConfig) db().open({ query: test.queryConfig });\n\n                conn = await db().connect();\n                const results = await conn.query(test.query);\n                expect(results.numCols).toEqual(test.answerCount);\n\n                const skip = new Map();\n                for (const s of test.skip) {\n                    skip.set(s, true);\n                }\n                for (let i = 0; i < results.numCols; i++) {\n                    const name = results.schema.fields[i].name;\n                    if (name == \"bit\")\n                        continue;\n                    const col = results.getChildAt(i);\n                    if (skip.get(name)) continue;\n                    expect(col).not.toBeNull();\n                    expect(col?.length).not.toEqual(0);\n\n                    expect(Object.keys(test.answerMap)).toContain(name);\n                    expect(unpack(getValue(col!.get(0))))\n                        .withContext(name + '|' + col?.toString() + '|[0]')\n                        .toEqual(test.answerMap[name][0]); // Min\n                    expect(unpack(getValue(col!.get(1))))\n                        .withContext(name + '|' + col?.toString() + '|[1]')\n                        .toEqual(test.answerMap[name][1]); // Max\n                    expect(col!.get(2))\n                        .withContext(name + '|' + col?.toString() + '|[2]')\n                        .toEqual(test.answerMap[name][2]); // Null\n                }\n            });\n        }\n    });\n}\n", "import * as arrow from 'apache-arrow';\nimport * as duckdb from '../src/';\nimport { DuckDBAccessMode, DuckDBDataProtocol } from '../src/';\n\nexport function testBindings(db: () => duckdb.DuckDBBindings, baseURL: string): void {\n    let conn: duckdb.DuckDBConnection;\n\n    beforeEach(() => {\n        conn = db().connect();\n    });\n\n    afterEach(() => {\n        conn.close();\n        db().flushFiles();\n        db().dropFiles();\n    });\n\n    describe('DuckDBBindings', () => {\n        describe('error handling', () => {\n            it('INVALID SQL', async () => {\n                let error: Error | null = null;\n                try {\n                    await conn.send('INVALID');\n                } catch (e: any) {\n                    error = e;\n                }\n                expect(error).not.toBe(null);\n            });\n        });\n\n        describe('Check version', () => {\n            it('Version check', async () => {\n                await db().reset();\n                conn = db().connect();\n                const version = conn.query<{ name: arrow.Utf8 }>(\n                    \"select * from (select version()) where version() != 'v0.0.1-dev0';\",\n                );\n                const rows = version.toArray();\n                expect(rows.length).toEqual(1);\n                await db().reset();\n            });\n        });\n\n        describe('Check platform', () => {\n            it('Platform check', async () => {\n                await db().reset();\n                conn = db().connect();\n                const version = conn.query<{ name: arrow.Utf8 }>(\n                    \"PRAGMA platform;\",\n                );\n                const rows = version.getChildAt(0)?.toArray();\n                expect(rows.length).toEqual(1);\n                expect(rows[0].toString().substr(0,5)).toEqual(\"wasm_\");\n                await db().reset();\n            });\n        });\n\n        //describe('Open', () => {\n        // XXX apparently synchronous XHR on the main thread does not allow for arraybuffer response type?\n        // it('Remote TPCH 0_01', async () => {\n        //     await db().registerFileURL('tpch_0_01.db', `${baseURL}/tpch/0_01/duckdb/db`);\n        //     db().open('tpch_0_01.db');\n        // });\n        //});\n\n        describe('Reset', () => {\n            it('table must disappear', async () => {\n                await db().reset();\n                conn = db().connect();\n                conn.query('CREATE TABLE foo (a int)');\n                let table = conn.query<{ name: arrow.Utf8 }>('PRAGMA show_tables;');\n                let rows = table.toArray();\n                expect(rows.length).toEqual(1);\n                expect(rows[0]?.name).toEqual('foo');\n                await db().reset();\n                conn = db().connect();\n                table = conn.query<{ name: arrow.Utf8 }>('PRAGMA show_tables;');\n                rows = table.toArray();\n                expect(rows.length).toEqual(0);\n            });\n        });\n\n        describe('Prepared Statement', () => {\n            it('Materialized', async () => {\n                const stmt = conn.prepare('SELECT v::INTEGER + ? AS v FROM generate_series(0, 10000) as t(v);');\n                const result = stmt.query(234);\n                expect(result.numRows).toBe(10001);\n                stmt.close();\n            });\n\n            it('Streaming', async () => {\n                const stmt = conn.prepare('SELECT v::INTEGER + ? AS v FROM generate_series(0, 10000) as t(v);');\n                const stream = stmt.send(234);\n                let size = 0;\n                for (const batch of stream) {\n                    size += batch.numRows;\n                }\n                expect(size).toBe(10001);\n                conn.close();\n            });\n            it('Typecheck', async () => {\n                conn.query(`CREATE TABLE typecheck (\n                    a BOOLEAN DEFAULT NULL,\n                    b TINYINT DEFAULT NULL,\n                    c SMALLINT DEFAULT NULL,\n                    d INTEGER DEFAULT NULL,\n                    e BIGINT DEFAULT NULL,\n                    f FLOAT DEFAULT NULL,\n                    g DOUBLE DEFAULT NULL,\n                    h CHAR(11) DEFAULT NULL,\n                    i VARCHAR(11) DEFAULT NULL\n                )`);\n\n                const stmt = conn.prepare('INSERT INTO typecheck VALUES(?,?,?,?,?,?,?,?,?)');\n                expect(() =>\n                    stmt.query(true, 100, 10_000, 1_000_000, 5_000_000_000, 0.5, Math.PI, 'hello world', 'hi'),\n                ).not.toThrow();\n                expect(() =>\n                    stmt.query(\n                        'test', // varchar for bool\n                        100,\n                        10_000,\n                        1_000_000,\n                        5_000_000_000,\n                        0.5,\n                        Math.PI,\n                        'hello world',\n                        'hi',\n                    ),\n                ).toThrow();\n                expect(() =>\n                    stmt.query(\n                        true,\n                        10_000, // smallint for tinyint\n                        10_000,\n                        1_000_000,\n                        5_000_000_000,\n                        0.5,\n                        Math.PI,\n                        'hello world',\n                        'hi',\n                    ),\n                ).toThrow();\n                expect(() =>\n                    stmt.query(\n                        true,\n                        100,\n                        1_000_000, // int for smallint\n                        1_000_000,\n                        5_000_000_000,\n                        0.5,\n                        Math.PI,\n                        'hello world',\n                        'hi',\n                    ),\n                ).toThrow();\n                expect(() =>\n                    stmt.query(\n                        true,\n                        100,\n                        10_000,\n                        5_000_000_000, // bigint for int\n                        5_000_000_000,\n                        0.5,\n                        Math.PI,\n                        'hello world',\n                        'hi',\n                    ),\n                ).toThrow();\n                conn.close();\n            });\n        });\n    });\n}\n\nexport function testAsyncBindings(\n    adb: () => duckdb.AsyncDuckDB,\n    baseURL: string,\n    baseDirProto: DuckDBDataProtocol,\n): void {\n    beforeEach(async () => {});\n\n    afterEach(async () => {\n        await adb().flushFiles();\n        await adb().dropFiles();\n        await adb().open({\n            path: ':memory:',\n        });\n    });\n\n    describe('Bindings', () => {\n        describe('Open', () => {\n            it('Remote TPCH 0_01', async () => {\n                await adb().registerFileURL('tpch_0_01.db', `${baseURL}/tpch/0_01/duckdb/db`, baseDirProto, false);\n                await adb().open({\n                    path: 'tpch_0_01.db',\n                });\n                // FIXME: Add this back\n                //const conn = await adb().connect();\n                //const table = await conn.query<{\n                //    a: arrow.Int;\n                //}>('select count(*)::INTEGER as a from lineitem');\n                //const rows = table.toArray();\n                //expect(rows.length).toEqual(1);\n                //expect(rows[0]?.a).toEqual(60175);\n            });\n        });\n\n        describe('Patching', () => {\n            it('Count(*) Default', async () => {\n                await adb().open({\n                    path: ':memory:',\n                    query: {\n                        castBigIntToDouble: false,\n                    },\n                });\n                const conn = await adb().connect();\n                const table = await conn.query('select 1::BIGINT');\n                expect(table.schema.fields.length).toEqual(1);\n                expect(table.schema.fields[0].typeId).toEqual(arrow.Type.Int);\n            });\n\n            it('Count(*) No BigInt', async () => {\n                await adb().open({\n                    path: ':memory:',\n                    query: {\n                        castBigIntToDouble: true,\n                    },\n                });\n                const conn = await adb().connect();\n                const table = await conn.query('select 1::BIGINT');\n                expect(table.schema.fields.length).toEqual(1);\n                expect(table.schema.fields[0].typeId).toEqual(arrow.Type.Float);\n            });\n        });\n\n        describe('Prepared Statement', () => {\n            it('Materialized', async () => {\n                const conn = await adb().connect();\n                const stmt = await conn.prepare('SELECT v + ? FROM generate_series(0, 10000) as t(v);');\n                const result = await stmt.query(234);\n                expect(result.numRows).toBe(10001);\n                await stmt.close();\n            });\n\n            it('Streaming', async () => {\n                const conn = await adb().connect();\n                const stmt = await conn.prepare('SELECT v::INTEGER + ? AS v FROM generate_series(0, 10000) as t(v);');\n                const stream = await stmt.send(234);\n                let size = 0;\n                for await (const batch of stream) {\n                    size += batch.numRows;\n                }\n                expect(size).toBe(10001);\n                await conn.close();\n            });\n            it('Typecheck', async () => {\n                const conn = await adb().connect();\n                await conn.query(`CREATE TABLE typecheck (\n                    a BOOLEAN DEFAULT NULL,\n                    b TINYINT DEFAULT NULL,\n                    c SMALLINT DEFAULT NULL,\n                    d INTEGER DEFAULT NULL,\n                    e BIGINT DEFAULT NULL,\n                    f FLOAT DEFAULT NULL,\n                    g DOUBLE DEFAULT NULL,\n                    h CHAR(11) DEFAULT NULL,\n                    i VARCHAR(11) DEFAULT NULL\n                )`);\n\n                const stmt = await conn.prepare('INSERT INTO typecheck VALUES(?,?,?,?,?,?,?,?,?)');\n\n                const expectToThrow = async (fn: () => Promise<void>) => {\n                    let throwed = false;\n                    try {\n                        await fn();\n                    } catch (e) {\n                        throwed = true;\n                    }\n                    expect(throwed).toBe(true);\n                };\n                expectToThrow(async () => {\n                    await stmt.query(\n                        'test', // varchar for bool\n                        100,\n                        10_000,\n                        1_000_000,\n                        5_000_000_000,\n                        0.5,\n                        Math.PI,\n                        'hello world',\n                        'hi',\n                    );\n                });\n                expectToThrow(async () => {\n                    await stmt.query(\n                        true,\n                        10_000, // smallint for tinyint\n                        10_000,\n                        1_000_000,\n                        5_000_000_000,\n                        0.5,\n                        Math.PI,\n                        'hello world',\n                        'hi',\n                    );\n                });\n                expectToThrow(async () => {\n                    await stmt.query(\n                        true,\n                        100,\n                        1_000_000, // int for smallint\n                        1_000_000,\n                        5_000_000_000,\n                        0.5,\n                        Math.PI,\n                        'hello world',\n                        'hi',\n                    );\n                });\n                expectToThrow(async () => {\n                    await stmt.query(\n                        true,\n                        100,\n                        10_000,\n                        5_000_000_000, // bigint for int\n                        5_000_000_000,\n                        0.5,\n                        Math.PI,\n                        'hello world',\n                        'hi',\n                    );\n                });\n                await conn.close();\n            });\n        });\n\n        describe('AccessMode', () => {\n            it('READ_ONLY', async () => {\n                await expectAsync(\n                    adb().open({\n                        accessMode: DuckDBAccessMode.READ_ONLY,\n                    }),\n                ).toBeRejectedWithError(/Cannot launch in-memory database in read-only mode/);\n            });\n            it('READ_WRITE', async () => {\n                await expectAsync(\n                    adb().open({\n                        accessMode: DuckDBAccessMode.READ_WRITE,\n                    }),\n                ).toBeResolved();\n            });\n        });\n\n        describe('Cancellation', () => {\n            it('hello cancel', async () => {\n                // Set query polling interval to 0 to poll 1 task at a time\n                await adb().open({\n                    path: ':memory:',\n                    query: {\n                        queryPollingInterval: 0,\n                    },\n                });\n                const conn = await adb().connect();\n                const result = await conn.useUnsafe((db, id) =>\n                    db.startPendingQuery(id, 'SELECT SUM(i) FROM range(1000000) tbl(i);'),\n                );\n                expect(result).toBeNull();\n                const cancelOK = await conn.useUnsafe((db, id) => db.cancelPendingQuery(id));\n                expect(cancelOK).toBeTrue();\n                let polledHeader = null;\n                let polledError = null;\n                try {\n                    polledHeader = await conn.useUnsafe((db, id) => db.pollPendingQuery(id));\n                } catch (e: any) {\n                    polledError = e;\n                }\n                expect(polledHeader).toBeNull();\n                expect(polledError).not.toBeNull();\n                expect(polledError.toString()).toEqual('Error: query was canceled');\n                const canceledAgain = await conn.useUnsafe((db, id) => db.cancelPendingQuery(id));\n                expect(canceledAgain).toBeFalse();\n                // Check the connection is destroyed or not when we cancel query\n                const table = await conn.query('select 42::integer;');\n                expect(table.schema.fields.length).toEqual(1);\n            });\n\n            it('noop cancel', async () => {\n                await adb().open({\n                    path: ':memory:',\n                    query: {\n                        queryPollingInterval: 0,\n                    },\n                });\n                const conn = await adb().connect();\n                const result = await conn.useUnsafe((db, id) =>\n                    db.startPendingQuery(id, 'SELECT SUM(i) FROM range(1000000) tbl(i);'),\n                );\n                expect(result).toBeNull();\n                let polledHeader = null;\n                let polledError = null;\n                try {\n                    // We execute 1 task at a time, so this may take multiple polls\n                    while (polledHeader == null) {\n                        polledHeader = await conn.useUnsafe((db, id) => db.pollPendingQuery(id));\n                    }\n                } catch (e: any) {\n                    polledError = e;\n                }\n                expect(polledHeader).not.toBeNull();\n                expect(polledError).toBeNull();\n                const cancelOK = await conn.useUnsafe((db, id) => db.cancelPendingQuery(id));\n                expect(cancelOK).toBeFalse();\n                const anotherOne = await conn.useUnsafe((db, id) => db.cancelPendingQuery(id));\n                expect(anotherOne).toBeFalse();\n            });\n        });\n    });\n}\n", "import * as duckdb from '../src/';\n\nconst testRows = 10000;\n\nexport function testBatchStream(db: () => duckdb.DuckDBBindings): void {\n    let conn: duckdb.DuckDBConnection;\n\n    beforeEach(() => {\n        conn = db().connect();\n    });\n\n    afterEach(() => {\n        conn.close();\n        db().flushFiles();\n        db().dropFiles();\n    });\n\n    describe('Arrow Record-Batches Row-Major', () => {\n        describe('single column', () => {\n            it('TINYINT', async () => {\n                const result = await conn.send(`\n                    SELECT (v & 127)::TINYINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const row of batch) {\n                        expect(row!.v).toBe(i++ & 127);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('SMALLINT', async () => {\n                const result = await conn.send(`\n                    SELECT (v & 32767)::SMALLINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const row of batch) {\n                        expect(row!.v).toBe(i++ & 32767);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('INTEGER', async () => {\n                const result = await conn.send(`\n                    SELECT v::INTEGER AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const row of batch) {\n                        expect(row!.v).toBe(i++);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('BIGINT', async () => {\n                const result = await conn.send(`\n                    SELECT v::BIGINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const row of batch) {\n                        expect(row!.v).toBe(BigInt(i++));\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('STRING', async () => {\n                const result = await conn.send(`\n                    SELECT v::VARCHAR AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const row of batch) {\n                        expect(row!.v).toBe(String(i++));\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n        });\n    });\n\n    describe('Arrow Record-Batches Column-Major', () => {\n        describe('single column', () => {\n            it('TINYINT', async () => {\n                const result = await conn.send(`\n                    SELECT (v & 127)::TINYINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(i++ & 127);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('SMALLINT', async () => {\n                const result = await conn.send(`\n                    SELECT (v & 32767)::SMALLINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(i++ & 32767);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('INTEGER', async () => {\n                const result = await conn.send(`\n                    SELECT v::INTEGER AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(i++);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('BIGINT', async () => {\n                const result = await conn.send(`\n                    SELECT v::BIGINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(BigInt(i++));\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('STRING', async () => {\n                const result = await conn.send(`\n                    SELECT v::VARCHAR AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(String(i++));\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n        });\n    });\n\n    describe('Arrow Table Row-Major', () => {\n        describe('single column', () => {\n            it('TINYINT', () => {\n                const table = conn.query(`\n                    SELECT (v & 127)::TINYINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const row of table) {\n                    expect(row?.v).toBe(i++ & 127);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('SMALLINT', () => {\n                const table = conn.query(`\n                    SELECT (v & 32767)::SMALLINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const row of table) {\n                    expect(row?.v).toBe(i++ & 32767);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('INTEGER', () => {\n                const table = conn.query(`\n                    SELECT v::INTEGER AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const row of table) {\n                    expect(row?.v).toBe(i++);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('BIGINT', () => {\n                const table = conn.query(`\n                    SELECT v::BIGINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const row of table) {\n                    expect(row?.v).toBe(BigInt(i++));\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('STRING', () => {\n                const table = conn.query(`\n                    SELECT v::VARCHAR AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const row of table) {\n                    expect(row?.v.valueOf()).toBe(String(i++));\n                }\n                expect(i).toBe(testRows + 1);\n            });\n        });\n    });\n\n    describe('Arrow Table Column-Major', () => {\n        describe('single column', () => {\n            it('TINYINT', () => {\n                const table = conn.query(`\n                    SELECT (v & 127)::TINYINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const v of table.getChildAt(0)!) {\n                    expect(v).toBe(i++ & 127);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('SMALLINT', () => {\n                const table = conn.query(`\n                    SELECT (v & 32767)::SMALLINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const v of table.getChildAt(0)!) {\n                    expect(v).toBe(i++ & 32767);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('INTEGER', () => {\n                const table = conn.query(`\n                    SELECT v::INTEGER AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const v of table.getChildAt(0)!) {\n                    expect(v).toBe(i++);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('BIGINT', () => {\n                const table = conn.query(`\n                    SELECT v::BIGINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const v of table.getChildAt(0)!) {\n                    expect(v).toBe(BigInt(i++));\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('STRING', () => {\n                const table = conn.query(`\n                    SELECT v::VARCHAR AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const v of table.getChildAt(0)!) {\n                    expect(v).toBe(String(i++));\n                }\n                expect(i).toBe(testRows + 1);\n            });\n        });\n    });\n}\n", "import * as duckdb from '../src/';\nimport * as arrow from 'apache-arrow';\n\nconst decoder = new TextDecoder();\n\nexport function testFilesystem(\n    db: () => duckdb.AsyncDuckDB,\n    resolveData: (url: string) => Promise<Uint8Array | null>,\n    baseDir: string,\n    baseDirProto: duckdb.DuckDBDataProtocol,\n): void {\n    let conn: duckdb.AsyncDuckDBConnection;\n\n    beforeEach(async () => {\n        conn = await db().connect();\n    });\n\n    afterEach(async () => {\n        await conn.close();\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n\n    describe('File buffer registration', () => {\n        const test = async () => {\n            const result = await conn.send(`SELECT matrnr FROM parquet_scan('studenten.parquet');`);\n            const batches = [];\n            for await (const batch of result) {\n                batches.push(batch);\n            }\n            const table = await new arrow.Table<{ matrnr: arrow.Int }>(batches);\n            expect(table.getChildAt(0)?.toArray()).toEqual(\n                new Int32Array([24002, 25403, 26120, 26830, 27550, 28106, 29120, 29555]),\n            );\n        };\n        it('File buffer used once', async () => {\n            const students = await resolveData('/uni/studenten.parquet');\n            expect(students).not.toBeNull();\n            await db().registerFileBuffer('studenten.parquet', students!);\n            await test();\n        });\n        it('File buffer registered twice', async () => {\n            const students0 = await resolveData('/uni/studenten.parquet');\n            const students1 = await resolveData('/uni/studenten.parquet');\n            expect(students0).not.toBeNull();\n            expect(students1).not.toBeNull();\n            await db().registerFileBuffer('studenten.parquet', students0!);\n            await test();\n            await db().registerFileBuffer('studenten.parquet', students1!);\n            await test();\n        });\n        it('File buffer used twice', async () => {\n            const students = await resolveData('/uni/studenten.parquet');\n            expect(students).not.toBeNull();\n            await db().registerFileBuffer('studenten.parquet', students!);\n            await test();\n            await test();\n        });\n    });\n\n    describe('Parquet Scans', () => {\n        it('single table from buffer', async () => {\n            const students = await resolveData('/uni/studenten.parquet');\n            expect(students).not.toBeNull();\n            await db().registerFileBuffer('studenten.parquet', students!);\n            const result = await conn.send(`SELECT matrnr FROM parquet_scan('studenten.parquet');`);\n            const batches = [];\n            for await (const batch of result) {\n                batches.push(batch);\n            }\n            const table = await new arrow.Table<{ matrnr: arrow.Int }>(batches);\n            expect(table.getChildAt(0)?.toArray()).toEqual(\n                new Int32Array([24002, 25403, 26120, 26830, 27550, 28106, 29120, 29555]),\n            );\n        });\n\n        it('simple join', async () => {\n            const students = await resolveData('/uni/studenten.parquet');\n            const hoeren = await resolveData('/uni/hoeren.parquet');\n            const vorlesungen = await resolveData('/uni/vorlesungen.parquet');\n            expect(students).not.toBeNull();\n            expect(hoeren).not.toBeNull();\n            expect(vorlesungen).not.toBeNull();\n            await db().registerFileBuffer('studenten.parquet', students!);\n            await db().registerFileBuffer('hoeren.parquet', hoeren!);\n            await db().registerFileBuffer('vorlesungen.parquet', vorlesungen!);\n\n            const result = await conn.send(`\n                    SELECT students.matrnr, vorlesungen.titel\n                    FROM parquet_scan('studenten.parquet') students\n                    INNER JOIN parquet_scan('hoeren.parquet') hoeren ON (students.matrnr = hoeren.matrnr)\n                    INNER JOIN parquet_scan('vorlesungen.parquet') vorlesungen ON (vorlesungen.vorlnr = hoeren.vorlnr);\n                `);\n            const batches = [];\n            for await (const batch of result) {\n                batches.push(batch);\n            }\n            const table = await new arrow.Table<{ matrnr: arrow.Int; titel: arrow.Utf8 }>(batches);\n            expect(table.numCols).toBe(2);\n            const flat = [];\n            for (const row of table) {\n                flat.push({\n                    matrnr: row?.matrnr,\n                    titel: row?.titel?.toString(),\n                });\n            }\n            expect(flat).toEqual([\n                { matrnr: 26120, titel: 'Grundz\u00FCge' },\n                { matrnr: 27550, titel: 'Grundz\u00FCge' },\n                { matrnr: 27550, titel: 'Logik' },\n                { matrnr: 28106, titel: 'Ethik' },\n                { matrnr: 28106, titel: 'Wissenschaftstheorie' },\n                { matrnr: 28106, titel: 'Bioethik' },\n                { matrnr: 28106, titel: 'Der Wiener Kreis' },\n                { matrnr: 29120, titel: 'Grundz\u00FCge' },\n                { matrnr: 29120, titel: 'Ethik' },\n                { matrnr: 29120, titel: 'M\u00E4eutik' },\n                { matrnr: 29555, titel: 'Glaube und Wissen' },\n                { matrnr: 25403, titel: 'Glaube und Wissen' },\n            ]);\n        });\n    });\n\n    describe('Writing', () => {\n        it('Copy To CSV Buffer', async () => {\n            const students = await resolveData('/uni/studenten.parquet');\n            expect(students).not.toBeNull();\n            await db().registerFileBuffer('studenten.parquet', students!);\n            await db().registerEmptyFileBuffer('students.csv');\n            await conn.query(`CREATE TABLE students AS SELECT * FROM parquet_scan('studenten.parquet');`);\n            await conn.query(`COPY students TO 'students.csv' WITH (HEADER 1, DELIMITER ';', FORMAT CSV);`);\n            await conn.query(`DROP TABLE IF EXISTS students`);\n            const outBuffer = await db().copyFileToBuffer('students.csv');\n            expect(outBuffer).not.toBeNull();\n            const text = decoder.decode(outBuffer!);\n            expect(text).toBe(`matrnr;name;semester\n24002;Xenokrates;18\n25403;Jonas;12\n26120;Fichte;10\n26830;Aristoxenos;8\n27550;Schopenhauer;6\n28106;Carnap;3\n29120;Theophrastos;2\n29555;Feuerbach;2\n`);\n        });\n\n        it('Copy To Parquet', async () => {\n            const students = await resolveData('/uni/studenten.parquet');\n            expect(students).not.toBeNull();\n            await db().registerFileBuffer('studenten.parquet', students!);\n            await db().registerEmptyFileBuffer('students2.parquet');\n            await conn.query(`CREATE TABLE students2 AS SELECT * FROM parquet_scan('studenten.parquet');`);\n            await conn.query(`COPY students2 TO 'students2.parquet' (FORMAT PARQUET);`);\n            const url = await db().copyFileToBuffer('students2.parquet');\n            expect(url).not.toBeNull();\n        });\n\n        it('Copy To Parquet And Load Again', async () => {\n            const students = await resolveData('/uni/studenten.parquet');\n            expect(students).not.toBeNull();\n            await db().registerFileBuffer('studenten.parquet', students!);\n            await db().registerEmptyFileBuffer('students3.parquet');\n            await conn.query(`CREATE TABLE students3 AS SELECT * FROM parquet_scan('studenten.parquet');`);\n            await conn.query(`COPY students3 TO 'students3.parquet' (FORMAT PARQUET);`);\n            const url = await db().copyFileToBuffer('students3.parquet');\n            expect(url).not.toBeNull();\n            await conn.query(`CREATE TABLE students4 AS SELECT * FROM parquet_scan('students3.parquet');`);\n            const result = await conn.send(`SELECT matrnr FROM students4;`);\n            const batches = [];\n            for await (const batch of result) {\n                batches.push(batch);\n            }\n            const table = await new arrow.Table<{ matrnr: arrow.Int }>(batches);\n            expect(table.getChildAt(0)?.toArray()).toEqual(\n                new Int32Array([24002, 25403, 26120, 26830, 27550, 28106, 29120, 29555]),\n            );\n        });\n    });\n\n    describe('File access', () => {\n        it('Small Parquet file', async () => {\n            await db().registerFileURL('studenten.parquet', `${baseDir}/uni/studenten.parquet`, baseDirProto, true);\n            const result = await conn.send(`SELECT matrnr FROM parquet_scan('studenten.parquet');`);\n            const batches = [];\n            for await (const batch of result) {\n                batches.push(batch);\n            }\n            const table = await new arrow.Table<{ matrnr: arrow.Int }>(batches);\n            expect(table.getChildAt(0)?.toArray()).toEqual(\n                new Int32Array([24002, 25403, 26120, 26830, 27550, 28106, 29120, 29555]),\n            );\n        });\n\n        it('Large Parquet file', async () => {\n            await db().registerFileURL(\n                'lineitem.parquet',\n                `${baseDir}/tpch/0_01/parquet/lineitem.parquet`,\n                baseDirProto,\n                true,\n            );\n            const result = await conn.send(`SELECT count(*)::INTEGER as cnt FROM parquet_scan('lineitem.parquet');`);\n            const batches = [];\n            for await (const batch of result) {\n                batches.push(batch);\n            }\n            const table = await new arrow.Table<{ cnt: arrow.Int }>(batches);\n            expect(table.getChildAt(0)?.get(0)).toBeGreaterThan(60_000);\n        });\n    });\n\n    describe('Export', () => {\n        it('Generate Series as CSV', async () => {\n            await conn.query('CREATE TABLE foo AS SELECT * FROM generate_series(1, 5) t(v)');\n            await conn.query(`EXPORT DATABASE '/tmp/duckdbexportcsv'`);\n\n            const results = await db().globFiles('/tmp/duckdbexportcsv/*');\n            expect(results).not.toEqual([]);\n            expect(results.length).toEqual(3);\n            const filenames = results.map(file => file.fileName).sort();\n            expect(filenames).toEqual([\n                '/tmp/duckdbexportcsv/foo.csv',\n                '/tmp/duckdbexportcsv/load.sql',\n                '/tmp/duckdbexportcsv/schema.sql',\n            ]);\n\n            const csv_buffer_utf8 = await db().copyFileToBuffer('/tmp/duckdbexportcsv/foo.csv');\n            const load_script_utf8 = await db().copyFileToBuffer('/tmp/duckdbexportcsv/load.sql');\n            const schema_script_utf8 = await db().copyFileToBuffer('/tmp/duckdbexportcsv/schema.sql');\n            expect(load_script_utf8.length).not.toEqual(0);\n            expect(schema_script_utf8.length).not.toEqual(0);\n            expect(csv_buffer_utf8.length).not.toEqual(0);\n\n            //const load_script = decoder.decode(load_script_utf8);\n            //const schema_script = decoder.decode(schema_script_utf8);\n            //const csv_buffer = decoder.decode(csv_buffer_utf8);\n            //expect(load_script.trim()).toEqual(\n            //    `COPY foo FROM '/tmp/duckdbexportcsv/foo.csv' (FORMAT 'csv', quote '\"', delimiter ',', header 0);`,\n            //);\n            //expect(schema_script.trim()).toEqual(`CREATE TABLE foo(v BIGINT);`);\n            //expect(csv_buffer.trim()).toEqual(`1\\n2\\n3\\n4\\n5`);\n        });\n\n        it('Generate Series as Parquet', async () => {\n            await conn.query('CREATE TABLE foo AS SELECT * FROM generate_series(1, 5) t(v)');\n            await conn.query(`EXPORT DATABASE '/tmp/duckdbexportparquet' (FORMAT PARQUET)`);\n\n            const results = await db().globFiles('/tmp/duckdbexportparquet/*');\n            expect(results).not.toEqual([]);\n            expect(results.length).toEqual(3);\n            const filenames = results.map(file => file.fileName).sort();\n            expect(filenames).toEqual([\n                '/tmp/duckdbexportparquet/foo.parquet',\n                '/tmp/duckdbexportparquet/load.sql',\n                '/tmp/duckdbexportparquet/schema.sql',\n            ]);\n\n            const parquet_buffer = await db().copyFileToBuffer('/tmp/duckdbexportparquet/foo.parquet');\n            const load_script_utf8 = await db().copyFileToBuffer('/tmp/duckdbexportparquet/load.sql');\n            const schema_script_utf8 = await db().copyFileToBuffer('/tmp/duckdbexportparquet/schema.sql');\n            expect(load_script_utf8.length).not.toEqual(0);\n            expect(schema_script_utf8.length).not.toEqual(0);\n            expect(parquet_buffer.length).not.toEqual(0);\n\n            const content = await conn.query(\n                `SELECT v::integer FROM parquet_scan('/tmp/duckdbexportparquet/foo.parquet')`,\n            );\n            expect(content.nullCount).toEqual(0);\n            expect(content.numRows).toEqual(5);\n            expect(content.getChildAt(0)?.toArray()).toEqual(new Int32Array([1, 2, 3, 4, 5]));\n        });\n    });\n\n    describe('Copy', () => {\n        it('Generate Series as Parquet', async () => {\n            await conn.query(\n                `COPY (SELECT * FROM generate_series(1, 5) t(v)) TO '/tmp/duckdbcopytest.parquet' (FORMAT 'parquet')`,\n            );\n            const results = await db().globFiles('/tmp/duckdbcopytest*');\n            expect(results).not.toEqual([]);\n            expect(results.length).toEqual(1);\n            const filenames = results.map(file => file.fileName).sort();\n            expect(filenames).toEqual(['/tmp/duckdbcopytest.parquet']);\n            const parquet_buffer = await db().copyFileToBuffer('/tmp/duckdbcopytest.parquet');\n            expect(parquet_buffer.length).not.toEqual(0);\n            const content = await conn.query(`SELECT v::integer FROM parquet_scan('/tmp/duckdbcopytest.parquet')`);\n            expect(content.numRows).toEqual(5);\n            expect(content.getChildAt(0)?.toArray()).toEqual(new Int32Array([1, 2, 3, 4, 5]));\n        });\n    });\n}\n", "import * as duckdb from '../src/';\n\nconst testRows = 10000;\n\nexport function testAsyncBatchStream(db: () => duckdb.AsyncDuckDB): void {\n    let conn: duckdb.AsyncDuckDBConnection;\n\n    beforeEach(async () => {\n        conn = await db().connect();\n    });\n\n    afterEach(async () => {\n        await conn.close();\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n\n    describe('AsyncDuckDB', () => {\n        it('ping', async () => {\n            await db().ping();\n        });\n    });\n\n    describe('Arrow Record-Batches Row-Major', () => {\n        describe('single column', () => {\n            it('TINYINT', async () => {\n                const result = await conn.send(`\n                    SELECT (v & 127)::TINYINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for await (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const row of batch) {\n                        expect(row!.v).toBe(i++ & 127);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('SMALLINT', async () => {\n                const result = await conn.send(`\n                    SELECT (v & 32767)::SMALLINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for await (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(i++ & 32767);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('INTEGER', async () => {\n                const result = await conn.send(`\n                    SELECT v::INTEGER AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for await (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(i++);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('BIGINT', async () => {\n                const result = await conn.send(`\n                    SELECT v::BIGINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for await (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(BigInt(i++));\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('STRING', async () => {\n                const result = await conn.send(`\n                    SELECT v::VARCHAR AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for await (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(String(i++));\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n        });\n\n        describe('scripts', () => {\n            it('test1', async () => {\n                const result = await conn.send(`\n                    SELECT v::INTEGER AS x, (sin(v) * 100 + 100)::INTEGER AS y FROM generate_series(0, ${testRows}) as t(v)\n                `);\n                let i = 0;\n                for await (const batch of result) {\n                    expect(batch.numCols).toBe(2);\n                    for (const row of batch) {\n                        expect(row!.x).toBe(i++);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n        });\n    });\n\n    describe('Arrow Record-Batches Column-Major', () => {\n        describe('single column', () => {\n            it('TINYINT', async () => {\n                const result = await conn.send(`\n                    SELECT (v & 127)::TINYINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for await (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(i++ & 127);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('SMALLINT', async () => {\n                const result = await conn.send(`\n                    SELECT (v & 32767)::SMALLINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for await (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(i++ & 32767);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('INTEGER', async () => {\n                const result = await conn.send(`\n                    SELECT v::INTEGER AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for await (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(i++);\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('BIGINT', async () => {\n                const result = await conn.send(`\n                    SELECT v::BIGINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for await (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(BigInt(i++));\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('STRING', async () => {\n                const result = await conn.send(`\n                    SELECT v::VARCHAR AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for await (const batch of result) {\n                    expect(batch.numCols).toBe(1);\n                    for (const v of batch.getChildAt(0)!) {\n                        expect(v).toBe(String(i++));\n                    }\n                }\n                expect(i).toBe(testRows + 1);\n            });\n        });\n    });\n\n    describe('Arrow Table Row-Major', () => {\n        describe('single column', () => {\n            it('TINYINT', async () => {\n                const table = await conn.query(`\n                    SELECT (v & 127)::TINYINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const row of table) {\n                    expect(row?.v).toBe(i++ & 127);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('SMALLINT', async () => {\n                const table = await conn.query(`\n                    SELECT (v & 32767)::SMALLINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const row of table) {\n                    expect(row?.v).toBe(i++ & 32767);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('INTEGER', async () => {\n                const table = await conn.query(`\n                    SELECT v::INTEGER AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const row of table) {\n                    expect(row?.v).toBe(i++);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('BIGINT', async () => {\n                const table = await conn.query(`\n                    SELECT v::BIGINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const row of table) {\n                    expect(row?.v).toBe(BigInt(i++));\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('STRING', async () => {\n                const table = await conn.query(`\n                    SELECT v::VARCHAR AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const row of table) {\n                    expect(row?.v.valueOf()).toBe(String(i++));\n                }\n                expect(i).toBe(testRows + 1);\n            });\n        });\n    });\n\n    describe('Arrow Table Column-Major', () => {\n        describe('single column', () => {\n            it('TINYINT', async () => {\n                const table = await conn.query(`\n                    SELECT (v & 127)::TINYINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const v of table.getChildAt(0)!) {\n                    expect(v).toBe(i++ & 127);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('SMALLINT', async () => {\n                const table = await conn.query(`\n                    SELECT (v & 32767)::SMALLINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const v of table.getChildAt(0)!) {\n                    expect(v).toBe(i++ & 32767);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('INTEGER', async () => {\n                const table = await conn.query(`\n                    SELECT v::INTEGER AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const v of table.getChildAt(0)!) {\n                    expect(v).toBe(i++);\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('BIGINT', async () => {\n                const table = await conn.query(`\n                    SELECT v::BIGINT AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const v of table.getChildAt(0)!) {\n                    expect(v).toBe(BigInt(i++));\n                }\n                expect(i).toBe(testRows + 1);\n            });\n\n            it('STRING', async () => {\n                const table = await conn.query(`\n                    SELECT v::VARCHAR AS v FROM generate_series(0, ${testRows}) as t(v);\n                `);\n                let i = 0;\n                for (const v of table.getChildAt(0)!) {\n                    expect(v).toBe(String(i++));\n                }\n                expect(i).toBe(testRows + 1);\n            });\n        });\n    });\n}\n", "import * as arrow from 'apache-arrow';\nimport * as duckdb from '../src/';\nimport { Column, compareTable } from './table_test';\n\n/// Unfortunately, arrow.Table.from does not build a proper Schema.\n/// When it does, we might want to switch back to arrow.Table here instead\n/// of arrow Schema + ArrowBatch.\ninterface ArrowInsertTest {\n    name: string;\n    schema: arrow.Schema;\n    batches: ArrowBatch[];\n    options: duckdb.ArrowInsertOptions;\n    query: string;\n    expectedColumns: Column[];\n}\n\ninterface ArrowBatch {\n    numRows: number;\n    columns: arrow.Data[];\n}\n\nconst buildUtf8Array = (values: string[]) => {\n    const builder = new arrow.Utf8Builder({\n        type: new arrow.Utf8(),\n    });\n    for (const v of values) {\n        builder.append(v);\n    }\n    builder.finish();\n    return builder.flush();\n};\n\nexport function generateXInt32(n: number, cols: number): number[][] {\n    const columns = [];\n    for (let j = 0; j < cols; ++j) {\n        const column = [];\n        for (let i = 0; i < n; ++i) {\n            column.push(i);\n        }\n        columns.push(column);\n    }\n    return columns;\n}\n\nexport function generateArrowXInt32(n: number, cols: number): [arrow.Schema, arrow.RecordBatch[]] {\n    const columns = generateXInt32(n, cols);\n    const fields = [];\n    for (let j = 0; j < cols; ++j) {\n        fields.push(new arrow.Field(`v${j}`, new arrow.Int32()));\n    }\n    const schema = new arrow.Schema(fields);\n    const batches = [];\n    for (let i = 0; i < n; ) {\n        const rows = Math.min(1000, n - i);\n        const data = arrow.makeData({\n            type: new arrow.Struct(fields),\n            children: columns.map(c =>\n                arrow.makeData({\n                    type: new arrow.Int32(),\n                    data: new Int32Array(c.slice(i, i + rows)),\n                }),\n            ),\n        });\n        batches.push(new arrow.RecordBatch(schema, data));\n        i += rows;\n    }\n    return [schema, batches];\n}\n\nconst ARROW_INSERT_TESTS: ArrowInsertTest[] = [\n    {\n        name: 'integers_1',\n        schema: new arrow.Schema([\n            new arrow.Field('a', new arrow.Int32()),\n            new arrow.Field('b', new arrow.Int32()),\n            new arrow.Field('c', new arrow.Int32()),\n        ]),\n        batches: [\n            {\n                numRows: 3,\n                columns: [\n                    arrow.makeData({ type: new arrow.Int32(), data: new Int32Array([1, 4, 7]) }),\n                    arrow.makeData({ type: new arrow.Int32(), data: new Int32Array([2, 5, 8]) }),\n                    arrow.makeData({ type: new arrow.Int32(), data: new Int32Array([3, 6, 9]) }),\n                ],\n            },\n        ],\n        options: {\n            schema: 'main',\n            name: 'foo',\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [\n            { name: 'a', values: [1, 4, 7] },\n            { name: 'b', values: [2, 5, 8] },\n            { name: 'c', values: [3, 6, 9] },\n        ],\n    },\n    {\n        name: 'combined_1',\n        schema: new arrow.Schema([\n            new arrow.Field('a', new arrow.Int32()),\n            new arrow.Field('b', new arrow.Int16()),\n            new arrow.Field('c', new arrow.Utf8()),\n        ]),\n        batches: [\n            {\n                numRows: 3,\n                columns: [\n                    arrow.makeData({ type: new arrow.Int32(), data: new Int32Array([1, 4, 7]) }),\n                    arrow.makeData({ type: new arrow.Int16(), data: new Int16Array([2, 5, 8]) }),\n                    buildUtf8Array(['3', '6', '9']),\n                ],\n            },\n        ],\n        options: {\n            schema: 'main',\n            name: 'foo',\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [\n            { name: 'a', values: [1, 4, 7] },\n            { name: 'b', values: [2, 5, 8] },\n            { name: 'c', values: ['3', '6', '9'] },\n        ],\n    },\n    {\n        name: 'combined_2',\n        schema: new arrow.Schema([\n            new arrow.Field('a', new arrow.Int32()),\n            new arrow.Field('b', new arrow.Int16()),\n            new arrow.Field('c', new arrow.Utf8()),\n        ]),\n        batches: [\n            {\n                numRows: 3,\n                columns: [\n                    arrow.makeData({ type: new arrow.Int32(), data: new Int32Array([1, 4, 7]) }),\n                    arrow.makeData({ type: new arrow.Int16(), data: new Int16Array([2, 5, 8]) }),\n                    buildUtf8Array(['3', '6', '9']),\n                ],\n            },\n            {\n                numRows: 2,\n                columns: [\n                    arrow.makeData({ type: new arrow.Int32(), data: new Int32Array([10, 13]) }),\n                    arrow.makeData({ type: new arrow.Int16(), data: new Int16Array([11, 14]) }),\n                    buildUtf8Array(['12', '15']),\n                ],\n            },\n        ],\n        options: {\n            schema: 'main',\n            name: 'foo',\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [\n            { name: 'a', values: [1, 4, 7, 10, 13] },\n            { name: 'b', values: [2, 5, 8, 11, 14] },\n            { name: 'c', values: ['3', '6', '9', '12', '15'] },\n        ],\n    },\n];\n\nexport function testArrowInsert(db: () => duckdb.DuckDBBindings): void {\n    let conn: duckdb.DuckDBConnection;\n\n    beforeEach(async () => {\n        db().flushFiles();\n        conn = db().connect();\n    });\n    afterEach(async () => {\n        conn.close();\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n    describe('Arrow insert from iterable', () => {\n        for (const test of ARROW_INSERT_TESTS) {\n            it(test.name, () => {\n                conn.query(`DROP TABLE IF EXISTS ${test.options.schema || 'main'}.${test.options.name}`);\n                const batches = test.batches.map(b => {\n                    const data = arrow.makeData({\n                        type: new arrow.Struct(test.schema.fields),\n                        children: b.columns,\n                    });\n                    return new arrow.RecordBatch(test.schema, data);\n                });\n                const table = new arrow.Table(test.schema, batches);\n                conn.insertArrowTable(table, test.options);\n                const results = conn.query(test.query);\n                compareTable(results, test.expectedColumns);\n            });\n        }\n    });\n}\n\nexport function testArrowInsertAsync(db: () => duckdb.AsyncDuckDB): void {\n    let conn: duckdb.AsyncDuckDBConnection;\n\n    beforeEach(async () => {\n        await db().flushFiles();\n        conn = await db().connect();\n    });\n    afterEach(async () => {\n        await conn.close();\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n    describe('Arrow async insert from iterable', () => {\n        for (const test of ARROW_INSERT_TESTS) {\n            it(test.name, async () => {\n                await conn.query(`DROP TABLE IF EXISTS ${test.options.schema || 'main'}.${test.options.name}`);\n                const batches = test.batches.map(b => {\n                    const data = arrow.makeData({\n                        type: new arrow.Struct(test.schema.fields),\n                        children: b.columns,\n                    });\n                    return new arrow.RecordBatch(test.schema, data);\n                });\n                const table = new arrow.Table(test.schema, batches);\n                await conn.insertArrowTable(table, test.options);\n                const results = await conn.query(test.query);\n                compareTable(results, test.expectedColumns);\n            });\n        }\n    });\n    describe('Arrow async insert from table', () => {\n        it('simple integers', async () => {\n            await conn.query(`DROP TABLE IF EXISTS insert_from_table`);\n            const table = new arrow.Table({\n                a: arrow.makeVector(new Int32Array([1, 4, 7])),\n                b: arrow.makeVector(new Int32Array([2, 5, 8])),\n                c: arrow.vectorFromArray<arrow.Utf8>(['3', '6', '9']),\n            });\n            await conn.insertArrowTable(table, {\n                name: 'insert_from_vectors',\n            });\n            const results = await conn.query('select * from insert_from_vectors');\n            compareTable(results, [\n                { name: 'a', values: [1, 4, 7] },\n                { name: 'b', values: [2, 5, 8] },\n                { name: 'c', values: ['3', '6', '9'] },\n            ]);\n        });\n    });\n}\n", "import * as arrow from 'apache-arrow';\n\nexport interface Column {\n    name: string;\n    values: any[];\n}\n\nexport function compareTable(table: arrow.Table, expected: Column[]): void {\n    // Check column count\n    const colCount = expected.length;\n    expect(table.numCols).toEqual(colCount);\n    if (colCount == 0) return;\n\n    // Check columns\n    const rowCount = expected[0].values.length;\n    for (let i = 0; i < colCount; ++i) {\n        expect(expected[i].values.length).toEqual(rowCount);\n        expect(table.getChildAt(i)?.length).toEqual(rowCount);\n        expect(table.schema.fields[i]?.name).toEqual(expected[i].name);\n    }\n\n    // Compare the actual values\n    for (let i = 0; i < colCount; ++i) {\n        const col = table.getChildAt(i)!;\n        const have = [];\n        for (let j = 0; j < rowCount; ++j) {\n            have.push(col.get(j));\n        }\n        expect(Number(have)).toEqual(Number(expected[i].values));\n    }\n}\n", "import * as arrow from 'apache-arrow';\nimport * as duckdb from '../src/';\nimport { DuckDBDataProtocol } from '../src/';\nimport { Column, compareTable } from './table_test';\n\nfunction describeBrowser(description: string, specDefinitions: () => void): void {\n    if (typeof window !== 'undefined') {\n        describe(description, specDefinitions);\n    }\n}\n\nconst encoder = new TextEncoder();\n\ninterface JSONInsertTest {\n    name: string;\n    input: string;\n    options: duckdb.JSONInsertOptions;\n    query: string;\n    expectedColumns: Column[];\n}\n\nconst JSON_INSERT_TESTS: JSONInsertTest[] = [\n    {\n        name: 'rows_integers',\n        input: `[\n            {\"a\":1, \"b\":2, \"c\":3},\n            {\"a\":4, \"b\":5, \"c\":6},\n            {\"a\":7, \"b\":8, \"c\":9},\n        ]`,\n        options: {\n            schema: 'main',\n            name: 'foo',\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [\n            { name: 'a', values: [1, 4, 7] },\n            { name: 'b', values: [2, 5, 8] },\n            { name: 'c', values: [3, 6, 9] },\n        ],\n    },\n    {\n        name: 'cols_integers',\n        input: `{\n            \"a\": [1, 4, 7],\n            \"b\": [2, 5, 8],\n            \"c\": [3, 6, 9]\n        }`,\n        options: {\n            schema: 'main',\n            name: 'foo',\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [\n            { name: 'a', values: [1, 4, 7] },\n            { name: 'b', values: [2, 5, 8] },\n            { name: 'c', values: [3, 6, 9] },\n        ],\n    },\n    {\n        name: 'options_1',\n        input: `[\n            {\"a\":1, \"b\":2, \"c\":3},\n            {\"a\":4, \"b\":5, \"c\":6},\n            {\"a\":7, \"b\":8, \"c\":9},\n        ]`,\n        options: {\n            schema: 'main',\n            name: 'foo',\n            shape: duckdb.JSONTableShape.ROW_ARRAY,\n            columns: {\n                a: new arrow.Int16(),\n                b: new arrow.Int32(),\n                c: new arrow.Utf8(),\n            },\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [\n            { name: 'a', values: [1, 4, 7] },\n            { name: 'b', values: [2, 5, 8] },\n            { name: 'c', values: ['3', '6', '9'] },\n        ],\n    },\n];\n\nconst TEST_FILE = 'TEST';\n\nexport function testJSONInsert(db: () => duckdb.DuckDBBindings): void {\n    let conn: duckdb.DuckDBConnection;\n\n    beforeEach(async () => {\n        db().flushFiles();\n        conn = db().connect();\n    });\n    afterEach(async () => {\n        conn.close();\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n    describe('JSON Insert Sync', () => {\n        for (const test of JSON_INSERT_TESTS) {\n            it(test.name, () => {\n                conn.query(`DROP TABLE IF EXISTS ${test.options.schema || 'main'}.${test.options.name}`);\n                const buffer = encoder.encode(test.input);\n                db().registerFileBuffer(TEST_FILE, buffer);\n                conn.insertJSONFromPath(TEST_FILE, test.options);\n                const results = conn.query(test.query);\n                compareTable(results, test.expectedColumns);\n            });\n        }\n    });\n}\n\nexport function testJSONInsertAsync(db: () => duckdb.AsyncDuckDB): void {\n    let conn: duckdb.AsyncDuckDBConnection;\n\n    beforeEach(async () => {\n        await db().flushFiles();\n        conn = await db().connect();\n    });\n    afterEach(async () => {\n        await conn.close();\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n    describe('JSON Insert Buffer Async', () => {\n        for (const test of JSON_INSERT_TESTS) {\n            it(test.name, async () => {\n                await conn.query(`DROP TABLE IF EXISTS ${test.options.schema || 'main'}.${test.options.name}`);\n                const buffer = encoder.encode(test.input);\n                await db().registerFileBuffer(TEST_FILE, buffer);\n                await conn.insertJSONFromPath(TEST_FILE, test.options);\n                const results = await conn.query(test.query);\n                compareTable(results, test.expectedColumns);\n            });\n        }\n    });\n\n    describeBrowser('JSON Insert Blob Async', () => {\n        for (const test of JSON_INSERT_TESTS) {\n            it(test.name, async () => {\n                await conn.query(`DROP TABLE IF EXISTS ${test.options.schema || 'main'}.${test.options.name}`);\n                const buffer = encoder.encode(test.input);\n                const blob = new Blob([buffer]);\n                await db().registerFileHandle(TEST_FILE, blob, DuckDBDataProtocol.BROWSER_FILEREADER, false);\n                await conn.insertJSONFromPath(TEST_FILE, test.options);\n                const results = await conn.query(test.query);\n                compareTable(results, test.expectedColumns);\n            });\n        }\n    });\n}\n", "import * as arrow from 'apache-arrow';\nimport * as duckdb from '../src/';\nimport { DuckDBDataProtocol } from '../src/';\nimport { Column, compareTable } from './table_test';\n\nfunction describeBrowser(description: string, specDefinitions: () => void): void {\n    if (typeof window !== 'undefined') {\n        describe(description, specDefinitions);\n    }\n}\n\nconst encoder = new TextEncoder();\n\ninterface CSVInsertTest {\n    name: string;\n    input: string;\n    options: duckdb.CSVInsertOptions;\n    query: string;\n    expectedColumns: Column[];\n}\n\nconst CSV_INSERT_TESTS: CSVInsertTest[] = [\n    {\n        name: 'integers_auto_1',\n        input: `\"a\",\"b\",\"c\"\n1,2,3\n4,5,6\n7,8,9\n`,\n        options: {\n            schema: 'main',\n            name: 'foo',\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [\n            { name: 'a', values: [1, 4, 7] },\n            { name: 'b', values: [2, 5, 8] },\n            { name: 'c', values: [3, 6, 9] },\n        ],\n    },\n    {\n        name: 'integers_auto_2',\n        input: `a,b,c\n1,2,3\n4,5,6\n7,8,9\n`,\n        options: {\n            schema: 'main',\n            name: 'foo',\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [\n            { name: 'a', values: [1, 4, 7] },\n            { name: 'b', values: [2, 5, 8] },\n            { name: 'c', values: [3, 6, 9] },\n        ],\n    },\n    {\n        name: 'integers_auto_3',\n        input: `a,b,c`,\n        options: {\n            schema: 'main',\n            name: 'foo',\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [\n            { name: 'column0', values: ['a'] },\n            { name: 'column1', values: ['b'] },\n            { name: 'column2', values: ['c'] },\n        ],\n    },\n    {\n        name: 'integers_auto_2',\n        input: `a\n1\n4\n7\n`,\n        options: {\n            schema: 'main',\n            name: 'foo',\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [{ name: 'a', values: [1, 4, 7] }],\n    },\n    {\n        name: 'options_1',\n        input: `1,2,3\n4,5,6\n7,8,9\n`,\n        options: {\n            schema: 'main',\n            name: 'foo2',\n            header: false,\n            detect: false,\n            columns: {\n                a: new arrow.Int16(),\n                b: new arrow.Int32(),\n                c: new arrow.Utf8(),\n            },\n        },\n        query: 'SELECT * FROM main.foo2',\n        expectedColumns: [\n            { name: 'a', values: [1, 4, 7] },\n            { name: 'b', values: [2, 5, 8] },\n            { name: 'c', values: ['3', '6', '9'] },\n        ],\n    },\n    {\n        name: 'options_2',\n        input: `1|2|01/02/2020\n4|5|01/03/2020\n7|8|01/04/2020\n`,\n        options: {\n            schema: 'main',\n            name: 'foo',\n            detect: false,\n            header: false,\n            delimiter: '|',\n            dateFormat: '%m/%d/%Y',\n            columns: {\n                a: new arrow.Int16(),\n                b: new arrow.Int32(),\n                c: new arrow.DateDay(),\n            },\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [\n            { name: 'a', values: [1, 4, 7] },\n            { name: 'b', values: [2, 5, 8] },\n            {\n                name: 'c',\n                values: [\n                    new Date(Date.UTC(2020, 0, 2)),\n                    new Date(Date.UTC(2020, 0, 3)),\n                    new Date(Date.UTC(2020, 0, 4)),\n                ],\n            },\n        ],\n    },\n    {\n        name: 'options_3',\n        input: `1|2|20:32:45 1992-03-02\n4|5|20:32:50 1992-03-02\n7|8|20:32:55 1992-03-02\n`,\n        options: {\n            schema: 'main',\n            name: 'foo',\n            detect: false,\n            header: false,\n            delimiter: '|',\n            quote: \"'\",\n            timestampFormat: '%H:%M:%S %Y-%m-%d',\n            columns: {\n                a: new arrow.Int16(),\n                b: new arrow.Int32(),\n                c: new arrow.TimestampSecond(),\n            },\n        },\n        query: 'SELECT * FROM main.foo',\n        expectedColumns: [\n            { name: 'a', values: [1, 4, 7] },\n            { name: 'b', values: [2, 5, 8] },\n            {\n                name: 'c',\n                values: [\n                    new Date(Date.UTC(1992, 2, 2, 20, 32, 45)).getTime(),\n                    new Date(Date.UTC(1992, 2, 2, 20, 32, 50)).getTime(),\n                    new Date(Date.UTC(1992, 2, 2, 20, 32, 55)).getTime(),\n                ],\n            },\n        ],\n    },\n];\n\nconst TEST_FILE = 'TEST';\n\nexport function testCSVInsert(db: () => duckdb.DuckDBBindings): void {\n    let conn: duckdb.DuckDBConnection;\n\n    beforeEach(async () => {\n        db().flushFiles();\n        conn = db().connect();\n    });\n    afterEach(async () => {\n        conn.close();\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n    describe('CSV Insert Sync', () => {\n        for (const test of CSV_INSERT_TESTS) {\n            it(test.name, () => {\n                conn.query(`DROP TABLE IF EXISTS ${test.options.schema || 'main'}.${test.options.name}`);\n                const buffer = encoder.encode(test.input);\n                db().registerFileBuffer(TEST_FILE, buffer);\n                conn.insertCSVFromPath(TEST_FILE, test.options);\n                const results = conn.query(test.query);\n                compareTable(results, test.expectedColumns);\n            });\n        }\n    });\n}\n\nexport function testCSVInsertAsync(db: () => duckdb.AsyncDuckDB): void {\n    let conn: duckdb.AsyncDuckDBConnection;\n\n    beforeEach(async () => {\n        await db().flushFiles();\n        conn = await db().connect();\n    });\n    afterEach(async () => {\n        await conn.close();\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n    describe('CSV Insert Buffer Async', () => {\n        for (const test of CSV_INSERT_TESTS) {\n            it(test.name, async () => {\n                await conn.query(`DROP TABLE IF EXISTS ${test.options.schema || 'main'}.${test.options.name}`);\n                const buffer = encoder.encode(test.input);\n                await db().registerFileBuffer(TEST_FILE, buffer);\n                await conn.insertCSVFromPath(TEST_FILE, test.options);\n                const results = await conn.query(test.query);\n                compareTable(results, test.expectedColumns);\n            });\n        }\n    });\n\n    describeBrowser('CSV Insert Blob Async', () => {\n        for (const test of CSV_INSERT_TESTS) {\n            it(test.name, async () => {\n                await conn.query(`DROP TABLE IF EXISTS ${test.options.schema || 'main'}.${test.options.name}`);\n                const buffer = encoder.encode(test.input);\n                const blob = new Blob([buffer]);\n                await db().registerFileHandle(TEST_FILE, blob, DuckDBDataProtocol.BROWSER_FILEREADER, false);\n                await conn.insertCSVFromPath(TEST_FILE, test.options);\n                const results = await conn.query(test.query);\n                compareTable(results, test.expectedColumns);\n            });\n        }\n    });\n}\n", "import * as duckdb from '../src/';\n\nexport function testTokenization(db: () => duckdb.DuckDBBindings): void {\n    describe('Tokenizer', () => {\n        it('SELECT 1', async () => {\n            expect(db().tokenize('SELECT 1')).toEqual({\n                offsets: [0, 7],\n                types: [4, 1],\n            });\n        });\n        it('SELECT * FROM region', async () => {\n            expect(db().tokenize('SELECT * FROM region')).toEqual({\n                offsets: [0, 7, 9, 14],\n                types: [4, 3, 4, 0],\n            });\n        });\n    });\n}\n\nexport function testTokenizationAsync(db: () => duckdb.AsyncDuckDB): void {\n    describe('Tokenizer', () => {\n        it('SELECT 1', async () => {\n            expect(await db().tokenize('SELECT 1')).toEqual({\n                offsets: [0, 7],\n                types: [4, 1],\n            });\n        });\n        it('SELECT * FROM region', async () => {\n            expect(await db().tokenize('SELECT * FROM region')).toEqual({\n                offsets: [0, 7, 9, 14],\n                types: [4, 3, 4, 0],\n            });\n        });\n    });\n}\n", "import * as duckdb from '../src/';\n\ninterface TableNameTest {\n    name: string;\n    input: string;\n    tables: string[];\n}\n\nconst TABLENAME_TESTS: TableNameTest[] = [\n    {\n        name: 'standard',\n        input: 'SELECT * FROM my_table',\n        tables: ['my_table'],\n    },\n    {\n        name: 'fetch_specific',\n        input: 'SELECT col_a FROM my_table',\n        tables: ['my_table'],\n    },\n    {\n        name: 'multiple_tables',\n        input: 'SELECT * FROM my_table1, my_table2, my_table3',\n        tables: ['my_table1', 'my_table2', 'my_table3'],\n    },\n    {\n        name: 'same_table_multiple_times',\n        input: 'SELECT col_a FROM my_table, my_table m2, my_table m3',\n        tables: ['my_table'],\n    },\n    {\n        name: 'subqueries',\n        input: 'SELECT * FROM (SELECT * FROM (SELECT * FROM my_table) bla) bla3',\n        tables: ['my_table'],\n    },\n    {\n        name: 'join',\n        input: 'SELECT col_a FROM my_table JOIN my_table2 ON (my_table.col_b=my_table2.col_d)',\n        tables: ['my_table', 'my_table2'],\n    },\n    {\n        name: 'scalar_subquery',\n        input: 'SELECT (SELECT COUNT(*) FROM my_table)',\n        tables: ['my_table'],\n    },\n    {\n        name: 'set_operations',\n        input: 'SELECT * FROM my_table UNION ALL SELECT * FROM my_table2 INTERSECT SELECT * FROM my_table3',\n        tables: ['my_table', 'my_table2', 'my_table3'],\n    },\n    {\n        name: 'window_functions',\n        input: 'SELECT row_number() OVER (ORDER BY (SELECT i+j FROM my_table2)) FROM my_table',\n        tables: ['my_table', 'my_table2'],\n    },\n];\n\nexport function testTableNames(db: () => duckdb.DuckDBBindings): void {\n    let conn: duckdb.DuckDBConnection;\n    beforeEach(() => {\n        conn = db().connect();\n    });\n    afterEach(() => {\n        conn.close();\n    });\n    describe('TableNames', () => {\n        for (const test of TABLENAME_TESTS) {\n            it(test.name, () => {\n                const tables = conn.getTableNames(test.input);\n                expect(tables).toEqual(test.tables);\n            });\n        }\n    });\n}\n\nexport function testTableNamesAsync(db: () => duckdb.AsyncDuckDB): void {\n    let conn: duckdb.AsyncDuckDBConnection;\n    beforeEach(async () => {\n        conn = await db().connect();\n    });\n    afterEach(async () => {\n        await conn.close();\n    });\n    describe('TableNames Async', () => {\n        for (const test of TABLENAME_TESTS) {\n            it(test.name, async () => {\n                const tables = await conn.getTableNames(test.input);\n                expect(tables).toEqual(test.tables);\n            });\n        }\n    });\n}\n", "import * as duckdb from '../src/';\nimport { Float64, Int32, Utf8 } from 'apache-arrow';\n\nexport function testUDF(db: () => duckdb.DuckDBBindings): void {\n    let conn: duckdb.DuckDBConnection;\n    beforeEach(() => {\n        conn = db().connect();\n    });\n\n    afterEach(() => {\n        conn.close();\n        db().flushFiles();\n        db().dropFiles();\n    });\n\n    describe('UDF', () => {\n        it('simple', async () => {\n            conn.createScalarFunction('jsudf', new Int32(), a => a);\n\n            const result = conn.query(\n                'SELECT max(jsudf(v::INTEGER))::INTEGER as foo FROM generate_series(1, 10000) as t(v)',\n            );\n\n            expect(result.numRows).toEqual(1);\n            expect(result.numCols).toEqual(1);\n            expect(result.getChildAt(0)?.length).toEqual(1);\n            expect(result.getChildAt(0)?.toArray()).toEqual(new Int32Array([10000]));\n        });\n\n        it('double', async () => {\n            conn.createScalarFunction('jsudf2', new Float64(), a => a);\n\n            const result = conn.query(\n                'SELECT max(jsudf2(v::DOUBLE))::DOUBLE as foo FROM generate_series(1, 10000) as t(v)',\n            );\n\n            expect(result.numRows).toEqual(1);\n            expect(result.numCols).toEqual(1);\n            expect(result.getChildAt(0)?.length).toEqual(1);\n            expect(result.getChildAt(0)?.toArray()).toEqual(new Float64Array([10000]));\n        });\n\n        it('2 args', async () => {\n            conn.createScalarFunction('jsudf3', new Int32(), (a, b) => a + b);\n\n            const result = conn.query(\n                'SELECT max(jsudf3(v::INTEGER, v::INTEGER))::INTEGER as foo FROM generate_series(1, 10000) as t(v)',\n            );\n\n            expect(result.numRows).toEqual(1);\n            expect(result.numCols).toEqual(1);\n            expect(result.getChildAt(0)?.length).toEqual(1);\n            expect(result.getChildAt(0)?.toArray()).toEqual(new Int32Array([20000]));\n        });\n\n        it('3 args', async () => {\n            conn.createScalarFunction('jsudf3args', new Int32(), (a, b, c) => a + b + c);\n\n            const result = conn.query(\n                'SELECT max(jsudf3args(v::INTEGER, v::INTEGER, v::INTEGER))::INTEGER as foo FROM generate_series(1, 10000) as t(v)',\n            );\n\n            expect(result.numRows).toEqual(1);\n            expect(result.numCols).toEqual(1);\n            expect(result.getChildAt(0)?.length).toEqual(1);\n            expect(result.getChildAt(0)?.toArray()).toEqual(new Int32Array([30000]));\n        });\n\n        it('4 args', async () => {\n            conn.createScalarFunction('jsudf4args', new Int32(), (a, b, c, d) => a + b + c + d);\n\n            const result = conn.query(\n                'SELECT max(jsudf4args(v::INTEGER, v::INTEGER, v::INTEGER, v::INTEGER))::INTEGER as foo FROM generate_series(1, 10000) as t(v)',\n            );\n\n            expect(result.numRows).toEqual(1);\n            expect(result.numCols).toEqual(1);\n            expect(result.getChildAt(0)?.length).toEqual(1);\n            expect(result.getChildAt(0)?.toArray()).toEqual(new Int32Array([40000]));\n        });\n\n        it('noargs', async () => {\n            conn.createScalarFunction('jsudf4', new Int32(), () => 42);\n            const result = conn.query('SELECT max(jsudf4())::INTEGER as foo FROM generate_series(1, 10000) as t(v)');\n\n            expect(result.numRows).toEqual(1);\n            expect(result.numCols).toEqual(1);\n            expect(result.getChildAt(0)?.length).toEqual(1);\n            expect(result.getChildAt(0)?.toArray()).toEqual(new Int32Array([42]));\n        });\n        it('withnulls', async () => {\n            conn.createScalarFunction('jsudf5', new Int32(), a => (a == null ? -100 : a));\n            const result = conn.query(\n                'SELECT min(jsudf5((case when v % 2 = 0 then v else null end)::INTEGER))::INTEGER as foo FROM generate_series(1, 10000) as t(v)',\n            );\n\n            expect(result.numRows).toEqual(1);\n            expect(result.numCols).toEqual(1);\n            expect(result.getChildAt(0)?.length).toEqual(1);\n            expect(result.getChildAt(0)?.toArray()).toEqual(new Int32Array([-100]));\n        });\n\n        it('stringparam', async () => {\n            function jsudf6(s: string) {\n                return s.length;\n            }\n            conn.createScalarFunction('jsudf6', new Int32(), jsudf6);\n            const result = conn.query(\n                \"SELECT max(jsudf6('str_' || v))::INTEGER as foo FROM generate_series(1, 10000) as t(v)\",\n            );\n\n            expect(result.numRows).toEqual(1);\n            expect(result.numCols).toEqual(1);\n            expect(result.getChildAt(0)?.length).toEqual(1);\n            expect(result.getChildAt(0)?.toArray()).toEqual(new Int32Array([9]));\n        });\n\n        it('stringparamnulls', async () => {\n            function jsudf7(s: string) {\n                if (s == undefined) {\n                    return 0;\n                } else {\n                    return s.length;\n                }\n            }\n            conn.createScalarFunction('jsudf7', new Int32(), jsudf7);\n            const result = conn.query(\n                \"SELECT max(jsudf7((case when v % 2 = 0 then 'str_' || v else null end)::VARCHAR))::INTEGER as foo FROM generate_series(1, 10000) as t(v)\",\n            );\n\n            expect(result.numRows).toEqual(1);\n            expect(result.numCols).toEqual(1);\n            expect(result.getChildAt(0)?.length).toEqual(1);\n            expect(result.getChildAt(0)?.toArray()).toEqual(new Int32Array([9]));\n        });\n\n        it('nullintreturn', async () => {\n            conn.createScalarFunction('jsudf8', new Int32(), a => undefined);\n\n            const result = conn.query(\n                'SELECT max(COALESCE(jsudf8(v::INTEGER), 42))::INTEGER as foo FROM generate_series(1, 10000) as t(v)',\n            );\n\n            expect(result.numRows).toEqual(1);\n            expect(result.numCols).toEqual(1);\n            expect(result.getChildAt(0)?.length).toEqual(1);\n            expect(result.getChildAt(0)?.toArray()).toEqual(new Int32Array([42]));\n        });\n\n        it('stringreturn', async () => {\n            conn.createScalarFunction('jsudf9', new Utf8(), a => 'Hello ' + a);\n\n            const result = conn.query(\n                'SELECT max(LENGTH(jsudf9(v::INTEGER)))::INTEGER as foo FROM generate_series(1, 10000) as t(v)',\n            );\n\n            expect(result.numRows).toEqual(1);\n            expect(result.numCols).toEqual(1);\n            expect(result.getChildAt(0)?.length).toEqual(1);\n            expect(result.getChildAt(0)?.toArray()).toEqual(new Int32Array([11]));\n        });\n\n        it('nullstringreturn', async () => {\n            conn.createScalarFunction('jsudf10', new Utf8(), a => (a % 2 == 0 ? 'Hello' : undefined));\n\n            const result = conn.query(\n                'SELECT COUNT(jsudf10(v::INTEGER))::INTEGER as foo FROM generate_series(1, 10000) as t(v)',\n            );\n\n            expect(result.numRows).toEqual(1);\n            expect(result.numCols).toEqual(1);\n            expect(result.getChildAt(0)?.length).toEqual(1);\n            expect(result.getChildAt(0)?.toArray()).toEqual(new Int32Array([5000]));\n        });\n\n        it('struct', async () => {\n            conn.createScalarFunction('jsudf11', new Int32(), a => (a.x == null ? -100 : a.x));\n            const result = conn.query(\n                `SELECT min(jsudf11({'x': (case when v % 2 = 0 then v else null end)::INTEGER, 'y': 42}))::INTEGER as foo FROM generate_series(1, 10000) as t(v)`,\n            );\n\n            expect(result.numRows).toEqual(1);\n            expect(result.numCols).toEqual(1);\n            expect(result.getChildAt(0)?.length).toEqual(1);\n            expect(result.getChildAt(0)?.toArray()).toEqual(new Int32Array([-100]));\n        });\n\n        it('structnested', async () => {\n            conn.createScalarFunction('jsudf12', new Int32(), a => (a.x.y == null ? -100 : a.x.y));\n            const result = conn.query(\n                `SELECT min(jsudf12({'x': {'y': (case when v % 2 = 0 then v else null end)::INTEGER }, 'z': 42}))::INTEGER as foo FROM generate_series(1, 10000) as t(v)`,\n            );\n\n            expect(result.numRows).toEqual(1);\n            expect(result.numCols).toEqual(1);\n            expect(result.getChildAt(0)?.length).toEqual(1);\n            expect(result.getChildAt(0)?.toArray()).toEqual(new Int32Array([-100]));\n        });\n\n        it('structnestednull', async () => {\n            conn.createScalarFunction('jsudf13', new Int32(), a => (a.x?.y == null ? -100 : a.x!.y));\n            const result = conn.query(\n                `SELECT min(jsudf13({'x': (case when v % 2 = 0 then {'y': v::INTEGER } else null end), 'z': 42}))::INTEGER as foo FROM generate_series(1, 10000) as t(v)`,\n            );\n\n            expect(result.numRows).toEqual(1);\n            expect(result.numCols).toEqual(1);\n            expect(result.getChildAt(0)?.length).toEqual(1);\n            expect(result.getChildAt(0)?.toArray()).toEqual(new Int32Array([-100]));\n        });\n    });\n}\n", "import * as duckdb from '../../src';\nimport * as arrow from 'apache-arrow';\n\n// https://github.com/duckdb/duckdb-wasm/issues/332\nexport function test332(db: () => duckdb.AsyncDuckDB): void {\n    let conn: duckdb.AsyncDuckDBConnection;\n    beforeEach(async () => {\n        await db().flushFiles();\n        conn = await db().connect();\n    });\n    afterEach(async () => {\n        await conn.close();\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n    describe('GitHub issues', () => {\n        it('332', async () => {\n            await db().registerFileText(\n                'Products.csv',\n                `ProductGroup,Product,Year,Quarter,Revenue,Units,Count,Product Key,Reseller,Product Info,QuarterAsNumber\nElectronics,Phone,2018,Q1,103,7,1,2018-Q1,Sony,Format=XML; <Properties>\u2026,1\nElectronics,Phone,2018,Q1,102,4,1,2018-Q1,Sony,Format=XML; <Properties>\u2026,1\nElectronics,Phone,2019,Q1,98,12,1,2019-Q1,Sony,Format=XML; <Properties>\u2026,1\nElectronics,Computer,2018,Q1,104,3,1,2018-Q1,Samsung,Format=XML; <Properties>\u2026,1\nElectronics,Computer,2019,Q1,83,7,1,2019-Q1,Google,Format=XML; <Properties>\u2026,1\nMedia,Theater,2018,Q1,17,4,1,2018-Q1,Sony,Format=XML; <Properties>\u2026,1\nMedia,Theater,2019,Q1,20,7,1,2019-Q1,Sony,Format=XML; <Properties>\u2026,1\nMedia,Movies,2018,Q1,25,12,1,2018-Q1,Microsoft,Format=XML; <Properties>\u2026,1\nMedia,Movies,2019,Q1,26,13,1,2019-Q1,Sony,Format=XML; <Properties>\u2026,1\nElectronics,Phone,2018,Q2,105,5,1,2018-Q2,Samsung,Format=XML; <Properties>\u2026,2\nElectronics,Phone,2019,Q2,82,15,1,2019-Q2,LG,Format=XML; <Properties>\u2026,2\nElectronics,Computer,2018,Q2,99,4,1,2018-Q2,LG,Format=XML; <Properties>\u2026,2\nElectronics,Computer,2019,Q2,84,20,1,2019-Q2,Sony,Format=XML; <Properties>\u2026,2\nMedia,Theater,2018,Q2,17,4,1,2018-Q2,Microsoft,Format=XML; <Properties>\u2026,2\nMedia,Theater,2019,Q2,22,5,1,2019-Q2,Sony,Format=XML; <Properties>\u2026,2\nMedia,Movies,2018,Q2,25,12,1,2018-Q2,Samsung,Format=XML; <Properties>\u2026,2\nMedia,Movies,2019,Q2,26,14,1,2019-Q2,Google,Format=XML; <Properties>\u2026,2\nElectronics,Phone,2000,Q1,103,7,1,2000-Q1,Sony,Format=XML; <Properties>\u2026,1\nElectronics,Phone,2001,Q1,102,4,1,2001-Q1,Sony,Format=XML; <Properties>\u2026,1\nElectronics,Phone,2002,Q1,98,12,1,2002-Q1,Microsoft,Format=XML; <Properties>\u2026,1\nElectronics,Computer,2003,Q1,104,3,1,2003-Q1,Sony,Format=XML; <Properties>\u2026,1\nElectronics,Computer,2004,Q1,83,7,1,2004-Q1,Samsung,Format=XML; <Properties>\u2026,1\nMedia,Theater,2005,Q1,17,4,1,2005-Q1,Google,Format=XML; <Properties>\u2026,1\nMedia,Theater,2006,Q1,20,7,1,2006-Q1,Sony,Format=XML; <Properties>\u2026,1\nMedia,Movies,2007,Q1,25,12,1,2007-Q1,Sony,Format=XML; <Properties>\u2026,1\nMedia,Movies,2008,Q1,26,13,1,2008-Q1,Microsoft,Format=XML; <Properties>\u2026,1\nElectronics,Phone,2009,Q2,105,5,1,2009-Q2,Sony,Format=XML; <Properties>\u2026,2\nElectronics,Phone,2010,Q2,82,15,1,2010-Q2,Sony,Format=XML; <Properties>\u2026,2\nElectronics,Computer,2011,Q2,99,4,1,2011-Q2,Sony,Format=XML; <Properties>\u2026,2\nElectronics,Computer,2012,Q2,84,20,1,2012-Q2,Sony,Format=XML; <Properties>\u2026,2\nMedia,Theater,2013,Q2,17,4,1,2013-Q2,Sony,Format=XML; <Properties>\u2026,2\nMedia,Theater,2014,Q2,22,5,1,2014-Q2,Sony,Format=XML; <Properties>\u2026,2\nMedia,Movies,2015,Q2,25,12,1,2015-Q2,Sony,Format=XML; <Properties>\u2026,2\nMedia,Movies,2016,Q2,26,14,1,2016-Q2,Samsung,Format=XML; <Properties>\u2026,2\nMedia,Movies,2017,Q1,26,13,1,2017-Q1,Google,Format=XML; <Properties>\u2026,1\nElectronics,Phone,2018,Q2,105,5,1,2018-Q2,Sony,Format=XML; <Properties>\u2026,2\nElectronics,Phone,2019,Q2,82,15,1,2019-Q2,Sony,Format=XML; <Properties>\u2026,2\nElectronics,Computer,2020,Q2,99,4,1,2020-Q2,Microsoft,Format=XML; <Properties>\u2026,2\nElectronics,Phone,2020,Q1,103,7,1,2020-Q1,Sony,Format=XML; <Properties>\u2026,1\nElectronics,Phone,2020,Q2,102,4,1,2020-Q2,Samsung,Format=XML; <Properties>\u2026,2\nElectronics,Phone,2020,Q3,98,12,1,2020-Q3,LG,Format=XML; <Properties>\u2026,3\nElectronics,Computer,2020,Q4,104,3,1,2020-Q4,LG,Format=XML; <Properties>\u2026,4\nElectronics,Computer,2020,Q1,83,7,1,2020-Q1,Sony,Format=XML; <Properties>\u2026,1\nMedia,Theater,2020,Q1,17,4,1,2020-Q1,Microsoft,Format=XML; <Properties>\u2026,1\nMedia,Theater,2020,Q1,20,7,1,2020-Q1,Sony,Format=XML; <Properties>\u2026,1\n`,\n            );\n            await conn.query(\"CREATE TABLE products AS SELECT * FROM 'Products.csv'\");\n            const all = await conn.query('SELECT * FROM products');\n            expect(all.schema.fields.length).toBe(11);\n            expect(all.schema.fields[0].name).toBe('ProductGroup');\n            const insensitive = await conn.query<{\n                ProductGroup: arrow.Utf8;\n            }>('SELECT productgroup FROM products GROUP BY productgroup');\n            expect(insensitive.schema.fields.length).toBe(1);\n            expect(insensitive.schema.fields[0].name).toBe('ProductGroup');\n            expect(insensitive.toArray().length).toEqual(2);\n            await conn.query('DROP TABLE products');\n        });\n    });\n}\n", "import * as duckdb from '../../src';\nimport * as arrow from 'apache-arrow';\n\n// https://github.com/duckdb/duckdb-wasm/issues/334\nexport function test334(adb: () => duckdb.AsyncDuckDB): void {\n    describe('GitHub issues', () => {\n        describe('334', () => {\n            it('CSV insert', async () => {\n                await adb().registerFileText(`data.csv`, '1|foo\\n2|bar\\n');\n                const conn = await adb().connect();\n                await conn.insertCSVFromPath('data.csv', {\n                    schema: 'main',\n                    name: 'foo',\n                    detect: false,\n                    header: false,\n                    delimiter: '|',\n                    columns: {\n                        col1: new arrow.Int32(),\n                        col2: new arrow.Utf8(),\n                    },\n                });\n                await conn.query('DROP TABLE IF EXISTS foo');\n                await conn.close();\n                await adb().dropFile('data.csv');\n            });\n            it('JSON row insert', async () => {\n                await adb().registerFileText(\n                    'rows.json',\n                    `[\n                    { \"col1\": 1, \"col2\": \"foo\" },\n                    { \"col1\": 2, \"col2\": \"bar\" },\n                ]`,\n                );\n                const conn = await adb().connect();\n                await conn.insertJSONFromPath('rows.json', { name: 'rows' });\n                await conn.query('DROP TABLE IF EXISTS rows');\n                await conn.close();\n                await adb().dropFile('rows.json');\n            });\n            it('JSON column insert', async () => {\n                await adb().registerFileText(\n                    'columns.json',\n                    `{\n                    \"col1\": [1, 2],\n                    \"col2\": [\"foo\", \"bar\"]\n                }`,\n                );\n                const conn = await adb().connect();\n                await conn.insertJSONFromPath('columns.json', { name: 'columns' });\n                await conn.query('DROP TABLE IF EXISTS columns');\n                await conn.close();\n                await adb().dropFile('columns.json');\n            });\n            it('Query result materialized', async () => {\n                const conn = await adb().connect();\n                await conn.query<{ v: arrow.Int }>(`\n                SELECT * FROM generate_series(1, 100) t(v)\n            `);\n                await conn.close();\n            });\n            it('Query result streamed', async () => {\n                const conn = await adb().connect();\n                for await (const batch of await conn.send<{ v: arrow.Int }>(`\n                SELECT * FROM generate_series(1, 100) t(v)\n            `)) {\n                    expect(batch.numRows).toBeGreaterThan(0);\n                }\n                await conn.close();\n            });\n            it('Prepared statement materialized', async () => {\n                const conn = await adb().connect();\n                const stmt = await conn.prepare(`SELECT v + ? FROM generate_series(0, 10000) as t(v);`);\n                await stmt.query(234);\n                await stmt.close();\n                await conn.close();\n            });\n            it('Prepared statement streamed', async () => {\n                const conn = await adb().connect();\n                const stmt = await conn.prepare(`SELECT v + ? FROM generate_series(0, 10000) as t(v);`);\n                for await (const batch of await stmt.send(234)) {\n                    expect(batch.numRows).toBeGreaterThan(0);\n                }\n                await stmt.close();\n                await conn.close();\n            });\n        });\n    });\n}\n", "import * as duckdb from '../../src';\nimport * as arrow from 'apache-arrow';\n\n// https://github.com/duckdb/duckdb-wasm/issues/393\nexport function test393(db: () => duckdb.AsyncDuckDB): void {\n    let conn: duckdb.AsyncDuckDBConnection | null = null;\n    beforeEach(async () => {\n        await db().flushFiles();\n    });\n    afterEach(async () => {\n        if (conn) {\n            await conn.close();\n            conn = null;\n        }\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n    describe('GitHub issues', () => {\n        it('393', async () => {\n            await db().open({\n                path: ':memory:',\n                query: {\n                    castTimestampToDate: false,\n                },\n            });\n            conn = await db().connect();\n            const resultWithoutCast = await conn.query<{\n                ts: arrow.TimestampMillisecond;\n            }>(`SELECT TIMESTAMP '1992-03-22 01:02:03' as ts`);\n            expect(resultWithoutCast.toArray()[0]?.ts).toEqual(new Date(Date.UTC(1992, 2, 22, 1, 2, 3)).getTime());\n\n            await db().open({\n                path: ':memory:',\n                query: {\n                    castTimestampToDate: true,\n                },\n            });\n            conn = await db().connect();\n            const resultWithCast = await conn.query<{\n                ts: arrow.DateMillisecond;\n            }>(`SELECT TIMESTAMP '1992-03-22 01:02:03' as ts`);\n            expect(resultWithCast.toArray()[0]?.ts).toEqual(new Date(Date.UTC(1992, 2, 22, 1, 2, 3)));\n        });\n    });\n}\n", "import * as duckdb from '../../src';\nimport * as arrow from 'apache-arrow';\n\n// https://github.com/duckdb/duckdb-wasm/issues/448\nexport function test448(db: () => duckdb.AsyncDuckDB): void {\n    let conn: duckdb.AsyncDuckDBConnection | null = null;\n    beforeEach(async () => {\n        await db().flushFiles();\n    });\n    afterEach(async () => {\n        if (conn) {\n            await conn.close();\n            conn = null;\n        }\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n    describe('GitHub issues', () => {\n        it('448', async () => {\n            conn = await db().connect();\n            await conn.query(`create temp table test448(i integer)`);\n            await conn.query(`insert into test448 values (1),(2),(1)`);\n            let result = await conn.query(`select * from test448`);\n            expect(result.numCols).toBe(1);\n            expect(result.numRows).toBe(3);\n            expect(result.getChildAt(0)?.toArray()).toEqual(new Int32Array([1, 2, 1]));\n            result = await conn.query<{ i: arrow.Map_<arrow.Int32, arrow.Uint64> }>(`select histogram(i) from test448`);\n            expect(result.numCols).toBe(1);\n            expect(result.numRows).toBe(1);\n            const array = result.getChildAt(0)!.toArray();\n            expect(array.length).toEqual(1);\n            expect(array[0].toString()).toEqual('{1: 2, 2: 1}');\n        });\n    });\n}\n", "import * as duckdb from '../../src';\nimport * as arrow from 'apache-arrow';\n\n// https://github.com/duckdb/duckdb-wasm/issues/470\nexport function test470(db: () => duckdb.AsyncDuckDB): void {\n    let conn: duckdb.AsyncDuckDBConnection | null = null;\n    beforeEach(async () => {\n        await db().flushFiles();\n    });\n    afterEach(async () => {\n        if (conn) {\n            await conn.close();\n            conn = null;\n        }\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n    describe('GitHub issues', () => {\n        it('470', async () => {\n            // Baseline without cast: we expect an error to be thrown because of the duration type that is emitted\n            await db().open({\n                path: ':memory:',\n                query: {\n                    castDurationToTime64: false,\n                },\n            });\n            conn = await db().connect();\n            const result1 = await conn.query<{\n                interval: arrow.TimeMicrosecond;\n            }>(`SELECT INTERVAL '3' MONTH AS interval`);\n            expect(result1.toArray()[0]?.interval?.toString()).toEqual('0,3');\n\n            // Cast explicitly enabled: Time64 value is returned\n            await db().open({\n                path: ':memory:',\n                query: {\n                    castDurationToTime64: true,\n                },\n            });\n            conn = await db().connect();\n            const resultWithCast = await conn.query<{\n                interval: arrow.TimeMicrosecond;\n            }>(`SELECT INTERVAL '3' MONTH AS interval`);\n            expect(resultWithCast.toArray()[0]?.interval?.toString()).toEqual('0,3');\n\n            // Cast should be on by default\n            await db().open({\n                path: ':memory:',\n                query: {},\n            });\n            conn = await db().connect();\n            const resultWithDefault = await conn.query<{\n                interval: arrow.TimeMicrosecond;\n            }>(`SELECT INTERVAL '3' MONTH AS interval`);\n            expect(resultWithDefault.toArray()[0]?.interval?.toString()).toEqual('0,3');\n        });\n    });\n}\n", "import * as duckdb from '../../src';\nimport * as arrow from 'apache-arrow';\n\n// https://github.com/duckdb/duckdb-wasm/issues/477\n// Note that when ArrowJS supports negative decimals, castDecimalToDouble should probably be deprecated.\nexport function test477(db: () => duckdb.AsyncDuckDB): void {\n    let conn: duckdb.AsyncDuckDBConnection | null = null;\n    beforeEach(async () => {\n        await db().flushFiles();\n    });\n    afterEach(async () => {\n        if (conn) {\n            await conn.close();\n            conn = null;\n        }\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n    describe('GitHub issues', () => {\n        it('477', async () => {\n            // Baseline without cast: we expect decimal values to not handle fractional parts correctly\n            await db().open({\n                path: ':memory:',\n                query: {},\n            });\n            conn = await db().connect();\n            const resultWithoutCast = await conn.query(`SELECT (-1.9)::DECIMAL(2,1) as decimal`);\n            expect(resultWithoutCast.schema.fields[0].type.scale).toEqual(1);\n            expect(resultWithoutCast.schema.fields[0].type.precision).toEqual(2);\n            // Arrow JS now handles negative decimals, but not the fractional part.\n            expect(resultWithoutCast.toArray()[0]?.decimal == -19).toBe(true);\n\n            // Using castDecimalToDouble we force decimals to be cast to doubles, note the inevitable imprecision.\n            await db().open({\n                path: ':memory:',\n                query: {\n                    castDecimalToDouble: true,\n                },\n            });\n            conn = await db().connect();\n            const resultWithCast = await conn.query<{\n                decimal: arrow.Float64;\n            }>(`SELECT (-1.9)::DECIMAL(2,1) as decimal`);\n            expect(resultWithCast.toArray()[0]?.decimal).toEqual(-1.9000000000000001);\n        });\n    });\n}\n", "import * as duckdb from '../../src';\n\n// https://github.com/duckdb/duckdb-wasm/issues/477\n// Note that when ArrowJS supports negative decimals, castDecimalToDouble should probably be deprecated.\nexport function test1467(db: () => duckdb.AsyncDuckDB): void {\n    let conn: duckdb.AsyncDuckDBConnection | null = null;\n    beforeEach(async () => {\n        await db().flushFiles();\n    });\n    afterEach(async () => {\n        if (conn) {\n            await conn.close();\n            conn = null;\n        }\n        await db().flushFiles();\n        await db().dropFiles();\n    });\n    describe('GitHub issues', () => {\n        it('1467', async () => {\n            // Baseline without cast: we expect decimal values to not handle fractional parts correctly\n            await db().open({\n                path: ':memory:',\n                query: {},\n            });\n            conn = await db().connect();\n            const resultWithoutCast = await conn.query(`select substring('\uD83E\uDD86\uD83E\uDD86\uD83E\uDD86' from 3) AS result;`);\n            expect(resultWithoutCast.toArray()[0]?.result).toEqual('\uD83E\uDD86');\n        });\n    });\n}\n", "import * as duckdb from '../../src/';\nimport { test332 } from './github_332.test';\nimport { test334 } from './github_334.test';\nimport { test393 } from './github_393.test';\nimport { test448 } from './github_448.test';\nimport { test470 } from './github_470.test';\nimport { test477 } from './github_477.test';\nimport { test1467 } from './github_1467.test';\n\nexport function testRegressionAsync(adb: () => duckdb.AsyncDuckDB): void {\n    test332(adb);\n    test334(adb);\n    test393(adb);\n    test448(adb);\n    test470(adb);\n    test477(adb);\n    test1467(adb);\n}\n", "import * as duckdb from '../src/';\n\nexport function testFTS(db: () => duckdb.DuckDBBindings): void {\n    let conn: duckdb.DuckDBConnection;\n    beforeEach(() => {\n        conn = db().connect();\n    });\n\n    afterEach(() => {\n        conn.close();\n        db().flushFiles();\n        db().dropFiles();\n    });\n\n    describe('FTS', () => {\n        it('sample', async () => {\n            // example from https://duckdb.org/docs/sql/full_text_search\n            await conn.query(\n                'CREATE TABLE documents(document_identifier VARCHAR, text_content VARCHAR, author VARCHAR, doc_version INTEGER);',\n            );\n            await conn.query(\n                \"INSERT INTO documents VALUES ('doc1', 'The mallard is a dabbling duck that breeds throughout the temperate.','Hannes M\u00FChleisen', 3), ('doc2', 'The cat is a domestic species of small carnivorous mammal.', 'Laurens Kuiper', 2);\",\n            );\n            await conn.query(\"PRAGMA create_fts_index('documents', 'document_identifier', 'text_content', 'author');\");\n            const result = conn.query(\n                'SELECT document_identifier, score\\n' +\n                    \"            FROM (SELECT *, fts_main_documents.match_bm25(document_identifier, 'Muhleisen', fields := 'author') AS score\\n\" +\n                    '            FROM documents) sq\\n' +\n                    '            WHERE score IS NOT NULL\\n' +\n                    '            AND doc_version > 2\\n' +\n                    '            ORDER BY score DESC;',\n            );\n\n            expect(result.getChildAt(0)?.toArray()).toEqual(['doc1']);\n        });\n    });\n}\n", "import * as duckdb from '../src/';\n\nexport function testICU(db: () => duckdb.DuckDBBindings): void {\n    let conn: duckdb.DuckDBConnection;\n    beforeEach(() => {\n        conn = db().connect();\n    });\n\n    afterEach(() => {\n        conn.close();\n        db().flushFiles();\n        db().dropFiles();\n    });\n\n    describe('ICU', () => {\n        it('SET TimeZone', async () => {\n            // Will error if ICU isn't loaded\n            await conn.query(\"SET TimeZone='UTC'\");\n        });\n    });\n}\n"],
  "mappings": "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",
  "names": ["path", "module", "module", "module", "node", "module", "module", "module", "max", "module", "module", "module", "module", "module", "index", "module", "require_constants", "module", "path", "require_utils", "path", "module", "require_parse", "module", "opts", "value", "rest", "source", "module", "path", "state", "require_picomatch", "module", "module", "path", "pattern", "module", "require_utils", "fs", "path", "path", "path", "require_fs", "fs", "fs", "sync", "path", "module", "module", "queueMicrotask", "require_constants", "require_fs", "require_utils", "fs", "require_async", "path", "require_sync", "require_fs", "fs", "require_settings", "path", "fs", "require_out", "sync", "path", "module", "module", "worker", "self", "require_common", "require_async", "require_async", "require_stream", "require_sync", "require_sync", "require_settings", "path", "require_out", "require_reader", "path", "require_stream", "require_async", "require_entry", "path", "require_async", "require_stream", "require_sync", "require_sync", "require_settings", "fs", "require_out", "module", "FastGlob", "sync", "posix", "escapePath", "convertPathToPattern", "win32", "module", "DuckDB", "path", "fs", "err", "ret", "buffer", "exports", "Module", "out", "family", "type", "proto", "addr", "port", "ai", "date", "module", "DuckDB", "path", "fs", "err", "ret", "buffer", "exports", "Module", "out", "family", "type", "proto", "addr", "port", "ai", "date", "path", "decoder", "arrow", "TEXT_ENCODER", "worker", "path", "TEXT_ENCODER", "e", "fs", "path", "import_duckdb_mvp", "import_fs", "path", "fs", "DuckDBWasm", "DuckDBWasm", "DuckDB", "DuckDBWasm", "DuckDB", "arrow", "db", "TEXT_ENCODER", "worker", "path", "import_fs", "db", "arrow", "db", "adb", "db", "arrow", "db", "resolveData", "testRows", "db", "arrow", "db", "arrow", "db", "arrow", "describeBrowser", "encoder", "TEST_FILE", "db", "db", "db", "import_apache_arrow", "db", "_a", "db", "arrow", "adb", "db", "db", "db", "db", "db", "adb", "db", "db", "path", "fs", "Worker"]
}
